1 #ifndef RecoHGCal_TICL_TracksterLinkingAlgoBySkeletons_H 2 #define RecoHGCal_TICL_TracksterLinkingAlgoBySkeletons_H 33 std::vector<Trackster>& resultTracksters,
34 std::vector<std::vector<unsigned int>>& linkedResultTracksters,
35 std::vector<std::vector<unsigned int>>& linkedTracksterIdToInputTracksterId)
override;
38 float lower_percentage,
39 float upper_percentage,
45 const std::array<ticl::Vector, 3>& mySkeleton,
46 const std::array<ticl::Vector, 3>& otherSkeleton);
54 iDesc.
add<
double>(
"track_time_quality_threshold", 0.5);
55 iDesc.
add<
double>(
"wind", 0.036);
56 iDesc.
add<
unsigned int>(
"min_num_lcs", 7);
57 iDesc.
add<
double>(
"min_trackster_energy", 10.);
58 iDesc.
add<
double>(
"pca_quality_th", 0.85);
59 iDesc.
add<
double>(
"dot_prod_th", 0.97);
60 iDesc.
add<std::vector<double>>(
"max_distance_projective_sqr", {60., 60.});
61 iDesc.
add<std::vector<double>>(
"min_distance_z", {30., 30.});
62 iDesc.
add<std::vector<double>>(
"max_distance_projective_sqr_closest_points", {60., 60.});
63 iDesc.
add<std::vector<double>>(
"max_z_distance_closest_points", {35., 35.});
64 iDesc.
add<std::vector<double>>(
"cylinder_radius_sqr", {9., 9.});
std::vector< double > min_distance_z_
edm::ESHandle< MagneticField > bfield_
std::vector< double > max_distance_projective_sqr_
void linkTracksters(const Inputs &input, std::vector< Trackster > &resultTracksters, std::vector< std::vector< unsigned int >> &linkedResultTracksters, std::vector< std::vector< unsigned int >> &linkedTracksterIdToInputTracksterId) override
ticl::Trackster::Vector Vector
edm::ESHandle< Propagator > propagator_
bool areCompatible(const ticl::Trackster &myTrackster, const ticl::Trackster &otherTrackster, const std::array< ticl::Vector, 3 > &mySkeleton, const std::array< ticl::Vector, 3 > &otherSkeleton)
static std::string const input
const HGCalDDDConstants * hgcons_
TracksterLinkingbySkeletons(const edm::ParameterSet &conf, edm::ConsumesCollector iC, cms::Ort::ONNXRuntime const *onnxRuntime=nullptr)
std::array< ticl::Vector, 3 > findSkeletonNodes(const ticl::Trackster &trackster, float lower_percentage, float upper_percentage, const std::vector< reco::CaloCluster > &layerClusters, const hgcal::RecHitTools &rhtools)
hgcal::RecHitTools rhtools_
std::unique_ptr< GeomDet > interfaceDisk_[2]
float timing_quality_threshold_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::vector< double > max_distance_projective_sqr_closest_points_
static void fillPSetDescription(edm::ParameterSetDescription &desc)
std::unique_ptr< GeomDet > firstDisk_[2]
float min_trackster_energy_
void initialize(const HGCalDDDConstants *hgcons, const hgcal::RecHitTools rhtools, const edm::ESHandle< MagneticField > bfieldH, const edm::ESHandle< Propagator > propH) override
void dumpLinksFound(std::vector< std::vector< unsigned >> &resultCollection, const char *label) const
~TracksterLinkingbySkeletons() override
static void fillPSetDescription(edm::ParameterSetDescription &iDesc)
std::vector< double > max_z_distance_closest_points_
unsigned int min_num_lcs_
std::vector< double > cylinder_radius_sqr_