28 #include "TClonesArray.h"
30 #include "FairRootManager.h"
31 #include "FairGeanePro.h"
32 #include "FairRunAna.h"
33 #include "FairRuntimeDb.h"
37 fTrackOutBranchName(
""), fMvdBranchName(
""), fCentralTrackerBranchName(
""),
38 fFitter(), fPersistence(kTRUE),
39 fUseGeane(kTRUE), fIdealHyp(kFALSE),
40 fPropagateToIP(kFALSE), fPropagateDistance(2.
f), fPerpPlane(kFALSE),fTrackRep(0),
41 fNumIt(1), fBusyCut(20)
74 FairRootManager* ioman= FairRootManager::Instance();
78 Error(
"PndRecoMultiKalmanTask::Init",
"RootManager not instantiated!");
86 Error(
"PndRecoMultiKalmanTask::Init",
"track-array not found!");
89 unsigned int nfits = 0;
122 std::cout<<
" -I- PndRecoMultiKalmanTask::Init: No hypotheses given, running kalman filter with all 5 hypothesis" << std::endl;
139 FairRuntimeDb*
rtdb = FairRunAna::Instance()->GetRuntimeDb();
146 if (
fVerbose>0) std::cout<<
"PndRecoMultiKalmanTask::Exec"<<std::endl;
157 if (
fVerbose>1) std::cout <<
" -I- PndRecoMultiKalmanTask: contains " << ntracks <<
" Tracks."<< std::endl;
162 std::cout<<
" -I- PndRecoMultiKalmanTask::Exec: ntracks=" << ntracks <<
" Evil Event! skipping" << std::endl;
167 for(Int_t itr=0; itr<ntracks; ++itr)
169 if (
fVerbose>1) std::cout<<
"starting track"<<itr<<std::endl;
174 Int_t PDGCode = -11*fCharge;
176 fitTrack =
fFitter->
Fit(prefitTrack, PDGCode);
179 Int_t size = trkRef.GetEntriesFast();
185 Int_t PDGCode = -13*fCharge;
187 fitTrack =
fFitter->
Fit(prefitTrack, PDGCode);
190 Int_t size = trkRef.GetEntriesFast();
196 Int_t PDGCode = 211*fCharge;
198 fitTrack =
fFitter->
Fit(prefitTrack, PDGCode);
201 Int_t size = trkRef.GetEntriesFast();
207 Int_t PDGCode = 321*fCharge;
209 fitTrack =
fFitter->
Fit(prefitTrack, PDGCode);
212 Int_t size = trkRef.GetEntriesFast();
218 Int_t PDGCode = 2212*fCharge;
220 fitTrack =
fFitter->
Fit(prefitTrack, PDGCode);
223 Int_t size = trkRef.GetEntriesFast();
230 if (
fVerbose>0) std::cout<<
"Fitting done"<<std::endl;
Float_t fPropagateDistance
Flag to propagate the parameters to the interaction point (kTRUE)
TClonesArray * fFitTrackArrayProton
Output TCA for track.
void SetPropagateToIP(Bool_t opt=kTRUE)
void SetTrackRep(Int_t num)
Bool_t fUseGeane
Persistence.
TClonesArray * fTrackArray
void SetPersistency(Bool_t val=kTRUE)
PndGeoSttPar * fSttParameters
Flag to check which hypotheses to fit with.
Bool_t fPropagateToIP
Flag to use MC particle hypothesis.
void SetPropagateDistance(Float_t opt=-1.f)
PndRecoMultiKalmanTask(const char *name="Genfit", Int_t iVerbose=0, TString fithypo="electron;muon;pion;kaon;proton")
void SetMvdBranchName(const TString &name)
TClonesArray * fFitTrackArrayKaon
Output TCA for track.
ClassImp(PndRecoMultiKalmanTask)
PndTrackCand GetTrackCand()
void SetPerpPlane(Bool_t opt=kTRUE)
FairTrackParP GetParamLast()
Bool_t fHypoFlag[5]
Flag to set on smoothing.
TString fCentralTrackerBranchName
Name of the TCA for MVD.
virtual InitStatus Init()
TString fTrackOutBranchName
Name of the input TCA.
void SetGeane(Bool_t opt=kTRUE)
Int_t fNumIt
(0) GeaneTrackRep, 1 RKTrackRep
~PndRecoMultiKalmanTask()
TClonesArray * fFitTrackArrayMuon
Output TCA for track.
TClonesArray * fFitTrackArrayElectron
Short_t fTrackRep
Flag to use as initial plane the one perpendicular to the track (kFALSE)
void SetVerbose(Int_t verb)
TString fTrackInBranchName
Output TCA for track.
void SetCentralTrackerBranchName(const TString &name)
PndRecoKalmanFit * fFitter
PndTrack * Fit(PndTrack *tBefore, Int_t PDG)
void SetNumIterations(Int_t num)
Bool_t fPerpPlane
Distance in [cm] to back-propagate the parameters, negative number means no backpropagation.
virtual void Exec(Option_t *opt)
Int_t fBusyCut
Number of iterations.
TClonesArray * fFitTrackArrayPion
Output TCA for track.
TString fMvdBranchName
Name of the output TCA.
TString fFitWithHypo
Name of the TCA for central tracker.
PndGeoFtsPar * fFtsParameters
STT params.
FairTrackParP GetParamFirst()