FairRoot/PandaRoot
PndIdealTrackFinder.h
Go to the documentation of this file.
1 
11 #ifndef PndIdealTrackFinder_H_
12 #define PndIdealTrackFinder_H_
13 
14 
15 // framework includes
16 #include "PndPersistencyTask.h"
17 #include "FairMCPoint.h"
18 #include "PndTrackCand.h"
19 #include "PndTrackFunctor.h"
20 
21 #include "TClonesArray.h"
22 #include "TDatabasePDG.h"
23 #include <math.h>
24 
26 public:
28  virtual ~PndIdealTrackFinder();
29 
31 // virtual void SetParContainers();
32  virtual InitStatus Init();
33  virtual void AddBranchName(TString name){ fBranchNames.push_back(name);}
34  virtual void AddBranchName(TString name, TString mcName){ fBranchNames.push_back(name); fPointBranchMap[name] = mcName;}
35 
37 
39  virtual void Exec(Option_t* opt);
40 
41  // virtual void Finish();
42 
43  // taken from sttmvdtracking/PndSttMvdGemTrackingIdeal.h
44  void SetMomentumSmearing(Double_t sigmax = -1.,Double_t sigmay = -1.,Double_t sigmaz = -1.) {
45  fMomSigma.SetXYZ(fabs(sigmax),fabs(sigmay),fabs(sigmaz));
46  fRelative=kFALSE;
47  }; // in GeV
49  fDPoP=fabs(dpop);
50  fRelative=kTRUE;
51  }; // in GeV
52  void SetVertexSmearing(Double_t sigmax = -1.,Double_t sigmay = -1.,Double_t sigmaz = -1.) {
53  fVtxSigma.SetXYZ(fabs(sigmax),fabs(sigmay),fabs(sigmaz));
54  }; // in cm
55  void SetTrackingEfficiency(Double_t eff = 1.) {
56  fEfficiency=eff;
57  };
58 
59  void SetTrackSelector(TString selector){
61  }
62 
63  void SetPersistence(Bool_t persistence) { SetPersistency(persistence); }
64 
65 
66 protected:
67  virtual void CreateTrackCands();
68  virtual void CreateTracks();
69  virtual void FilterTrackCands();
70  virtual FairMCPoint* GetFairMCPoint(TString hitBranch, FairMultiLinkedData_Interface* links, FairMultiLinkedData& array);
71  // taken from sttmvdtracking/PndSttMvdGemTrackingIdeal.h
72  virtual void SmearVector(TVector3 &vec, const TVector3 &sigma);
73 
74 protected:
76  TClonesArray* fTrackCand;
77  TClonesArray* fTrack;
78  TClonesArray* fMCTrack;
80  std::map<TString, TClonesArray*> fBranchMap;
81  std::vector<TString> fBranchNames;
82  std::map<FairLink, PndTrackCand> fTrackCandMap;
83  std::map<FairLink, FairMCPoint > fFirstPointMap;
84  std::map<FairLink, FairMCPoint > fLastPointMap;
85  std::map<TString, TString> fPointBranchMap;
86 
87  TDatabasePDG *fPdg;
88 
89  Int_t fHitCount;
90 
91  // Parameters for fake tracking taken from sttmvdtracking/PndSttMvdGemTrackingIdeal.h
92  TVector3 fMomSigma;
95  TVector3 fVtxSigma;
97 
98 
100 };
101 
102 #endif /* PndIdealTrackFinder_H_ */
TClonesArray * fTrackCand
virtual void SmearVector(TVector3 &vec, const TVector3 &sigma)
TDatabasePDG * fPdg
! Particle DB
std::map< FairLink, FairMCPoint > fFirstPointMap
virtual InitStatus Init()
void SetTrackingEfficiency(Double_t eff=1.)
Ideal track finder for all types of tracking detectors The PndIdealTrackFinder combines all hits in ...
void SetPersistency(Bool_t val=kTRUE)
virtual void Exec(Option_t *opt)
void SetPersistence(Bool_t persistence)
Double_t sigma[nsteps]
Definition: dedx_bands.C:65
virtual void SetOutputBranchName(TString name)
std::map< TString, TString > fPointBranchMap
virtual void CreateTrackCands()
std::vector< TString > fBranchNames
virtual void AddBranchName(TString name, TString mcName)
Search for tracks only in given branches. If no BranchName is given all tracking detectors are taken...
Double_t
void SetTrackSelector(TString selector)
static PndTrackFunctor * make_PndTrackFunctor(std::string functorName)
PndTrackFunctor * fTrackSelector
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:47
Double_t fDPoP
Relative momentum Smearing.
TString name
ClassDef(PndIdealTrackFinder, 2)
void SetVertexSmearing(Double_t sigmax=-1., Double_t sigmay=-1., Double_t sigmaz=-1.)
TVector3 fMomSigma
Momentum smearing sigma [GeV].
void SetMomentumSmearing(Double_t sigmax=-1., Double_t sigmay=-1., Double_t sigmaz=-1.)
std::map< TString, TClonesArray * > fBranchMap
virtual FairMCPoint * GetFairMCPoint(TString hitBranch, FairMultiLinkedData_Interface *links, FairMultiLinkedData &array)
std::map< FairLink, FairMCPoint > fLastPointMap
virtual void FilterTrackCands()
Double_t fEfficiency
Tracking efficiency - if (0 <= e < 1), some tracks will be discarded.
virtual void AddBranchName(TString name)
Search for tracks only in given branches. If no BranchName is given all tracking detectors are taken...
void SetRelativeMomentumSmearing(Double_t dpop=-1.)
dble_vec_t vec[12]
Definition: ranlxd.cxx:380
TVector3 fVtxSigma
Vertex smearing sigma [cm].
std::map< FairLink, PndTrackCand > fTrackCandMap