]>
Commit | Line | Data |
---|---|---|
c3e34498 | 1 | //************************************************************************* |
2 | // EMCAL event display | |
3 | // Store the data related to each Super Module | |
4 | // | |
5 | // Author: Magali Estienne (magali.estienne@cern.ch) | |
6 | // June 30 2008 | |
7 | //************************************************************************* | |
8 | ||
9 | #ifndef AliEveEMCALSModuleData_H | |
10 | #define AliEveEMCALSModuleData_H | |
11 | ||
12 | #include <vector> | |
13 | ||
14 | #include <TObject.h> | |
15 | #include <TClonesArray.h> | |
16 | #include <TGeoNode.h> | |
17 | #include <TGeoMatrix.h> | |
18 | #include <TEvePointSet.h> | |
19 | ||
20 | class AliEMCALGeometry; | |
21 | ||
22 | class AliEveEMCALSModuleData : public TObject | |
23 | { | |
24 | public: | |
25 | AliEveEMCALSModuleData(Int_t chamber,AliEMCALGeometry* geom,TGeoNode* node, TGeoHMatrix* m); | |
26 | virtual ~AliEveEMCALSModuleData(); | |
27 | ||
a312477b | 28 | void DropData(); |
29 | void Init(Int_t sm); | |
30 | void RegisterDigit(Int_t AbsId, Int_t isupMod, Double_t iamp, Double_t ix, Double_t iy, Double_t iz); | |
31 | void RegisterCluster(Int_t isupMod, Double_t iamp, Double_t ix, Double_t iy, Double_t iz); | |
32 | void RegisterHit(Int_t AbsId, Int_t isupMod, Double_t iamp, Double_t ix, Double_t iy, Double_t iz); | |
33 | Int_t GetNDigits() const { return fNDigits; }; | |
34 | Int_t GetNClusters() const { return fNClusters; }; | |
35 | Int_t GetNHits() const { return fNHits; }; | |
36 | Int_t GetSmId() const { return fSmId; }; | |
37 | Int_t GetNsm() const {return fNsm;}; | |
38 | Int_t GetNsmf() const {return fNsmfull;}; | |
39 | Int_t GetNsmh() const {return fNsmhalf;}; | |
97425cab | 40 | std::vector< std::vector<Double_t> > GetDigitBuffer() { return fDigitArray; }; |
41 | std::vector< std::vector<Double_t> > GetClusterBuffer() { return fClusterArray; }; | |
42 | std::vector< std::vector<Float_t> > GetHitBuffer() { return fHitArray; }; | |
c3e34498 | 43 | |
a312477b | 44 | void GetSModuleBigBox(Float_t& bbox0, Float_t& bbox1, Float_t& bbox2) |
c3e34498 | 45 | { bbox0 = fSModuleBigBox0; bbox1 = fSModuleBigBox1; bbox2 = fSModuleBigBox2;}; |
a312477b | 46 | void GetSModuleSmallBox(Float_t& bbox0, Float_t& bbox1, Float_t& bbox2) |
c3e34498 | 47 | { bbox0 = fSModuleSmallBox0; bbox1 = fSModuleSmallBox1; bbox2 = fSModuleSmallBox2;}; |
a312477b | 48 | void GetSModuleCenter(Float_t& bboxCenter0, Float_t& bboxCenter1, Float_t& bboxCenter2) |
c3e34498 | 49 | { bboxCenter0 = fSModuleCenter0; bboxCenter1 = fSModuleCenter1; bboxCenter2 = fSModuleCenter2;}; |
a312477b | 50 | Float_t GetPhiTileSize() {return fPhiTileSize;}; |
51 | Float_t GetEtaTileSize() {return fEtaTileSize;}; | |
c3e34498 | 52 | TGeoMatrix* GetSModuleMatrix() {return fMatrix;}; |
53 | ||
a312477b | 54 | protected: |
55 | AliEMCALGeometry* fGeom; // Data member to set/call EMCAL geometry | |
56 | TGeoNode* fNode; // Node for bbox definition | |
57 | Int_t fSmId; // number of the chamber, 0 to 13 | |
58 | Int_t fNsm; // Total number of super modules | |
59 | Int_t fNsmfull; // Number of full super modules | |
60 | Int_t fNsmhalf; // Number of half super modules | |
61 | Int_t fNDigits; // number of found digits | |
62 | Int_t fNClusters; // number of found rec points | |
63 | Int_t fNHits; // number of simulation hits | |
64 | ||
65 | Float_t fPhiTileSize; // Typical phi size of a QuadSet (digit) | |
66 | Float_t fEtaTileSize; // Typical eta size of a QuadSet (digit) | |
67 | ||
97425cab | 68 | std::vector< std::vector<Float_t> > fHitArray; //|| Hit coordinates, etc. |
69 | std::vector< std::vector<Double_t> > fDigitArray; //|| Digit coordinates, etc. | |
70 | std::vector< std::vector<Double_t> > fClusterArray; //|| Rec point coordinates, etc. | |
a312477b | 71 | |
72 | static Float_t fSModuleBigBox0; // SM envelope box | |
73 | static Float_t fSModuleBigBox1; // SM envelope box | |
74 | static Float_t fSModuleBigBox2; // SM envelope box | |
75 | static Float_t fSModuleSmallBox0; // SM envelope box | |
76 | static Float_t fSModuleSmallBox1; // SM envelope box | |
77 | static Float_t fSModuleSmallBox2; // SM envelope box | |
78 | static Float_t fSModuleCenter0; // SM envelope box | |
79 | static Float_t fSModuleCenter1; // SM envelope box | |
80 | static Float_t fSModuleCenter2; // SM envelope box | |
81 | ||
82 | TGeoMatrix* fMatrix; // Matrix for local to global transformation | |
83 | TGeoHMatrix* fHMatrix; // Matrix for local to global transformation | |
84 | ||
85 | private: | |
86 | AliEveEMCALSModuleData(const AliEveEMCALSModuleData&); | |
c3e34498 | 87 | AliEveEMCALSModuleData& operator=(const AliEveEMCALSModuleData&); // Not implemented |
a312477b | 88 | |
c3e34498 | 89 | ClassDef(AliEveEMCALSModuleData, 0); // class with data for one chamber |
90 | }; | |
91 | ||
92 | #endif |