]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSAlignMilleModule.h
Switch on QA, as it seems it is not run by default anymore
[u/mrichter/AliRoot.git] / ITS / AliITSAlignMilleModule.h
CommitLineData
0856765c 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
5 \r
6/// \ingroup rec \r
7/// \class AliITSAlignMilleModule \r
8/// \brief Class for alignment of ITS \r
9// \r
10// Authors: Marcello Lunardon \r
11\r
12/* $Id$ */ \r
380060d0 13//#include <TString.h> \r
14//#include <TObject.h> \r
0856765c 15#include <TNamed.h> \r
16\r
17#define ITSMILLE_NSENSVOL 2198\r
18\r
19class AliAlignObjParams; \r
20class TGeoHMatrix; \r
21\r
22class AliITSAlignMilleModule : public TNamed \r
23{ \r
24public: \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
28\r
29 AliITSAlignMilleModule(const AliITSAlignMilleModule& rhs); // copy constructor\r
30 AliITSAlignMilleModule& operator=(const AliITSAlignMilleModule& rhs); \r
31 \r
32 virtual ~AliITSAlignMilleModule(); \r
33 \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
40\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
42 \r
43 // util\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
47\r
48 // methods\r
380060d0 49 Bool_t IsIn(UShort_t volid) const;\r
0856765c 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
56\r
57protected:\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
61\r
62private:\r
63 Int_t fNSensVol; ///\r
64 Int_t fIndex; ///\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
73 \r
74 ClassDef(AliITSAlignMilleModule, 0)\r
75\r
76}; \r
77\r
78#endif \r