PandaRoot
PndPidMuonSystemInfo.h
Go to the documentation of this file.
1 #ifndef PID_MUONSYSTEM_INFO_H
2 #define PID_MUONSYSTEM_INFO_H
3 
4 #include <map>
5 #include <vector>
6 #include <memory>
7 
8 #include "TClonesArray.h"
9 
10 #include "FairRootManager.h"
11 #include "FairPropagator.h"
12 #include "PndPropagator.h"
13 #include "FairGeane.h"
14 
15 #include "PndRecoKalmanFit.h"
16 #include "PndTrack.h"
17 #include "PndPidDetectorInfo.h"
18 
28  public:
31 
32  void Register()
33  {
34  if (fMdtRefit)
36  };
38  {
39  if (fMdtRefit)
40  fMdtTrack->Delete();
41  };
43  {
44  FairRootManager::Instance()->Register("MdtTrack", "Pid", fMdtTrack, kTRUE);
45  LOG(info) << "PndPidCorrelator::Register(): "
46  << "registered branch "
47  << "MdtTrack";
48  };
49 
55  Int_t SetDetectorHits(FairRootManager *manager);
56 
62  Bool_t SetMdtRefit(Bool_t mdt_refit);
63 
71  Bool_t Setup(FairRootManager *manager, PndPropagator *propagator, PndPidDetectorParams::DetectorParams *params);
72 
77  void Reset();
78 
84  PndTrack *AddMdtTrack(PndTrack *track);
85 
90  Bool_t MdtMapping();
91 
96  Bool_t MdtGeometry();
97 
98  protected:
99  TClonesArray *fMdtHit = nullptr;
100  TClonesArray *fMdtPoint = nullptr;
101  TClonesArray *fMdtTrk = nullptr;
102  TClonesArray *fMdtTrack = nullptr;
103  Bool_t fMdtRefit;
104 
105  std::unique_ptr<PndRecoKalmanFit> fFitter{nullptr};
106  Float_t fMdtLayerPos[3][20];
107  Float_t fMdtIronThickness[3][20];
108  std::map<Int_t, std::vector<Int_t>> fMapMdtBarrel;
109  std::map<Int_t, std::vector<Int_t>> fMapMdtEndcap;
110  std::map<Int_t, std::vector<Int_t>> fMapMdtForward;
111 
113 };
114 
115 #endif // PID_MUONSYSTEM_INFO_H
void Reset()
Clear MDT hit maps, call ResetMdtTrack() and refill hit maps calling MdtMapping().
Int_t SetDetectorHits(FairRootManager *manager)
Fill detector hit TCAs and adjust detector mode.
Float_t fMdtIronThickness[3][20]
thickness of iron layers
Bool_t fMdtRefit
kTRUE if refit Mdt track.
PndTrack * AddMdtTrack(PndTrack *track)
Creates a new hit in the fMdtTrack TCA.
Base class for accessing PID detector information of muon system (MDT, FMDT).
std::unique_ptr< PndRecoKalmanFit > fFitter
Fitter for refit of Mdt track.
Bool_t MdtMapping()
Fill fMapMdtBarrel, fMapMdtEndcap and fMapMdtForward.
TClonesArray * fMdtTrack
Mdt track TCA.
std::map< Int_t, std::vector< Int_t > > fMapMdtBarrel
map of MDT barrel hits -> not used at the moment
std::map< Int_t, std::vector< Int_t > > fMapMdtForward
map of MDT forward hits -> used for Fmdt
TClonesArray * fMdtHit
Mdt hit TCA.
std::map< Int_t, std::vector< Int_t > > fMapMdtEndcap
map of MDT endcap+muon filter hits -> not used at the moment
Float_t fMdtLayerPos[3][20]
position of MDT layers
PndPidMuonSystemInfo()
Default constructor.
Bool_t SetMdtRefit(Bool_t mdt_refit)
Set fMdtRefit and perform refit.
~PndPidMuonSystemInfo()
Default destructor.
Bool_t MdtGeometry()
Fill fMdtLayerPos and fMdtIronThickness.
Base class for accessing PID detector information.
Propagator interface class for PandaRoot.
Definition: PndPropagator.h:52
TClonesArray * fMdtTrk
Mdt trk TCA.
Bool_t Setup(FairRootManager *manager, PndPropagator *propagator, PndPidDetectorParams::DetectorParams *params)
Setup muon system info.
ClassDef(PndPidMuonSystemInfo, 1)
TClonesArray * fMdtPoint
Mdt point TCA.