1 #ifndef TRACKRECO_PHCASEEDING_H
2 #define TRACKRECO_PHCASEEDING_H
22 #include <Eigen/Dense>
24 #include <boost/geometry/geometries/box.hpp>
25 #include <boost/geometry/geometries/point.hpp>
26 #include <boost/geometry/index/rtree.hpp>
35 #include <unordered_set>
46 namespace bg = boost::geometry;
47 namespace bgi = boost::geometry::index;
49 using point = bg::model::point<float, 3, bg::cs::cartesian>;
50 using box = bg::model::box<point>;
51 using pointKey = std::pair<point, TrkrDefs::cluskey>;
54 using keylist = std::vector<TrkrDefs::cluskey>;
55 using PositionMap = std::map<TrkrDefs::cluskey, Acts::Vector3F>;
61 const std::string &
name =
"PHCASeeding",
62 unsigned int start_layer = 7,
63 unsigned int end_layer = 55,
64 unsigned int min_nhits_per_cluster = 0,
65 unsigned int min_clusters_per_track = 5,
66 const unsigned int nlayers_maps = 3,
67 const unsigned int nlayers_intt = 4,
68 const unsigned int nlayers_tpc = 48,
69 float neighbor_phi_width = .02,
70 float neighbor_eta_width = .01,
71 float maxSinPhi = 0.999,
72 float cosTheta_limit = -0.8);
82 std::cout <<
"rescale: " << rescale << std::endl;
118 std::pair<std::vector<std::unordered_set<keylink>>,std::vector<std::unordered_set<keylink>>>
CreateLinks(
const std::vector<coordKey>& clusters,
const PositionMap& globalPositions,
int mode = skip_layers::off)
const;
119 std::vector<std::vector<keylink>>
FindBiLinks(
const std::vector<std::unordered_set<keylink>>& belowLinks,
const std::vector<std::unordered_set<keylink>>& aboveLinks)
const;
121 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;
124 void publishSeeds(
const std::vector<SvtxTrack_v2>& seeds);
163 bgi::rtree<pointKey, bgi::quadratic<16>>
_rtree;