3 // Store the data related to each Super Module (SM)
4 // Possible storage of hits, digits and clusters per SM
6 // Author: Magali Estienne (magali.estienne@cern.ch)
10 #include "AliEveEMCALSModuleData.h"
18 class AliEMCALGeometry;
20 class AliEveEventManager;
22 ClassImp(AliEveEMCALSModuleData)
24 Float_t AliEveEMCALSModuleData::fgSModuleBigBox0 = 0.;
25 Float_t AliEveEMCALSModuleData::fgSModuleBigBox1 = 0.;
26 Float_t AliEveEMCALSModuleData::fgSModuleBigBox2 = 0.;
27 Float_t AliEveEMCALSModuleData::fgSModuleSmallBox0 = 0.;
28 Float_t AliEveEMCALSModuleData::fgSModuleSmallBox1 = 0.;
29 Float_t AliEveEMCALSModuleData::fgSModuleSmallBox2 = 0.;
30 Float_t AliEveEMCALSModuleData::fgSModuleCenter0 = 0.;
31 Float_t AliEveEMCALSModuleData::fgSModuleCenter1 = 0.;
32 Float_t AliEveEMCALSModuleData::fgSModuleCenter2 = 0.;
34 //______________________________________________________________________________
35 AliEveEMCALSModuleData::AliEveEMCALSModuleData(Int_t sm,AliEMCALGeometry* geom, TGeoNode* node, TGeoHMatrix* m) :
46 fPhiTileSize(0), fEtaTileSize(0),
61 //______________________________________________________________________________
62 AliEveEMCALSModuleData::AliEveEMCALSModuleData(const AliEveEMCALSModuleData &esmdata) :
68 fNsmfull(esmdata.fNsmfull),
69 fNsmhalf(esmdata.fNsmhalf),
70 fNDigits(esmdata.fNDigits),
71 fNClusters(esmdata.fNClusters),
72 fNHits(esmdata.fNHits),
73 fPhiTileSize(esmdata.fPhiTileSize), fEtaTileSize(esmdata.fEtaTileSize),
74 fHitArray(esmdata.fHitArray),
75 fDigitArray(esmdata.fDigitArray),
76 fClusterArray(esmdata.fClusterArray),
77 fMatrix(esmdata.fMatrix),
78 fHMatrix(esmdata.fHMatrix)
88 //______________________________________________________________________________
89 AliEveEMCALSModuleData::~AliEveEMCALSModuleData()
95 if(!fHitArray.empty()){
98 if(!fDigitArray.empty()){
101 if(!fClusterArray.empty()){
102 fClusterArray.clear();
107 //______________________________________________________________________________
108 void AliEveEMCALSModuleData::DropData()
111 // Release the SM data
118 if(!fHitArray.empty())
121 if(!fDigitArray.empty())
124 if(!fClusterArray.empty())
125 fClusterArray.clear();
131 // ______________________________________________________________________________
132 void AliEveEMCALSModuleData::Init(Int_t sm)
136 // Initialize parameters
143 fPhiTileSize = fGeom->GetPhiTileSize();
144 fEtaTileSize = fGeom->GetPhiTileSize();
146 TGeoBBox* bbbox = (TGeoBBox*) fNode->GetDaughter(0) ->GetVolume()->GetShape();
147 TGeoBBox* sbbox = (TGeoBBox*) fNode->GetDaughter(10)->GetVolume()->GetShape();
149 fMatrix = (TGeoMatrix*) fNode->GetDaughter(sm)->GetMatrix();
153 fgSModuleBigBox0 = bbbox->GetDX();
154 fgSModuleBigBox1 = bbbox->GetDY();
155 fgSModuleBigBox2 = bbbox->GetDZ();
159 fgSModuleSmallBox0 = sbbox->GetDX();
160 fgSModuleSmallBox1 = sbbox->GetDY();
161 fgSModuleSmallBox2 = sbbox->GetDZ();
166 // ______________________________________________________________________________
167 void AliEveEMCALSModuleData::RegisterDigit(Int_t AbsId, Int_t isupMod, Double_t iamp, Double_t ix, Double_t iy, Double_t iz)
170 // Add a digit to this SM
173 std::vector<Double_t> bufDig(6);
181 fDigitArray.push_back(bufDig);
187 // ______________________________________________________________________________
188 void AliEveEMCALSModuleData::RegisterHit(Int_t AbsId, Int_t isupMod, Double_t iamp, Double_t ix, Double_t iy, Double_t iz)
191 // Add a hit to this SM
194 std::vector<Float_t> bufHit(6);
202 fHitArray.push_back(bufHit);
208 // ______________________________________________________________________________
209 void AliEveEMCALSModuleData::RegisterCluster(Int_t isupMod, Double_t iamp, Double_t ix, Double_t iy, Double_t iz)
212 // Add a cluster to this SM
215 std::vector<Double_t> bufClu(5);
222 fClusterArray.push_back(bufClu);