10 #include "TClonesArray.h" 34 std::vector<TripletSolution>
GetSolutions()
const {
return fFinalSolutions; }
48 virtual void SetBranchMap(std::map<TString, TClonesArray *> &map) { fBranchMap = map; };
54 std::vector<std::vector<PndSttHit *>> PreselectSttHits();
55 TripletValues GenerateTriplets(std::vector<PndSttHit *> hits);
57 std::vector<int> CheckForCurlingTracks(std::map<
int, std::vector<std::vector<PndSttHit *>>> &tubeStructure);
59 TripletValues GetTripletsStraightTracks(std::map<
int, std::vector<std::vector<PndSttHit *>>> &tubeStructure);
60 TripletValues GetTripletsCurledTracks(std::map<
int, std::vector<std::vector<PndSttHit *>>> &tubeStructure);
61 std::map<int, std::vector<std::vector<PndSttHit *>>> GenerateCurlingGroups();
63 int GetMidIndex(
int firstRow,
int lastRow);
65 TripletValues FindTubesForStraightInCurled(std::map<
int, std::vector<std::vector<PndSttHit *>>> &CombinedTubeStructure);
66 TripletValues FindTubesForTracksInFirstRow(std::map<
int, std::vector<std::vector<PndSttHit *>>> &TubeStructure);
67 void DeleteFromCurlingPool(std::vector<TripletSolution> &combinedSolutions, std::map<
int, std::vector<std::vector<PndSttHit *>>> &CombinedTubeStructure);
70 std::vector<TripletSolution> fSolutions;
71 std::vector<TripletSolution> fFinalSolutions;
72 std::vector<TripletSolution> fPreselectedTracks;
73 std::vector<TripletSolution> fTripletsFirst;
74 std::vector<TripletSolution> fTripletsMid;
75 std::vector<TripletSolution> fTripletsLast;
76 std::vector<TripletSolution> fTripletsCombi;
77 std::vector<TripletSolution> fTripletTracks;
78 std::vector<TripletSolution> fContinuousTripletTracks;
79 std::vector<TripletSolution> fTripletTracksAfterAdding;
81 std::vector<std::map<int, std::vector<std::vector<PndSttHit *>>>> fCurlingGroups;
82 std::vector<PndSttHit *> fCurlingGroup;
88 int fNExpectedTracks = -1;
89 bool fWithTubeReduction =
true;
90 bool fWithCombiReduction =
true;
91 bool fWithCurlingTracks =
true;
93 bool fIsCurling =
false;
94 bool fIsStrongCurling =
false;
95 std::map<TString, TClonesArray *> fBranchMap;
97 std::map<FairLink, int> fMapHitstoCATracklet;
99 double fMinDistance = 0.;
100 int fAllHitsCounter = 0;
101 int fFirstRowNumber = 0;
102 int fLastRowNumber = 19;
103 int fBeforeSkewedRowNumber = 7;
104 int fAfterSkewedRowNumber = 16;
106 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...