SND@LHC Software
Loading...
Searching...
No Matches
EmulsionDet.h
Go to the documentation of this file.
1//
2//EmulsionDet.h
3//
4// by A.Buonaura
5
6#ifndef EmulsionDet_H
7#define EmulsionDet_H
8
9#include "FairModule.h" // for FairModule
10#include "FairDetector.h"
11
12#include "Rtypes.h" // for ShipMuonShield::Class, Bool_t, etc
13
14#include <string> // for string
15
16#include "TVector3.h"
17#include "TLorentzVector.h"
18
20class FairVolume;
21class TClonesArray;
22
23class EmulsionDet : public FairDetector
24{
25public:
26 EmulsionDet(const char* name, Bool_t Active, const char* Title = "EmulsionDet");
28 virtual ~EmulsionDet();
29
31 void ConstructGeometry();
32
34 virtual void Initialize();
35
37 virtual Bool_t ProcessHits( FairVolume* v=0);
38
40 virtual void Register();
41
43 virtual TClonesArray* GetCollection(Int_t iColl) const ;
44
46 virtual void Reset();
47
50 EmulsionDetPoint* AddHit(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom,
51 Double_t time, Double_t length,Double_t eLoss,Int_t pdgcode,TVector3 Lpos, TVector3 Lmom);
52
53 virtual void CopyClones( TClonesArray* cl1, TClonesArray* cl2 , Int_t offset) {;}
54 virtual void SetSpecialPhysicsCuts() {;}
55 virtual void EndOfEvent();
56 virtual void FinishPrimary() {;}
57 virtual void FinishRun() {;}
58 virtual void BeginPrimary() {;}
59 virtual void PostTrack() {;}
60 virtual void PreTrack(){;}
61 virtual void BeginEvent() {;}
62
64 void DecodeBrickID(Int_t detID, Int_t &NWall, Int_t &NRow, Int_t &NColumn, Int_t &NPlate);
65 TString PathBrickID(Int_t detID);
66
67 void SetConfPar(TString name, Float_t value){conf_floats[name]=value;}
68 void SetConfPar(TString name, Int_t value){conf_ints[name]=value;}
69 void SetConfPar(TString name, TString value){conf_strings[name]=value;}
70 Float_t GetConfParF(TString name){return conf_floats[name];}
71 Int_t GetConfParI(TString name){return conf_ints[name];}
72 TString GetConfParS(TString name){return conf_strings[name];}
73
76
77 ClassDef(EmulsionDet,5)
78
79private:
80
82 Int_t fTrackID;
83 Int_t fVolumeID;
84 TLorentzVector fPos;
85 TLorentzVector fMom;
86 Double32_t fTime;
87 Double32_t fLength;
88 Double32_t fELoss;
89
93 std::map<TString,Float_t> conf_floats;
94 std::map<TString,Int_t> conf_ints;
95 std::map<TString,TString> conf_strings;
96
97protected:
98
99 Double_t XDimension; //dimension of the target box
100 Double_t YDimension;
101 Double_t ZDimension;
102
104 Int_t fNTarget;
106
107 Double_t WallXDim; //dimension of the wall of bricks
108 Double_t WallYDim;
109 Double_t WallZDim;
110
111 Double_t TotalWallZDim; //including the aluminium border
112 Double_t WallZBorder_offset; //border is asymmetric, 14 mm before, 4.5 mm after
113
115 Double_t EmulsionX;
116 Double_t EmulsionY;
117
119 Double_t PassiveThickness; //Tungsten plate thickness
120 Double_t EmPlateWidth; // Z dimension of the emulsion plates = 2*EmulsionThickness+PlasticBaseThickness
121 Double_t AllPlateWidth; //PlateZ + PassiveThickness
122
123
124 Double_t BrickPackageX; //dimension of the brick package along X
125 Double_t BrickPackageY; //dimension of the brick package along Y
126 Double_t BrickPackageZ; //dimension of the brick package along Z
127
128 Double_t BrickZ; //dimension of the brick + package along the Z axis
129 Double_t BrickY;
130 Double_t BrickX;
131
132 Int_t fPassiveOption; //passive option 1 passive all emulsions, 0 active all emulsions
133
134
135 //TargetTrackers
136 Double_t TTrackerZ;
137
138 //Shift with respecto to floor in y
139 Double_t ShiftY;
140 //Shift with respect to center in x
141 Double_t ShiftX;
142
143
144 Int_t InitMedium(const char* name);
145
146};
147
148#endif
149
Double_t PassiveThickness
virtual void EndOfEvent()
Double_t BrickPackageZ
Int_t fPassiveOption
Double_t BrickPackageY
Double_t WallZBorder_offset
Double_t AllPlateWidth
std::map< TString, TString > conf_strings
Definition EmulsionDet.h:95
TString GetConfParS(TString name)
Definition EmulsionDet.h:72
virtual void PostTrack()
Definition EmulsionDet.h:59
virtual Bool_t ProcessHits(FairVolume *v=0)
Double_t TotalWallZDim
Double_t WallYDim
Double_t ShiftY
Double_t PlasticBaseThickness
virtual TClonesArray * GetCollection(Int_t iColl) const
Double_t TTrackerZ
Int_t InitMedium(const char *name)
virtual void FinishRun()
Definition EmulsionDet.h:57
Double_t WallXDim
virtual void Reset()
EmulsionDet(const EmulsionDet &)
Double_t EmPlateWidth
Double32_t fLength
time
Definition EmulsionDet.h:87
TClonesArray * fEmulsionDetPointCollection
energy loss
Definition EmulsionDet.h:91
virtual void PreTrack()
Definition EmulsionDet.h:60
void DecodeBrickID(Int_t detID, Int_t &NWall, Int_t &NRow, Int_t &NColumn, Int_t &NPlate)
virtual ~EmulsionDet()
Double_t BrickY
virtual void CopyClones(TClonesArray *cl1, TClonesArray *cl2, Int_t offset)
Definition EmulsionDet.h:53
void SetConfPar(TString name, Float_t value)
Definition EmulsionDet.h:67
EmulsionDetPoint * AddHit(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Double_t eLoss, Int_t pdgcode, TVector3 Lpos, TVector3 Lmom)
Double_t ZDimension
ClassDef(EmulsionDet, 5) private Int_t fVolumeID
track index
Definition EmulsionDet.h:77
virtual void SetSpecialPhysicsCuts()
Definition EmulsionDet.h:54
Int_t GetConfParI(TString name)
Definition EmulsionDet.h:71
void SetConfPar(TString name, TString value)
Definition EmulsionDet.h:69
void SetConfPar(TString name, Int_t value)
Definition EmulsionDet.h:68
Double_t BrickPackageX
Float_t GetConfParF(TString name)
Definition EmulsionDet.h:70
Double_t EmulsionThickness
void ConstructGeometry()
Double_t ShiftX
std::map< TString, Float_t > conf_floats
Definition EmulsionDet.h:93
TLorentzVector fPos
volume id
Definition EmulsionDet.h:84
Double_t XDimension
Definition EmulsionDet.h:99
Double_t BrickX
EmulsionDet & operator=(const EmulsionDet &)
Double_t WallZDim
Double32_t fTime
momentum at entrance
Definition EmulsionDet.h:86
virtual void Register()
std::map< TString, Int_t > conf_ints
Definition EmulsionDet.h:94
Int_t number_of_plates
virtual void BeginPrimary()
Definition EmulsionDet.h:58
TString PathBrickID(Int_t detID)
TLorentzVector fMom
position at entrance
Definition EmulsionDet.h:85
Double_t YDimension
virtual void Initialize()
Double32_t fELoss
length
Definition EmulsionDet.h:88
Double_t BrickZ
Double_t EmulsionY
virtual void BeginEvent()
Definition EmulsionDet.h:61
virtual void FinishPrimary()
Definition EmulsionDet.h:56
Double_t EmulsionX