]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/AliITSAlignMilleModule.h
Bug fix - the dep energy should be divided by the MIP energy to form the counts
[u/mrichter/AliRoot.git] / ITS / AliITSAlignMilleModule.h
CommitLineData
d3603b4d 1#ifndef ALIITSALIGNMILLEMODULE_H
2#define ALIITSALIGNMILLEMODULE_H
3/* Copyright(c) 2007-2009 , ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/// \ingroup rec
7/// \class AliITSAlignMilleModule
8/// \brief Class for alignment of ITS
9//
10// Authors: Marcello Lunardon
11
12/* $Id$ */
13//#include <TString.h>
14//#include <TObject.h>
15#include <TNamed.h>
16
17#define ITSMILLE_NSENSVOL 2198
18
19class AliAlignObjParams;
20class TGeoHMatrix;
21
22class AliITSAlignMilleModule : public TNamed
23{
24public:
25 AliITSAlignMilleModule();
26 AliITSAlignMilleModule(UShort_t volid); // basic single volume constructor
27 AliITSAlignMilleModule(Int_t index, UShort_t volid, char* symname, TGeoHMatrix *m, Int_t nsv=0, UShort_t *volidsv=NULL); // general constructor
28
29 AliITSAlignMilleModule(const AliITSAlignMilleModule& rhs); // copy constructor
30 AliITSAlignMilleModule& operator=(const AliITSAlignMilleModule& rhs);
31
32 virtual ~AliITSAlignMilleModule();
33
34 // geometry methods
35 Int_t GetIndex() const {return fIndex;}
36 UShort_t GetVolumeID() const {return fVolumeID;}
37 Int_t GetNSensitiveVolumes() const {return fNSensVol;}
38 TGeoHMatrix *GetMatrix() const {return fMatrix;}
39 UShort_t *GetSensitiveVolumeVolumeID() {return fSensVolVolumeID;}
40
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
42
43 // util
44 static Int_t GetIndexFromVolumeID(UShort_t volid);
45 static UShort_t GetVolumeIDFromSymname(const Char_t *symname);
46 static UShort_t GetVolumeIDFromIndex(Int_t index);
47
48 // methods
49 Bool_t IsIn(UShort_t volid) const;
50 TGeoHMatrix *GetSensitiveVolumeMatrix(UShort_t voluid);
51 TGeoHMatrix *GetSensitiveVolumeOrigGlobalMatrix(UShort_t voluid);
52 TGeoHMatrix *GetSensitiveVolumeModifiedMatrix(UShort_t voluid, Double_t *deltalocal);
53 AliAlignObjParams *GetSensitiveVolumeMisalignment(UShort_t voluid, AliAlignObjParams *a);
54 AliAlignObjParams *GetSensitiveVolumeMisalignment(UShort_t voluid, Double_t *deltalocal);
55 void Print(Option_t*) const;
56
57protected:
58 Int_t SensVolMatrix(UShort_t volid, TGeoHMatrix *m);
59 Int_t SensVolOrigGlobalMatrix(UShort_t volid, TGeoHMatrix *m);
60 void AddSensitiveVolume(UShort_t volid);
61
62private:
63 Int_t fNSensVol; ///
64 Int_t fIndex; ///
65 UShort_t fVolumeID; ///
66 // il symname e' il nome del TNamed...
67 Int_t fSensVolIndex[ITSMILLE_NSENSVOL]; ///
68 UShort_t fSensVolVolumeID[ITSMILLE_NSENSVOL]; ///
69 TGeoHMatrix *fMatrix; /// ideal TGeoHMatrix of the supermodule
70 TGeoHMatrix *fSensVolMatrix; ///
71 TGeoHMatrix *fSensVolModifMatrix; ///
72 AliAlignObjParams *fTempAlignObj; ///
73
74 ClassDef(AliITSAlignMilleModule, 0)
75
76};
77
78#endif