]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSSurveyToAlign.h
adding arguments to AddTaskPhysicsSelection for MC and BG identification (Antonin)
[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;
55     Int_t   fSDDModuleRepVersion;
56     Int_t   fSDDLadderRepNumber;
57     Int_t   fSDDLadderRepVersion;
58     Int_t   fSSDModuleRepNumber;
59     Int_t   fSSDModuleRepVersion;
60     Int_t   fSSDLadderRepNumber;
61     Int_t   fSSDLadderRepVersion;
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];
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];      
80     TString  fsymnameSDDm[260];
81     Double_t fxSDDm[260];
82     Double_t fySDDm[260];
83     Double_t fzSDDm[260];
84     Double_t fpsiSDDm[260];
85     Double_t ftetSDDm[260];
86     Double_t fphiSDDm[260];
87     Int_t    fuidSDDl[36];
88     TString  fsymnameSDDl[36];
89     Double_t fxSDDl[36];
90     Double_t fySDDl[36];
91     Double_t fzSDDl[36];
92     Double_t fpsiSDDl[36];
93     Double_t ftetSDDl[36];
94     Double_t fphiSDDl[36];
95     
96     ClassDef(AliITSSurveyToAlign,0);
97 };
98 #endif
99