]>
Commit | Line | Data |
---|---|---|
b1f0a2a5 | 1 | #ifndef ALI_TPC_CALIB_GLOBAL_MISALIGNMENT_H |
2 | #define ALI_TPC_CALIB_GLOBAL_MISALIGNMENT_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //////////////////////////////////////////////////////////////////////////// | |
8 | // // | |
9 | // AliTPCCalibGlobalMisalignment class // | |
10 | // The class calculates the space point distortions due to simple // | |
11 | // misalignments like shifts in caresian coordinates or a rotation // | |
12 | // of the TPC read out planes (A and C side) // | |
13 | // // | |
14 | // date: 06/05/2010 // | |
15 | // Authors: Stefan Rossegger, Jim Thomas, Magnus Mager // | |
16 | //////////////////////////////////////////////////////////////////////////// | |
17 | ||
18 | #include "AliTPCCorrection.h" | |
be260e87 | 19 | #include "TVectorD.h" |
20 | class TGeoMatrix; | |
4e093f35 | 21 | class TObjArray; |
22 | class TTreeSRedirector; | |
be260e87 | 23 | |
b1f0a2a5 | 24 | |
25 | class AliTPCCalibGlobalMisalignment : public AliTPCCorrection { | |
26 | public: | |
27 | AliTPCCalibGlobalMisalignment(); | |
28 | virtual ~AliTPCCalibGlobalMisalignment(); | |
4e093f35 | 29 | |
b1f0a2a5 | 30 | // initialization and update functions |
31 | // virtual void Init(); | |
32 | // virtual void Update(const TTimeStamp &timeStamp); | |
4e093f35 | 33 | void AddAlign(const AliTPCCalibGlobalMisalignment & add); |
b1f0a2a5 | 34 | // setters and getters for misalignments |
35 | void SetXShift(Float_t xShift) {fXShift=xShift;} | |
36 | void SetYShift(Float_t yShift) {fYShift=yShift;} | |
37 | void SetZShift(Float_t zShift) {fZShift=zShift;} | |
38 | void SetRotPhiA(Float_t rotPhiA) {fRotPhiA=rotPhiA;} | |
39 | void SetRotPhiC(Float_t rotPhiC) {fRotPhiC=rotPhiC;} | |
40 | void SetdRPhiOffsetA(Float_t dRPhiOffsetA) {fdRPhiOffsetA=dRPhiOffsetA;} | |
41 | void SetdRPhiOffsetC(Float_t dRPhiOffsetC) {fdRPhiOffsetC=dRPhiOffsetC;} | |
be260e87 | 42 | |
b1f0a2a5 | 43 | Float_t GetXShift() const {return fXShift;} |
44 | Float_t GetYShift() const {return fYShift;} | |
45 | Float_t GetZShift() const {return fZShift;} | |
46 | Float_t GetRotPhiA() const {return fRotPhiA;} | |
47 | Float_t GetRotPhiC() const {return fRotPhiC;} | |
48 | Float_t GetdRPhiOffsetA() const {return fdRPhiOffsetA;} | |
49 | Float_t GetdRPhiOffsetC() const {return fdRPhiOffsetC;} | |
b1f0a2a5 | 50 | virtual void Print(Option_t* option="") const; |
32b5322b | 51 | void SetQuadranAlign(const TVectorD *quadrantQ0, const TVectorD *quadrantRQ0, const TVectorD *quadrantQ1,const TVectorD *quadrantRQ1, const TVectorD *quadrantQ2, const TVectorD *quadrantRQ2); |
4e093f35 | 52 | // |
53 | // Alignment manipulation using TGeoMatrix | |
54 | ||
55 | void SetAlignGlobal(const TGeoMatrix * matrixGlobal); | |
76c58ee2 | 56 | void SetAlignGlobalDelta(const TGeoMatrix * matrixGlobalDelta); |
4e093f35 | 57 | void SetAlignSectors(const TObjArray *arraySector); |
58 | TGeoMatrix* GetAlignGlobal() const {return fMatrixGlobal;} | |
76c58ee2 | 59 | TGeoMatrix* GetAlignGlobalDelta() const {return fMatrixGlobalDelta;} |
4e093f35 | 60 | TObjArray * GetAlignSectors() const {return fArraySector;} |
61 | // | |
62 | static AliTPCCalibGlobalMisalignment* CreateOCDBAlign(); | |
63 | static AliTPCCalibGlobalMisalignment* CreateMeanAlign(const AliTPCCalibGlobalMisalignment *alignIn); | |
64 | static void DumpAlignment( AliTPCCalibGlobalMisalignment* align, TTreeSRedirector *pcstream, const char *name); | |
65 | // | |
b1f0a2a5 | 66 | protected: |
67 | virtual void GetCorrection(const Float_t x[],const Short_t roc,Float_t dx[]); | |
68 | ||
69 | private: | |
70 | Float_t fXShift; // Shift in global X [cm] | |
71 | Float_t fYShift; // Shift in global Y [cm] | |
72 | Float_t fZShift; // Shift in global Z [cm] | |
73 | ||
74 | Float_t fRotPhiA; // simple rotation of A side read-out plane around the Z axis [rad] | |
75 | Float_t fRotPhiC; // simple rotation of C side read-out plane around the Z axis [rad] | |
76 | Float_t fdRPhiOffsetA; // add a constant offset of dRPhi (or local Y) in [cm]: purely for calibration purposes! | |
77 | Float_t fdRPhiOffsetC; // add a constant offset of dRPhi (or local Y) in [cm]: purely for calibration purposes! | |
be260e87 | 78 | // |
79 | // Quadrant alignment | |
80 | // | |
32b5322b | 81 | TVectorD *fQuadrantQ0; //OROC medium pads -delta ly+ - ly - shift (cm) |
82 | TVectorD *fQuadrantRQ0; //OROC medium pads -delta ly+ - ly - rotation (rad) | |
83 | TVectorD *fQuadrantQ1; //OROC long pads -delta ly+ - ly - shift | |
84 | TVectorD *fQuadrantQ2; //OROC long pads -shift | |
85 | TVectorD *fQuadrantRQ1; //OROC long pads -delta ly+ - ly - rotation | |
86 | TVectorD *fQuadrantRQ2; //OROC long pads -rotation | |
87 | // | |
be260e87 | 88 | // |
89 | // Global alignment - use native ROOT representation | |
90 | // | |
91 | TGeoMatrix * fMatrixGlobal; // global Alignment common | |
76c58ee2 | 92 | TGeoMatrix * fMatrixGlobalDelta; // global Alignment common A side-C side |
4e093f35 | 93 | TObjArray * fArraySector; // local Alignmnet Sector |
be260e87 | 94 | // |
be260e87 | 95 | AliTPCCalibGlobalMisalignment& operator=(const AliTPCCalibGlobalMisalignment&); |
96 | AliTPCCalibGlobalMisalignment(const AliTPCCalibGlobalMisalignment&); | |
76c58ee2 | 97 | ClassDef(AliTPCCalibGlobalMisalignment,3); |
b1f0a2a5 | 98 | }; |
99 | ||
100 | #endif |