BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
BmnSiMD.h
Go to the documentation of this file.
1/*************************************************************************************
2 *
3 * Class BmnSiMD
4 *
5 * Adopted for BMN by: Elena Litvinenko
6 * e-mail: litvin@nf.jinr.ru
7 * Version: 10-02-2016
8 *
9 ************************************************************************************/
10
11#ifndef BMNSiMD_H
12#define BMNSiMD_H
13
14#include "BmnSiMDGeoPar.h"
15#include "BmnSiMDPoint.h"
16#include "FairDetector.h"
17#include "TClonesArray.h"
18#include "TLorentzVector.h"
19#include "TParticle.h"
20#include "TVector3.h"
21#include "TVirtualMC.h"
22
23class BmnSiMD : public FairDetector
24{
25 public:
26 /** Default constructor **/
27 BmnSiMD();
28
29 /** Standard constructor.
30 *@param name detetcor name
31 *@param active sensitivity flag
32 **/
33 BmnSiMD(const char* name, Bool_t active);
34
35 /** Destructor **/
36 virtual ~BmnSiMD();
37
38 /** Virtual method Initialize
39 ** Initialises detector. Stores volume IDs for MUO detector and mirror.
40 **/
41 virtual void Initialize();
42
43 /** Virtual method ProcessHits
44 **
45 ** Defines the action to be taken when a step is inside the
46 ** active volume. Creates BmnBdPoints and BmnBdMirrorPoints and adds
47 ** them to the collections.
48 *@param vol Pointer to the active volume
49 **/
50 virtual Bool_t ProcessHits(FairVolume* vol = 0);
51
52 /** Virtual method EndOfEvent
53 **
54 ** If verbosity level is set, print hit collection at the
55 ** end of the event and resets it afterwards.
56 **/
57 virtual void EndOfEvent();
58
59 virtual void BeginEvent();
60
61 /** Virtual method Register
62 **
63 ** Registers the hit collection in the ROOT manager.
64 **/
65 virtual void Register();
66
67 /** Accessor to the hit collection **/
68 virtual TClonesArray* GetCollection(Int_t iColl) const;
69
70 /** Virtual method Print
71 **
72 ** Screen output of hit collection.
73 **/
74 virtual void Print(Option_t*) const;
75
76 /** Virtual method Reset
77 **
78 ** Clears the hit collection
79 **/
80 virtual void Reset();
81
82 /** Virtual method CopyClones
83 **
84 ** Copies the hit collection with a given track index offset
85 *@param cl1 Origin
86 *@param cl2 Target
87 *@param offset Index offset
88 **/
89 virtual void CopyClones(TClonesArray* cl1, TClonesArray* cl2, Int_t offset);
90
91 /** Virtual method Construct geometry **/
92 virtual void ConstructGeometry();
93 virtual void ConstructAsciiGeometry();
94 virtual Bool_t CheckIfSensitive(std::string name);
95
96 BmnSiMDPoint* AddHit(Int_t trackID,
97 Int_t detID,
98 Int_t copyNo,
99 TVector3 posIn,
100 TVector3 posOut,
101 TVector3 momIn,
102 TVector3 momOut,
103 Double_t tof,
104 Double_t length,
105 Double_t eLoss,
106 Bool_t isPrimary,
107 Double_t charge,
108 Int_t pdgId,
109 Double_t timeIn,
110 Double_t timeOut,
111 Double_t lengthtrack);
112
113 private:
114 Int_t fTrackID; //! track index
115 Int_t fVolumeID; //! volume id
116 // Int_t fEventID; //! event id
117 TVector3 fPosIn; //! position (in)
118 TVector3 fPosOut; //! position (out)
119 TVector3 fMomIn; //! momentum (in)
122 Double32_t fLength; //! length
123 Double32_t fELoss; //! energy loss
125 Int_t volDetector; //! MC volume ID of MUO
126 Int_t fIsPrimary; //! is track primary?
127 Double_t fCharge; //! track charge
128 Int_t fPdgId; //! pdg id of particle
130 TClonesArray* fSiMDCollection; //! Hit collection
134
135 // reset all parameters
136 void ResetParameters();
137 BmnSiMD(const BmnSiMD&) = delete;
138 BmnSiMD operator=(const BmnSiMD&) = delete;
139
140 ClassDef(BmnSiMD, 2)
141};
142
143//------------------------------------------------------------------------------------------------------------------------
145{
146 fTrackID = fVolumeID = 0;
147 fPosIn.SetXYZ(0.0, 0.0, 0.0);
148 fPosOut.SetXYZ(0.0, 0.0, 0.0);
149 fMomIn.SetXYZ(0.0, 0.0, 0.0);
150 fMomOut.SetXYZ(0.0, 0.0, 0.0);
151 fTime = fLength = fELoss = 0;
152 fTimeIn = fTimeOut = 0;
153 fLengthtrack = 0;
154 fPosIndex = 0;
155 fLightYield = 0;
156};
157//------------------------------------------------------------------------------------------------------------------------
158
159#endif
bool Bool_t
int Int_t
double Double32_t
float Float_t
double Double_t
const char Option_t
#define ClassDef(name, id)
virtual void CopyClones(TClonesArray *cl1, TClonesArray *cl2, Int_t offset)
Virtual method CopyClones.
Definition BmnSiMD.cxx:276
BmnSiMDPoint * AddHit(Int_t trackID, Int_t detID, Int_t copyNo, TVector3 posIn, TVector3 posOut, TVector3 momIn, TVector3 momOut, Double_t tof, Double_t length, Double_t eLoss, Bool_t isPrimary, Double_t charge, Int_t pdgId, Double_t timeIn, Double_t timeOut, Double_t lengthtrack)
Definition BmnSiMD.cxx:356
Double32_t fELoss
length
Definition BmnSiMD.h:123
Int_t fPdgId
track charge
Definition BmnSiMD.h:128
Double32_t fTime
Definition BmnSiMD.h:121
BmnSiMD(const BmnSiMD &)=delete
TVector3 fMomOut
momentum (in)
Definition BmnSiMD.h:120
Float_t fLightYield
pdg id of particle
Definition BmnSiMD.h:129
virtual void Print(Option_t *) const
Virtual method Print.
Definition BmnSiMD.cxx:256
TVector3 fPosIn
volume id
Definition BmnSiMD.h:117
void ResetParameters()
length
Definition BmnSiMD.h:144
Int_t volDetector
Definition BmnSiMD.h:125
virtual void Reset()
Virtual method Reset.
Definition BmnSiMD.cxx:267
Int_t fTrackID
Definition BmnSiMD.h:114
virtual Bool_t CheckIfSensitive(std::string name)
Definition BmnSiMD.cxx:345
Double32_t fTimeOut
time
Definition BmnSiMD.h:132
BmnSiMD()
Default constructor.
Definition BmnSiMD.cxx:24
Int_t fVolumeID
track index
Definition BmnSiMD.h:115
BmnSiMD operator=(const BmnSiMD &)=delete
virtual ~BmnSiMD()
Destructor.
Definition BmnSiMD.cxx:49
virtual void ConstructAsciiGeometry()
Definition BmnSiMD.cxx:306
virtual TClonesArray * GetCollection(Int_t iColl) const
Accessor to the hit collection.
Definition BmnSiMD.cxx:247
virtual void Initialize()
Virtual method Initialize Initialises detector.
Definition BmnSiMD.cxx:58
Double32_t fLengthtrack
time
Definition BmnSiMD.h:133
virtual void EndOfEvent()
Virtual method EndOfEvent.
Definition BmnSiMD.cxx:233
Double32_t fTimeIn
Hit collection.
Definition BmnSiMD.h:131
TClonesArray * fSiMDCollection
Definition BmnSiMD.h:130
Double32_t fLength
time
Definition BmnSiMD.h:122
Int_t fPosIndex
energy loss
Definition BmnSiMD.h:124
virtual void ConstructGeometry()
Virtual method Construct geometry.
Definition BmnSiMD.cxx:293
virtual void BeginEvent()
Definition BmnSiMD.cxx:67
virtual Bool_t ProcessHits(FairVolume *vol=0)
Virtual method ProcessHits.
Definition BmnSiMD.cxx:73
TVector3 fPosOut
position (in)
Definition BmnSiMD.h:118
Double_t fCharge
is track primary?
Definition BmnSiMD.h:127
virtual void Register()
Virtual method Register.
Definition BmnSiMD.cxx:241
Int_t fIsPrimary
MC volume ID of MUO.
Definition BmnSiMD.h:126
TVector3 fMomIn
position (out)
Definition BmnSiMD.h:119