PandaRoot
PndRecoMultiKalmanTask.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 for multiple particle hypothesis
19 //
20 // Environment:
21 // Software developed for the PANDA Detector at FAIR.
22 //
23 // Author List:
24 // Sebastian Neubert TUM (original author)
25 // Stefano Spatarot, UNI Torino
26 //
27 //-----------------------------------------------------------
28 
29 #ifndef PNDRECOMULTIKALMANTASK_HH
30 #define PNDRECOMULTIKALMANTASK_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 "PndGeoSttPar.h"
39 #include "PndGeoFtsPar.h"
40 
41 // Collaborating Class Declarations --
42 class TClonesArray;
43 class GFRecoHitFactory;
44 
46  public:
47  // Constructors/Destructors ---------
48  PndRecoMultiKalmanTask(const char *name = "Genfit", Int_t iVerbose = 0, TString fithypo = "electron;muon;pion;kaon;proton");
50 
51  // Operators
52 
53  // Accessors -----------------------
54 
55  // Modifiers -----------------------
56  void SetTrackInBranchName(const TString &name) { fTrackInBranchName = 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 SetGeane(Bool_t opt = kTRUE) { fUseGeane = opt; }
61  void SetNumIterations(Int_t num) { fNumIt = num; }
62  void SetFitHypotheses(const TString &name) { fFitWithHypo = name; }
63  void SetPropagateToIP(Bool_t opt = kTRUE) { fPropagateToIP = opt; }
64  void SetBusyCut(Int_t b) { fBusyCut = b; }
65  void SetTrackRep(Short_t num) { fTrackRep = num; }
66 
67  // Operations ----------------------
68  virtual InitStatus Init();
69  virtual void Exec(Option_t *opt);
70 
71  void SetParContainers();
72 
73  private:
74  // Private Data Members ------------
75  TClonesArray *fTrackArray;
76  TClonesArray *fFitTrackArrays[5];
77 
78  TString fTrackInBranchName;
79  TString fTrackOutBranchName;
80 
81  TString fMvdBranchName;
82  TString fCentralTrackerBranchName;
83 
84  TString fFitWithHypo;
85 
86  PndRecoKalmanFit *fFitter;
87 
88  Bool_t fUseGeane;
89  Bool_t fIdealHyp;
90  Bool_t fPropagateToIP;
91  Float_t fPropagateDistance;
92  Bool_t fPerpPlane;
93  Short_t fTrackRep;
94  Int_t fNumIt;
95  Int_t fBusyCut;
96  Bool_t fSmoothing;
97  Bool_t fHypoFlag[5];
98  int fPDGs[5];
99  PndGeoSttPar *fSttParameters;
100  PndGeoFtsPar *fFtsParameters;
101 
102  TDatabasePDG *pdg;
103 
104  ClassDef(PndRecoMultiKalmanTask, 1);
105 };
106 
107 #endif
void SetGeane(Bool_t opt=kTRUE)
void SetPropagateToIP(Bool_t opt=kTRUE)
PndRecoMultiKalmanTask(const char *name="Genfit", Int_t iVerbose=0, TString fithypo="electron;muon;pion;kaon;proton")
void SetTrackOutBranchName(const TString &name)
virtual void Exec(Option_t *opt)
Factory object to create RecoHits from digitized and clustered data.
void SetMvdBranchName(const TString &name)
virtual InitStatus Init()
void SetCentralTrackerBranchName(const TString &name)
void SetTrackInBranchName(const TString &name)
void SetFitHypotheses(const TString &name)