SND@LHC Software
Loading...
Searching...
No Matches
hcal.h
Go to the documentation of this file.
1
8#ifndef HCAL_H
9#define HCAL_H
10
11
12#include "hcalPoint.h"
13#include "hcalStructure.h"
14#include "hcalInf.h"
15
16#include "FairDetector.h"
17
18#include "TClonesArray.h"
19#include "TLorentzVector.h"
20#include "TVector3.h"
21
22#include <list>
23
24class hcalPoint;
25class FairVolume;
26class TGeoTranslation;
27class hcalLightMap;
28
29#define kNumberOfHCALSensitiveVolumes 6
30
31class hcal : public FairDetector
32{
33
34public:
35
37 hcal();
38
39
44 hcal(const char* name, Bool_t active,
45 const char* fileGeo="hcal.geo");
46
47
49 virtual ~hcal();
50
51
59 virtual Bool_t ProcessHits(FairVolume* vol = NULL);
60
61
66 virtual void ConstructGeometry();
67
68 virtual void EndOfEvent();
69 virtual void BeginEvent();
70 virtual void Reset();
71 virtual void Print() const;
72 virtual void CopyClones(TClonesArray* cl1, TClonesArray* cl2, Int_t offset);
73 virtual void Register();
74 virtual void ChangeHit(hcalPoint* oldHit=NULL);
75 virtual void FinishPrimary();
76
77 virtual void Initialize();
78
80 virtual TClonesArray* GetCollection(Int_t iColl) const;
81 virtual void SetSpecialPhysicsCuts();
82
85 static Bool_t GetCellCoord(Int_t fVolumeID, Float_t &x, Float_t &y, Int_t& section);
88 static Bool_t GetCellCoordInf(Int_t fVolumeID, Float_t &x, Float_t &y, Int_t& section);
89protected:
90 hcalPoint* AddHit(Int_t trackID, Int_t detID, TVector3 pos,
91 TVector3 mom, Double_t time, Double_t length,
92 Double_t eLoss, Int_t pdgcode);
93 hcalPoint* AddLiteHit(Int_t trackID, Int_t detID, Double32_t time, Double32_t eLoss);
94
95private:
96 Bool_t FillLitePoint(Int_t volnum);
97 void FillWallPoint();
102 void ResetParameters();
103 void SetHcalCuts(Int_t medium);
104 hcalPoint* FindHit(Int_t VolId, Int_t TrackId);
105
106private:
108 Option_t* fDebug;
109
111 Int_t GetVolType(Int_t volnum);
115 Int_t fTrackID;
117 Int_t fVolumeID;
119 TLorentzVector fPos;
121 TLorentzVector fMom;
123 Double32_t fTime;
125 Double32_t fLength;
127 Double32_t fELoss;
129 Int_t fPosIndex;
130
132 TClonesArray* fHcalCollection;
134 TClonesArray* fLiteCollection;
137 Float_t fHcalSize[3];
142 Int_t fFastMC;
144 Int_t fXSize;
145 Int_t fYSize;
147 Float_t fDX;
148 Float_t fDY;
150 Float_t fModuleSize;
152 Float_t fZHcal;
154 Float_t fSemiX;
155 Float_t fSemiY;
157 TString fAbsorber;
169 Float_t fEdging;
171 Float_t fHoleRad;
173 Float_t fFiberRad;
175 Float_t fXCell;
176 Float_t fYCell;
178 Int_t fNH;
179 Int_t fCF;
185 Int_t fNLayers;
187 Int_t fNLayers1;
191 Int_t fVolIdMax;
201
203 TGeoVolume* ConstructRaw(Int_t number);
205 void ConstructModule();
207 void ConstructTile(Int_t material);
212 void ConstructTileSimple(Int_t material);
213 TGeoVolume* fModule;
214 TGeoVolume* fScTile;
215 TGeoVolume* fTileEdging;
216 TGeoVolume* fPbTile;
217 TGeoVolume* fTvTile;
218 TGeoVolume* fHoleVol[3];
219 TGeoVolume* fFiberVol[3];
220 TGeoVolume* fSteelTapes[2];
221 TGeoTranslation** fHolePos;
222 Int_t fModules;
223 std::list<std::pair<Int_t, TGeoVolume*> > fRawNumber;
224
228 Int_t InitMedium(const char* name);
230 void InitMedia();
231
232 hcal(const hcal&);
234
235 ClassDef(hcal,1)
236};
237
239{
240 fTrackID = fVolumeID = 0;
241 fPos.SetXYZM(0.0, 0.0, 0.0, 0.0);
242 fMom.SetXYZM(0.0, 0.0, 0.0, 0.0);
243 fTime = fLength = fELoss = 0;
244 fPosIndex = 0;
245};
246
247
248#endif
Definition hcal.h:32
Int_t fVolIdMax
Definition hcal.h:191
Option_t * fDebug
Definition hcal.h:108
Int_t fCF
Definition hcal.h:179
std::list< std::pair< Int_t, TGeoVolume * > > fRawNumber
Number of mudules.
Definition hcal.h:223
Int_t fXSize
Definition hcal.h:144
virtual void EndOfEvent()
Definition hcal.cxx:561
void ConstructTileSimple(Int_t material)
Definition hcal.cxx:1106
Float_t fZHcal
Definition hcal.h:152
Float_t fModuleLength
Definition hcal.h:189
TString fAbsorber
Definition hcal.h:157
Float_t fXCell
Definition hcal.h:175
Int_t fYSize
Definition hcal.h:145
Int_t fSimpleGeo
Definition hcal.h:140
virtual void FinishPrimary()
Definition hcal.cxx:309
static Bool_t GetCellCoordInf(Int_t fVolumeID, Float_t &x, Float_t &y, Int_t &section)
Definition hcal.cxx:1174
Float_t fSemiY
Definition hcal.h:155
virtual void ChangeHit(hcalPoint *oldHit=NULL)
Definition hcal.cxx:315
virtual void Register()
Definition hcal.cxx:650
hcalInf * fInf
Definition hcal.h:107
Int_t fVolumeID
Definition hcal.h:117
Int_t fPosIndex
Definition hcal.h:129
void ConstructTile(Int_t material)
Definition hcal.cxx:960
hcal(const hcal &)
Int_t fTrackID
Definition hcal.h:115
void ConstructModule()
Definition hcal.cxx:812
virtual void SetSpecialPhysicsCuts()
Definition hcal.cxx:326
TClonesArray * fHcalCollection
Definition hcal.h:132
Bool_t FillLitePoint(Int_t volnum)
Definition hcal.cxx:520
hcalLightMap * fLightMap
Definition hcal.h:183
Int_t fFastMC
Definition hcal.h:142
void InitMedia()
Definition hcal.cxx:944
Int_t GetVolType(Int_t volnum)
Definition hcal.cxx:472
Float_t fYCell
Definition hcal.h:176
Int_t fNLayers
Definition hcal.h:185
static Bool_t GetCellCoord(Int_t fVolumeID, Float_t &x, Float_t &y, Int_t &section)
Definition hcal.cxx:1203
Float_t fThicknessTyvk
Definition hcal.h:163
virtual void ConstructGeometry()
Definition hcal.cxx:659
TGeoVolume * fScTile
Calorimeter Modules.
Definition hcal.h:214
hcal()
Definition hcal.cxx:45
void SetHcalCuts(Int_t medium)
Definition hcal.cxx:289
Int_t fNH
Definition hcal.h:178
hcalPoint * AddLiteHit(Int_t trackID, Int_t detID, Double32_t time, Double32_t eLoss)
Definition hcal.cxx:803
TGeoVolume * fTileEdging
Pb tiles.
Definition hcal.h:215
virtual Bool_t ProcessHits(FairVolume *vol=NULL)
Definition hcal.cxx:351
Float_t fHoleRad
Definition hcal.h:171
TGeoVolume * fPbTile
Edging of scintillator tiles.
Definition hcal.h:216
Int_t fFirstNumber
Definition hcal.h:193
virtual void CopyClones(TClonesArray *cl1, TClonesArray *cl2, Int_t offset)
Definition hcal.cxx:615
TGeoVolume * fSteelTapes[2]
Fiber volume.
Definition hcal.h:220
virtual void Print() const
Definition hcal.cxx:591
hcalPoint * FindHit(Int_t VolId, Int_t TrackId)
Definition hcal.cxx:509
TGeoVolume * ConstructRaw(Int_t number)
Definition hcal.cxx:738
Int_t fVolArr[kNumberOfHCALSensitiveVolumes]
Definition hcal.h:200
hcal & operator=(const hcal &)
Float_t fHcalSize[3]
Definition hcal.h:137
Double32_t fLength
Definition hcal.h:125
TLorentzVector fMom
Definition hcal.h:121
TGeoVolume * fHoleVol[3]
Tyvek sheets.
Definition hcal.h:218
virtual ~hcal()
Definition hcal.cxx:273
Int_t fModules
Positions of holes.
Definition hcal.h:222
TClonesArray * fLiteCollection
Definition hcal.h:134
hcalPoint * AddHit(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Double_t eLoss, Int_t pdgcode)
Definition hcal.cxx:791
TGeoVolume * fModule
Definition hcal.h:213
Float_t fDX
Definition hcal.h:147
virtual TClonesArray * GetCollection(Int_t iColl) const
Definition hcal.cxx:572
Double32_t fELoss
Definition hcal.h:127
Float_t fSemiX
Definition hcal.h:154
Float_t fThicknessAbsorber
Definition hcal.h:159
Float_t fThicknessLayer
Definition hcal.h:165
Double32_t fTime
Definition hcal.h:123
Float_t fDY
Definition hcal.h:148
Int_t InitMedium(const char *name)
Definition hcal.cxx:921
Float_t fThicknessScin
Definition hcal.h:161
TGeoTranslation ** fHolePos
Steel tapes.
Definition hcal.h:221
virtual void Initialize()
Definition hcal.cxx:260
Float_t fModuleSize
Definition hcal.h:150
TGeoVolume * fTvTile
Scintillator tiles.
Definition hcal.h:217
void ConstructModuleSimple()
Definition hcal.cxx:877
TString fLightMapName
Definition hcal.h:181
TGeoVolume * fFiberVol[3]
Hole volume.
Definition hcal.h:219
Float_t fFiberRad
Definition hcal.h:173
Int_t fStructureId
List of constructed raws.
Definition hcal.h:226
void ResetParameters()
Definition hcal.h:238
Float_t fEdging
Definition hcal.h:169
Float_t fThicknessSteel
Definition hcal.h:167
Int_t fNLayers1
Definition hcal.h:187
virtual void BeginEvent()
Definition hcal.cxx:781
TLorentzVector fPos
Definition hcal.h:119
void FillWallPoint()
Definition hcal.cxx:483
virtual void Reset()
Definition hcal.cxx:581
#define kNumberOfHCALSensitiveVolumes
Definition hcal.h:29