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  void SetPreselector(PndPreselectSttHits *val) { fPreselector = val; }
53 
54  protected:
55  void FillPndTrack(std::vector<TripletSolution> &solutions);
56  void FillPndTrackDebug(std::vector<TripletSolution> &solutions, TClonesArray *tracks, TClonesArray *trackCands);
57  PndTrack GetPndTrack(double B, std::vector<FairHit *> &hits, TVector3 &circle, PndTrackCand &cand);
58 
59  private:
60  FairRootManager *ioman = nullptr;
61 
62  PndGeoSttPar *fSttParameters = nullptr;
63  TClonesArray *fTubeArray = nullptr;
64 
65  PndApolloniusTripletTrackFinder *fFinder = nullptr;
66 
67  std::vector<TString> fBranchNames;
68  std::map<TString, TClonesArray *> fBranchMap;
69 
70  TClonesArray *fTrackCandArray = nullptr;
71  TClonesArray *fTrackArray = nullptr;
72 
73  PndPreselectSttHits *fPreselector = nullptr;
74  PndSttCA *fCATrackFinder = nullptr;
75 
76  double fBz = 2.;
77 
78  bool fWithTubeReduction;
79  bool fWithCombiReduction;
80 
81  TClonesArray *fPreselectedTracksCands = nullptr;
82  TClonesArray *fPreselectedTracks = nullptr;
83  TClonesArray *fTripletsFirstCands = nullptr;
84  TClonesArray *fTripletsFirst = nullptr;
85  TClonesArray *fTripletsMidCands = nullptr;
86  TClonesArray *fTripletsMid = nullptr;
87  TClonesArray *fTripletsLastCands = nullptr;
88  TClonesArray *fTripletsLast = nullptr;
89  TClonesArray *fTripletsCombiCands = nullptr;
90  TClonesArray *fTripletsCombi = nullptr;
91  TClonesArray *fTripletTracksCands = nullptr;
92  TClonesArray *fTripletTracks = nullptr;
93  TClonesArray *fContinuousTripletTracksCands = nullptr;
94  TClonesArray *fContinuousTripletTracks = nullptr;
95  TClonesArray *fTripletTracksCandsAfterAdding = nullptr;
96  TClonesArray *fTripletTracksAfterAdding = nullptr;
97 
99 };
virtual void AddBranchName(TString name)
Search for tracks only in given branches. If no BranchName is given all tracking detectors are taken...