SND@LHC Software
Loading...
Searching...
No Matches
exitHadronAbsorber.h
Go to the documentation of this file.
1#ifndef EXITHADRONABSORBER_H
2#define EXITHADRONABSORBER_H
3
4#include "FairDetector.h"
5#include "TVector3.h"
6#include "TLorentzVector.h"
7#include "TGeoVolume.h"
8#include "vetoPoint.h"
9#include "TNtuple.h"
10#include "TFile.h"
11#include <map>
12
13class FairVolume;
14class TClonesArray;
15
16class exitHadronAbsorber: public FairDetector
17{
18
19 public:
20
25 exitHadronAbsorber(const char* Name, Bool_t Active);
26
29
31 virtual ~exitHadronAbsorber();
32
34 virtual void Initialize();
35
39 virtual Bool_t ProcessHits( FairVolume* v=0);
40
42 virtual void Register();
43
45 virtual TClonesArray* GetCollection(Int_t iColl) const ;
46
48 virtual void Reset();
49
51 void ConstructGeometry();
52
57 virtual void CopyClones( TClonesArray* cl1, TClonesArray* cl2 ,
58 Int_t offset) {;}
59 virtual void SetSpecialPhysicsCuts() {;}
60 virtual void EndOfEvent();
61 virtual void FinishPrimary() {;}
62 virtual void FinishRun();
63 virtual void BeginPrimary() {;}
64 virtual void PostTrack() {;}
65 virtual void PreTrack();
66 virtual void BeginEvent() {;}
67
68 vetoPoint* AddHit(Int_t trackID, Int_t detID,
69 TVector3 pos, TVector3 mom,
70 Double_t time, Double_t length,
71 Double_t eLoss,Int_t pdgcode,TVector3 Lpos, TVector3 Lmom);
72 inline void SetEnergyCut(Float_t emax) {EMax=emax;}// min energy to be copied to Geant4
73 inline void SetOnlyMuons(){fOnlyMuons=kTRUE;}
74 inline void SetOpt4DP(){withNtuple=kTRUE;}
75 inline void SkipNeutrinos(){fSkipNeutrinos=kTRUE;}
76 inline void SetZposition(Float_t x){fzPos=x;}
77
78 private:
79
83 Int_t fTrackID;
84 Int_t fVolumeID;
85 TLorentzVector fPos;
86 TLorentzVector fMom;
87 Double_t fTime;
88 Double_t fLength;
89 Double_t fzPos;
90 Bool_t withNtuple;
91 TNtuple* fNtuple;
92 Float_t EMax;
93 Bool_t fOnlyMuons;
95 TFile* fout;
96 TClonesArray* fElectrons;
97 Int_t index;
100 ClassDef(exitHadronAbsorber, 0)
101};
102
103#endif //EXITHADRONABSORBER_H
virtual void FinishPrimary()
virtual void PostTrack()
TClonesArray * fexitHadronAbsorberPointCollection
Int_t fVolumeID
track index
TClonesArray * fElectrons
virtual TClonesArray * GetCollection(Int_t iColl) const
TLorentzVector fPos
volume id
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)
Bool_t withNtuple
zPos, optional
TLorentzVector fMom
position at entrance
virtual void CopyClones(TClonesArray *cl1, TClonesArray *cl2, Int_t offset)
Double_t fTime
momentum at entrance
exitHadronAbsorber(const char *Name, Bool_t Active)
virtual void BeginEvent()
void SetEnergyCut(Float_t emax)
TFile * fout
flag if neutrinos should be ignored
TNtuple * fNtuple
special option for Dark Photon physics studies
Bool_t fSkipNeutrinos
flag if only muons should be stored
Bool_t fOnlyMuons
max energy to transport
virtual void BeginPrimary()
virtual Bool_t ProcessHits(FairVolume *v=0)
virtual void SetSpecialPhysicsCuts()
void SetZposition(Float_t x)