PandaRoot
PndPidDetectorInfo.h
Go to the documentation of this file.
1 #ifndef PID_DETECTOR_INFO_H
2 #define PID_DETECTOR_INFO_H
3 
4 #include "TNtuple.h"
5 
6 #include "FairGeane.h"
7 #include "FairRootManager.h"
8 #include "FairRuntimeDb.h"
9 #include "FairTrackParH.h"
10 
11 #include "PndPidCorrPar.h"
12 #include "PndTrack.h"
13 #include "PndPidCandidate.h"
14 #include "PndPropagator.h"
15 #include "PndGeanePro.h"
16 
18 {
19  struct DetectorParams {
20  Bool_t debug_mode;
22  Bool_t ideal;
24  Int_t pid_hyp;
25  Bool_t use_ideal_hyp;
28  Bool_t mdt_refit;
29  Bool_t fast;
33  };
34 }
35 
47  public:
52 
53  virtual ~PndPidDetectorInfo(){};
54 
62  virtual Int_t SetDetectorHits(FairRootManager *manager) = 0;
63 
72  virtual Bool_t GetInfo(PndTrack *track, PndPidCandidate *pidCand) = 0;
73 
78  virtual void GetNeutralInfo(Int_t, TClonesArray *){};
79 
85  virtual void ActivateDebugNtuple(Bool_t debug_mode) { fDebugMode = debug_mode; };
86  void SetDetectorMode(Short_t detector_mode) { fDetMode = detector_mode; };
87  void SetUsePropagator(Bool_t use_propagator) { fUsePropagator = use_propagator; };
88  void SetPropagator(PndPropagator *propagator) { fPropagator = propagator; };
89  void SetIdeal(Bool_t is_ideal) { fIdeal = is_ideal; };
90  void SetPidHypo(Int_t pid_hyp) { fPidHyp = pid_hyp; };
91  void SetVerbose(Int_t verbose) { fVerbose = verbose; };
92  void SetCorrPar(PndPidCorrPar *pid_corr_par) { fCorrPar = pid_corr_par; };
93  virtual Bool_t SetParContainers(FairRuntimeDb *) { return kTRUE; };
94 
95  TNtuple *GetDetCorr() { return fDetCorr; };
96  Int_t GetDetectorMode() { return fDetMode; };
97 
98  void Finish();
99 
100  virtual void Reset(){};
101  virtual void Register(){};
102 
111  virtual Bool_t Setup(FairRootManager *, PndPropagator *propagator, PndPidDetectorParams::DetectorParams *params);
112 
120  virtual Bool_t Propagate(TVector3 pos, FairTrackParH *helix, FairTrackParH *res,
121  Int_t pdg_code, Int_t direction = 1);
122 
129  virtual Bool_t Propagate(std::string volume, FairTrackParH *helix, FairTrackParH *res, Int_t pdg_code);
130 
131  protected:
142  Short_t fDetMode = -1;
143  Bool_t fUsePropagator = kFALSE;
144  PndPropagator *fPropagator = nullptr;
145  Bool_t fIdeal = kFALSE;
146  Bool_t fDebugMode = kTRUE;
147  Int_t fPidHyp = 0;
148  Int_t fVerbose = 0;
149  Float_t fGLength = -1000;
150  PndPidDetectorParams::DetectorParams *fDetectorParams = nullptr;
151 
152  TNtuple *fDetCorr = nullptr;
153  PndPidCorrPar *fCorrPar = new PndPidCorrPar();
154 
155  ClassDef(PndPidDetectorInfo, 1);
156 };
157 
158 #endif // PID_DETECTOR_INFO_H
virtual void GetNeutralInfo(Int_t, TClonesArray *)
Include detector information in neutral PidCandidate.
void SetIdeal(Bool_t is_ideal)
void SetVerbose(Int_t verbose)
void SetDetectorMode(Short_t detector_mode)
void SetPidHypo(Int_t pid_hyp)
void SetPropagator(PndPropagator *propagator)
virtual void ActivateDebugNtuple(Bool_t debug_mode)
Set debug mode of detector.
void SetCorrPar(PndPidCorrPar *pid_corr_par)
Base class for accessing PID detector information.
void SetUsePropagator(Bool_t use_propagator)
Propagator interface class for PandaRoot.
Definition: PndPropagator.h:52
virtual Bool_t SetParContainers(FairRuntimeDb *)
virtual void Register()