]>
Commit | Line | Data |
---|---|---|
d810d0de | 1 | // $Id$ |
2 | // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |
3 | ||
4 | /************************************************************************** | |
5 | * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. * | |
6 | * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for * | |
51346b82 | 7 | * full copyright notice. * |
d810d0de | 8 | **************************************************************************/ |
5a5a1232 | 9 | |
10 | #ifndef ALIEVE_ITSDigitsInfo_H | |
11 | #define ALIEVE_ITSDigitsInfo_H | |
12 | ||
84aff7a4 | 13 | #include <TEveUtil.h> |
5a5a1232 | 14 | |
15 | #include <map> | |
3d598e88 | 16 | #include <vector> |
5a5a1232 | 17 | |
18 | #include <TObject.h> | |
19 | #include <TClonesArray.h> | |
20 | #include <TTree.h> | |
21 | ||
22 | #include <AliITS.h> | |
23 | #include <AliITSgeom.h> | |
24 | #include <AliITSsegmentationSPD.h> | |
25 | #include <AliITSsegmentationSDD.h> | |
26 | #include <AliITSsegmentationSSD.h> | |
27 | ||
b3bc5327 | 28 | class AliRawReader; |
5a5a1232 | 29 | |
57ffa5fb | 30 | /******************************************************************************/ |
d810d0de | 31 | // AliEveITSModuleSelection |
57ffa5fb | 32 | /******************************************************************************/ |
d810d0de | 33 | class AliEveITSModuleSelection |
3d598e88 | 34 | { |
54f770b4 | 35 | protected: |
36 | Int_t fType; // Type of modules: 0 - SPD, 1 - SDD, 2 - SSD. | |
37 | Int_t fLayer; // Layer, 0 - inner SPD, 5 - outer SSD. | |
38 | Float_t fMinPhi; // Min phi. | |
39 | Float_t fMaxPhi; // Max phi. | |
40 | Float_t fMinTheta; // Min theta. | |
41 | Float_t fMaxTheta; // Max theta. | |
51346b82 | 42 | |
54f770b4 | 43 | public: |
d810d0de | 44 | AliEveITSModuleSelection(); |
45 | virtual ~AliEveITSModuleSelection() {} | |
3d598e88 | 46 | |
54f770b4 | 47 | Int_t GetType() const { return fType; } |
48 | void SetType(Int_t x) { fType = x; } | |
49 | Int_t GetLayer() const { return fLayer; } | |
50 | void SetLayer(Int_t x) { fLayer = x; } | |
51 | Float_t GetMinPhi() const { return fMinPhi; } | |
52 | void SetMinPhi(Float_t x) { fMinPhi = x; } | |
53 | Float_t GetMaxPhi() const { return fMaxPhi; } | |
54 | void SetMaxPhi(Float_t x) { fMaxPhi = x; } | |
55 | Float_t GetMinTheta() const { return fMinTheta; } | |
56 | void SetMinTheta(Float_t x) { fMinTheta = x; } | |
57 | Float_t GetMaxTheta() const { return fMaxTheta; } | |
58 | void SetMaxTheta(Float_t x) { fMaxTheta = x; } | |
59 | ||
60 | void SetPhiRange (Float_t x, Float_t y) { fMinPhi = x; fMaxPhi = y; } | |
61 | void SetThetaRange(Float_t x, Float_t y) { fMinTheta = x; fMaxTheta = y; } | |
62 | ||
63 | ClassDef(AliEveITSModuleSelection, 1); // Helper for selecting a range of ITS modules by type, layer, phi and theta. | |
3d598e88 | 64 | }; |
65 | ||
57ffa5fb | 66 | /******************************************************************************/ |
d810d0de | 67 | // AliEveITSDigitsInfo |
57ffa5fb | 68 | /******************************************************************************/ |
54f770b4 | 69 | |
d810d0de | 70 | class AliEveITSDigitsInfo : public TObject, public TEveRefCnt |
5a5a1232 | 71 | { |
d810d0de | 72 | AliEveITSDigitsInfo(const AliEveITSDigitsInfo&); // Not implemented |
73 | AliEveITSDigitsInfo& operator=(const AliEveITSDigitsInfo&); // Not implemented | |
265ecb21 | 74 | |
5a5a1232 | 75 | private: |
54f770b4 | 76 | Float_t fSPDZCoord[192]; // Precalculated z-coordinates for positions of digits. |
5a5a1232 | 77 | |
b3bc5327 | 78 | void InitInternals(); |
79 | ||
5a5a1232 | 80 | protected: |
fd31e9de | 81 | std::map<Int_t, TClonesArray*> fSPDmap; // Map from module-id to SPD data. |
82 | std::map<Int_t, TClonesArray*> fSDDmap; // Map from module-id to SDD data. | |
83 | std::map<Int_t, TClonesArray*> fSSDmap; // Map from module-id to SSD data. | |
5a5a1232 | 84 | |
85 | void SetITSSegmentation(); | |
86 | ||
87 | public: | |
54f770b4 | 88 | TTree* fTree; // Tree from which the digits are read. |
89 | ||
90 | AliITSgeom* fGeom; // Provides mapping from module-id to transforamtion-matrix. | |
91 | AliITSsegmentationSPD* fSegSPD; // Segmentation of SPD. | |
92 | AliITSsegmentationSDD* fSegSDD; // Segmentation of SDD. | |
93 | AliITSsegmentationSSD* fSegSSD; // Segmentation of SSD. | |
94 | ||
95 | Int_t fSPDMinVal; // Default lower limit for display of SPD digits. | |
96 | Int_t fSSDMinVal; // Default lower limit for display of SSD digits. | |
97 | Int_t fSDDMinVal; // Default lower limit for display of SDD digits. | |
98 | Int_t fSPDMaxVal; // Default high limit for display of SPD digits. | |
99 | Int_t fSSDMaxVal; // Default high limit for display of SSD digits. | |
100 | Int_t fSDDMaxVal; // Default high limit for display of SDD digits. | |
101 | ||
102 | Int_t fSPDHighLim; // Maximum value of SPD digits. | |
103 | Int_t fSDDHighLim; // Maximum value of SDD digits. | |
104 | Int_t fSSDHighLim; // Maximum value of SSD digits. | |
105 | ||
106 | Int_t fSPDScaleX[5]; // SPD cell-sizes along X for display of scaled-digits. | |
107 | Int_t fSPDScaleZ[5]; // SPD cell-sizes along Z for display of scaled-digits. | |
108 | Int_t fSDDScaleX[5]; // SDD cell-sizes along X for display of scaled-digits. | |
109 | Int_t fSDDScaleZ[5]; // SDD cell-sizes along Z for display of scaled-digits. | |
110 | Int_t fSSDScale [5]; // SSD cell-sizes for display of scaled-digits. | |
d4b6a94c | 111 | |
d810d0de | 112 | AliEveITSDigitsInfo(); |
113 | virtual ~AliEveITSDigitsInfo(); | |
5a5a1232 | 114 | |
115 | void SetTree(TTree* tree); | |
540e156e | 116 | void ReadRaw(AliRawReader* raw, Int_t mode); |
b3bc5327 | 117 | |
5a5a1232 | 118 | TClonesArray* GetDigits(Int_t moduleID, Int_t detector); |
119 | ||
120 | void GetSPDLocalZ(Int_t j, Float_t& z); | |
121 | ||
d810d0de | 122 | void GetModuleIDs(AliEveITSModuleSelection* sel, std::vector<UInt_t>& ids); |
3d598e88 | 123 | |
5a5a1232 | 124 | virtual void Print(Option_t* opt="") const; |
125 | ||
54f770b4 | 126 | ClassDef(AliEveITSDigitsInfo, 1); // Stores ITS geometry information and event-data in format suitable for visualization. |
d810d0de | 127 | }; // endclass AliEveITSDigitsInfo |
5a5a1232 | 128 | |
54f770b4 | 129 | inline void AliEveITSDigitsInfo::GetSPDLocalZ(Int_t j, Float_t& z) |
130 | { | |
131 | z = fSPDZCoord[j]; | |
132 | } | |
133 | ||
5a5a1232 | 134 | #endif |