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);
    56   void AddGemHits(vector<vector<FairHit>> AllMvdStripHits);
    68   vector<PndSttHit> 
GetSttHits(
int i) { 
return fResultSkewedSttHits[
i]; };
    95     fVectorPndRiemannTrack.clear();
    96     fVectorPndTrack.clear();
    97     fVectorPndTrackCand.clear();
    98     fVectorSkewedSttHits.clear();
    99     fVectorMvdPixelHits.clear();
   100     fVectorMvdStripHits.clear();
   101     fVectorGemHits.clear();
   103     fResultPndRiemannTrack.clear();
   104     fResultPndTrack.clear();
   105     fResultPndTrackCand.clear();
   106     fResultPzData.clear();
   107     fResultSkewedSttHits.clear();
   108     fResultMvdPixelHits.clear();
   109     fResultMvdStripHits.clear();
   110     fVectorGemHits.clear();
   113       cout << 
"PndSttSkewStrawPzFinder::Reset()" << endl;
   123   Double_t LineCombiAngleThreshold;
   124   TClonesArray *fTubeArray;
   125   TClonesArray *fSTTHits;
   131   vector<PndRiemannTrack> fVectorPndRiemannTrack;
   132   vector<PndTrack> fVectorPndTrack;
   133   vector<PndTrackCand> fVectorPndTrackCand;
   135   vector<vector<PndSttHit>> fVectorSkewedSttHits;
   136   vector<vector<FairHit>> fVectorMvdPixelHits;
   137   vector<vector<FairHit>> fVectorMvdStripHits;
   138   vector<vector<FairHit>> fVectorGemHits;
   141   vector<PndRiemannTrack> fResultPndRiemannTrack;
   142   vector<PndTrack> fResultPndTrack;
   143   vector<PndTrackCand> fResultPndTrackCand;
   145   vector<vector<PndSttHit>> fResultSkewedSttHits;
   146   vector<vector<FairHit>> fResultMvdPixelHits;
   147   vector<vector<FairHit>> fResultMvdStripHits;
   148   vector<vector<FairHit>> fResultGemHits;
   151   vector<PndSttSkewStrawPzFinderData> fResultPzData;
   155   void GetCenterOfTrack(
PndTrack temp, TVector2 ¢er, 
double &radius);
   157   Int_t ComputeSegmentCircleIntersection(TVector2 ex1, TVector2 ex2, 
double xc, 
double yc, 
double R, TVector2 &intersection1, TVector2 &intersection2);
   159   TVector2 ComputeTangentInPoint(
double xc, 
double yc, TVector2 point);
   163   vector<pair<unsigned int, unsigned int>>
   164   LineCombiIsoFinderIndex2(vector<vector<TVector2>> SZPairVector, vector<TVector2> SZPairVectorMvdPixel, vector<TVector2> SZPairVectorMvdStrip, vector<TVector2> SZPairVectorGem);
   169   vector<pair<unsigned int, unsigned int>> HoughTrueIsoFinderIndex(vector<vector<TVector2>> SZPairVector, vector<TVector2> SZPairVectorMvdPixel,
   170                                                                    vector<TVector2> SZPairVectorMvdStrip, vector<TVector2> SZPairVectorGem, 
bool draw);
   177   vector<vector<PndSttHit>> MoveSkewedHitsToCircle(TVector2 circle, Double_t circlerad, vector<PndSttHit> skewhits, vector<vector<PndSttHit>> &corrxy);
   179   void NestedFor(vector<int> ×, vector<int> ¤t, pair<vector<int>, 
double> &
best, 
double sum, vector<vector<pair<vector<int>, 
double>>> matrix, 
unsigned int depth);
   185   double PzLineFitExtract3(vector<vector<TVector2>> TrueSZPairVector, vector<TVector2> TrueSZPairVectorMvdPixel, vector<TVector2> TrueSZPairVectorMvdStrip,
   186                            vector<TVector2> TrueSZPairVectorGem, TVector2 &lineparams);
   188   void LineFitRecursiveAnnealFinder(vector<vector<TVector2>> SZPairVector, vector<double> DriftRadVector, vector<TVector2> SZPairVectorMvdPixel,
   189                                     vector<TVector2> SZPairVectorMvdStrip, vector<TVector2> SZPairVectorGem, vector<pair<unsigned int, unsigned int>> &TrueSZPairVectorindex,
   190                                     vector<unsigned int> &TrueSZPairVectorMvdPixelindex, vector<unsigned int> &TrueSZPairVectorMvdStripindex,
   191                                     vector<unsigned int> &TrueSZPairVectorGemindex);
   193   FairTrackParP GetTrackParam(FairTrackParP oldParam, TVector2 center, 
double radius, TVector2 lineparams, 
double S0, 
int charge);
   195   Double_t CalculateResidual(Double_t lineSlope, Double_t lineIntercept, TVector2 SZPoint);
   197   void LineFit(vector<vector<TVector2>> SZPairVector, vector<double> DriftRadVector, vector<TVector2> SZPairVectorMvdPixel, vector<TVector2> SZPairVectorMvdStrip,
   198                vector<TVector2> SZPairVectorGem, 
double &k, 
double &
m);
   199   void DrawOpt2D(TH2D *ShitSpace);
 
void setStepTheta(double input)
PndRiemannTrack GetRiemannTrack(int i)
vector< FairHit > GetMvdPixelHits(int i)
vector< FairHit > GetGemHits(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)