1 //*************************************************************************
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)
8 //*************************************************************************
10 #include <Riostream.h>
13 #include "AliEveEMCALSModuleData.h"
15 #include <AliEMCALGeometry.h>
19 #include <TClonesArray.h>
22 #include <TGeoMatrix.h>
24 #include <EveBase/AliEveEventManager.h>
26 ///////////////////////////////////////////////////////////////////////////////
28 /// AliEveEMCALSModuleData: geometry and digits
30 ///////////////////////////////////////////////////////////////////////////////
33 ClassImp(AliEveEMCALSModuleData)
35 Float_t AliEveEMCALSModuleData::fSModuleBigBox0 = 0.;
36 Float_t AliEveEMCALSModuleData::fSModuleBigBox1 = 0.;
37 Float_t AliEveEMCALSModuleData::fSModuleBigBox2 = 0.;
38 Float_t AliEveEMCALSModuleData::fSModuleSmallBox0 = 0.;
39 Float_t AliEveEMCALSModuleData::fSModuleSmallBox1 = 0.;
40 Float_t AliEveEMCALSModuleData::fSModuleSmallBox2 = 0.;
41 Float_t AliEveEMCALSModuleData::fSModuleCenter0 = 0.;
42 Float_t AliEveEMCALSModuleData::fSModuleCenter1 = 0.;
43 Float_t AliEveEMCALSModuleData::fSModuleCenter2 = 0.;
45 //______________________________________________________________________________
46 AliEveEMCALSModuleData::AliEveEMCALSModuleData(Int_t sm,AliEMCALGeometry* geom, TGeoNode* node, TGeoHMatrix* m) :
71 //______________________________________________________________________________
72 AliEveEMCALSModuleData::AliEveEMCALSModuleData(const AliEveEMCALSModuleData &esmdata) :
78 fNsmfull(esmdata.fNsmfull),
79 fNsmhalf(esmdata.fNsmhalf),
80 fNDigits(esmdata.fNDigits),
81 fNClusters(esmdata.fNClusters),
82 fNHits(esmdata.fNHits),
83 fHitArray(esmdata.fHitArray),
84 fDigitArray(esmdata.fDigitArray),
85 fClusterArray(esmdata.fClusterArray),
86 fMatrix(esmdata.fMatrix),
87 fHMatrix(esmdata.fHMatrix)
97 //______________________________________________________________________________
98 AliEveEMCALSModuleData::~AliEveEMCALSModuleData()
104 if(!fHitArray.empty()){
107 if(!fDigitArray.empty()){
110 if(!fClusterArray.empty()){
111 fClusterArray.clear();
116 //______________________________________________________________________________
117 void AliEveEMCALSModuleData::DropData()
120 // release the sm data
127 if(!fHitArray.empty())
130 if(!fDigitArray.empty())
133 if(!fClusterArray.empty())
134 fClusterArray.clear();
140 // ______________________________________________________________________________
141 void AliEveEMCALSModuleData::Init(Int_t sm)
147 fPhiTileSize = fGeom->GetPhiTileSize();
148 fEtaTileSize = fGeom->GetPhiTileSize();
150 TGeoBBox* bbbox = (TGeoBBox*) fNode->GetDaughter(0) ->GetVolume()->GetShape();
152 TGeoBBox* sbbox = (TGeoBBox*) fNode->GetDaughter(10)->GetVolume()->GetShape();
155 fMatrix = (TGeoMatrix*) fNode->GetDaughter(sm)->GetMatrix();
159 fSModuleBigBox0 = bbbox->GetDX();
160 fSModuleBigBox1 = bbbox->GetDY();
161 fSModuleBigBox2 = bbbox->GetDZ();
165 fSModuleSmallBox0 = sbbox->GetDX();
166 fSModuleSmallBox1 = sbbox->GetDY();
167 fSModuleSmallBox2 = sbbox->GetDZ();
172 // ______________________________________________________________________________
173 void AliEveEMCALSModuleData::RegisterDigit(Int_t AbsId, Int_t isupMod, Float_t iamp, Float_t ix, Float_t iy, Float_t iz)
176 // add a digit to this sm
179 vector<Float_t> bufDig(6);
187 cout << "bufDig[0]: " << bufDig[0] << ", bufDig[1]: " << bufDig[1] << ", bufDig[2]: " << bufDig[2] <<
188 ", bufDig[3]: " << bufDig[3] << ", bufDig[4]: " << bufDig[4] << ", bufDig[5]: " << bufDig[5] << endl;
190 fDigitArray.push_back(bufDig);
196 // ______________________________________________________________________________
197 void AliEveEMCALSModuleData::RegisterHit(Int_t AbsId, Int_t isupMod, Float_t iamp, Float_t ix, Float_t iy, Float_t iz)
200 // add a hit to this sm
203 vector<Float_t> bufHit(6);
211 fHitArray.push_back(bufHit);
217 // ______________________________________________________________________________
218 void AliEveEMCALSModuleData::RegisterCluster(Int_t isupMod, Float_t iamp, Float_t ix, Float_t iy, Float_t iz)
221 // add a cluster to this sm
224 vector<Float_t> bufClu(5);
231 fClusterArray.push_back(bufClu);