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;
31  TString track_branch;
32  };
33 }
34 
46  public:
51 
52  virtual ~PndPidDetectorInfo(){};
53 
61  virtual Int_t SetDetectorHits(FairRootManager *manager) = 0;
62 
69  virtual Bool_t PreprocessTracks(const Int_t /*trackid*/, PndTrack */*track*/){return kTRUE;};
70 
79  virtual Bool_t GetInfo(PndTrack *track, PndPidCandidate *pidCand) = 0;
80 
85  virtual void GetNeutralInfo(Int_t, TClonesArray *){};
86 
92  virtual void ActivateDebugNtuple(Bool_t debug_mode) { fDebugMode = debug_mode; };
93  void SetDetectorMode(Short_t detector_mode) { fDetMode = detector_mode; };
94  void SetUsePropagator(Bool_t use_propagator) { fUsePropagator = use_propagator; };
95  void SetPropagator(PndPropagator *propagator) { fPropagator = propagator; };
96  void SetIdeal(Bool_t is_ideal) { fIdeal = is_ideal; };
97  void SetPidHypo(Int_t pid_hyp) { fPidHyp = pid_hyp; };
98  void SetVerbose(Int_t verbose) { fVerbose = verbose; };
99  void SetCorrPar(PndPidCorrPar *pid_corr_par) { fCorrPar = pid_corr_par; };
100  virtual Bool_t SetParContainers(FairRuntimeDb *) { return kTRUE; };
101 
102  TNtuple *GetDetCorr() { return fDetCorr; };
103  Int_t GetDetectorMode() { return fDetMode; };
104 
105  void Finish();
106 
107  virtual void Reset(){};
108  virtual void Register(){};
109 
118  virtual Bool_t Setup(FairRootManager *, PndPropagator *propagator, PndPidDetectorParams::DetectorParams *params);
119 
127  virtual Bool_t Propagate(TVector3 pos, FairTrackParH *helix, FairTrackParH *res,
128  Int_t pdg_code, Int_t direction = 1);
129 
136  virtual Bool_t Propagate(std::string volume, FairTrackParH *helix, FairTrackParH *res, Int_t pdg_code);
137 
138  protected:
149  Short_t fDetMode = -1;
150  Bool_t fUsePropagator = kFALSE;
151  PndPropagator *fPropagator = nullptr;
152  Bool_t fIdeal = kFALSE;
153  Bool_t fDebugMode = kTRUE;
154  Int_t fPidHyp = 0;
155  Int_t fVerbose = 0;
156  Float_t fGLength = -1000;
157  PndPidDetectorParams::DetectorParams *fDetectorParams = nullptr;
158 
159  TNtuple *fDetCorr = nullptr;
160  PndPidCorrPar *fCorrPar = new PndPidCorrPar();
161 
162  ClassDef(PndPidDetectorInfo, 1);
163 };
164 
165 #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 PreprocessTracks(const Int_t, PndTrack *)
Preprocess current track object.
virtual Bool_t SetParContainers(FairRuntimeDb *)
virtual void Register()