22 #include "TClonesArray.h" 46 std::vector<TripletSolution>
GetSolutions()
const {
return fFinalSolutions; }
60 virtual void SetBranchMap(std::map<TString, TClonesArray *> &map) { fBranchMap = map; };
66 std::vector<std::vector<PndSttHit *>> PreselectSttHits();
67 TripletValues GenerateTriplets(std::vector<PndSttHit *> hits);
69 std::vector<int> CheckForCurlingTracks(std::map<
int, std::vector<std::vector<PndSttHit *>>> &tubeStructure);
71 TripletValues GetTripletsStraightTracks(std::map<
int, std::vector<std::vector<PndSttHit *>>> &tubeStructure);
72 TripletValues GetTripletsCurledTracks(std::map<
int, std::vector<std::vector<PndSttHit *>>> &tubeStructure);
73 std::map<int, std::vector<std::vector<PndSttHit *>>> GenerateCurlingGroups();
75 int GetMidIndex(
int firstRow,
int lastRow);
77 TripletValues FindTubesForStraightInCurled(std::map<
int, std::vector<std::vector<PndSttHit *>>> &CombinedTubeStructure);
78 TripletValues FindTubesForTracksInFirstRow(std::map<
int, std::vector<std::vector<PndSttHit *>>> &TubeStructure);
79 void DeleteFromCurlingPool(std::vector<TripletSolution> &combinedSolutions, std::map<
int, std::vector<std::vector<PndSttHit *>>> &CombinedTubeStructure);
82 std::vector<TripletSolution> fSolutions;
83 std::vector<TripletSolution> fFinalSolutions;
84 std::vector<TripletSolution> fPreselectedTracks;
85 std::vector<TripletSolution> fTripletsFirst;
86 std::vector<TripletSolution> fTripletsMid;
87 std::vector<TripletSolution> fTripletsLast;
88 std::vector<TripletSolution> fTripletsCombi;
89 std::vector<TripletSolution> fTripletTracks;
90 std::vector<TripletSolution> fContinuousTripletTracks;
91 std::vector<TripletSolution> fTripletTracksAfterAdding;
93 std::vector<std::map<int, std::vector<std::vector<PndSttHit *>>>> fCurlingGroups;
94 std::vector<PndSttHit *> fCurlingGroup;
100 int fNExpectedTracks = -1;
101 bool fWithTubeReduction =
true;
102 bool fWithCombiReduction =
true;
103 bool fWithCurlingTracks =
true;
105 bool fIsCurling =
false;
106 bool fIsStrongCurling =
false;
107 std::map<TString, TClonesArray *> fBranchMap;
109 std::map<FairLink, int> fMapHitstoCATracklet;
111 double fMinDistance = 0.;
112 int fAllHitsCounter = 0;
113 int fFirstRowNumber = 0;
114 int fLastRowNumber = 19;
115 int fBeforeSkewedRowNumber = 7;
116 int fAfterSkewedRowNumber = 16;
118 TClonesArray *fSttBranchOriginal =
nullptr;
std::vector< TripletSolution > GetPreselectedTracks() const
std::vector< TripletSolution > GetCombinedSolutions() const
std::vector< TripletSolution > GetTripletsLast() const
virtual void SetPreselector(PndPreselectSttHits *val)
std::vector< TripletSolution > GetTripletTracksAfterAdding() const
virtual void SetWithTubeReduction(bool reduction)
std::vector< TripletSolution > GetTripletsMid() const
virtual void SetBranchMap(std::map< TString, TClonesArray *> &map)
A structure that defines all functions used for the Apollonius Triplet track finder.
virtual void SetSTTName(TString name)
std::vector< TripletSolution > GetTripletTracks() const
std::vector< TripletSolution > GetTripletsCombi() const
virtual void SetSTTBranchOriginal(TClonesArray *array)
std::vector< TripletSolution > GetContinuousTripletTracks() const
virtual void SetCATrackFinder(PndSttCA *CAFinder)
std::vector< TripletSolution > GetSolutions() const
std::vector< TripletSolution > GetTripletsFirst() const
virtual void SetWithCombiReduction(bool red)
A structure that defines the three sets of STT hits (inner, mid, outer STT set), that are used to com...