SND@LHC Software
Loading...
Searching...
No Matches
UpstreamTaggerHit Class Reference

#include <UpstreamTaggerHit.h>

Inheritance diagram for UpstreamTaggerHit:
Collaboration diagram for UpstreamTaggerHit:

Public Member Functions

 UpstreamTaggerHit ()
 
 UpstreamTaggerHit (UpstreamTaggerPoint *p, UpstreamTagger *c, Double_t t0)
 
virtual ~UpstreamTaggerHit ()
 
Double_t GetX ()
 
Double_t GetY ()
 
Double_t GetZ ()
 
TVector3 GetXYZ ()
 
TGeoNode * GetNode (Double_t &hit_final, Int_t &mod)
 
std::vector< double > GetTime (Double_t x)
 
std::vector< double > GetTime ()
 
std::vector< double > GetMeasurements ()
 
void SetTDC (Float_t val1, Float_t val2)
 
void SetPoint (Double_t p1, Double_t p2, Double_t p3)
 
virtual void Print () const
 
void Dist (Float_t x, Float_t &lpos, Float_t &lneg)
 
void setInvalid ()
 
void setIsValid ()
 
Int_t GetModule () const
 
Int_t GetGlass () const
 
Int_t GetStrip () const
 
Int_t GetNeighbour () const
 
Int_t GetRpcDetector () const
 
bool isValid () const
 
- Public Member Functions inherited from ShipHit
 ShipHit ()
 
 ShipHit (Int_t detID, Float_t digi)
 
virtual ~ShipHit ()
 
Double_t GetDigi () const
 
Int_t GetDetectorID () const
 
void SetDigi (Float_t d)
 
void SetDetectorID (Int_t detID)
 
virtual void Print (const Option_t *opt="") const
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Private Member Functions

 UpstreamTaggerHit (const UpstreamTaggerHit &point)
 
UpstreamTaggerHit operator= (const UpstreamTaggerHit &point)
 
 ClassDef (UpstreamTaggerHit, 1)
 z-position of veto station
 
- Private Member Functions inherited from UpstreamTagger
 UpstreamTagger (const char *Name, Bool_t Active)
 
 UpstreamTagger ()
 
virtual ~UpstreamTagger ()
 
virtual void Initialize ()
 
virtual Bool_t ProcessHits (FairVolume *v=0)
 
virtual void Register ()
 
virtual TClonesArray * GetCollection (Int_t iColl) const
 
virtual void Reset ()
 
void SetZposition (Double_t z)
 
void SetSizeX_Glass (Double_t xg)
 
void SetSizeY_Glass (Double_t yg)
 
void SetSizeZ_Glass (Double_t zg)
 
void SetSizeX_Glass_Border (Double_t xgB)
 
void SetSizeY_Glass_Border (Double_t ygB)
 
void SetSizeZ_Glass_Border (Double_t zgB)
 
void SetSizeX_PMMA (Double_t xpmma)
 
void SetSizeY_PMMA (Double_t ypmma)
 
void SetSizeZ_PMMA (Double_t zpmma)
 
void SetSizeDX_PMMA (Double_t dxpmma)
 
void SetSizeDY_PMMA (Double_t dypmma)
 
void SetSizeDZ_PMMA (Double_t dzpmma)
 
void SetSizeX_FreonSF6 (Double_t xfSF6)
 
void SetSizeY_FreonSF6 (Double_t yfSF6)
 
void SetSizeZ_FreonSF6 (Double_t zfSF6)
 
void SetSizeX_FreonSF6_2 (Double_t xfSF6_2)
 
void SetSizeY_FreonSF6_2 (Double_t yfSF6_2)
 
void SetSizeZ_FreonSF6_2 (Double_t zfSF6_2)
 
void SetSizeX_FR4 (Double_t xf)
 
void SetSizeY_FR4 (Double_t yf)
 
void SetSizeZ_FR4 (Double_t zf)
 
void SetSizeX_Al (Double_t xal)
 
void SetSizeY_Al (Double_t yal)
 
void SetSizeZ_Al (Double_t zal)
 
void SetSizeDX_Al (Double_t dxal)
 
void SetSizeDY_Al (Double_t dyal)
 
void SetSizeDZ_Al (Double_t dzal)
 
void SetSizeX_Air (Double_t xair)
 
void SetSizeY_Air (Double_t yair)
 
void SetSizeZ_Air (Double_t zair)
 
void SetSizeX_Strip (Double_t xstrip)
 
void SetSizeY_Strip (Double_t ystrip)
 
void SetSizeX_Strip64 (Double_t xstrip64)
 
void SetSizeY_Strip64 (Double_t ystrip64)
 
void SetSizeZ_Strip (Double_t zstrip)
 
void ConstructGeometry ()
 
UpstreamTaggerPointAddHit (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)
 
virtual void EndOfEvent ()
 
virtual void FinishPrimary ()
 
virtual void FinishRun ()
 
virtual void BeginPrimary ()
 
virtual void PostTrack ()
 
virtual void PreTrack ()
 
virtual void BeginEvent ()
 

Private Attributes

Double_t v_drift = 17.7
 
Double_t T_resol = 0.283
 
UpstreamTaggerc0
 
Double_t point_final [3]
 
const Double_t * mom [3]
 
Float_t flag
 flag
 
Float_t t_1
 
Float_t t_2
 TDC on both sides.
 
Int_t RpcModule
 
Int_t RpcGlass
 
Int_t RpcStrip
 
Int_t RpcDetector
 
Int_t Rpc_NeighbourStrip
 
Double_t det_zdet1
 
- Private Attributes inherited from UpstreamTagger
Double_t module [11][3]
 
Int_t fTrackID
 
Int_t fVolumeID
 track index
 
TLorentzVector fPos
 volume id
 
TLorentzVector fMom
 position at entrance
 
Double_t fTime
 momentum at entrance
 
Double_t fLength
 time
 
Double_t fELoss
 length
 
Double_t det_zPos
 energy loss
 
Double_t det_xGlassPos
 z-position of veto station
 
Double_t det_yGlassPos
 x-size of Active Glass plates
 
Double_t det_zGlassPos
 y-size of Active Glass plates
 
Double_t det_xGlassBorderPos
 z-size of Active Glass plates
 
Double_t det_yGlassBorderPos
 x-size of Inactive Glass plates
 
Double_t det_zGlassBorderPos
 y-size of Inactive Glass plates
 
Double_t det_xPMMAPos
 z-size of Inactive Glass plates
 
Double_t det_yPMMAPos
 x-size of PMMA box
 
Double_t det_zPMMAPos
 y-size of PMMA box
 
Double_t det_dxPMMAPos
 z-size of PMMA box
 
Double_t det_dyPMMAPos
 x-thickness of PMMA box
 
Double_t det_dzPMMAPos
 y-thickness of PMMA box
 
Double_t det_xFreonSF6Pos
 z-thickness of PMMA box
 
Double_t det_yFreonSF6Pos
 x-size of gas gap
 
Double_t det_zFreonSF6Pos
 y-size of gas gap
 
Double_t det_xFreonSF6Pos_2
 z-size of gas gap
 
Double_t det_yFreonSF6Pos_2
 x-size of gas gap
 
Double_t det_zFreonSF6Pos_2
 y-size of gas gap
 
Double_t det_xFR4Pos
 z-size of gas gap
 
Double_t det_yFR4Pos
 x-size of FR4 box
 
Double_t det_zFR4Pos
 y-size of FR4 box
 
Double_t det_xAlPos
 z-size of FR4 box
 
Double_t det_yAlPos
 x-size of Aluminium box
 
Double_t det_zAlPos
 y-size of Aluminium box
 
Double_t det_dxAlPos
 z-size of Aluminium box
 
Double_t det_dyAlPos
 x-thickness of Aluminium box
 
Double_t det_dzAlPos
 y-thickness of Aluminium box
 
Double_t det_xAirPos
 z-thickness of Aluminium box
 
Double_t det_yAirPos
 x-size of Aluminium box
 
Double_t det_zAirPos
 y-size of Aluminium box
 
Double_t det_xStripPos64
 z-size of Aluminium box
 
Double_t det_yStripPos64
 x-size of Strip for modules with 64 strips
 
Double_t det_xStripPos
 y-size of Strip for modules with 64 strips
 
Double_t det_yStripPos
 x-size of Strip for modules with 32 strips
 
Double_t det_zStripPos
 y-size of Strip for modules with 32 strips
 
Double_t xbox_fulldet = 233.4
 z-size of Strip
 
Double_t ybox_fulldet = 507
 
Double_t zbox_fulldet = 17.0024
 
Double_t z_space_layers = 0.2
 
Double_t extra_y = 6.5
 

Additional Inherited Members

- Protected Member Functions inherited from ShipHit
 ClassDef (ShipHit, 1)
 
- Protected Attributes inherited from ShipHit
Float_t fdigi
 digitized detector hit
 
Int_t fDetectorID
 Detector unique identifier.
 

Detailed Description

Definition at line 12 of file UpstreamTaggerHit.h.

Constructor & Destructor Documentation

◆ UpstreamTaggerHit() [1/3]

UpstreamTaggerHit::UpstreamTaggerHit ( )

Default constructor

Definition at line 25 of file UpstreamTaggerHit.cxx.

26 : ShipHit()
27{
28 flag = true;
29}
ShipHit()
Definition ShipHit.cxx:5

◆ UpstreamTaggerHit() [2/3]

UpstreamTaggerHit::UpstreamTaggerHit ( UpstreamTaggerPoint p,
UpstreamTagger c,
Double_t  t0 
)

Definition at line 33 of file UpstreamTaggerHit.cxx.

34 : ShipHit()
35{
36
37 fDetectorID = p->GetDetectorID();
38 c0 = c;
39
40 Double_t a1, b1, c1;
41 a1 = p->GetX(); b1 = p->GetY(); c1 = p->GetZ();
42 const Double_t * point1[3];
43 point1[0] = &a1; point1[1] = &b1; point1[2] = &c1;
44 point_final[0] = *point1[0];point_final[1] = *point1[1];point_final[2] = *point1[2];
45
46 Double_t a2, b2, c2;
47 a2 = p->GetPx(); b2 = p->GetPy(); c2 = p->GetPz();
48 mom[0] = &a2; mom[1] = &b2; mom[2] = &c2;
49
50 Float_t lpos, lneg;
51 Dist(p->GetX(), lpos, lneg);
52 Double_t sigma = T_resol; // in ns
53 t_1 = gRandom->Gaus( 0, sigma ) + lneg/v_drift + t0 + p->GetTime();
54 t_2 = gRandom->Gaus( 0, sigma ) + lpos/v_drift + t0 + p->GetTime();
55
56}
Int_t fDetectorID
Detector unique identifier.
Definition ShipHit.h:58
const Double_t * mom[3]
Float_t t_2
TDC on both sides.
UpstreamTagger * c0
void Dist(Float_t x, Float_t &lpos, Float_t &lneg)
c
Definition hnl.py:100
c1
Definition radio.py:23

◆ ~UpstreamTaggerHit()

UpstreamTaggerHit::~UpstreamTaggerHit ( )
virtual

Destructor

Definition at line 60 of file UpstreamTaggerHit.cxx.

60{ }

◆ UpstreamTaggerHit() [3/3]

UpstreamTaggerHit::UpstreamTaggerHit ( const UpstreamTaggerHit point)
private

Member Function Documentation

◆ ClassDef()

UpstreamTaggerHit::ClassDef ( UpstreamTaggerHit  ,
 
)
private

z-position of veto station

◆ Dist()

void UpstreamTaggerHit::Dist ( Float_t  x,
Float_t &  lpos,
Float_t &  lneg 
)

Definition at line 97 of file UpstreamTaggerHit.cxx.

97 {
98
99 Double_t hit_final;
100 Int_t mod;
101 TGeoNode* node = GetNode(hit_final, mod);
102 auto shape = dynamic_cast<TGeoBBox*>(node->GetVolume()->GetShape());
103 TVector3 pos = GetXYZ();
104 if(mod > 0 && mod < 6){
105 lpos = TMath::Abs( pos.X() + 114.5 - hit_final ); // strip length = 229 cm in x
106 lneg = TMath::Abs( pos.X() - 114.5 - hit_final );
107 }
108 else if (mod >= 6){
109 lpos = TMath::Abs( pos.Y() + 55.5 - hit_final ); // strip length = 111 cm in y
110 lneg = TMath::Abs( pos.Y() - 55.5 - hit_final );
111 }
112}
TGeoNode * GetNode(Double_t &hit_final, Int_t &mod)

◆ GetGlass()

Int_t UpstreamTaggerHit::GetGlass ( ) const
inline

Definition at line 45 of file UpstreamTaggerHit.h.

45{return RpcGlass;}

◆ GetMeasurements()

std::vector< double > UpstreamTaggerHit::GetMeasurements ( )

Definition at line 89 of file UpstreamTaggerHit.cxx.

89 {
90 std::vector<double> m;
91 m.push_back( t_1);
92 m.push_back( t_2);
93 return m;
94}
Double_t m

◆ GetModule()

Int_t UpstreamTaggerHit::GetModule ( ) const
inline

Definition at line 44 of file UpstreamTaggerHit.h.

44{return RpcModule;}

◆ GetNeighbour()

Int_t UpstreamTaggerHit::GetNeighbour ( ) const
inline

Definition at line 47 of file UpstreamTaggerHit.h.

◆ GetNode()

TGeoNode * UpstreamTaggerHit::GetNode ( Double_t &  hit_final,
Int_t &  mod 
)

Definition at line 147 of file UpstreamTaggerHit.cxx.

148{
149 TGeoNavigator* nav = gGeoManager->GetCurrentNavigator();
150 mod = 0;
151
152 Double_t XHit1 = point_final[0];
153 Double_t YHit1 = point_final[1];
154 Double_t ZHit1 = point_final[2];
155
156 const Double_t PxHit1 = *mom[0];
157 const Double_t PyHit1 = *mom[1];
158 const Double_t PzHit1 = *mom[2];
159
160 Double_t Ymodule1 = -1000;
161 Double_t Zmodule1 = 0;
162 Double_t Xmodule11 = -1000;
163 Double_t Zmodule11 = 0;
164 Double_t dist1 = 1000;
165
166 Int_t flag0 = 1;
167
168 c0->ybox_fulldet = 499; //resize box to define the modules position from active area of the detectors (discounting the aluminium box + acrilic)
169
170 //First Layer of full Rpc detector covering 2.23 x 4.99 meters with 32 strips
171 c0->module[1][0] = 0; c0->module[1][1] = ((c0->ybox_fulldet/2.0) - ((c0->det_yGlassPos)/2.0)); c0->module[1][2] = (-(c0->zbox_fulldet/2.0) + (c0->det_zAlPos/2.0) + c0->det_dzAlPos);
172 c0->module[2][0] = 0; c0->module[2][1] = 0; c0->module[2][2] = (-(c0->zbox_fulldet/2.0) + (c0->det_zAlPos/2.0) + c0->det_dzAlPos);
173 c0->module[3][0] = 0; c0->module[3][1] = -((c0->ybox_fulldet/2.0) - ((c0->det_yGlassPos)/2.0)); c0->module[3][2] = (-(c0->zbox_fulldet/2.0) + (c0->det_zAlPos/2.0) + c0->det_dzAlPos);
174
175 //Second Layer of full Rpc detector covering 2.23 x 4.99 meters with 32 strips
176 c0->module[4][0] = 0; c0->module[4][1] = ((c0->ybox_fulldet/2.0) - ((c0->det_yGlassPos)) - ((c0->det_yGlassPos)/2.0) + c0->extra_y); c0->module[4][2] = (-(c0->zbox_fulldet/2.0) + c0->det_zAlPos + c0->det_dzAlPos*3.0 + c0->z_space_layers + (c0->det_zAlPos/2.0));
177 c0->module[5][0] = 0; c0->module[5][1] = -((c0->ybox_fulldet/2.0) - ((c0->det_yGlassPos)) - ((c0->det_yGlassPos)/2.0) + c0->extra_y); c0->module[5][2] = (-(c0->zbox_fulldet/2.0) + c0->det_zAlPos + c0->det_dzAlPos*3.0 + c0->z_space_layers + (c0->det_zAlPos/2.0));
178
179 //Third Layer of full Rpc detector covering 2.23 x 4.99 meters with 64 strips
180 c0->module[6][0] = 0; c0->module[6][1] = ((c0->ybox_fulldet/2.0) - ((c0->det_yGlassPos)/2.0)); c0->module[6][2] = (-(c0->zbox_fulldet/2.0) + (c0->det_zAlPos*2.0) + c0->det_dzAlPos*5.0 + (c0->z_space_layers*2.0) + (c0->det_zAlPos/2.0));
181 c0->module[7][0] = 0; c0->module[7][1] = 0; c0->module[7][2] = (-(c0->zbox_fulldet/2.0) + (c0->det_zAlPos*2.0) + c0->det_dzAlPos*5.0 + (c0->z_space_layers*3.0) + (c0->det_zAlPos/2.0));
182 c0->module[8][0] = 0; c0->module[8][1] = -((c0->ybox_fulldet/2.0) - ((c0->det_yGlassPos)/2.0)); c0->module[8][2] = (-(c0->zbox_fulldet/2.0) + (c0->det_zAlPos*2.0) + c0->det_dzAlPos*5.0 + (c0->z_space_layers*2.0) + (c0->det_zAlPos/2.0));
183
184 //Fourth Layer of full Rpc detector covering 2.23 x 4.99 meters with 64 strips
185 c0->module[9][0] = 0; c0->module[9][1] = ((c0->ybox_fulldet/2.0) - ((c0->det_yGlassPos)) - ((c0->det_yGlassPos)/2.0) + c0->extra_y); c0->module[9][2] = (-(c0->zbox_fulldet/2.0) + (c0->det_zAlPos*3.0) + c0->det_dzAlPos*7.0 + (c0->z_space_layers*3.0) + (c0->det_zAlPos/2.0));
186 c0->module[10][0] = 0; c0->module[10][1] = -((c0->ybox_fulldet/2.0) - ((c0->det_yGlassPos)) - ((c0->det_yGlassPos)/2.0) + c0->extra_y); c0->module[10][2] = (-(c0->zbox_fulldet/2.0) + (c0->det_zAlPos*3.0) + c0->det_dzAlPos*7.0 + (c0->z_space_layers*3.0) + (c0->det_zAlPos/2.0));
187
188
189 for(int i = 1; i<= 10; i++){
190
191 if(XHit1 >= c0->module[i][0] - (c0->det_xGlassPos)/2.0 && XHit1 <= c0->module[i][0] + (c0->det_xGlassPos)/2.0 && YHit1 >= c0->module[i][1] - (c0->det_yGlassPos)/2.0 && YHit1 <= c0->module[i][1] + (c0->det_yGlassPos)/2.0 && ZHit1 >= c0->det_zPos + (c0->module[i][2] - (c0->det_zAlPos+2*c0->det_dzAlPos)/2.0) && ZHit1 <= c0->det_zPos + (c0->module[i][2] + (c0->det_zAlPos+2*c0->det_dzAlPos)/2.0)){
192
193
194 if(fabs(c0->det_zPos + c0->module[i][2] - ZHit1) < dist1){
195
196 if (flag0){
197 RpcDetector = 1;
198 mod = i;
199 }
200 else{
201 RpcDetector = 2;
202 mod = i+10;
203 }
204
205 if(i < 6){
206 Zmodule1 = c0->det_zPos + c0->module[i][2] + c0->det_zAlPos - c0->det_zStripPos;
207 Ymodule1 = c0->module[i][1] - (c0->det_yGlassPos + 2*c0->det_yGlassBorderPos)/2.0 + 1.5;
208 }
209 else{
210 Zmodule11 = c0->det_zPos + c0->module[i][2] + c0->det_zAlPos - c0->det_zStripPos;
211 Xmodule11 = c0->module[i][0] - (c0->det_xGlassPos + 2*c0->det_xGlassBorderPos)/2.0 + 2.175;
212 }
213 dist1 = fabs(c0->det_zPos + c0->module[i][2] - ZHit1);
214 }
215 }
216 if(i == 10 && flag0){
217 Double_t tmp = -c0->module[6][2];
218 Double_t tmp1 = -c0->module[4][2];
219 Double_t tmp2 = -c0->module[1][2];
220
221 c0->module[1][2] = -c0->module[9][2];
222 c0->module[2][2] = -c0->module[9][2];
223 c0->module[3][2] = -c0->module[9][2];
224 c0->module[4][2] = tmp;
225 c0->module[5][2] = tmp;
226
227 c0->module[6][2] = tmp1;
228 c0->module[7][2] = tmp1;
229 c0->module[8][2] = tmp1;
230 c0->module[9][2] = tmp2;
231 c0->module[10][2] = tmp2;
232
233 i = 0;
234 flag0 = 0;
235 }
236 }
237
238 Double_t glass = -1;
239 if(fDetectorID == 169)
240 glass = 1;
241 else if(fDetectorID == 170)
242 glass = 2;
243 else if(fDetectorID == 171)
244 glass = 3;
245 if(fDetectorID == 238)
246 glass = 4;
247 else if(fDetectorID == 239)
248 glass = 5;
249 else if(fDetectorID == 240)
250 glass = 6;
251
252 Int_t Strip = -1;
253 Int_t str = -1;
254 Double_t X = -1;
255 Double_t Y = -1;
256
257 if(Zmodule1 != 0){
258
259 Double_t Z = Zmodule1 - ZHit1;
260 X = XHit1 + (Z*(PxHit1/TMath::Sqrt(PxHit1*PxHit1 + PyHit1*PyHit1 + PzHit1*PzHit1)));
261 Y = YHit1 + (Z*(PyHit1/TMath::Sqrt(PxHit1*PxHit1 + PyHit1*PyHit1 + PzHit1*PzHit1)));
262
263 Double_t count_strips = -1;
264 Int_t counter = 0;
265
266 for(int i = 1; i <= 32; i++){
267
268 count_strips = Ymodule1 + i*(c0->det_yStripPos+0.15);
269 counter++;
270
271 if(Y >= (count_strips - 3.25) && Y < count_strips){
272
273 if(Y > count_strips - 0.075)
274 Strip = counter + 1;
275 else
276 Strip = counter;
277
278 if(Y > count_strips - (3.25/2.0))
279 str = 2;
280 else
281 str = 1;
282
283 break;
284 }
285 }
286 }
287
288 if(Zmodule11 != 0){
289
290 Double_t Z = Zmodule11 - ZHit1;
291 X = XHit1 + (Z*(PxHit1/TMath::Sqrt(PxHit1*PxHit1 + PyHit1*PyHit1 + PzHit1*PzHit1)));
292 Y = YHit1 + (Z*(PyHit1/TMath::Sqrt(PxHit1*PxHit1 + PyHit1*PyHit1 + PzHit1*PzHit1)));
293
294 Double_t count_strips = -1;
295 Int_t counter = 0;
296
297 for(int i = 1; i <= 64; i++){
298
299 count_strips = Xmodule11 + i*(c0->det_xStripPos64+0.15);
300 counter++;
301
302 if(X >= (count_strips - 3.45) && X < count_strips){
303
304 if(X > count_strips - 0.075)
305 Strip = counter + 1;
306 else
307 Strip = counter;
308
309 if(X > count_strips - (3.45/2.0))
310 str = 2;
311 else
312 str = 1;
313
314 break;
315 }
316 }
317 }
318
319 RpcModule = mod;
320 RpcGlass = glass;
321 RpcStrip = Strip;
323
324 if(Zmodule1 != 0)
325 hit_final = X;
326 if(Zmodule11 != 0)
327 hit_final = Y;
328
329 TString path, path1;
330
331 if(mod >=6 && mod <= 10 || mod >= 16){
332 path = "/cave_1/Upstream_Tagger_1/UpstreamTagger1_";path+=mod;path+="/glass_upstreamtagger_";path+=fDetectorID;
333 Bool_t rc = nav->cd(path);
334 }
335 else{
336 path1 = "/cave_1/Upstream_Tagger_1/UpstreamTagger_";path1+=mod;path1+="/glass_upstreamtagger_";path1+=fDetectorID;
337 Bool_t rc = nav->cd(path1);
338 }
339
340 return nav->GetCurrentNode();
341}
Int_t counter
Double_t det_xGlassBorderPos
z-size of Active Glass plates
Double_t det_zStripPos
y-size of Strip for modules with 32 strips
Double_t z_space_layers
Double_t det_yGlassBorderPos
x-size of Inactive Glass plates
Double_t module[11][3]
Double_t det_zAlPos
y-size of Aluminium box
Double_t det_dzAlPos
y-thickness of Aluminium box
Double_t ybox_fulldet
Double_t det_xGlassPos
z-position of veto station
Double_t det_xStripPos64
z-size of Aluminium box
Double_t det_yStripPos
x-size of Strip for modules with 32 strips
Double_t det_zPos
energy loss
Double_t det_yGlassPos
x-size of Active Glass plates
Double_t zbox_fulldet
int i
Definition ShipAna.py:86

◆ GetRpcDetector()

Int_t UpstreamTaggerHit::GetRpcDetector ( ) const
inline

Definition at line 48 of file UpstreamTaggerHit.h.

48{return RpcDetector;}

◆ GetStrip()

Int_t UpstreamTaggerHit::GetStrip ( ) const
inline

Definition at line 46 of file UpstreamTaggerHit.h.

46{return RpcStrip;}

◆ GetTime() [1/2]

std::vector< double > UpstreamTaggerHit::GetTime ( )

Definition at line 75 of file UpstreamTaggerHit.cxx.

75 {
76 TGeoBBox* shape = (TGeoBBox*)gGeoManager->GetVolume("UpstreamTagger")->GetShape();
77 Double_t t0;
78 if(RpcModule < 6)
79 t0 = (t_1+t_2)/2. - 114.5/v_drift;// strip length = 229 cm in x
80 else
81 t0 = (t_1+t_2)/2. - 55.5/v_drift;// strip length = 111 cm in y
82 Double_t dt = T_resol;
83 std::vector<double> m;
84 m.push_back(t0);
85 m.push_back(dt);
86 return m;
87}

◆ GetTime() [2/2]

std::vector< double > UpstreamTaggerHit::GetTime ( Double_t  x)

Definition at line 63 of file UpstreamTaggerHit.cxx.

63 {
64 // calculate distance to left and right end
65 Float_t lpos, lneg;
66 Dist(x, lpos, lneg);
67 Double_t dt = T_resol;
68 Double_t t = ( (t_1-lneg/v_drift) + (t_2-lpos/v_drift) )/2;
69 std::vector<double> m;
70 m.push_back(t);
71 m.push_back(dt);
72 return m;
73}

◆ GetX()

Double_t UpstreamTaggerHit::GetX ( )

Accessors

Definition at line 129 of file UpstreamTaggerHit.cxx.

130{ TVector3 pos = GetXYZ();
131 return pos.X();
132}

◆ GetXYZ()

TVector3 UpstreamTaggerHit::GetXYZ ( )

Definition at line 114 of file UpstreamTaggerHit.cxx.

115{
116 Double_t hit_final;
117 Int_t mod;
118 TGeoNavigator* nav = gGeoManager->GetCurrentNavigator();
119 TGeoNode* node = GetNode(hit_final, mod);
120 auto shape = dynamic_cast<TGeoBBox*>(node->GetVolume()->GetShape());
121 Double_t origin[3] = {shape->GetOrigin()[0],shape->GetOrigin()[1],shape->GetOrigin()[2]};
122 Double_t master[3] = {0,0,0};
123 nav->LocalToMaster(origin,master);
124 TVector3 pos = TVector3(master[0],master[1],master[2]);
125 return pos;
126}
origin(sTree, it)

◆ GetY()

Double_t UpstreamTaggerHit::GetY ( )

Definition at line 135 of file UpstreamTaggerHit.cxx.

136{ TVector3 pos = GetXYZ();
137 return pos.Y();
138}

◆ GetZ()

Double_t UpstreamTaggerHit::GetZ ( )

Definition at line 141 of file UpstreamTaggerHit.cxx.

142{ TVector3 pos = GetXYZ();
143 return pos.Z();
144}

◆ isValid()

bool UpstreamTaggerHit::isValid ( ) const
inline

Definition at line 51 of file UpstreamTaggerHit.h.

51{return flag;}

◆ operator=()

UpstreamTaggerHit UpstreamTaggerHit::operator= ( const UpstreamTaggerHit point)
private

◆ Print()

void UpstreamTaggerHit::Print ( ) const
virtual

Output to screen

Definition at line 344 of file UpstreamTaggerHit.cxx.

345{
346 cout << "-I- UpstreamTaggerHit: UpstreamTagger hit " << " in detector " << fDetectorID << endl;
347 cout << " TDC left " << t_1 << " ns TDC right " << t_2 << " ns" << endl;
348}

◆ setInvalid()

void UpstreamTaggerHit::setInvalid ( )
inline

Definition at line 42 of file UpstreamTaggerHit.h.

42{flag = false;}

◆ setIsValid()

void UpstreamTaggerHit::setIsValid ( )
inline

Definition at line 43 of file UpstreamTaggerHit.h.

43{flag = true;}

◆ SetPoint()

void UpstreamTaggerHit::SetPoint ( Double_t  p1,
Double_t  p2,
Double_t  p3 
)
inline

Definition at line 37 of file UpstreamTaggerHit.h.

37{point_final[0]=p1;point_final[1]=p2;point_final[2]=p3;}

◆ SetTDC()

void UpstreamTaggerHit::SetTDC ( Float_t  val1,
Float_t  val2 
)
inline

Modifier

Definition at line 36 of file UpstreamTaggerHit.h.

36{t_1=val1;t_2=val2;}

Member Data Documentation

◆ c0

UpstreamTagger* UpstreamTaggerHit::c0
private

Definition at line 58 of file UpstreamTaggerHit.h.

◆ det_zdet1

Double_t UpstreamTaggerHit::det_zdet1
private

Definition at line 69 of file UpstreamTaggerHit.h.

◆ flag

Float_t UpstreamTaggerHit::flag
private

flag

Definition at line 62 of file UpstreamTaggerHit.h.

◆ mom

const Double_t* UpstreamTaggerHit::mom[3]
private

Definition at line 60 of file UpstreamTaggerHit.h.

◆ point_final

Double_t UpstreamTaggerHit::point_final[3]
private

Definition at line 59 of file UpstreamTaggerHit.h.

◆ Rpc_NeighbourStrip

Int_t UpstreamTaggerHit::Rpc_NeighbourStrip
private

Definition at line 68 of file UpstreamTaggerHit.h.

◆ RpcDetector

Int_t UpstreamTaggerHit::RpcDetector
private

Definition at line 67 of file UpstreamTaggerHit.h.

◆ RpcGlass

Int_t UpstreamTaggerHit::RpcGlass
private

Definition at line 65 of file UpstreamTaggerHit.h.

◆ RpcModule

Int_t UpstreamTaggerHit::RpcModule
private

Definition at line 64 of file UpstreamTaggerHit.h.

◆ RpcStrip

Int_t UpstreamTaggerHit::RpcStrip
private

Definition at line 66 of file UpstreamTaggerHit.h.

◆ t_1

Float_t UpstreamTaggerHit::t_1
private

Definition at line 63 of file UpstreamTaggerHit.h.

◆ t_2

Float_t UpstreamTaggerHit::t_2
private

TDC on both sides.

Definition at line 63 of file UpstreamTaggerHit.h.

◆ T_resol

Double_t UpstreamTaggerHit::T_resol = 0.283
private

Definition at line 56 of file UpstreamTaggerHit.h.

◆ v_drift

Double_t UpstreamTaggerHit::v_drift = 17.7
private

Definition at line 55 of file UpstreamTaggerHit.h.


The documentation for this class was generated from the following files: