]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALITOFALIGNMENT_H | |
2 | #define ALITOFALIGNMENT_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 | // class for TOF Alignment:: // | |
9 | ////////////////////////////////////////////////////////////////// | |
10 | ||
11 | #include "TTask.h" | |
12 | #include "TGeoManager.h" | |
13 | #include "TGeoVolume.h" | |
14 | #include "TGeoBBox.h" | |
15 | #include "TGeoPhysicalNode.h" | |
16 | #include "TGeoNode.h" | |
17 | ||
18 | class TObjArray; | |
19 | ||
20 | class AliTOFAlignment :public TTask{ | |
21 | ||
22 | enum {kMaxAlignObj=2000}; //maximal number of the TOF Alignable Objects | |
23 | ||
24 | public: | |
25 | ||
26 | AliTOFAlignment(); | |
27 | AliTOFAlignment(const AliTOFAlignment &t); //Copy Ctor | |
28 | AliTOFAlignment& operator=(const AliTOFAlignment &source); // Assignment Operator | |
29 | virtual ~AliTOFAlignment(); | |
30 | virtual void WriteParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun); | |
31 | virtual void ReadParFromCDB(Char_t *sel, Int_t nrun); | |
32 | virtual void WriteSimParOnCDB(Char_t *sel, Int_t minrun, Int_t maxrun); | |
33 | virtual void ReadSimParFromCDB(Char_t *sel, Int_t nrun); | |
34 | virtual void Smear(Float_t *tr=0, Float_t *rot=0); // create a set of AlignObj for TOF | |
35 | virtual void Align(Float_t *tr=0, Float_t *rot=0); // create a set of AlignObj for TOF | |
36 | virtual void WriteOnCDBforDC(); | |
37 | virtual void ReadFromCDBforDC(); | |
38 | virtual void BuildGeomForSurvey(); //Generate ideal volumes for Survey | |
39 | virtual void AlignFromSurvey(); //Prototype to get Align Obj from Survey | |
40 | virtual void InsertMisAlignment( Float_t *mis); //To test align. from Survey | |
41 | TObjArray * GetTOFAlignArray() const {return fTOFAlignObjArray;} | |
42 | ||
43 | private: | |
44 | ||
45 | ||
46 | // This is the extended box (the TOF master sensitive volume+services) | |
47 | static const Double_t fgkXsizeTOF; // x size of the TOF ext. volume, cm | |
48 | static const Double_t fgkYsizeTOF; // y size of the TOF ext. volume, cm | |
49 | static const Double_t fgkZsizeTOF; // x size of the TOF ext. volume, cm | |
50 | static const Double_t fgkRorigTOF; // Radius of the TOF ext. volume, cm | |
51 | ||
52 | // Four fiducial marks on SM, expressed in local coordinates (origin=center of TOF SM) | |
53 | // They are positioned at x=+/- 38 cm, y=11.2, z=+/- 456.94 cm | |
54 | ||
55 | static const Double_t fgkXFM; //x FM pos, cm | |
56 | static const Double_t fgkYFM; //y FM pos, cm | |
57 | static const Double_t fgkZFM; //z FM pos, cm | |
58 | ||
59 | // This is the z size of the TOF master sensitive volume (it is shorter) | |
60 | static const Double_t fgkZsizeTOFSens; //cm | |
61 | ||
62 | Int_t fNTOFAlignObj; // Number of Alignable Objects | |
63 | TGeoManager *fTOFmgr; //pointer to TGeoManager | |
64 | TObjArray *fTOFAlignObjArray; // Pointer to the TOF alignable objects | |
65 | TGeoHMatrix* fTOFMatrixId[18]; // Ideal Matrices of TOF Volumes in the GRS | |
66 | Float_t fTOFSurveyFM[18][4][3]; // Temporary container for Survey data xyz (4/TOF SuperModule) | |
67 | ClassDef(AliTOFAlignment,2) // TOF Alignment | |
68 | }; | |
69 | ||
70 | #endif |