2 // Store the data related to each Super Module
4 // Author: Magali Estienne (magali.estienne@cern.ch)
8 #ifndef ALIEVEEMCALSMODULEDATA_H
9 #define ALIEVEEMCALSMODULEDATA_H
11 #include "AliEveEMCALData.h"
29 class TVirtualViewer3D;
31 class AliEMCALGeometry;
36 class AliEMCALGeometry;
39 class AliEveEMCALSModuleData : public TObject
42 AliEveEMCALSModuleData(Int_t chamber,AliEMCALGeometry* geom,TGeoNode* node, TGeoHMatrix* m);
43 virtual ~AliEveEMCALSModuleData();
47 void RegisterDigit(Int_t AbsId, Int_t isupMod, Double_t iamp, Double_t ix, Double_t iy, Double_t iz);
48 void RegisterCluster(Int_t isupMod, Double_t iamp, Double_t ix, Double_t iy, Double_t iz);
49 void RegisterHit(Int_t AbsId, Int_t isupMod, Double_t iamp, Double_t ix, Double_t iy, Double_t iz);
50 Int_t GetNDigits() const { return fNDigits; };
51 Int_t GetNClusters() const { return fNClusters; };
52 Int_t GetNHits() const { return fNHits; };
53 Int_t GetSmId() const { return fSmId; };
54 Int_t GetNsm() const {return fNsm;};
55 Int_t GetNsmf() const {return fNsmfull;};
56 Int_t GetNsmh() const {return fNsmhalf;};
57 std::vector< std::vector<Double_t> > GetDigitBuffer() const { return fDigitArray; };
58 std::vector< std::vector<Double_t> > GetClusterBuffer() const { return fClusterArray; };
59 std::vector< std::vector<Float_t> > GetHitBuffer() const { return fHitArray; };
61 void GetSModuleBigBox(Float_t& bbox0, Float_t& bbox1, Float_t& bbox2)
62 const { bbox0 = fgSModuleBigBox0; bbox1 = fgSModuleBigBox1; bbox2 = fgSModuleBigBox2;};
63 void GetSModuleSmallBox(Float_t& bbox0, Float_t& bbox1, Float_t& bbox2)
64 const { bbox0 = fgSModuleSmallBox0; bbox1 = fgSModuleSmallBox1; bbox2 = fgSModuleSmallBox2;};
65 void GetSModuleCenter(Float_t& bboxCenter0, Float_t& bboxCenter1, Float_t& bboxCenter2)
66 const { bboxCenter0 = fgSModuleCenter0; bboxCenter1 = fgSModuleCenter1; bboxCenter2 = fgSModuleCenter2;};
67 Float_t GetPhiTileSize() const {return fPhiTileSize;};
68 Float_t GetEtaTileSize() const {return fEtaTileSize;};
69 TGeoMatrix* GetSModuleMatrix() const {return fMatrix;};
72 AliEMCALGeometry* fGeom; // Data member to set/call EMCAL geometry
73 TGeoNode* fNode; // Node for bbox definition
74 Int_t fSmId; // number of the chamber, 0 to 13
75 Int_t fNsm; // Total number of super modules
76 Int_t fNsmfull; // Number of full super modules
77 Int_t fNsmhalf; // Number of half super modules
78 Int_t fNDigits; // number of found digits
79 Int_t fNClusters; // number of found rec points
80 Int_t fNHits; // number of simulation hits
82 Float_t fPhiTileSize; // Typical phi size of a QuadSet (digit)
83 Float_t fEtaTileSize; // Typical eta size of a QuadSet (digit)
85 std::vector< std::vector<Float_t> > fHitArray; //|| Hit coordinates, etc.
86 std::vector< std::vector<Double_t> > fDigitArray; //|| Digit coordinates, etc.
87 std::vector< std::vector<Double_t> > fClusterArray; //|| Rec point coordinates, etc.
89 static Float_t fgSModuleBigBox0; // SM envelope box
90 static Float_t fgSModuleBigBox1; // SM envelope box
91 static Float_t fgSModuleBigBox2; // SM envelope box
92 static Float_t fgSModuleSmallBox0; // SM envelope box
93 static Float_t fgSModuleSmallBox1; // SM envelope box
94 static Float_t fgSModuleSmallBox2; // SM envelope box
95 static Float_t fgSModuleCenter0; // SM envelope box
96 static Float_t fgSModuleCenter1; // SM envelope box
97 static Float_t fgSModuleCenter2; // SM envelope box
99 TGeoMatrix* fMatrix; // Matrix for local to global transformation
100 TGeoHMatrix* fHMatrix; // Matrix for local to global transformation
103 AliEveEMCALSModuleData(const AliEveEMCALSModuleData& esmdata);
104 AliEveEMCALSModuleData& operator=(const AliEveEMCALSModuleData&); // Not implemented
106 ClassDef(AliEveEMCALSModuleData, 0); // class with data for one chamber