CbmRoot
Loading...
Searching...
No Matches
CbmTof.h
Go to the documentation of this file.
1/* Copyright (C) 2006-2019 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Volker Friese, Denis Bertini [committer], Christian Simon */
4
5// -------------------------------------------------------------------------
6// ----- CbmTof header file -----
7// ----- Created 28/07/04 by V. Friese -----
8// -------------------------------------------------------------------------
9
18#ifndef CBMTOF_H
19#define CBMTOF_H
20
21
22#include "FairDetector.h"
23
24#include "TLorentzVector.h"
25#include <tuple>
26
27#include <map>
28#include <set>
29
30
31class CbmTofPoint;
33class FairVolume;
34class TClonesArray;
35class TVector3;
36class TGeoCombiTrans;
37class TGeoPhysicalNode;
38
39class CbmTof : public FairDetector {
40
41public:
43 CbmTof();
44
45
50 CbmTof(const char* name, Bool_t active);
51
52
54 virtual ~CbmTof();
55
56 virtual void PreTrack();
57 virtual void FinishEvent();
58
66 virtual Bool_t ProcessHits(FairVolume* vol = 0);
67
68
74 virtual void EndOfEvent();
75
76
81 virtual void Register();
82
83
85 virtual TClonesArray* GetCollection(Int_t iColl) const;
86
87
92 virtual void Print(Option_t* = "") const;
93
94
99 virtual void Reset();
100
101
109 virtual void CopyClones(TClonesArray* cl1, TClonesArray* cl2, Int_t offset);
110
111
116 virtual void ConstructGeometry();
117
119 virtual void Initialize();
120
121 void GenerateOnePointPerTrack(Bool_t bOnePointPerTrack = kTRUE) { fbOnePointPerTrack = bOnePointPerTrack; }
122 void SetProcessAnyTrack(Bool_t bProcess = kTRUE) { fbProcessAnyTrack = bProcess; }
123 void SetAllCountersInactive(Bool_t bInactive = kTRUE) { fbAllCountersInactive = bInactive; }
124
125 void SetCounterActive(Int_t iModuleType, Int_t iModuleIndex, Int_t iCounterIndex);
126
135 void SetCounterInactive(Int_t iModuleType, Int_t iModuleIndex, Int_t iCounterIndex);
136
146 void SetCounterInBeam(Int_t iModuleType, Int_t iModuleIndex, Int_t iCounterIndex);
147
148 Bool_t CheckIfSensitive(std::string name);
149 virtual Bool_t IsSensitive(const std::string& name);
150
151private:
154 Int_t fTrackID;
155 Int_t fVolumeID;
156 TLorentzVector fPos;
157 TLorentzVector fMom;
158 Double32_t fTime;
159 Double32_t fLength;
160 Double32_t fELoss;
161
162 Int_t fPosIndex;
163 TClonesArray* fTofCollection;
165
166 TGeoCombiTrans* fCombiTrans;
167
168 std::string fVolumeName;
169
172
173 TString fTofNodePath;
178
179 std::set<std::tuple<Int_t, Int_t, Int_t>> fActiveCounters;
180 std::set<std::tuple<Int_t, Int_t, Int_t>> fInactiveCounters;
181 std::set<Int_t> fInactiveCounterIDs;
182
183 std::map<std::tuple<Int_t, Int_t, Int_t>, std::pair<TString, TGeoPhysicalNode*>>
185
187
189
191
196 CbmTofPoint* AddHit(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length,
197 Double_t eLoss);
198
203 void ResetParameters();
204
205
206 virtual void ConstructRootGeometry(TGeoMatrix* shift = NULL);
207
208 void CreateInBeamNodes();
209
210 CbmTof(const CbmTof&);
212
213
214 ClassDef(CbmTof, 6)
215};
216
217
219{
220 fTrackID = fVolumeID = 0;
221 fPos.SetXYZM(0.0, 0.0, 0.0, 0.0);
222 fMom.SetXYZM(0.0, 0.0, 0.0, 0.0);
223 fTime = fLength = fELoss = 0;
224 fPosIndex = 0;
225};
226
227
228#endif
Geometric intersection of a MC track with a TOFb detector.
Definition CbmTofPoint.h:44
virtual void CopyClones(TClonesArray *cl1, TClonesArray *cl2, Int_t offset)
Definition CbmTof.cxx:472
TLorentzVector fMom
position
Definition CbmTof.h:157
CbmTof()
Definition CbmTof.cxx:43
Int_t fCurrentCounterIndex
Current module index.
Definition CbmTof.h:177
virtual void PreTrack()
Definition CbmTof.cxx:161
CbmTof & operator=(const CbmTof &)
Double32_t fLength
time
Definition CbmTof.h:159
TGeoCombiTrans * fCombiTrans
Interface to gMC and gGeoManager.
Definition CbmTof.h:166
Int_t fOutputTreeEntry
Map of counters in beam.
Definition CbmTof.h:186
TClonesArray * fTofCollection
Definition CbmTof.h:163
CbmTof(const CbmTof &)
std::set< Int_t > fInactiveCounterIDs
Set of inactive counters.
Definition CbmTof.h:181
TString fCurrentNodePath
Path to physical ToF node.
Definition CbmTof.h:174
virtual void Initialize()
Definition CbmTof.cxx:127
void CreateInBeamNodes()
Definition CbmTof.cxx:538
virtual Bool_t ProcessHits(FairVolume *vol=0)
Definition CbmTof.cxx:281
virtual void ConstructGeometry()
Definition CbmTof.cxx:488
virtual void FinishEvent()
Definition CbmTof.cxx:166
Int_t fPosIndex
energy loss
Definition CbmTof.h:162
Bool_t fbProcessAnyTrack
Definition CbmTof.h:188
virtual ~CbmTof()
Definition CbmTof.cxx:113
Double32_t fELoss
length
Definition CbmTof.h:160
Bool_t fbOnePointPerTrack
Name of Volume to be imported.
Definition CbmTof.h:170
CbmTofPoint * AddHit(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Double_t eLoss)
Definition CbmTof.cxx:572
std::set< std::tuple< Int_t, Int_t, Int_t > > fInactiveCounters
Set of active counters.
Definition CbmTof.h:180
virtual void Print(Option_t *="") const
Definition CbmTof.cxx:450
Int_t fTrackID
Definition CbmTof.h:154
CbmTofGeoHandler * fGeoHandler
Hit collection.
Definition CbmTof.h:164
virtual void EndOfEvent()
Definition CbmTof.cxx:425
virtual void ConstructRootGeometry(TGeoMatrix *shift=NULL)
Definition CbmTof.cxx:501
void SetProcessAnyTrack(Bool_t bProcess=kTRUE)
Definition CbmTof.h:122
std::set< std::tuple< Int_t, Int_t, Int_t > > fActiveCounters
Current counter index.
Definition CbmTof.h:179
void SetCounterActive(Int_t iModuleType, Int_t iModuleIndex, Int_t iCounterIndex)
Definition CbmTof.cxx:514
virtual void Reset()
Definition CbmTof.cxx:463
std::string fVolumeName
Transformation matrix for geometry positioning.
Definition CbmTof.h:168
void SetAllCountersInactive(Bool_t bInactive=kTRUE)
Definition CbmTof.h:123
Int_t fCurrentModuleIndex
Current module type.
Definition CbmTof.h:176
void GenerateOnePointPerTrack(Bool_t bOnePointPerTrack=kTRUE)
Definition CbmTof.h:121
std::map< std::tuple< Int_t, Int_t, Int_t >, std::pair< TString, TGeoPhysicalNode * > > fCountersInBeam
Set of inactive counter IDs.
Definition CbmTof.h:184
Double32_t fTime
momentum
Definition CbmTof.h:158
TLorentzVector fPos
volume id
Definition CbmTof.h:156
void SetCounterInactive(Int_t iModuleType, Int_t iModuleIndex, Int_t iCounterIndex)
Definition CbmTof.cxx:522
Bool_t fbAllCountersInactive
Definition CbmTof.h:190
Bool_t fbIsNewTrack
Definition CbmTof.h:171
virtual TClonesArray * GetCollection(Int_t iColl) const
Definition CbmTof.cxx:440
Int_t fVolumeID
track index
Definition CbmTof.h:155
Bool_t CheckIfSensitive(std::string name)
Definition CbmTof.cxx:566
Int_t fCurrentModuleType
Path to current physical node.
Definition CbmTof.h:175
void ResetParameters()
Definition CbmTof.h:218
void SetCounterInBeam(Int_t iModuleType, Int_t iModuleIndex, Int_t iCounterIndex)
Definition CbmTof.cxx:530
TString fTofNodePath
Definition CbmTof.h:173
virtual Bool_t IsSensitive(const std::string &name)
Definition CbmTof.cxx:547
virtual void Register()
Definition CbmTof.cxx:435