PandaRoot
PndPidDetectorInfo.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 #ifndef PID_DETECTOR_INFO_H
14 #define PID_DETECTOR_INFO_H
15 
16 #include "TNtuple.h"
17 
18 #include "FairGeane.h"
19 #include "FairRootManager.h"
20 #include "FairRuntimeDb.h"
21 #include "FairTrackParH.h"
22 
23 #include "PndPidCorrPar.h"
24 #include "PndTrack.h"
25 #include "PndPidCandidate.h"
26 #include "PndPropagator.h"
27 #include "PndGeanePro.h"
28 
30 {
31  struct DetectorParams {
32  Bool_t debug_mode;
34  Bool_t ideal;
36  Int_t pid_hyp;
37  Bool_t use_ideal_hyp;
40  Bool_t mdt_refit;
41  Bool_t fast;
43  TString track_branch;
44  };
45 }
46 
58  public:
63 
64  virtual ~PndPidDetectorInfo(){};
65 
73  virtual Int_t SetDetectorHits(FairRootManager *manager) = 0;
74 
81  virtual Bool_t PreprocessTracks(const Int_t /*trackid*/, PndTrack */*track*/){return kTRUE;};
82 
91  virtual Bool_t GetInfo(PndTrack *track, PndPidCandidate *pidCand) = 0;
92 
97  virtual void GetNeutralInfo(Int_t, TClonesArray *){};
98 
104  virtual void ActivateDebugNtuple(Bool_t debug_mode) { fDebugMode = debug_mode; };
105  void SetDetectorMode(Short_t detector_mode) { fDetMode = detector_mode; };
106  void SetUsePropagator(Bool_t use_propagator) { fUsePropagator = use_propagator; };
107  void SetPropagator(PndPropagator *propagator) { fPropagator = propagator; };
108  void SetIdeal(Bool_t is_ideal) { fIdeal = is_ideal; };
109  void SetPidHypo(Int_t pid_hyp) { fPidHyp = pid_hyp; };
110  void SetVerbose(Int_t verbose) { fVerbose = verbose; };
111  void SetCorrPar(PndPidCorrPar *pid_corr_par) { fCorrPar = pid_corr_par; };
112  virtual Bool_t SetParContainers(FairRuntimeDb *) { return kTRUE; };
113 
114  TNtuple *GetDetCorr() { return fDetCorr; };
115  Int_t GetDetectorMode() { return fDetMode; };
116 
117  void Finish();
118 
119  virtual void Reset(){};
120  virtual void Register(){};
121 
130  virtual Bool_t Setup(FairRootManager *, PndPropagator *propagator, PndPidDetectorParams::DetectorParams *params);
131 
139  virtual Bool_t Propagate(TVector3 pos, FairTrackParH *helix, FairTrackParH *res,
140  Int_t pdg_code, Int_t direction = 1);
141 
148  virtual Bool_t Propagate(std::string volume, FairTrackParH *helix, FairTrackParH *res, Int_t pdg_code);
149 
150  protected:
161  Short_t fDetMode = -1;
162  Bool_t fUsePropagator = kFALSE;
163  PndPropagator *fPropagator = nullptr;
164  Bool_t fIdeal = kFALSE;
165  Bool_t fDebugMode = kTRUE;
166  Int_t fPidHyp = 0;
167  Int_t fVerbose = 0;
168  Float_t fGLength = -1000;
169  PndPidDetectorParams::DetectorParams *fDetectorParams = nullptr;
170 
171  TNtuple *fDetCorr = nullptr;
172  PndPidCorrPar *fCorrPar = new PndPidCorrPar();
173 
174  ClassDef(PndPidDetectorInfo, 1);
175 };
176 
177 #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:64
virtual Bool_t PreprocessTracks(const Int_t, PndTrack *)
Preprocess current track object.
virtual Bool_t SetParContainers(FairRuntimeDb *)
virtual void Register()