]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveDet/AliEveEMCALSModuleData.h
fix coverity defects
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveEMCALSModuleData.h
1 //
2 // Store the data related to each Super Module
3 //
4 //  Author: Magali Estienne (magali.estienne@cern.ch)
5 //  June 30 2008
6 //
7
8 #ifndef ALIEVEEMCALSMODULEDATA_H
9 #define ALIEVEEMCALSMODULEDATA_H
10
11 #include "AliEveEMCALData.h"
12
13 class TClonesArray;
14 class TGeoNode;
15 class TGeoMatrix;
16 class TEvePointSet;
17 class TEveQuadSet;
18
19 class TEveBoxSet;
20 class TEveFrameBox;
21 class TEvePointSet;
22 class TEveTrans;
23 class TTree;
24 class TStyle;
25 class TGedFrame;
26 class TBuffer3DTypes;
27 class TBuffer3D;
28 class TVirtualPad;
29 class TVirtualViewer3D;
30 class AliRun;
31 class AliEMCALGeometry;
32 class AliESDEvent;
33 class AliEMCAL;
34 class AliEMCALHit;
35 class AliEMCALDigit;
36 class AliEMCALGeometry;
37
38
39 class AliEveEMCALSModuleData : public TObject
40 {
41 public:
42   AliEveEMCALSModuleData(Int_t chamber,AliEMCALGeometry* geom,TGeoNode* node, TGeoHMatrix* m);
43   virtual ~AliEveEMCALSModuleData();
44
45   void        DropData();
46   void        Init(Int_t sm);
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;     };  
60
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;};
70   
71  protected:
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 
81   
82   Float_t           fPhiTileSize;          // Typical phi size of a QuadSet (digit)
83   Float_t           fEtaTileSize;          // Typical eta size of a QuadSet (digit)
84   
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.
88   
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
98
99   TGeoMatrix*   fMatrix;                   // Matrix for local to global transformation
100   TGeoHMatrix*  fHMatrix;                  // Matrix for local to global transformation
101
102  private:
103   AliEveEMCALSModuleData(const AliEveEMCALSModuleData& esmdata);            
104   AliEveEMCALSModuleData& operator=(const AliEveEMCALSModuleData&); // Not implemented
105   
106   ClassDef(AliEveEMCALSModuleData, 0);     // class with data for one chamber
107 };
108
109 #endif