]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSSurveyToAlign.h
Merge branch 'master' into dev
[u/mrichter/AliRoot.git] / ITS / AliITSSurveyToAlign.h
1 #ifndef ALIITSSURVEYTOALIGN_H
2 #define ALIITSSURVEYTOALIGN_H
3 /* Copyright(c) 2008-2010, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //////////////////////////////////////////////////////////////////////////
9 //   Class to convert survey tables in alignment objects
10 //   for SSD and SDD
11 //////////////////////////////////////////////////////////////////////////
12
13 #include "AliSurveyToAlignObjs.h"
14 #include "TString.h"
15
16 class TClonesArray;
17 class TGeoMatrix;
18 class TSystem;
19 class TFile;
20 class AliSurveyObj;
21 class AliAlignObjParams;
22 class AliCDBStorage;
23 class AliCDBEntry;
24
25
26 class AliITSSurveyToAlign : public AliSurveyToAlignObjs
27 {
28
29 public:
30     AliITSSurveyToAlign(Int_t run = 0, Int_t repModSDD = 845069, Int_t repModVerSDD = 1, 
31                         Int_t repLadSDD = 999999, Int_t repLadVerSDD = 1, Int_t repModSSD = 887877,
32             Int_t repModVerSSD =3, Int_t repLaddSSD = 980521, Int_t repLaddVerSSD = 2);
33     AliITSSurveyToAlign(const AliITSSurveyToAlign& align); // copy constructor
34     AliITSSurveyToAlign &operator = (const AliITSSurveyToAlign& align); //assignment operator
35     virtual ~AliITSSurveyToAlign();
36
37     void Run();
38     Bool_t CreateAlignObjs();
39     void CreateAlignObjDummySPD();
40
41     void CreateAlignObjDummySDDModules();
42     void CreateAlignObjDummySDDLadders();
43     void CreateAlignObjSDDModules();
44     void CreateAlignObjSDDLadders();
45     Bool_t ApplyAlignObjSDD();
46
47     void CreateAlignObjSSDModules();
48     void CreateAlignObjDummySSDModules();
49     void CreateAlignObjSSDLadders();
50     Bool_t ApplyAlignObjSSDLadders();
51
52 private:
53     Int_t   fRun;                  // the run number for the OCDB
54     Int_t   fSDDModuleRepNumber;   // SDD Module survey report number (EDMS)
55     Int_t   fSDDModuleRepVersion;  // SDD Module survey report version (det DB)
56     Int_t   fSDDLadderRepNumber;   // SDD Ladder survey report number (EDMS)
57     Int_t   fSDDLadderRepVersion;  // SDD Ladder survey report version (det DB)
58     Int_t   fSSDModuleRepNumber;   // SSD Module survey report number (EDMS)
59     Int_t   fSSDModuleRepVersion;  // SSD Module survey report version (det DB)
60     Int_t   fSSDLadderRepNumber;   // SSD Ladder survey report number (EDMS)
61     Int_t   fSSDLadderRepVersion;  // SSD Ladder survey report version (det DB)
62
63     Double_t fSDDmeP[6][6];    //measured positions of ref. marks for current module 
64     Double_t fSDDidP[6][3];    //ideal positions of ref. marks for current module
65     Bool_t     fSDDisMe[6];    //flag indicating if the positions of ref. mark is measured. 
66
67     static const Double_t fgkLocR[6][3]; //id. pos. of ref. marks in RS of right oriented modules
68     static const Double_t fgkLocL[6][3]; //id. pos. of ref. marks in RS of lefr oriented modules
69
70     void GetIdPosSDD(Int_t uid, Int_t layer, Int_t module, Int_t iPoint);
71     void ReadPointNameSDD(const char str[], Int_t &iLayer, Int_t &iLader, Int_t &iModul, Int_t &iPoint) const;
72     void ConvertToRSofModulesAndRotSDD(Int_t Layer, Int_t Module);
73     void CalcShiftSDD(Double_t &x0,Double_t &y0,Double_t &z0) const;
74     void CalcShiftRotSDD(Double_t &tet,Double_t &psi,Double_t &phi,Double_t &x0,Double_t &y0,Double_t &z0);
75
76     
77     // these are tmp vars. 
78     //to be removed later
79     Int_t    fuidSDDm[260];      //uid of SDD module
80     TString  fsymnameSDDm[260];  //symname of SDD module
81     Double_t fxSDDm[260];        //x-shift of SDD module
82     Double_t fySDDm[260];        //y-shift of SDD module
83     Double_t fzSDDm[260];        //z-shift of SDD module
84     Double_t fpsiSDDm[260];      //psi of SDD module
85     Double_t ftetSDDm[260];      //tet of SDD module
86     Double_t fphiSDDm[260];      //phi of SDD module
87     Int_t    fuidSDDl[36];       //uid of SDD ladder
88     TString  fsymnameSDDl[36];   //symname of SDD ladder
89     Double_t fxSDDl[36];         //x-shift of SDD ladder
90     Double_t fySDDl[36];         //y-shift of SDD ladder
91     Double_t fzSDDl[36];         //z-shift of SDD ladder
92     Double_t fpsiSDDl[36];       //psi of SDD ladder
93     Double_t ftetSDDl[36];       //phi of SDD ladder
94     Double_t fphiSDDl[36];       //phi of SDD ladder
95     
96     ClassDef(AliITSSurveyToAlign,0);
97 };
98 #endif
99