PandaRoot
PndPidMuonSystemInfo.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_MUONSYSTEM_INFO_H
14 #define PID_MUONSYSTEM_INFO_H
15 
16 #include <map>
17 #include <vector>
18 #include <memory>
19 
20 #include "TClonesArray.h"
21 
22 #include "FairRootManager.h"
23 #include "FairPropagator.h"
24 #include "PndPropagator.h"
25 #include "FairGeane.h"
26 
27 #include "PndRecoKalmanFit.h"
28 #include "PndTrack.h"
29 #include "PndPidDetectorInfo.h"
30 
40  public:
43 
44  void Register()
45  {
46  if (fMdtRefit)
48  };
50  {
51  if (fMdtRefit)
52  fMdtTrack->Delete();
53  };
55  {
56  FairRootManager::Instance()->Register("MdtTrack", "Pid", fMdtTrack, kTRUE);
57  LOG(info) << "PndPidCorrelator::Register(): "
58  << "registered branch "
59  << "MdtTrack";
60  };
61 
67  Int_t SetDetectorHits(FairRootManager *manager);
68 
74  Bool_t SetMdtRefit(Bool_t mdt_refit);
75 
83  Bool_t Setup(FairRootManager *manager, PndPropagator *propagator, PndPidDetectorParams::DetectorParams *params);
84 
89  void Reset();
90 
96  PndTrack *AddMdtTrack(PndTrack *track);
97 
102  Bool_t MdtMapping();
103 
108  Bool_t MdtGeometry();
109 
110  protected:
111  TClonesArray *fMdtHit = nullptr;
112  TClonesArray *fMdtPoint = nullptr;
113  TClonesArray *fMdtTrk = nullptr;
114  TClonesArray *fMdtTrack = nullptr;
115  Bool_t fMdtRefit;
116 
117  std::unique_ptr<PndRecoKalmanFit> fFitter{nullptr};
118  Float_t fMdtLayerPos[3][20];
119  Float_t fMdtIronThickness[3][20];
120  std::map<Int_t, std::vector<Int_t>> fMapMdtBarrel;
121  std::map<Int_t, std::vector<Int_t>> fMapMdtEndcap;
122  std::map<Int_t, std::vector<Int_t>> fMapMdtForward;
123 
125 };
126 
127 #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:64
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.