#include <TimeDet.h>
|
| | TimeDet (const char *Name, Bool_t Active) |
| |
| | TimeDet () |
| |
| Bool_t | ProcessHits (FairVolume *v=0) override |
| |
| void | SetZposition (Double_t z) |
| |
| void | SetBarZspacing (Double_t row, Double_t column) |
| |
| void | SetBarZ (Double_t dz) |
| |
| void | SetSizeX (Double_t x) |
| |
| void | SetSizeY (Double_t y) |
| |
| double | GetXCol (int ic) const |
| |
| double | GetYRow (int ir) const |
| |
| void | GetBarRowCol (int ib, int &irow, int &icol) const |
| |
| double | GetZBar (int ir, int ic) const |
| |
| void | ConstructGeometry () override |
| |
| | Detector ()=default |
| |
| | Detector (const char *Name, Bool_t Active, Int_t detID) |
| |
| | Detector (const char *Name, Bool_t Active) |
| |
| | ~Detector () override=default |
| |
| TimeDetPoint * | AddHit (Args &&... args) |
| |
| void | ConstructGeometry () override=0 |
| |
| void | Initialize () override |
| |
| void | Reset () override |
| |
| void | EndOfEvent () override |
| |
| void | Register () override |
| |
| TClonesArray * | GetCollection (Int_t iColl) const override |
| |
| void | UpdatePointTrackIndices (const std::map< Int_t, Int_t > &indexMap) override |
| | Update track indices in point collection after track filtering.
|
| |
| void | SetSpecialPhysicsCuts () override |
| |
| void | FinishPrimary () override |
| |
| void | FinishRun () override |
| |
| void | BeginPrimary () override |
| |
| void | PostTrack () override |
| |
| void | PreTrack () override |
| |
| void | BeginEvent () override |
| |
| void | CopyClones (TClonesArray *cl1, TClonesArray *cl2, Int_t offset) override |
| |
| virtual void | UpdatePointTrackIndices (const std::map< Int_t, Int_t > &indexMap)=0 |
| | Update track indices in point collection after track filtering.
|
| |
| virtual | ~ISTLPointContainer ()=default |
| |
|
| Double_t | fzPos |
| |
| Double_t | fxSize |
| | z-position of veto station
|
| |
| Double_t | fySize |
| | width of the detector
|
| |
| Double_t | fxBar |
| | height of the detector
|
| |
| Double_t | fyBar |
| | length of the bar
|
| |
| Double_t | fzBar |
| | width of the bar
|
| |
| Double_t | fdzBarCol |
| | depth of the bar
|
| |
| Double_t | fdzBarRow |
| | z-distance between columns
|
| |
| Int_t | fNCol |
| | z-distance between rows
|
| |
| Int_t | fNRow |
| | Number of columns.
|
| |
| Double_t | fxCenter |
| | Number of rows.
|
| |
| Double_t | fyCenter |
| | x-position of the detector center
|
| |
| Int_t | fNBars |
| | y-position of the detector center
|
| |
| Double_t | fxOv |
| | Number of bars.
|
| |
| Double_t | fyOv |
| | Overlap along x.
|
| |
Definition at line 19 of file TimeDet.h.
◆ TimeDet() [1/3]
| TimeDet::TimeDet |
( |
const char * |
Name, |
|
|
Bool_t |
Active |
|
) |
| |
Name : Detector Name Active: kTRUE for active detectors (ProcessHits() will be called) kFALSE for inactive detectors
Definition at line 67 of file TimeDet.cxx.
69
85 else
89 else
91}
Double_t fxSize
z-position of veto station
Double_t fxBar
height of the detector
Double_t fyOv
Overlap along x.
Double_t fxCenter
Number of rows.
Int_t fNRow
Number of columns.
Int_t fNBars
y-position of the detector center
Double_t fdzBarRow
z-distance between columns
Double_t fySize
width of the detector
Double_t fyBar
length of the bar
Double_t fyCenter
x-position of the detector center
Double_t fzBar
width of the bar
Int_t fNCol
z-distance between rows
Double_t fdzBarCol
depth of the bar
Double_t fxOv
Number of bars.
◆ TimeDet() [2/3]
◆ TimeDet() [3/3]
| TimeDet::TimeDet |
( |
const TimeDet & |
| ) |
|
|
privatedelete |
◆ ConstructGeometry()
| void TimeDet::ConstructGeometry |
( |
| ) |
|
|
overridevirtual |
Create the detector geometry
Implements SHiP::Detector< TimeDetPoint >.
Definition at line 151 of file TimeDet.cxx.
151 {
152 TGeoVolume*
top = gGeoManager->GetTopVolume();
153
155 TGeoMedium* Scint = gGeoManager->GetMedium("polyvinyltoluene");
156
158
159 fDetector =
new TGeoVolumeAssembly(
"Timing Detector");
160
161 TGeoVolume* plate =
162 gGeoManager->MakeBox(
"TimeDet", Scint,
fxBar / 2,
fyBar / 2,
fzBar / 2);
163 plate->SetLineColor(kBlue);
164 AddSensitiveVolume(plate);
165
167 int irow = 0, icol = 0;
169
170 double xbar = 0, ybar = 0, zbar = 0;
174
175 fDetector->AddNode(plate, ib,
new TGeoTranslation(xbar, ybar, zbar));
176
177
178
179 }
180
182
184
185 return;
186}
void GetBarRowCol(int ib, int &irow, int &icol) const
double GetXCol(int ic) const
double GetZBar(int ir, int ic) const
double GetYRow(int ir) const
Int_t InitMedium(const char *name)
◆ GetBarRowCol()
| void TimeDet::GetBarRowCol |
( |
int |
ib, |
|
|
int & |
irow, |
|
|
int & |
icol |
|
) |
| const |
◆ GetXCol()
| double TimeDet::GetXCol |
( |
int |
ic | ) |
const |
◆ GetYRow()
| double TimeDet::GetYRow |
( |
int |
ir | ) |
const |
◆ GetZBar()
| double TimeDet::GetZBar |
( |
int |
ir, |
|
|
int |
ic |
|
) |
| const |
◆ operator=()
◆ ProcessHits()
| Bool_t TimeDet::ProcessHits |
( |
FairVolume * |
v = 0 | ) |
|
|
override |
this method is called for each step during simulation (see FairMCApplication::Stepping())
This method is called from the MC stepping
Definition at line 93 of file TimeDet.cxx.
93 {
95
96 if (
gMC->IsTrackEntering()) {
102 }
103
104
106
107
108 if (
gMC->IsTrackExiting() ||
gMC->IsTrackStop() ||
109 gMC->IsTrackDisappeared()) {
111 return kFALSE;
112 }
113
114 fTrackID =
gMC->GetStack()->GetCurrentTrackNumber();
116 Int_t uniqueId;
117 gMC->CurrentVolID(uniqueId);
118 if (uniqueId > 1000000)
119 {
120 Int_t vcpy;
121 gMC->CurrentVolOffID(1, vcpy);
122 if (vcpy == 5) uniqueId += 4;
123 }
124
125 TParticle*
p =
gMC->GetStack()->GetCurrentTrack();
126 Int_t pdgCode =
p->GetPdgCode();
127 TLorentzVector Pos;
128 gMC->TrackPosition(Pos);
129 TLorentzVector Mom;
130 gMC->TrackMomentum(Mom);
131 Double_t xmean = (
fPos.X() + Pos.X()) / 2.;
132 Double_t ymean = (
fPos.Y() + Pos.Y()) / 2.;
133 Double_t zmean = (
fPos.Z() + Pos.Z()) / 2.;
134
135
136
137
140 pdgCode, TVector3(Pos.X(), Pos.Y(), Pos.Z()),
141 TVector3(Mom.Px(), Mom.Py(), Mom.Pz()));
142
143
146 }
147
148 return kTRUE;
149}
Int_t fTrackID
event index
TLorentzVector fPos
volume id
Double_t fTime
momentum at entrance
TimeDetPoint * AddHit(Args &&... args)
TLorentzVector fMom
position at entrance
◆ SetBarZ()
| void TimeDet::SetBarZ |
( |
Double_t |
dz | ) |
|
|
inline |
◆ SetBarZspacing()
| void TimeDet::SetBarZspacing |
( |
Double_t |
row, |
|
|
Double_t |
column |
|
) |
| |
|
inline |
◆ SetSizeX()
| void TimeDet::SetSizeX |
( |
Double_t |
x | ) |
|
|
inline |
◆ SetSizeY()
| void TimeDet::SetSizeY |
( |
Double_t |
y | ) |
|
|
inline |
◆ SetZposition()
| void TimeDet::SetZposition |
( |
Double_t |
z | ) |
|
|
inline |
Sets detector position along z
Definition at line 36 of file TimeDet.h.
◆ fdzBarCol
| Double_t TimeDet::fdzBarCol |
|
private |
depth of the bar
Definition at line 64 of file TimeDet.h.
◆ fdzBarRow
| Double_t TimeDet::fdzBarRow |
|
private |
z-distance between columns
Definition at line 65 of file TimeDet.h.
◆ fNBars
y-position of the detector center
Definition at line 73 of file TimeDet.h.
◆ fNCol
z-distance between rows
Definition at line 67 of file TimeDet.h.
◆ fNRow
Number of columns.
Definition at line 68 of file TimeDet.h.
◆ fxBar
height of the detector
Definition at line 60 of file TimeDet.h.
◆ fxCenter
| Double_t TimeDet::fxCenter |
|
private |
Number of rows.
Definition at line 70 of file TimeDet.h.
◆ fxOv
Number of bars.
Definition at line 74 of file TimeDet.h.
◆ fxSize
z-position of veto station
Definition at line 57 of file TimeDet.h.
◆ fyBar
length of the bar
Definition at line 61 of file TimeDet.h.
◆ fyCenter
| Double_t TimeDet::fyCenter |
|
private |
x-position of the detector center
Definition at line 71 of file TimeDet.h.
◆ fyOv
Overlap along x.
Definition at line 75 of file TimeDet.h.
◆ fySize
width of the detector
Definition at line 58 of file TimeDet.h.
◆ fzBar
width of the bar
Definition at line 62 of file TimeDet.h.
◆ fzPos
Detector parameters.
Definition at line 55 of file TimeDet.h.
The documentation for this class was generated from the following files: