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
8 // Author: Magali Estienne (magali.estienne@cern.ch)
10 //*********************************************************************
12 #ifndef AliEveEMCALData_H
13 #define AliEveEMCALData_H
16 #include <TEveQuadSet.h>
17 #include <TEveBoxSet.h>
18 #include <TEvePointSet.h>
19 #include <TGedFrame.h>
21 #include <TGeoMatrix.h>
22 #include <TClonesArray.h>
32 class AliEMCALGeometry;
33 class AliEveEMCALSModule;
34 class AliEveEMCALSModuleData;
36 class AliEveEMCALData : public TObject, public TEveRefCnt
40 AliEveEMCALData(AliRunLoader* rl, TGeoNode* node, TGeoHMatrix* m);
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);
50 void CreateAllSModules();
51 void CreateSModule(Int_t sm);
52 void DropAllSModules();
53 void DeleteSuperModules();
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();
65 AliEveEMCALSModuleData* GetSModuleData(Int_t sm);
66 TEvePointSet* GetPointSetData() {return fPoint;};
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
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
86 AliEveEMCALData(const AliEveEMCALData &edata);
87 AliEveEMCALData& operator=(const AliEveEMCALData&); // Not implemented
89 ClassDef(AliEveEMCALData, 0); // Base class for TRD hits visualisation