BmnRoot
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
17#include "FairDetector.h"
18
19#include "TClonesArray.h"
20#include "TVector3.h"
21#include "TLorentzVector.h"
22#include "TVirtualMC.h"
23#include "TParticle.h"
24
25class BmnSiMD : public FairDetector
26{
27 public:
30
35 BmnSiMD(const char* name, Bool_t active);
36
38 virtual ~BmnSiMD();
39
40
44 virtual void Initialize();
45
53 virtual Bool_t ProcessHits(FairVolume* vol = 0);
54
60 virtual void EndOfEvent();
61
62 virtual void BeginEvent();
63
68 virtual void Register();
69
71 virtual TClonesArray* GetCollection(Int_t iColl) const;
72
77 virtual void Print(Option_t*) const;
78
83 virtual void Reset();
84
85
93 virtual void CopyClones(TClonesArray* cl1, TClonesArray* cl2, Int_t offset);
94
96 virtual void ConstructGeometry();
97 virtual void ConstructAsciiGeometry();
98 virtual Bool_t CheckIfSensitive(std::string name);
99
100 BmnSiMDPoint* AddHit(Int_t trackID, Int_t detID, Int_t copyNo,
101 TVector3 posIn, TVector3 posOut,
102 TVector3 momIn, TVector3 momOut,
103 Double_t tof, Double_t length, Double_t eLoss,
104 Bool_t isPrimary, Double_t charge, Int_t pdgId,
105 Double_t timeIn, Double_t timeOut, Double_t lengthtrack);
106
107 private:
108 Int_t fTrackID;
109 Int_t fVolumeID;
110 //Int_t fEventID; //! event id
111 TVector3 fPosIn;
112 TVector3 fPosOut;
113 TVector3 fMomIn;
114 TVector3 fMomOut;
115 Double32_t fTime;
116 Double32_t fLength;
117 Double32_t fELoss;
118 Int_t fPosIndex;
119 Int_t volDetector;
120 Int_t fIsPrimary;
121 Double_t fCharge;
122 Int_t fPdgId;
123 Float_t fLightYield;
124 TClonesArray* fSiMDCollection;
125 Double32_t fTimeIn;
126 Double32_t fTimeOut;
127 Double32_t fLengthtrack;
128
129 // reset all parameters
130 void ResetParameters();
131 BmnSiMD(const BmnSiMD&) = delete;
132 BmnSiMD operator=(const BmnSiMD&) = delete;
133
134 ClassDef(BmnSiMD,2)
135};
136
137
138//------------------------------------------------------------------------------------------------------------------------
139inline void BmnSiMD::ResetParameters()
140{
141 fTrackID = fVolumeID = 0;
142 fPosIn.SetXYZ(0.0, 0.0, 0.0);
143 fPosOut.SetXYZ(0.0, 0.0, 0.0);
144 fMomIn.SetXYZ(0.0, 0.0, 0.0);
145 fMomOut.SetXYZ(0.0, 0.0, 0.0);
146 fTime = fLength = fELoss = 0;
147 fTimeIn = fTimeOut = 0;
148 fLengthtrack = 0;
149 fPosIndex = 0;
150 fLightYield = 0;
151};
152//------------------------------------------------------------------------------------------------------------------------
153
154#endif
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)
virtual void CopyClones(TClonesArray *cl1, TClonesArray *cl2, Int_t offset)
virtual void BeginEvent()
virtual void ConstructAsciiGeometry()
virtual ~BmnSiMD()
virtual void ConstructGeometry()
virtual Bool_t CheckIfSensitive(std::string name)
BmnSiMD(const char *name, Bool_t active)
virtual Bool_t ProcessHits(FairVolume *vol=0)
virtual TClonesArray * GetCollection(Int_t iColl) const
virtual void Print(Option_t *) const
virtual void Register()
virtual void Reset()
virtual void Initialize()
virtual void EndOfEvent()