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  {
35  };
37  {
38  if (fMdtRefit) fMdtTrack->Delete();
39  };
41  {
42  FairRootManager::Instance()->Register("MdtTrack", "Pid", fMdtTrack, kTRUE);
43  LOG(INFO) << "PndPidCorrelator::Register(): "
44  << "registered branch "
45  << "MdtTrack";
46  };
47 
53  Int_t SetDetectorHits(FairRootManager *manager);
54 
60  Bool_t SetMdtRefit(Bool_t mdt_refit);
61 
69  Bool_t Setup(FairRootManager *manager, PndPropagator *propagator, PndPidDetectorParams::DetectorParams *params);
70 
75  void Reset();
76 
82  PndTrack *AddMdtTrack(PndTrack *track);
83 
88  Bool_t MdtMapping();
89 
94  Bool_t MdtGeometry();
95 
96  protected:
97  TClonesArray *fMdtHit = nullptr;
98  TClonesArray *fMdtPoint = nullptr;
99  TClonesArray *fMdtTrk = nullptr;
100  TClonesArray *fMdtTrack = nullptr;
101  Bool_t fMdtRefit;
102 
103  std::unique_ptr<PndRecoKalmanFit> fFitter{nullptr};
104  Float_t fMdtLayerPos[3][20];
105  Float_t fMdtIronThickness[3][20];
106  std::map<Int_t, std::vector<Int_t>> fMapMdtBarrel;
107  std::map<Int_t, std::vector<Int_t>> fMapMdtEndcap;
108  std::map<Int_t, std::vector<Int_t>> fMapMdtForward;
109 
111 };
112 
113 #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.