]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveDet/AliEveEMCALData.h
update extra library list needed for class
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveEMCALData.h
1 //*********************************************************************
2 // - AliEVE implementation -
3 // Fill containers for visualisation of EMCAL data structures
4 //    - read and store MC Hits
5 //    - read and store digits from esds or runloader
6 //    - read and store clusters from esds or runloader 
7 //
8 // Author: Magali Estienne (magali.estienne@cern.ch)
9 // June 30 2008
10 //*********************************************************************
11
12 #ifndef AliEveEMCALData_H
13 #define AliEveEMCALData_H
14
15 #include <TEveUtil.h>
16 #include <TEveQuadSet.h>
17 #include <TEveBoxSet.h>
18 #include <TEvePointSet.h>
19 #include <TGedFrame.h>
20 #include <TGeoNode.h>
21 #include <TGeoMatrix.h>
22 #include <TClonesArray.h>
23 #include <TTree.h>
24
25 #include <map>
26 #include <vector>
27
28 class AliRunLoader;
29 class AliESDEvent;
30 class AliEMCAL;
31 class AliEMCALLoader;
32 class AliEMCALGeometry;
33 class AliEveEMCALSModule;
34 class AliEveEMCALSModuleData;
35
36 class AliEveEMCALData : public TObject, public TEveRefCnt
37 {
38  public:
39   AliEveEMCALData();
40   AliEveEMCALData(AliRunLoader* rl, TGeoNode* node, TGeoHMatrix* m);
41   ~AliEveEMCALData();
42
43   void Reset();
44   void SetTree(TTree* tree);
45   void SetESD(AliESDEvent* esd);
46   void SetNode(TGeoNode* node);
47   void InitEMCALGeom(AliRunLoader* rl);
48   void GetGeomInfo(Int_t id, Int_t &iSupMod, Double_t& x, Double_t& y, Double_t& z);
49
50   void CreateAllSModules();
51   void CreateSModule(Int_t sm);
52   void DropAllSModules();
53   void DeleteSuperModules();
54
55   void LoadHits(TTree* t);
56   void LoadDigits(TTree* t);
57   void LoadRecPoints(TTree* t);
58   void LoadHitsFromEMCALLoader(AliEMCALLoader* emcl);
59   void LoadDigitsFromEMCALLoader(AliEMCALLoader* emcl);
60   void LoadRecPointsFromEMCALLoader(AliEMCALLoader* emcl);
61   void LoadDigitsFromESD();
62   void LoadRecPointsFromESD();
63   void LoadRaw();
64
65   AliEveEMCALSModuleData* GetSModuleData(Int_t sm);
66   TEvePointSet*           GetPointSetData() {return fPoint;};
67
68  protected:
69   AliEMCAL*         fEmcal;     // EMCal data member
70   AliEMCALGeometry* fGeom;      // Data member to set/call EMCAL geometry
71   TGeoNode*         fNode;      // Node for bbox definition
72   TGeoHMatrix*      fHMatrix;   // matrix for local to global transformation
73   TTree*            fTree;      // Tree
74   AliESDEvent*      fESD;       // Esd
75   Int_t             fNsm;       // Total number of Super Modules
76   Int_t             fNsmfull;   // Number of full size Super Modules
77   Int_t             fNsmhalf;   // Number of half size Super Modules
78   std::vector<AliEveEMCALSModuleData*>   fSM;       // vector of fNsm SModules
79   std::vector<AliEveEMCALSModuleData*>   fSMfull;   // vector of fNsmfull SModules
80   std::vector<AliEveEMCALSModuleData*>   fSMhalf;   // vector of fNhalf SModules
81   AliRunLoader*     fRunLoader; // Run Loader
82   Int_t             fDebug;     // Debug option
83   TEvePointSet*     fPoint;     // TEvePointSet for hits 
84
85  private:
86   AliEveEMCALData(const AliEveEMCALData &edata);            
87   AliEveEMCALData& operator=(const AliEveEMCALData&); // Not implemented
88
89   ClassDef(AliEveEMCALData, 0); // Base class for TRD hits visualisation
90 };
91
92 #endif