1 #ifndef ALIITSALIGNMILLEMODULE_H
\r
2 #define ALIITSALIGNMILLEMODULE_H
\r
3 /* Copyright(c) 2007-2009 , ALICE Experiment at CERN, All rights reserved. *
\r
4 * See cxx source for full Copyright notice */
\r
7 /// \class AliITSAlignMilleModule
\r
8 /// \brief Class for alignment of ITS
\r
10 // Authors: Marcello Lunardon
\r
13 //#include <TString.h>
\r
14 //#include <TObject.h>
\r
15 #include <TNamed.h>
\r
17 #define ITSMILLE_NSENSVOL 2198
\r
19 class AliAlignObjParams;
\r
22 class AliITSAlignMilleModule : public TNamed
\r
25 AliITSAlignMilleModule();
\r
26 AliITSAlignMilleModule(UShort_t volid); // basic single volume constructor
\r
27 AliITSAlignMilleModule(Int_t index, UShort_t volid, char* symname, TGeoHMatrix *m, Int_t nsv=0, UShort_t *volidsv=NULL); // general constructor
\r
29 AliITSAlignMilleModule(const AliITSAlignMilleModule& rhs); // copy constructor
\r
30 AliITSAlignMilleModule& operator=(const AliITSAlignMilleModule& rhs);
\r
32 virtual ~AliITSAlignMilleModule();
\r
34 // geometry methods
\r
35 Int_t GetIndex() const {return fIndex;}
\r
36 UShort_t GetVolumeID() const {return fVolumeID;}
\r
37 Int_t GetNSensitiveVolumes() const {return fNSensVol;}
\r
38 TGeoHMatrix *GetMatrix() const {return fMatrix;}
\r
39 UShort_t *GetSensitiveVolumeVolumeID() {return fSensVolVolumeID;}
\r
41 Int_t Set(Int_t index, UShort_t volid, char* symname, TGeoHMatrix *m, Int_t nsv=0, UShort_t *volidsv=NULL); // initialize a super module
\r
44 static Int_t GetIndexFromVolumeID(UShort_t volid);
\r
45 static UShort_t GetVolumeIDFromSymname(const Char_t *symname);
\r
46 static UShort_t GetVolumeIDFromIndex(Int_t index);
\r
49 Bool_t IsIn(UShort_t volid) const;
\r
50 TGeoHMatrix *GetSensitiveVolumeMatrix(UShort_t voluid);
\r
51 TGeoHMatrix *GetSensitiveVolumeOrigGlobalMatrix(UShort_t voluid);
\r
52 TGeoHMatrix *GetSensitiveVolumeModifiedMatrix(UShort_t voluid, Double_t *deltalocal);
\r
53 AliAlignObjParams *GetSensitiveVolumeMisalignment(UShort_t voluid, AliAlignObjParams *a);
\r
54 AliAlignObjParams *GetSensitiveVolumeMisalignment(UShort_t voluid, Double_t *deltalocal);
\r
55 void Print(Option_t*) const;
\r
58 Int_t SensVolMatrix(UShort_t volid, TGeoHMatrix *m);
\r
59 Int_t SensVolOrigGlobalMatrix(UShort_t volid, TGeoHMatrix *m);
\r
60 void AddSensitiveVolume(UShort_t volid);
\r
63 Int_t fNSensVol; ///
\r
65 UShort_t fVolumeID; ///
\r
66 // il symname e' il nome del TNamed...
\r
67 Int_t fSensVolIndex[ITSMILLE_NSENSVOL]; ///
\r
68 UShort_t fSensVolVolumeID[ITSMILLE_NSENSVOL]; ///
\r
69 TGeoHMatrix *fMatrix; /// ideal TGeoHMatrix of the supermodule
\r
70 TGeoHMatrix *fSensVolMatrix; ///
\r
71 TGeoHMatrix *fSensVolModifMatrix; ///
\r
72 AliAlignObjParams *fTempAlignObj; ///
\r
74 ClassDef(AliITSAlignMilleModule, 0)
\r