1 #ifndef TRACKRECO_PHCASEEDING_H
2 #define TRACKRECO_PHCASEEDING_H
24 #include <Eigen/Dense>
26 #pragma GCC diagnostic push
27 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
28 #include <boost/geometry/geometries/box.hpp>
29 #pragma GCC diagnostic pop
31 #include <boost/geometry/geometries/point.hpp>
32 #include <boost/geometry/index/rtree.hpp>
41 #include <unordered_set>
53 using point = bg::model::point<float, 3, bg::cs::cartesian>;
54 using box = bg::model::box<point>;
55 using pointKey = std::pair<point, TrkrDefs::cluskey>;
58 using keylist = std::vector<TrkrDefs::cluskey>;
59 using PositionMap = std::map<TrkrDefs::cluskey, Acts::Vector3>;
66 unsigned int start_layer = 7,
67 unsigned int end_layer = 55,
68 unsigned int min_nhits_per_cluster = 0,
69 unsigned int min_clusters_per_track = 5,
70 const unsigned int nlayers_maps = 3,
72 const unsigned int nlayers_tpc = 48,
73 float neighbor_phi_width = .02,
74 float neighbor_eta_width = .01,
75 float maxSinPhi = 0.999,
76 float cosTheta_limit = -0.8);
86 std::cout <<
"rescale: " << rescale << std::endl;
120 std::pair<std::vector<std::unordered_set<keylink>>,std::vector<std::unordered_set<keylink>>>
CreateLinks(
const std::vector<coordKey>&
clusters,
const PositionMap& globalPositions)
const;
121 std::vector<std::vector<keylink>>
FindBiLinks(
const std::vector<std::unordered_set<keylink>>& belowLinks,
const std::vector<std::unordered_set<keylink>>& aboveLinks)
const;
122 std::vector<keylist>
FollowBiLinks(
const std::vector<std::vector<keylink>>& bidirectionalLinks,
const PositionMap& globalPositions)
const;
123 void QueryTree(
const bgi::rtree<
pointKey, bgi::quadratic<16>> &rtree,
double phimin,
double etamin,
double lmin,
double phimax,
double etamax,
double lmax, std::vector<pointKey> &returned_values)
const;
127 void publishSeeds(
const std::vector<TrackSeed_v1>& seeds);
164 bgi::rtree<pointKey, bgi::quadratic<16>>
_rtree;