BmnRoot
Loading...
Searching...
No Matches
BmnSsdMC.h
Go to the documentation of this file.
1
7#ifndef BMNSSDMC_H
8#define BMNSSDMC_H
9
10#include "BmnSsdPoint.h"
11#include "BmnSsdSetup.h"
12#include "BmnSsdTrackStatus.h"
13
14#include "FairDetector.h"
15#include "FairRootManager.h"
16#include "FairVolume.h"
17
18#include "TClonesArray.h"
19#include "TGeoNode.h"
20#include "TGeoCombiTrans.h"
21
22#include <map>
23
24
35class BmnSsdMC : public FairDetector
36{
37 public:
38
44 BmnSsdMC(Bool_t active = kTRUE, const char* name = "SSDMC");
45
47 virtual ~BmnSsdMC();
48
49
58 virtual Bool_t CheckIfSensitive(std::string name) {
59 return ( TString(name).Contains("Sensor") ? kTRUE : kFALSE );
60 }
61
68 virtual void ConstructGeometry();
69
75 virtual void EndOfEvent();
76
84 virtual void Initialize();
85
92 virtual TClonesArray* GetCollection(Int_t iColl) const {
93 return ( iColl ? NULL : fSsdPoints );
94 }
95
100 virtual void Print(Option_t* opt = "") const;
101
114 virtual Bool_t ProcessHits(FairVolume* vol = 0);
115
120 virtual void Register() {
121 FairRootManager::Instance()->Register("SsdPoint", GetName(), fSsdPoints, kTRUE);
122 }
123
135 void ProcessNeutrals(Bool_t choice = kTRUE) {
136 fProcessNeutrals = choice;
137 }
138
143 virtual void Reset();
144
145 virtual void ConstructRootGeometry();
146 void ExpandSsdNodes(TGeoNode* fN);
147
148 private:
149
150 BmnSsdTrackStatus fStatusIn;
151 BmnSsdTrackStatus fStatusOut;
152 Double_t fEloss;
153 std::map<TString, Int_t> fAddressMap;
154 TClonesArray* fSsdPoints;
155 BmnSsdSetup* fSetup;
156 TGeoCombiTrans* fCombiTrans;
157 Bool_t fProcessNeutrals;
158
163 BmnSsdPoint* CreatePoint();
164
169 void SetStatus(BmnSsdTrackStatus& status);
170
178 Bool_t IsNewGeometryFile(TString filename);
179
181 BmnSsdMC(const BmnSsdMC&) = delete;
183 BmnSsdMC operator=(const BmnSsdMC&) = delete;
184
185 ClassDef(BmnSsdMC,1);
186};
187
188#endif /* BMNSSDMC_H */
Class for the MC transport of the BMN-SSD.
Definition BmnSsdMC.h:36
virtual ~BmnSsdMC()
Definition BmnSsdMC.cxx:48
virtual void EndOfEvent()
Action at end of event.
Definition BmnSsdMC.cxx:82
void ProcessNeutrals(Bool_t choice=kTRUE)
Create SsdPoints also for neutral particles.
Definition BmnSsdMC.h:135
void ExpandSsdNodes(TGeoNode *fN)
Definition BmnSsdMC.cxx:341
virtual Bool_t ProcessHits(FairVolume *vol=0)
Action for a track step in a sensitive node of the SSD.
Definition BmnSsdMC.cxx:144
virtual void ConstructGeometry()
Construct the SSD geometry in the TGeoManager.
Definition BmnSsdMC.cxx:63
virtual Bool_t CheckIfSensitive(std::string name)
Check whether a volume is sensitive.
Definition BmnSsdMC.h:58
virtual void Print(Option_t *opt="") const
Screen log Prints current number of SsdPoints in array. Virtual from TObject.
Definition BmnSsdMC.cxx:197
virtual TClonesArray * GetCollection(Int_t iColl) const
Get array of BmnSsdPoints.
Definition BmnSsdMC.h:92
virtual void Register()
Register output array (SsdPoint) to the I/O manager.
Definition BmnSsdMC.h:120
virtual void Reset()
Clear output array and reset current track status.
Definition BmnSsdMC.cxx:186
virtual void Initialize()
Initialisation.
Definition BmnSsdMC.cxx:91
virtual void ConstructRootGeometry()
Definition BmnSsdMC.cxx:327
Class representing the top level of the SSD setup.
Definition BmnSsdSetup.h:30
Stores status of track during transport. Auxiliary for BmnSsd.