BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnHodo.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * Class BmnHodo
4 *
5 * Created by: Sergei Merts
6 * e-mail: merts@jinr.ru
7 * Version: 28-03-2021
8 *
9 * Modified by M.Golubeva April 2021
10 *
11 *****************************************************************************/
12
13#ifndef BMNHODO_H
14#define BMNHODO_H
15
16#include "BmnHodoGeoPar.h"
17#include "BmnHodoPoint.h"
18#include "FairDetector.h"
19#include "TClonesArray.h"
20#include "TLorentzVector.h"
21#include "TParticle.h"
22#include "TVector3.h"
23#include "TVirtualMC.h"
24
25class BmnHodo : public FairDetector
26{
27 public:
28 /** Default constructor **/
29 BmnHodo();
30
31 /** Standard constructor.
32 *@param name detetcor name
33 *@param active sensitivity flag
34 **/
35 BmnHodo(const char* name, Bool_t active);
36
37 /** Destructor **/
38 virtual ~BmnHodo();
39
40 /** Virtual method Initialize
41 ** Initialises detector. Stores volume IDs for MUO detector and mirror.
42 **/
43 virtual void Initialize();
44
45 /** Virtual method ProcessHits
46 **
47 ** Defines the action to be taken when a step is inside the
48 ** active volume. Creates BmnBdPoints and BmnBdMirrorPoints and adds
49 ** them to the collections.
50 *@param vol Pointer to the active volume
51 **/
52 virtual Bool_t ProcessHits(FairVolume* vol = 0);
53
54 /** Virtual method EndOfEvent
55 **
56 ** If verbosity level is set, print hit collection at the
57 ** end of the event and resets it afterwards.
58 **/
59 virtual void EndOfEvent();
60
61 virtual void SetSpecialPhysicsCuts() { ; }
62 virtual void BeginEvent() { ; }
63 virtual void FinishPrimary() { ; }
64 virtual void FinishRun() { ; }
65 virtual void BeginPrimary() { ; }
66 virtual void PostTrack() { ; }
67 virtual void PreTrack() { ; }
68
69 /** Virtual method Register
70 **
71 ** Registers the hit collection in the ROOT manager.
72 **/
73 virtual void Register();
74
75 /** Accessor to the hit collection **/
76 virtual TClonesArray* GetCollection(Int_t iColl) const;
77
78 /** Virtual method Print
79 **
80 ** Screen output of hit collection.
81 **/
82 virtual void Print(Option_t*) const;
83
84 /** Virtual method Reset
85 **
86 ** Clears the hit collection
87 **/
88 virtual void Reset();
89
90 /** Virtual method Construct geometry
91 **
92 **/
93 virtual void ConstructGeometry();
94 virtual Bool_t CheckIfSensitive(std::string name) { return BmnHodoGeoPar::CheckIfSensitive(name); }
95
96 BmnHodoPoint* GetHit(Int_t i) const;
97 BmnHodoPoint* GetHit(Int_t sticksens, Int_t stick) const;
99
100 BmnHodoPoint* AddHit(Int_t trackID,
101 Int_t detID,
102 Int_t copyNo,
103 Int_t copyNoMother,
104 TVector3 pos,
105 TVector3 mom,
106 Double_t tof,
107 Double_t length,
108 Double_t eLoss);
109
110 private:
111 Int_t fTrackID; //! track index
112 Int_t fVolumeID; //! volume id
113 Int_t fEventID; //! event id
115 TVector3 fPos; //! position (in)
116 TVector3 fMom; //! momentum (in)
118 Double32_t fLength; //! length
119 Double32_t fELoss; //! energy loss
120 Int_t volDetector; //! MC volume ID of MUO
121
122 TClonesArray* fHodoCollection; //! Hit collection
123
124 // reset all parameters
125 void ResetParameters();
126 BmnHodo(const BmnHodo&) = delete;
127 BmnHodo operator=(const BmnHodo&) = delete;
128
129 ClassDef(BmnHodo, 0)
130};
131
132//-----------------------------------------------------------------------------
134{
135 fTrackID = fVolumeID = 0;
136 fPos.SetXYZ(0.0, 0.0, 0.0);
137 fMom.SetXYZ(0.0, 0.0, 0.0);
138 fTime = fLength = fELoss = 0;
139};
140//-----------------------------------------------------------------------------
141
142#endif
int i
Definition P4_F32vec4.h:22
bool Bool_t
int Int_t
double Double32_t
double Double_t
const char Option_t
#define ClassDef(name, id)
static bool CheckIfSensitive(std::string name)
virtual void PostTrack()
Definition BmnHodo.h:66
virtual TClonesArray * GetCollection(Int_t iColl) const
Accessor to the hit collection.
Definition BmnHodo.cxx:292
Int_t fHodoStickSensVolId
event id
Definition BmnHodo.h:114
virtual void SetSpecialPhysicsCuts()
Definition BmnHodo.h:61
TVector3 fMom
position (in)
Definition BmnHodo.h:116
virtual void Reset()
Virtual method Reset.
Definition BmnHodo.cxx:311
BmnHodo operator=(const BmnHodo &)=delete
virtual void BeginPrimary()
Definition BmnHodo.h:65
Int_t volDetector
energy loss
Definition BmnHodo.h:120
virtual void Register()
Virtual method Register.
Definition BmnHodo.cxx:286
BmnHodoPoint * AddHit(Int_t trackID, Int_t detID, Int_t copyNo, Int_t copyNoMother, TVector3 pos, TVector3 mom, Double_t tof, Double_t length, Double_t eLoss)
Definition BmnHodo.cxx:328
virtual void Print(Option_t *) const
Virtual method Print.
Definition BmnHodo.cxx:300
virtual Bool_t CheckIfSensitive(std::string name)
Definition BmnHodo.h:94
virtual void ConstructGeometry()
Virtual method Construct geometry.
Definition BmnHodo.cxx:317
Int_t fTrackID
Definition BmnHodo.h:111
Int_t fVolumeID
track index
Definition BmnHodo.h:112
BmnHodoPoint * GetHit(Int_t i) const
Definition BmnHodo.cxx:72
TVector3 fPos
Definition BmnHodo.h:115
TClonesArray * fHodoCollection
MC volume ID of MUO.
Definition BmnHodo.h:122
virtual void FinishRun()
Definition BmnHodo.h:64
virtual void Initialize()
Virtual method Initialize Initialises detector.
Definition BmnHodo.cxx:60
virtual Bool_t ProcessHits(FairVolume *vol=0)
Virtual method ProcessHits.
Definition BmnHodo.cxx:98
void ResetParameters()
Hit collection.
Definition BmnHodo.h:133
virtual void PreTrack()
Definition BmnHodo.h:67
Double32_t fELoss
length
Definition BmnHodo.h:119
Double32_t fLength
time
Definition BmnHodo.h:118
virtual void EndOfEvent()
Virtual method EndOfEvent.
Definition BmnHodo.cxx:278
BmnHodo()
Default constructor.
Definition BmnHodo.cxx:31
virtual ~BmnHodo()
Destructor.
Definition BmnHodo.cxx:51
Int_t GetHodoStickSensVolId()
Definition BmnHodo.h:98
Double32_t fTime
momentum (in)
Definition BmnHodo.h:117
BmnHodo(const BmnHodo &)=delete
Int_t fEventID
volume id
Definition BmnHodo.h:113
virtual void FinishPrimary()
Definition BmnHodo.h:63
virtual void BeginEvent()
Definition BmnHodo.h:62