PandaRoot
PndRecoKalmanTask.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 //-----------------------------------------------------------
14 // File and Version Information:
15 // $Id$
16 //
17 // Description:
18 // Kalman Filter Task
19 //
20 // Environment:
21 // Software developed for the PANDA Detector at FAIR.
22 //
23 // Author List:
24 // Sebastian Neubert TUM (original author)
25 // Stefano Spataro, UNI Torino
26 //
27 //-----------------------------------------------------------
28 
29 #ifndef PNDRECOKALMANTASK_HH
30 #define PNDRECOKALMANTASK_HH
31 
32 // Base Class Headers ----------------
33 #include "PndPersistencyTask.h"
34 
35 // Collaborating Class Headers -------
36 #include "TString.h"
37 #include "PndRecoKalmanFit.h"
38 #include "PndRecoDafFit.h"
39 
40 // Collaborating Class Declarations --
41 class TClonesArray;
42 class GFRecoHitFactory;
43 
45  public:
46  // Constructors/Destructors ---------
47  PndRecoKalmanTask(const char *name = "Genfit", Int_t iVerbose = 0);
49 
50  // Operators
51 
52  // Accessors -----------------------
53 
54  // Modifiers -----------------------
55  void SetTrackInBranchName(const TString &name) { fTrackInBranchName = name; }
56  // void SetTrackInIDBranchName(const TString& name) { fTrackInIDBranchName = name;}
57  void SetTrackOutBranchName(const TString &name) { fTrackOutBranchName = name; }
58  void SetMvdBranchName(const TString &name) { fMvdBranchName = name; }
59  void SetCentralTrackerBranchName(const TString &name) { fCentralTrackerBranchName = name; }
60  void SetPersistence(Bool_t opt = kTRUE) { fPersistence = opt; }
61  void SetGeane(Bool_t opt = kTRUE) { fUseGeane = opt; }
62  void SetIdealHyp(Bool_t opt = kTRUE) { fIdealHyp = opt; }
63  void SetDaf(Bool_t opt = kTRUE) { fDaf = opt; }
64  void SetPropagateToIP(Bool_t opt = kTRUE) { fPropagateToIP = opt; }
65  void SetPropagateDistance(Float_t opt = -1.) { fPropagateDistance = opt; }
66  void SetPerpPlane(Bool_t opt = kTRUE) { fPerpPlane = opt; }
67  void SetNumIterations(Int_t num) { fNumIt = num; }
68  void SetTrackRep(Short_t num) { fTrackRep = num; }
69  void SetParticleHypo(TString s);
70  void SetParticleHypo(Int_t h);
71  void SetBusyCut(Int_t b) { fBusyCut = b; }
72 
73  // Operations ----------------------
74  virtual InitStatus Init();
75  void SetParContainers();
76  virtual void Exec(Option_t *opt);
77 
78  protected:
79  // Private Data Members ------------
80  TClonesArray *fTrackArray;
81  // TClonesArray* fTrackIDArray; //! Input TCA for PndTrackID
82  TClonesArray *fMCTrackArray;
83  TClonesArray *fFitTrackArray;
84 
86  // TString fTrackInIDBranchName; //! Name of the input TCA
88 
89  TString fMvdBranchName;
91 
94  TDatabasePDG *pdg;
95 
96  Bool_t fPersistence;
97 
98  Bool_t fUseGeane;
99  Bool_t fSmoothing;
100  Bool_t fIdealHyp;
101  Bool_t fDaf;
102  Bool_t fPropagateToIP;
104  Bool_t fPerpPlane;
105  Short_t fTrackRep;
106  Int_t fNumIt;
107  Int_t fPDGHyp;
108  Int_t fBusyCut;
109 
111 };
112 
113 #endif
PndRecoKalmanTask(const char *name="Genfit", Int_t iVerbose=0)
void SetPersistence(Bool_t opt=kTRUE)
TString fTrackInBranchName
Output TCA for track.
TClonesArray * fTrackArray
void SetIdealHyp(Bool_t opt=kTRUE)
void SetMvdBranchName(const TString &name)
Short_t fTrackRep
Flag to use as initial plane the one perpendicular to the track (kFALSE)
Bool_t fPersistence
Particle DB.
void SetParticleHypo(TString s)
TString fCentralTrackerBranchName
Name of the TCA for MVD.
ClassDef(PndRecoKalmanTask, 1)
Skip too busy events with more tracks.
void SetCentralTrackerBranchName(const TString &name)
void SetTrackOutBranchName(const TString &name)
TDatabasePDG * pdg
virtual void Exec(Option_t *opt)
void SetPerpPlane(Bool_t opt=kTRUE)
Bool_t fIdealHyp
Flag to set on smoothing (not used)
void SetPropagateDistance(Float_t opt=-1.)
Int_t fPDGHyp
Number of iterations.
Bool_t fPerpPlane
Distance in [cm] to back-propagate the parameters, negative number means no backpropagation.
Factory object to create RecoHits from digitized and clustered data.
Bool_t fPropagateToIP
Flag to use Deterministic Annealing.
Int_t fNumIt
(0) GeaneTrackRep, 1 RKTrackRep
PndRecoKalmanFit * fFitter
Name of the TCA for central tracker.
void SetGeane(Bool_t opt=kTRUE)
TClonesArray * fFitTrackArray
Input TCA for PndMCTrack.
PndRecoDafFit * fDafFitter
Bool_t fDaf
Flag to use MC particle hypothesis.
TString fMvdBranchName
Name of the output TCA.
void SetDaf(Bool_t opt=kTRUE)
void SetTrackRep(Short_t num)
virtual InitStatus Init()
void SetBusyCut(Int_t b)
void SetTrackInBranchName(const TString &name)
TString fTrackOutBranchName
Name of the input TCA.
void SetPropagateToIP(Bool_t opt=kTRUE)
void SetNumIterations(Int_t num)
Bool_t fSmoothing
Flag to use Geane.
Float_t fPropagateDistance
Flag to propagate the parameters to the interaction point (kTRUE)
TClonesArray * fMCTrackArray
Input TCA for PndTrack.
Int_t fBusyCut
Hypothesis.
Bool_t fUseGeane
Persistence.