SND@LHC Software
Loading...
Searching...
No Matches
UpstreamTagger.h
Go to the documentation of this file.
1#ifndef UPSTREAMTAGGER_H
2#define UPSTREAMTAGGER_H
3
4#include "FairDetector.h"
5#include "TVector3.h"
6#include "TLorentzVector.h"
7
9class FairVolume;
10class TClonesArray;
11
12
13class UpstreamTagger: public FairDetector
14{
15
16 public:
17
22 UpstreamTagger(const char* Name, Bool_t Active);
23
26
28 virtual ~UpstreamTagger();
29
31 virtual void Initialize();
32
36 virtual Bool_t ProcessHits( FairVolume* v=0);
37
39 virtual void Register();
40
42 virtual TClonesArray* GetCollection(Int_t iColl) const;
43
45 virtual void Reset();
46
48 void SetZposition(Double_t z) {det_zPos = z;}
49 void SetSizeX_Glass(Double_t xg) {det_xGlassPos = xg;}
50 void SetSizeY_Glass(Double_t yg) {det_yGlassPos = yg;}
51 void SetSizeZ_Glass(Double_t zg) {det_zGlassPos = zg;}
52 void SetSizeX_Glass_Border(Double_t xgB) {det_xGlassBorderPos = xgB;}
53 void SetSizeY_Glass_Border(Double_t ygB) {det_yGlassBorderPos = ygB;}
54 void SetSizeZ_Glass_Border(Double_t zgB) {det_zGlassBorderPos = zgB;}
55 void SetSizeX_PMMA(Double_t xpmma) {det_xPMMAPos = xpmma;}
56 void SetSizeY_PMMA(Double_t ypmma) {det_yPMMAPos = ypmma;}
57 void SetSizeZ_PMMA(Double_t zpmma) {det_zPMMAPos = zpmma;}
58 void SetSizeDX_PMMA(Double_t dxpmma) {det_dxPMMAPos = dxpmma;}
59 void SetSizeDY_PMMA(Double_t dypmma) {det_dyPMMAPos = dypmma;}
60 void SetSizeDZ_PMMA(Double_t dzpmma) {det_dzPMMAPos = dzpmma;}
61 void SetSizeX_FreonSF6(Double_t xfSF6) {det_xFreonSF6Pos = xfSF6;}
62 void SetSizeY_FreonSF6(Double_t yfSF6) {det_yFreonSF6Pos = yfSF6;}
63 void SetSizeZ_FreonSF6(Double_t zfSF6) {det_zFreonSF6Pos = zfSF6;}
64 void SetSizeX_FreonSF6_2(Double_t xfSF6_2) {det_xFreonSF6Pos_2 = xfSF6_2;}
65 void SetSizeY_FreonSF6_2(Double_t yfSF6_2) {det_yFreonSF6Pos_2 = yfSF6_2;}
66 void SetSizeZ_FreonSF6_2(Double_t zfSF6_2) {det_zFreonSF6Pos_2 = zfSF6_2;}
67 void SetSizeX_FR4(Double_t xf) {det_xFR4Pos = xf;}
68 void SetSizeY_FR4(Double_t yf) {det_yFR4Pos = yf;}
69 void SetSizeZ_FR4(Double_t zf) {det_zFR4Pos = zf;}
70 void SetSizeX_Al(Double_t xal) {det_xAlPos = xal;}
71 void SetSizeY_Al(Double_t yal) {det_yAlPos = yal;}
72 void SetSizeZ_Al(Double_t zal) {det_zAlPos = zal;}
73 void SetSizeDX_Al(Double_t dxal) {det_dxAlPos = dxal;}
74 void SetSizeDY_Al(Double_t dyal) {det_dyAlPos = dyal;}
75 void SetSizeDZ_Al(Double_t dzal) {det_dzAlPos = dzal;}
76 void SetSizeX_Air(Double_t xair) {det_xAirPos = xair;}
77 void SetSizeY_Air(Double_t yair) {det_yAirPos = yair;}
78 void SetSizeZ_Air(Double_t zair) {det_zAirPos = zair;}
79 void SetSizeX_Strip(Double_t xstrip) {det_xStripPos = xstrip;}
80 void SetSizeY_Strip(Double_t ystrip) {det_yStripPos = ystrip;}
81 void SetSizeX_Strip64(Double_t xstrip64) {det_xStripPos64 = xstrip64;}
82 void SetSizeY_Strip64(Double_t ystrip64) {det_yStripPos64 = ystrip64;}
83 void SetSizeZ_Strip(Double_t zstrip) {det_zStripPos = zstrip;}
84
86 void ConstructGeometry();
87
91 UpstreamTaggerPoint* AddHit(Int_t trackID, Int_t detID,
92 TVector3 pos, TVector3 mom,
93 Double_t time, Double_t length,
94 Double_t eLoss, Int_t pdgCode,TVector3 Lpos, TVector3 Lmom);
95
96 virtual void EndOfEvent();
97 virtual void FinishPrimary() {;}
98 virtual void FinishRun() {;}
99 virtual void BeginPrimary() {;}
100 virtual void PostTrack() {;}
101 virtual void PreTrack() {;}
102 virtual void BeginEvent() {;}
103
104 Double_t module[11][3];
105
107 Int_t fTrackID;
108 Int_t fVolumeID;
109 TLorentzVector fPos;
110 TLorentzVector fMom;
111 Double_t fTime;
112 Double_t fLength;
113 Double_t fELoss;
114
117 Double_t det_zPos;
118 Double_t det_xGlassPos;
119 Double_t det_yGlassPos;
120 Double_t det_zGlassPos;
121
125
126 Double_t det_xPMMAPos;
127 Double_t det_yPMMAPos;
128 Double_t det_zPMMAPos;
129
130 Double_t det_dxPMMAPos;
131 Double_t det_dyPMMAPos;
132 Double_t det_dzPMMAPos;
133
137
141
142 Double_t det_xFR4Pos;
143 Double_t det_yFR4Pos;
144 Double_t det_zFR4Pos;
145
146 Double_t det_xAlPos;
147 Double_t det_yAlPos;
148 Double_t det_zAlPos;
149
150 Double_t det_dxAlPos;
151 Double_t det_dyAlPos;
152 Double_t det_dzAlPos;
153
154 Double_t det_xAirPos;
155 Double_t det_yAirPos;
156 Double_t det_zAirPos;
157
160 Double_t det_xStripPos;
161 Double_t det_yStripPos;
162 Double_t det_zStripPos;
163
164 Double_t xbox_fulldet = 233.4; //cm
165 Double_t ybox_fulldet = 507;
166 Double_t zbox_fulldet = 17.0024;
167 Double_t z_space_layers = 0.2;
168 Double_t extra_y = 6.5;
169
170 private:
171
172 TGeoVolume* UpstreamTagger_fulldet; // Timing_detector_1 object
173
176
179 Int_t InitMedium(const char* name);
180
181
182 ClassDef(UpstreamTagger,1)
183};
184
185#endif //UPSTREAMTAGGER_H
void SetSizeY_Glass_Border(Double_t ygB)
TClonesArray * fUpstreamTaggerPointCollection
void SetSizeDY_PMMA(Double_t dypmma)
Double_t det_dzPMMAPos
y-thickness of PMMA box
void SetSizeDX_PMMA(Double_t dxpmma)
Double_t fTime
momentum at entrance
Double_t det_yAlPos
x-size of Aluminium box
Double_t det_dxAlPos
z-size of Aluminium box
void SetSizeX_Glass_Border(Double_t xgB)
void SetSizeDY_Al(Double_t dyal)
void SetSizeY_PMMA(Double_t ypmma)
Double_t det_yFreonSF6Pos
x-size of gas gap
void SetSizeZ_Glass_Border(Double_t zgB)
Double_t det_xGlassBorderPos
z-size of Active Glass plates
void SetSizeDX_Al(Double_t dxal)
Double_t det_xAirPos
z-thickness of Aluminium box
void SetSizeDZ_PMMA(Double_t dzpmma)
void SetSizeX_Strip(Double_t xstrip)
virtual void FinishPrimary()
void SetSizeX_FR4(Double_t xf)
TLorentzVector fPos
volume id
Double_t det_zStripPos
y-size of Strip for modules with 32 strips
Double_t det_zFreonSF6Pos
y-size of gas gap
Double_t fLength
time
Double_t z_space_layers
virtual void PostTrack()
Double_t det_yAirPos
x-size of Aluminium box
Double_t det_yGlassBorderPos
x-size of Inactive Glass plates
Double_t det_zFreonSF6Pos_2
y-size of gas gap
void SetSizeZ_FreonSF6_2(Double_t zfSF6_2)
virtual Bool_t ProcessHits(FairVolume *v=0)
Int_t fVolumeID
track index
virtual void BeginPrimary()
Double_t det_zAlPos
y-size of Aluminium box
void SetSizeY_Strip64(Double_t ystrip64)
void SetSizeX_Al(Double_t xal)
Double_t det_dzAlPos
y-thickness of Aluminium box
UpstreamTagger & operator=(const UpstreamTagger &)
Double_t det_zAirPos
y-size of Aluminium box
void SetSizeY_Air(Double_t yair)
Double_t det_xStripPos
y-size of Strip for modules with 64 strips
virtual void FinishRun()
Double_t det_xAlPos
z-size of FR4 box
void SetSizeY_Glass(Double_t yg)
void SetSizeZ_FreonSF6(Double_t zfSF6)
void SetSizeDZ_Al(Double_t dzal)
virtual void BeginEvent()
Double_t det_dyAlPos
x-thickness of Aluminium box
void SetSizeY_FreonSF6(Double_t yfSF6)
TLorentzVector fMom
position at entrance
void SetSizeZ_Glass(Double_t zg)
Double_t det_xPMMAPos
z-size of Inactive Glass plates
void SetSizeZ_PMMA(Double_t zpmma)
Double_t ybox_fulldet
virtual void EndOfEvent()
Double_t det_zGlassPos
y-size of Active Glass plates
Int_t InitMedium(const char *name)
virtual void Initialize()
Double_t xbox_fulldet
z-size of Strip
Double_t det_xGlassPos
z-position of veto station
void SetSizeX_Air(Double_t xair)
Double_t det_zFR4Pos
y-size of FR4 box
Double_t det_xStripPos64
z-size of Aluminium box
Double_t det_yStripPos
x-size of Strip for modules with 32 strips
Double_t fELoss
length
UpstreamTaggerPoint * 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 det_dxPMMAPos
z-size of PMMA box
void SetZposition(Double_t z)
virtual void Reset()
Double_t det_zPos
energy loss
void SetSizeY_FreonSF6_2(Double_t yfSF6_2)
void SetSizeZ_Al(Double_t zal)
void SetSizeY_Al(Double_t yal)
Double_t det_dyPMMAPos
x-thickness of PMMA box
virtual void PreTrack()
void SetSizeX_FreonSF6_2(Double_t xfSF6_2)
TGeoVolume * UpstreamTagger_fulldet
virtual ~UpstreamTagger()
Double_t det_yStripPos64
x-size of Strip for modules with 64 strips
Double_t det_yGlassPos
x-size of Active Glass plates
Double_t det_xFR4Pos
z-size of gas gap
Double_t det_yFR4Pos
x-size of FR4 box
Double_t det_yPMMAPos
x-size of PMMA box
void SetSizeZ_Air(Double_t zair)
void SetSizeY_FR4(Double_t yf)
void SetSizeZ_Strip(Double_t zstrip)
Double_t det_zGlassBorderPos
y-size of Inactive Glass plates
virtual void Register()
void SetSizeX_Strip64(Double_t xstrip64)
Double_t det_xFreonSF6Pos
z-thickness of PMMA box
UpstreamTagger(const UpstreamTagger &)
void SetSizeX_FreonSF6(Double_t xfSF6)
Double_t det_xFreonSF6Pos_2
z-size of gas gap
Double_t zbox_fulldet
void SetSizeX_Glass(Double_t xg)
Double_t det_zPMMAPos
y-size of PMMA box
void SetSizeZ_FR4(Double_t zf)
Double_t det_yFreonSF6Pos_2
x-size of gas gap
virtual TClonesArray * GetCollection(Int_t iColl) const
void SetSizeX_PMMA(Double_t xpmma)
void SetSizeY_Strip(Double_t ystrip)