8 #ifndef PNDSTTSKEWSTRAWPZFINDER_H_ 9 #define PNDSTTSKEWSTRAWPZFINDER_H_ 44 void AddPndRiemannTracks(vector<PndRiemannTrack> AllRiemannTracks);
46 void AddPndTracks(vector<PndTrack> AllTracks);
48 void AddPndTrackCands(vector<PndTrackCand> AllTrackCands);
50 void AddPndSttHits(vector<vector<PndSttHit>> AllSkewedHits);
52 void AddMvdPixelHits(vector<vector<FairHit>> AllMvdPixelHits);
54 void AddMvdStripHits(vector<vector<FairHit>> AllMvdStripHits);
66 vector<PndSttHit>
GetSttHits(
int i) {
return fResultSkewedSttHits[
i]; };
89 fVectorPndRiemannTrack.clear();
90 fVectorPndTrack.clear();
91 fVectorPndTrackCand.clear();
92 fVectorSkewedSttHits.clear();
93 fVectorMvdPixelHits.clear();
94 fVectorMvdStripHits.clear();
96 fResultPndRiemannTrack.clear();
97 fResultPndTrack.clear();
98 fResultPndTrackCand.clear();
99 fResultPzData.clear();
100 fResultSkewedSttHits.clear();
101 fResultMvdPixelHits.clear();
102 fResultMvdStripHits.clear();
105 cout <<
"PndSttSkewStrawPzFinder::Reset()" << endl;
115 Double_t LineCombiAngleThreshold;
116 TClonesArray *fTubeArray;
117 TClonesArray *fSTTHits;
123 vector<PndRiemannTrack> fVectorPndRiemannTrack;
124 vector<PndTrack> fVectorPndTrack;
125 vector<PndTrackCand> fVectorPndTrackCand;
127 vector<vector<PndSttHit>> fVectorSkewedSttHits;
128 vector<vector<FairHit>> fVectorMvdPixelHits;
129 vector<vector<FairHit>> fVectorMvdStripHits;
132 vector<PndRiemannTrack> fResultPndRiemannTrack;
133 vector<PndTrack> fResultPndTrack;
134 vector<PndTrackCand> fResultPndTrackCand;
136 vector<vector<PndSttHit>> fResultSkewedSttHits;
137 vector<vector<FairHit>> fResultMvdPixelHits;
138 vector<vector<FairHit>> fResultMvdStripHits;
141 vector<PndSttSkewStrawPzFinderData> fResultPzData;
145 void GetCenterOfTrack(
PndTrack temp, TVector2 ¢er,
double &radius);
147 Int_t ComputeSegmentCircleIntersection(TVector2 ex1, TVector2 ex2,
double xc,
double yc,
double R, TVector2 &intersection1, TVector2 &intersection2);
149 TVector2 ComputeTangentInPoint(
double xc,
double yc, TVector2 point);
153 vector<pair<unsigned int, unsigned int>>
154 LineCombiIsoFinderIndex2(vector<vector<TVector2>> SZPairVector, vector<TVector2> SZPairVectorMvdPixel, vector<TVector2> SZPairVectorMvdStrip);
159 vector<pair<unsigned int, unsigned int>>
160 HoughTrueIsoFinderIndex(vector<vector<TVector2>> SZPairVector, vector<TVector2> SZPairVectorMvdPixel, vector<TVector2> SZPairVectorMvdStrip,
bool draw);
167 vector<vector<PndSttHit>> MoveSkewedHitsToCircle(TVector2 circle, Double_t circlerad, vector<PndSttHit> skewhits, vector<vector<PndSttHit>> &corrxy);
169 void NestedFor(vector<int> ×, vector<int> ¤t, pair<vector<int>,
double> &
best,
double sum, vector<vector<pair<vector<int>,
double>>> matrix,
unsigned int depth);
175 double PzLineFitExtract3(vector<vector<TVector2>> TrueSZPairVector, vector<TVector2> TrueSZPairVectorMvdPixel, vector<TVector2> TrueSZPairVectorMvdStrip, TVector2 &lineparams);
177 void LineFitRecursiveAnnealFinder(vector<vector<TVector2>> SZPairVector, vector<double> DriftRadVector, vector<TVector2> SZPairVectorMvdPixel,
178 vector<TVector2> SZPairVectorMvdStrip, vector<pair<unsigned int, unsigned int>> &TrueSZPairVectorindex,
179 vector<unsigned int> &TrueSZPairVectorMvdPixelindex, vector<unsigned int> &TrueSZPairVectorMvdStripindex);
181 FairTrackParP GetTrackParam(FairTrackParP oldParam, TVector2 center,
double radius, TVector2 lineparams,
double S0,
int charge);
183 Double_t CalculateResidual(Double_t lineSlope, Double_t lineIntercept, TVector2 SZPoint);
186 LineFit(vector<vector<TVector2>> SZPairVector, vector<double> DriftRadVector, vector<TVector2> SZPairVectorMvdPixel, vector<TVector2> SZPairVectorMvdStrip,
double &k,
double &
m);
187 void DrawOpt2D(TH2D *ShitSpace);
void setStepTheta(double input)
PndRiemannTrack GetRiemannTrack(int i)
vector< FairHit > GetMvdPixelHits(int i)
int NumPndRiemannTracks()
PndTrackCand GetTrackCand(int i)
virtual ~PndSttSkewStrawPzFinder()
void setMethod(int input)
PndSttSkewStrawPzFinderData GetPzData(int i)
vector< FairHit > GetMvdStripHits(int i)
vector< PndSttHit > GetSttHits(int i)
void WithRiemann(bool set)