SND@LHC Software
Loading...
Searching...
No Matches
Floor.h
Go to the documentation of this file.
1//
2// Floor.h
3//
4// by A. Buonaura
5// tunnel system from Fluka geometry added, T.Ruf Dec 2020
6//
7#ifndef Floor_H
8#define Floor_H
9
10#include "FairDetector.h" // for FairModule
11#include "TLorentzVector.h"
12#include "Rtypes.h" // for Floor::Class, Bool_t, etc
13#include "TGeoArb8.h"
14#include "TVector3.h"
15#include "vetoPoint.h"
16
17#include <string> // for string
18
19class FairVolume;
20class TClonesArray;
21
22class Floor : public FairDetector
23{
24 public:
25 Floor(const char* name, Bool_t Active);
26 Floor();
27 virtual ~Floor();
28 void SetConfPar(TString name, Float_t value){conf_floats[name]=value;}
29 void SetConfPar(TString name, Int_t value){conf_ints[name]=value;}
30 void SetConfPar(TString name, TString value){conf_strings[name]=value;}
31 Float_t GetConfParF(TString name){return conf_floats[name];}
32 Int_t GetConfParI(TString name){return conf_ints[name];}
33 TString GetConfParS(TString name){return conf_strings[name];}
34
36 virtual void Initialize();
37
41 virtual Bool_t ProcessHits( FairVolume* v=0);
42
44 virtual void Register();
45
47 virtual TClonesArray* GetCollection(Int_t iColl) const ;
48
50 virtual void Reset();
51
52 void ConstructGeometry();
53
54 virtual void CopyClones( TClonesArray* cl1, TClonesArray* cl2 ,
55 Int_t offset) {;}
56 virtual void SetSpecialPhysicsCuts() {;}
57 virtual void EndOfEvent();
58 virtual void FinishPrimary() {;}
59 virtual void FinishRun() {;}
60 virtual void BeginPrimary() {;}
61 virtual void PostTrack() {;}
62 virtual void PreTrack();
63 virtual void BeginEvent() {;}
64
65 vetoPoint* AddHit(Int_t trackID, Int_t detID,
66 TVector3 pos, TVector3 mom,
67 Double_t time, Double_t length,
68 Double_t eLoss,Int_t pdgcode,TVector3 Lpos, TVector3 Lmom);
69
70 inline void SetEmin(float E) {fEmin = E;} // set min kin energy for tracking
71 inline void SetZmax(float Z) {fzPos = Z;} // set max z position for which energy cut is applied.
72 inline void SetFastMuon() {fFastMuon=true;} // kill all tracks except of muons
73 inline void MakeSensitive() {fMakeSensitive=true;} // make Tunnel sensitive
74
75 Int_t InitMedium(const char* name);
76
77 TVector3 crossing(TVector3 H1,TVector3 H2,TVector3 H3,TVector3 P1,TVector3 P2,TVector3 P3);
78
79private:
81 std::map<TString,Float_t> conf_floats;
82 std::map<TString,Int_t> conf_ints;
83 std::map<TString,TString> conf_strings;
84
85 Int_t fTrackID;
86 Int_t fVolumeID;
87 TLorentzVector fPos;
88 TLorentzVector fMom;
89 Double_t fTime;
90 Double_t fLength;
91 Double_t fzPos;
92 Double_t fThick;
93 Double_t fELoss;
94 Double_t fTotalEloss;
95 TString fMaterial;
97 TClonesArray* fFloorPointCollection;
98 Double_t SND_Z; // Position of SND with respect to FLUKA coordinate system origin at IP1
99 Bool_t fFastMuon;
100 Float_t fEmin;
102 ClassDef(Floor,2)
103};
104
105#endif //Floor_H
106
Definition Floor.h:23
Int_t GetConfParI(TString name)
Definition Floor.h:32
virtual void FinishRun()
Definition Floor.h:59
void SetZmax(float Z)
Definition Floor.h:71
virtual Bool_t ProcessHits(FairVolume *v=0)
Definition Floor.cxx:58
virtual void BeginPrimary()
Definition Floor.h:60
virtual void Initialize()
Definition Floor.cxx:118
std::map< TString, Float_t > conf_floats
Definition Floor.h:81
Int_t fTrackID
Definition Floor.h:85
Double_t fzPos
length
Definition Floor.h:91
Float_t fEmin
Definition Floor.h:100
TLorentzVector fMom
position at entrance
Definition Floor.h:88
void SetConfPar(TString name, TString value)
Definition Floor.h:30
TString fMaterial
Definition Floor.h:95
void SetFastMuon()
Definition Floor.h:72
virtual void CopyClones(TClonesArray *cl1, TClonesArray *cl2, Int_t offset)
Definition Floor.h:54
TVector3 crossing(TVector3 H1, TVector3 H2, TVector3 H3, TVector3 P1, TVector3 P2, TVector3 P3)
Definition Floor.cxx:143
vetoPoint * AddHit(Int_t trackID, Int_t detID, TVector3 pos, TVector3 mom, Double_t time, Double_t length, Double_t eLoss, Int_t pdgcode, TVector3 Lpos, TVector3 Lmom)
Definition Floor.cxx:1149
virtual void FinishPrimary()
Definition Floor.h:58
Double_t fTotalEloss
Definition Floor.h:94
virtual void Register()
Definition Floor.cxx:1161
std::map< TString, Int_t > conf_ints
Definition Floor.h:82
void SetConfPar(TString name, Float_t value)
Definition Floor.h:28
virtual void SetSpecialPhysicsCuts()
Definition Floor.h:56
Double_t fELoss
thickness
Definition Floor.h:93
Double_t fTime
momentum at entrance
Definition Floor.h:89
virtual TClonesArray * GetCollection(Int_t iColl) const
Definition Floor.cxx:1168
Floor(const char *name, Bool_t Active)
void SetConfPar(TString name, Int_t value)
Definition Floor.h:29
virtual void PreTrack()
Definition Floor.cxx:104
void SetEmin(float E)
Definition Floor.h:70
Double_t SND_Z
Definition Floor.h:98
Int_t InitMedium(const char *name)
Definition Floor.cxx:123
Bool_t fFastMuon
Definition Floor.h:99
TString GetConfParS(TString name)
Definition Floor.h:33
virtual void EndOfEvent()
Definition Floor.cxx:98
virtual void PostTrack()
Definition Floor.h:61
virtual void Reset()
Definition Floor.cxx:1173
virtual void BeginEvent()
Definition Floor.h:63
Bool_t fMakeSensitive
Definition Floor.h:101
Int_t fVolumeID
track index
Definition Floor.h:86
virtual ~Floor()
Definition Floor.cxx:50
Double_t fLength
time
Definition Floor.h:90
std::map< TString, TString > conf_strings
Definition Floor.h:83
Float_t GetConfParF(TString name)
Definition Floor.h:31
void ConstructGeometry()
Definition Floor.cxx:165
Floor()
Definition Floor.cxx:33
Double_t fThick
zPos
Definition Floor.h:92
TClonesArray * fFloorPointCollection
material
Definition Floor.h:97
TLorentzVector fPos
volume id
Definition Floor.h:87
void MakeSensitive()
Definition Floor.h:73