PandaRoot
PndApolloniusTripletTrackFinderTask.h
Go to the documentation of this file.
1 // PndApolloniusTripletTrackFinderTask
3 // Finds Track
5 
16 #pragma once
17 
18 #include "FairTask.h"
19 #include <vector>
20 
22 #include "PndSttStrawMap.h"
23 #include "PndGeoSttPar.h"
24 
25 #include "PndPreselectSttHits.h"
26 #include "PndSttCA.h"
27 using namespace PndApollonius;
28 
29 struct TrackSolution;
30 
31 class PndApolloniusTripletTrackFinderTask : public FairTask {
32  public:
35 
38 
40  virtual InitStatus Init();
41 
42  virtual void AddBranchName(TString name) { fBranchMap[name] = nullptr; }
43 
44  void SetParContainers();
45 
47  virtual void Exec(Option_t *opt);
48 
49  virtual void Finish();
50  virtual void SetWithTubeReduction(bool reduction) { fWithTubeReduction = reduction; };
51  virtual void SetWithCombiReduction(bool reduction) { fWithCombiReduction = reduction; };
52  virtual void SetSTTName(TString name) { fSTT = name; };
53  virtual void AddFoundTrackName(TString name) { fBranchNameFoundTrack = name; }
54  void SetPreselector(PndPreselectSttHits *val) { fPreselector = val; }
55 
56  protected:
57  void FillPndTrack(std::vector<TripletSolution> &solutions);
58  void FillPndTrackDebug(std::vector<TripletSolution> &solutions, TClonesArray *tracks, TClonesArray *trackCands);
59  bool CheckZInfo(PndTrackCand &cand);
60 
61  private:
62  FairRootManager *ioman = nullptr;
63 
64  PndGeoSttPar *fSttParameters = nullptr;
65  TClonesArray *fTubeArray = nullptr;
66 
67  PndApolloniusTripletTrackFinder *fFinder = nullptr;
68 
69  PndSttStrawMap *fStrawMap;
70  std::vector<TString> fBranchNames;
71  std::map<TString, TClonesArray *> fBranchMap;
72 
73  TClonesArray *fTrackCandArray = nullptr;
74  TClonesArray *fTrackArray = nullptr;
75 
76  PndPreselectSttHits *fPreselector = nullptr;
77  PndSttCA *fCATrackFinder = nullptr;
78 
79  double fBz = 2.;
80 
81  bool fWithTubeReduction;
82  bool fWithCombiReduction;
83  TString fSTT;
84  TString fBranchNameFoundTrack;
85 
86  TClonesArray *fPreselectedTracksCands = nullptr;
87  TClonesArray *fPreselectedTracks = nullptr;
88  TClonesArray *fTripletsFirstCands = nullptr;
89  TClonesArray *fTripletsFirst = nullptr;
90  TClonesArray *fTripletsMidCands = nullptr;
91  TClonesArray *fTripletsMid = nullptr;
92  TClonesArray *fTripletsLastCands = nullptr;
93  TClonesArray *fTripletsLast = nullptr;
94  TClonesArray *fTripletsCombiCands = nullptr;
95  TClonesArray *fTripletsCombi = nullptr;
96  TClonesArray *fTripletTracksCands = nullptr;
97  TClonesArray *fTripletTracks = nullptr;
98  TClonesArray *fContinuousTripletTracksCands = nullptr;
99  TClonesArray *fContinuousTripletTracks = nullptr;
100  TClonesArray *fCombinedTripletTracksCands = nullptr;
101  TClonesArray *fCombinedTripletTracks = nullptr;
102  TClonesArray *fTripletTracksCandsAfterAdding = nullptr;
103  TClonesArray *fTripletTracksAfterAdding = nullptr;
104  TClonesArray *fBranchFoundTrack = nullptr;
105  TClonesArray *fSttBranchOriginal = nullptr;
106 
108 };
virtual void AddBranchName(TString name)
Search for tracks only in given branches. If no BranchName is given all tracking detectors are taken...