16 #ifndef PndHoughUtilities_H_ 17 #define PndHoughUtilities_H_ 19 #include "FairRootManager.h" 40 PndHoughUtilities(
PndHoughData *fData) : fMapFairLinktoFairHit(fData->GetMapFairLinktoFairHit()), fMapFairLinktoIsochrone(fData->GetMapFairLinktoIsochrone())
42 ioman = FairRootManager::Instance();
50 double Pt(
double B,
double r);
71 FairRootManager *ioman =
nullptr;
73 std::map<FairLink, FairHit *> fMapFairLinktoFairHit;
74 std::map<FairLink, double> fMapFairLinktoIsochrone;
std::vector< double > calcIntersectionPointCircleLine(std::vector< double > &circle, double m, double b, double Ax)
Finds the intersection point between a line and a circle.
double Pt(double B, double r)
Determines the transverse momentum.
PndHoughUtilities(PndHoughData *fData)
std::vector< double > getCircleFromPndTrack(PndTrack &tr)
Determines the circle from a PndTrack.
PndTrack getPndTrack(Double_t B, PndTrackCand &myCand, TVector3 &circle)
Determined the PndTrack for a given track candidate and a circle.
std::tuple< TVector3, Int_t > getPandqforHit(int i, double B, TVector3 &circle, PndTrackCand &myCand)
Determines the charge q and the momentum p of a hit.
virtual ~PndHoughUtilities()
TVector2 findCorrectIntersectionPoint(std::vector< double > &intersectionPoints, TVector2 &point)
Finds the correct intersection point.
FairTrackParP getTrackParPForHit(Int_t i, Double_t B, PndTrackCand &myCand, TVector3 &circle)
Helper function to find PndTrack parameters from a circle.
double calcDistanceFromIsochroneToCircle(double &xi, double &yi, double &ri, double &xT, double &yT, double &rT)
Calculates the distance from a hitpoint (MVD hit or nearest point of stt isochrone to track) to a cir...
TVector2 calcPointOnCircle(Int_t i, PndTrackCand &myCand, std::vector< double > &circle)
Finds the point on a circle closest to the given hit point.
double calcDistanceTrackCandToTrack(PndTrackCand &trackCand, std::vector< double > &circle)
Calculates the sum of distances from each hit of a track to the track circle.