5a5a1232 |
1 | // $Header$ |
2 | |
3 | #ifndef ALIEVE_ITSDigitsInfo_H |
4 | #define ALIEVE_ITSDigitsInfo_H |
5 | |
6 | #include <Reve/VSD.h> |
7 | |
8 | #include <map> |
9 | |
10 | #include <TObject.h> |
11 | #include <TClonesArray.h> |
12 | #include <TTree.h> |
13 | |
14 | #include <AliITS.h> |
15 | #include <AliITSgeom.h> |
16 | #include <AliITSsegmentationSPD.h> |
17 | #include <AliITSsegmentationSDD.h> |
18 | #include <AliITSsegmentationSSD.h> |
19 | |
20 | static const int NSCALE = 5; |
21 | |
22 | namespace Alieve { |
23 | |
24 | class ITSDigitsInfo : public TObject |
25 | { |
26 | private: |
27 | void Init(); |
28 | Float_t fSPDZCoord[192]; |
29 | |
30 | protected: |
31 | Int_t fRefCount; |
32 | |
33 | map<Int_t, TClonesArray*> fSPDmap; |
34 | map<Int_t, TClonesArray*> fSDDmap; |
35 | map<Int_t, TClonesArray*> fSSDmap; |
36 | |
37 | void SetITSSegmentation(); |
38 | |
39 | public: |
40 | TTree* fTree; |
41 | AliITSgeom* fGeom; |
42 | AliITSsegmentationSPD* fSegSPD; |
43 | AliITSsegmentationSDD* fSegSDD; |
44 | AliITSsegmentationSSD* fSegSSD; |
45 | |
46 | Int_t fSPDScaleX[NSCALE]; |
47 | Int_t fSPDScaleZ[NSCALE]; |
48 | Int_t fSDDScaleX[NSCALE]; |
49 | Int_t fSDDScaleZ[NSCALE]; |
50 | Int_t fSSDScale[NSCALE]; |
51 | |
52 | ITSDigitsInfo(const Text_t* /*n*/="ITSDigitsInfo", const Text_t* /*t*/=0) : |
53 | TObject() |
54 | { Init(); } |
55 | |
56 | virtual ~ITSDigitsInfo(); |
57 | |
58 | void SetTree(TTree* tree); |
59 | |
60 | TClonesArray* GetDigits(Int_t moduleID, Int_t detector); |
61 | |
62 | void GetSPDLocalZ(Int_t j, Float_t& z); |
63 | |
64 | |
65 | void IncRefCount() { ++fRefCount; } |
66 | void DecRefCount() { --fRefCount; if(fRefCount <= 0) delete this; } |
67 | |
68 | virtual void Print(Option_t* opt="") const; |
69 | |
70 | ClassDef(ITSDigitsInfo, 1); |
71 | }; // endclass ITSDigitsInfo |
72 | |
73 | } |
74 | #endif |