]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveDet/AliEveEMCALSModuleData.h
From Magali:
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveEMCALSModuleData.h
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
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;};
40   vector< vector<Double_t> > GetDigitBuffer()   { return fDigitArray;   };  
41   vector< vector<Double_t> > GetClusterBuffer() { return fClusterArray; };  
42   vector< vector<Float_t> > GetHitBuffer()     { return fHitArray;     };  
43
44   void        GetSModuleBigBox(Float_t& bbox0, Float_t& bbox1, Float_t& bbox2) 
45   { bbox0 = fSModuleBigBox0; bbox1 = fSModuleBigBox1; bbox2 = fSModuleBigBox2;};
46   void        GetSModuleSmallBox(Float_t& bbox0, Float_t& bbox1, Float_t& bbox2) 
47   { bbox0 = fSModuleSmallBox0; bbox1 = fSModuleSmallBox1; bbox2 = fSModuleSmallBox2;};
48   void        GetSModuleCenter(Float_t& bboxCenter0, Float_t& bboxCenter1, Float_t& bboxCenter2) 
49   { bboxCenter0 = fSModuleCenter0; bboxCenter1 = fSModuleCenter1; bboxCenter2 = fSModuleCenter2;};
50   Float_t     GetPhiTileSize()   {return fPhiTileSize;};
51   Float_t     GetEtaTileSize()   {return fEtaTileSize;};
52   TGeoMatrix* GetSModuleMatrix() {return fMatrix;};
53   
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   
68   vector< vector<Float_t> > fHitArray;     //|| Hit coordinates, etc.
69   vector< vector<Double_t> > fDigitArray;   //|| Digit coordinates, etc.
70   vector< vector<Double_t> > fClusterArray; //|| Rec point coordinates, etc.
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&);            
87   AliEveEMCALSModuleData& operator=(const AliEveEMCALSModuleData&); // Not implemented
88   
89   ClassDef(AliEveEMCALSModuleData, 0);     // class with data for one chamber
90 };
91
92 #endif