Project
Loading...
Searching...
No Matches
Aligner.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11
15
16#ifndef ALICEO2_MFT_ALIGNER_H
17#define ALICEO2_MFT_ALIGNER_H
18
19#include <array>
20#include <vector>
21
22#include <Rtypes.h>
23#include <TString.h>
24#include <TFile.h>
25
28
29namespace o2
30{
31namespace mft
32{
33
35{
36 public:
38 Aligner();
39
41 virtual ~Aligner();
42
44 virtual void init() = 0;
45
46 // simple setters
47
49 void setResidualCutInitial(const Double_t value) { mResCutInitial = value; }
50 void setResidualCut(const Double_t value) { mResCut = value; }
51 void setAllowedVariationDeltaX(const double value) { mAllowVar[0] = value; }
52 void setAllowedVariationDeltaY(const double value) { mAllowVar[1] = value; }
53 void setAllowedVariationDeltaZ(const double value) { mAllowVar[3] = value; }
54 void setAllowedVariationDeltaRz(const double value) { mAllowVar[2] = value; }
55 void setChi2CutFactor(const double value) { mStartFac = value; }
56
58 int getNDofPerSensor() const { return mNDofPerSensor; }
59
60 protected:
61 static constexpr int mNumberOfTrackParam = 4;
62 static constexpr int mNDofPerSensor = 4;
64 static constexpr int mNumberOfSensors = mChipMapping.getNChips();
66 std::array<double, mNDofPerSensor> mAllowVar;
67 double mStartFac;
70 double mResCut;
73 bool mIsInitDone = false;
74 std::vector<int> mGlobalParameterStatus;
75
76 // used to fix some degrees of freedom
77
78 static constexpr int mFixedParId = -1;
79 static constexpr int mFreeParId = mFixedParId - 1;
80
82};
83
84} // namespace mft
85} // namespace o2
86
87#endif
General class for alignment with large number of degrees of freedom, adapted from AliROOT.
static constexpr Int_t getNChips()
void setChi2CutFactor(const double value)
Definition Aligner.h:55
TString mMilleRecordsFileName
output file name when saving the Mille records
Definition Aligner.h:71
virtual ~Aligner()
destructor
Definition Aligner.cxx:51
ClassDef(Aligner, 0)
void setAllowedVariationDeltaX(const double value)
Definition Aligner.h:51
void setChi2CutNStdDev(const Int_t value)
Definition Aligner.h:48
double mResCutInitial
Cut on residual on first iteration.
Definition Aligner.h:69
static o2::itsmft::ChipMappingMFT mChipMapping
MFT chip <-> ladder, layer, disk, half mapping.
Definition Aligner.h:63
Aligner()
construtor
Definition Aligner.cxx:29
void setAllowedVariationDeltaY(const double value)
Definition Aligner.h:52
std::vector< int > mGlobalParameterStatus
vector of effective degrees of freedom, used to fix detectors, parameters, etc.
Definition Aligner.h:74
void setResidualCut(const Double_t value)
Definition Aligner.h:50
static constexpr int mNumberOfSensors
Total number of sensors (detection elements) in the MFT.
Definition Aligner.h:64
TString mMilleConstraintsRecFileName
output file name when saving the records of the constraints
Definition Aligner.h:72
static constexpr int mFreeParId
Definition Aligner.h:79
static constexpr int mNDofPerSensor
translation in global x, y, z, and rotation Rz around global z-axis
Definition Aligner.h:62
double mResCut
Cut on residual for other iterations.
Definition Aligner.h:70
bool mIsInitDone
boolean to follow the initialisation status
Definition Aligner.h:73
void setResidualCutInitial(const Double_t value)
Definition Aligner.h:49
double mStartFac
Initial value for chi2 cut, used to reject outliers i.e. bad tracks with sum(chi2) > Chi2DoFLim(fNStd...
Definition Aligner.h:67
static constexpr int mNumberOfGlobalParam
Number of alignment (= global) parameters.
Definition Aligner.h:65
virtual void init()=0
init Millipede (will be overriden in derived classes)
int getNDofPerSensor() const
return the number of DOF per sensor
Definition Aligner.h:58
void setAllowedVariationDeltaZ(const double value)
Definition Aligner.h:53
void setAllowedVariationDeltaRz(const double value)
Definition Aligner.h:54
std::array< double, mNDofPerSensor > mAllowVar
"Encouraged" variation for degrees of freedom {dx, dy, dRz, dz}
Definition Aligner.h:66
static constexpr int mNumberOfTrackParam
Number of track (= local) parameters (X0, Tx, Y0, Ty)
Definition Aligner.h:61
static constexpr int mFixedParId
Definition Aligner.h:78
int mChi2CutNStdDev
Number of standard deviations for chi2 cut.
Definition Aligner.h:68
GLsizei const GLfloat * value
Definition glcorearb.h:819
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...