FairShip
Loading...
Searching...
No Matches
strawtubes.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-3.0-or-later
2// SPDX-FileCopyrightText: Copyright CERN for the benefit of the SHiP
3// Collaboration
4
5#ifndef STRAWTUBES_STRAWTUBES_H_
6#define STRAWTUBES_STRAWTUBES_H_
7
8#include <array>
9#include <map>
10#include <vector>
11
12#include "Detector.h"
13#include "TLorentzVector.h"
14#include "TVector3.h"
15
16class strawtubesPoint;
17class FairVolume;
18class TClonesArray;
19class strawtubes : public SHiP::Detector<strawtubesPoint> {
20 public:
25 strawtubes(const char* Name, Bool_t Active);
26
27 explicit strawtubes(std::string medium);
28
30 strawtubes();
31
35 Bool_t ProcessHits(FairVolume* v = 0) override;
36
37 void SetzPositions(Double_t z1, Double_t z2, Double_t z3, Double_t z4);
38 void SetApertureArea(Double_t width, Double_t height);
39 void SetStrawDiameter(Double_t outer_straw_diameter, Double_t wall_thickness);
40 void SetStrawPitch(Double_t straw_pitch, Double_t layer_offset);
41 void SetDeltazLayer(Double_t delta_z_layer);
42 void SetStereoAngle(Double_t stereo_angle);
43 void SetWireThickness(Double_t wire_thickness);
44 void SetFrameMaterial(TString frame_material);
45 void SetDeltazView(Double_t delta_z_view);
46 void SetStationEnvelope(Double_t x, Double_t y, Double_t z);
47 static std::array<Int_t, 4> StrawDecode(Int_t detID);
48 static void StrawEndPoints(Int_t detID, TVector3& top, TVector3& bot);
49 // for the digitizing step
50 void SetStrawResolution(Double_t a, Double_t b) {
51 v_drift = a;
52 sigma_spatial = b;
53 }
54 Double_t StrawVdrift() { return v_drift; }
55 Double_t StrawSigmaSpatial() { return sigma_spatial; }
56
58 void ConstructGeometry() override;
59
60 private:
64 Double_t f_T1_z;
65 Double_t f_T2_z;
66 Double_t f_T3_z;
67 Double_t f_T4_z;
72 Double_t f_straw_pitch;
73 Double_t f_offset_layer;
74 Double_t f_delta_z_layer;
75 Double_t f_view_angle;
78 Double_t f_delta_z_view;
79 Double_t f_station_width;
82 Double_t v_drift;
83 Double_t sigma_spatial;
84 std::string fMedium;
87 strawtubes(const strawtubes&) = delete;
88 strawtubes& operator=(const strawtubes&) = delete;
89 ClassDefOverride(strawtubes, 8)
90};
91
92#endif // STRAWTUBES_STRAWTUBES_H_
strawtubes(const strawtubes &)=delete
vacuum box medium
void SetDeltazView(Double_t delta_z_view)
Definition: strawtubes.cxx:170
std::string fMedium
spatial resolution
Definition: strawtubes.h:84
Double_t f_aperture_width
z-position of tracking station 4
Definition: strawtubes.h:68
Double_t f_inner_straw_diameter
Aperture height (y)
Definition: strawtubes.h:70
Double_t f_station_length
Station envelope height (y)
Definition: strawtubes.h:81
Bool_t ProcessHits(FairVolume *v=0) override
Definition: strawtubes.cxx:53
void SetStrawResolution(Double_t a, Double_t b)
Definition: strawtubes.h:50
void SetDeltazLayer(Double_t delta_z_layer)
Definition: strawtubes.cxx:158
Double_t f_wire_thickness
Stereo view angle.
Definition: strawtubes.h:76
Double_t f_T2_z
z-position of tracking station 1
Definition: strawtubes.h:65
TString f_frame_material
Sense wire thickness.
Definition: strawtubes.h:77
strawtubes & operator=(const strawtubes &)=delete
Double_t StrawSigmaSpatial()
Definition: strawtubes.h:55
static void StrawEndPoints(Int_t detID, TVector3 &top, TVector3 &bot)
Definition: strawtubes.cxx:443
void SetStrawDiameter(Double_t outer_straw_diameter, Double_t wall_thickness)
Definition: strawtubes.cxx:146
void SetzPositions(Double_t z1, Double_t z2, Double_t z3, Double_t z4)
Definition: strawtubes.cxx:133
Double_t f_straw_pitch
Outer Straw diameter.
Definition: strawtubes.h:72
Double_t f_T3_z
z-position of tracking station 2
Definition: strawtubes.h:66
Double_t f_aperture_height
Aperture width (x)
Definition: strawtubes.h:69
Double_t StrawVdrift()
Definition: strawtubes.h:54
Double_t f_delta_z_view
Structure frame material.
Definition: strawtubes.h:78
void SetStrawPitch(Double_t straw_pitch, Double_t layer_offset)
Definition: strawtubes.cxx:153
Double_t f_station_height
Station envelope width (x)
Definition: strawtubes.h:80
void ConstructGeometry() override
Definition: strawtubes.cxx:184
Double_t f_T1_z
Definition: strawtubes.h:64
Double_t f_view_angle
Distance (z) between layers.
Definition: strawtubes.h:75
Double_t v_drift
Station envelope length (z)
Definition: strawtubes.h:82
Double_t f_outer_straw_diameter
Inner Straw diameter.
Definition: strawtubes.h:71
void SetFrameMaterial(TString frame_material)
Definition: strawtubes.cxx:174
Double_t f_station_width
Distance (z) between stereo views.
Definition: strawtubes.h:79
void SetStereoAngle(Double_t stereo_angle)
Definition: strawtubes.cxx:162
void SetWireThickness(Double_t wire_thickness)
Definition: strawtubes.cxx:166
void SetApertureArea(Double_t width, Double_t height)
Definition: strawtubes.cxx:141
void SetStationEnvelope(Double_t x, Double_t y, Double_t z)
Definition: strawtubes.cxx:178
static std::array< Int_t, 4 > StrawDecode(Int_t detID)
Definition: strawtubes.cxx:421
Double_t sigma_spatial
drift velocity
Definition: strawtubes.h:83
Double_t f_offset_layer
Distance (y) between straws in a layer.
Definition: strawtubes.h:73
Double_t f_T4_z
z-position of tracking station 3
Definition: strawtubes.h:67
Double_t f_delta_z_layer
Offset (y) of straws between layers.
Definition: strawtubes.h:74