20 bool HasL1XYHit(
const TH2D * hTrackerL1_XY,
const double& x,
const double& y,
const bool& debug =
false)
23 int binX = hTrackerL1_XY->GetXaxis()->FindBin(x);
24 int binY = hTrackerL1_XY->GetYaxis()->FindBin(y);
27 printf(
"\n\nFor (%f, %f): (binX, binY) = (%d, %d). Bin content = %f\n\n", x, y, binX, binY, hTrackerL1_XY->GetBinContent(binX, binY));
29 return (hTrackerL1_XY->GetBinContent(binX, binY) > 0);
36 const std::vector<Point::Point2DwID>& gMCClustersXY,
37 const bool& debug =
false)
42 std::cerr<<
"\n\nWARNING! Bad pointer for hTrackerL1_XY\n\n";
56 std::cout<<
"\nThe extrapolated X and Y at L1 for the 3D line are: "<<x_extrapolated<<
", "<<y_extrapolated;
59 bool has_L1_hit =
HasL1XYHit(hTrackerL1_XY, x_extrapolated, y_extrapolated);
65 double minDistance = std::numeric_limits<double>::max();
67 for (
const auto& MCCluster : gMCClustersXY)
69 double distance =
Point::GetDistance2D(x_extrapolated, y_extrapolated, MCCluster.x, MCCluster.y);
72 printf(
"\nDistance from (%7.2f, %7.2f) = %7.2f cm.", MCCluster.x, MCCluster.y, distance);
74 if (distance < minDistance)
76 minDistance = distance;
77 closestPoint = MCCluster;
91 return std::make_pair(closestPoint,
true);
const double TrkL1_ZPos
Definition: AMSTracker.h:12
const double closest_distance_cutoff
cm
Definition: AMSTracker.h:14
const double TrkL1_ZPosCutoff
cm
Definition: AMSTracker.h:13
double GetDistance2D(double x1, double y1, double x2, double y2)
Definition: Point.h:43
cm
Definition: AMSTracker.h:18
bool HasL1XYHit(const TH2D *hTrackerL1_XY, const double &x, const double &y, const bool &debug=false)
Definition: AMSTracker.h:20
std::pair< Point::Point2DwID, bool > FindClosestTrkL1ClusterFrom3DLine(const TH2D *hTrackerL1_XY, const Line::Line3DParametricForm &line, const std::vector< Point::Point2DwID > &gMCClustersXY, const bool &debug=false)
Definition: AMSTracker.h:34
double closedis
Definition: Point.h:25