39 hitinfo (TVector3 v3, Double_t phxi, Double_t txi, Double_t tyi) :
xyz(v3),
phx(phxi),
tx(txi),
ty(tyi),
used(0) {;}
70 virtual InitStatus
Init();
73 virtual void Exec(Option_t* opt);
87 Int_t ExcludeHits(Int_t minHits, TClonesArray *trArray);
88 std::set<Int_t> GetHitId(
CbmStsHit *hit, Int_t &idmaxP);
89 std::set<Int_t> GetHitIdBmn(
CbmStsHit *hit, Int_t &idmaxP);
90 std::set<Int_t> GetHitId(Int_t hitInd, Int_t &idmaxP) {
91 return GetHitId((
CbmStsHit*)fHitArray->UncheckedAt(hitInd), idmaxP); }
92 void BuildTrackCand();
94 Bool_t CheckVarx(Double_t dx, Double_t dz, Double_t tx, Double_t distxz, Double_t& varx);
97 void ExtendTrack(candvec cand);
98 Double_t FitTrack(candvec &cand);
99 Double_t FilterHit(candvec &cand,
CbmStsTrack &track);
100 void MakeStsTrack(candvec &cand, std::string &hitcode,
CbmStsTrack &track);
101 void ExtendTracks(Int_t ista);
102 TVector3 Parabola(TVector3& pos0, TVector3& pos1, TVector3& pos2);
104 void RemoveDoubles();
108 Double_t DxVsMom(Int_t ista, candvec &aaa);
109 Double_t Proxim(Double_t ang1, Double_t ang2);
111 Double_t LinearFit(candvec &cand, candvec &cand2,
CbmStsTrack *tr, Int_t newtr, Double_t &ty);
112 Double_t Curv3(candvec &cand1, candvec &cand2, candvec &cand3,
int newtr3);
113 std::set<int> KalmanWindow(candvec &cand,
int hitIndx);
114 std::string MakeCode(candvec &cand);
115 void PrintHits(candvec &cand);
117 Float_t TMVAOutput3(candvec &aaa1, candvec &aaa2);
119 Float_t TMVAOutput2(candvec &aaa1);
122 TClonesArray *fClusArray[4], *fHitArray, *fTrackArray, *fDigiMatches, *fStsPoints, *fSilPoints;
123 TClonesArray *fVectorArray;
133 std::multimap<Double_t,Int_t> fmapPhx[19], fmapTy[19], fmapX[19], fmapY[19];
134 std::vector<candvec> fSeedVec[19];
135 std::vector<candvec> fCandVec[19];
136 std::set<string> fCandCodes[19];
140 std::vector<candvec> fCandVec2[19];
141 std::map<std::string,int> fMap2Out;
142 std::map<std::string,int> *fMap2OutPtr;
143 std::map<std::string,int> fMap3Out;
144 std::map<std::string,int> *fMap3OutPtr;
146 std::unordered_multimap<int,int> fMap2[19];
148 std::vector<candvec> fCandVec3[19];
150 std::unordered_multimap<int,int> fMap3[19];
152 std::unordered_map<std::string,int> fMapCode3[19];
154 std::multimap<Double_t,CbmStsTrack> fTracks;
156 std::unordered_map<Int_t,hitinfo> fmapHits;
158 std::unordered_multimap<Int_t,Int_t> fHit2id, fClusMaps[2];
159 Int_t *fNhitsMin, fNskips[20];
160 Double_t *fdTanX, *fdTanY, *fdTanY3, *fdTanXB0, *fPhiXZ, *fTanXmax, *fZmean, *fPTcut, *fCurvSta;
163 std::set<string> fCandSet[19];
165 TString fMatBudgetFileName;
169 Float_t fVarTMVA[20];
170 TMVA::Reader *fReaderTMVA3;
171 TMVA::Reader *fReaderTMVA2;