41 static std::unique_ptr<TrackstersCache> initializeGlobalCache(
const edm::ParameterSet&);
47 std::unique_ptr<PatternRecognitionAlgoBaseT<TICLLayerTiles>>
myAlgo_;
48 std::unique_ptr<PatternRecognitionAlgoBaseT<TICLLayerTilesHFNose>>
myAlgoHFNose_;
64 std::unique_ptr<TrackstersCache>
cache = std::make_unique<TrackstersCache>(
params);
68 if (!graphPath.empty()) {
77 delete cache->eidGraphDef;
78 cache->eidGraphDef =
nullptr;
82 : detector_(ps.getParameter<
std::
string>(
"detector")),
83 doNose_(detector_ ==
"HFNose"),
91 seeding_regions_token_(
93 itername_(ps.getParameter<
std::
string>(
"itername")) {
112 produces<std::vector<Trackster>>();
113 produces<std::vector<float>>();
127 desc.add<std::vector<int>>(
"filter_on_categories", {0});
128 desc.add<
double>(
"pid_threshold", 0.);
129 desc.add<
double>(
"energy_em_over_total_threshold", -1.);
130 desc.add<
double>(
"max_longitudinal_sigmaPCA", 9999);
131 desc.add<
int>(
"shower_start_max_layer", 9999);
132 desc.add<
int>(
"algo_verbosity", 0);
133 desc.add<
double>(
"min_cos_theta", 0.915);
134 desc.add<
double>(
"root_doublet_max_distance_from_seed_squared", 9999);
135 desc.add<
double>(
"min_cos_pointing", -1.);
136 desc.add<
int>(
"skip_layers", 0);
137 desc.add<
int>(
"max_missing_layers_in_trackster", 9999);
138 desc.add<
double>(
"etaLimitIncreaseWindow", 2.1);
139 desc.add<
int>(
"min_layers_per_trackster", 10);
140 desc.add<
double>(
"max_delta_time", 3.);
141 desc.add<
bool>(
"out_in_dfs",
true);
142 desc.add<
int>(
"max_out_in_hops", 10);
143 desc.add<
bool>(
"oneTracksterPerTrackSeed",
false);
144 desc.add<
bool>(
"promoteEmptyRegionToTrackster",
false);
145 desc.add<
std::string>(
"eid_graph_path",
"RecoHGCal/TICL/data/tf_models/energy_id_v0.pb");
147 desc.add<
std::string>(
"eid_output_name_energy",
"output/regressed_energy");
148 desc.add<
std::string>(
"eid_output_name_id",
"output/id_probabilities");
150 desc.add<
double>(
"eid_min_cluster_energy", 1.);
151 desc.add<
int>(
"eid_n_layers", 50);
152 desc.add<
int>(
"eid_n_clusters", 10);
153 descriptions.
add(
"trackstersProducer",
desc);
157 auto result = std::make_unique<std::vector<Trackster>>();
158 auto output_mask = std::make_unique<std::vector<float>>();
166 std::unordered_map<int, std::vector<int>> seedToTrackstersAssociation;
170 for (
unsigned int i = 0;
i < numberOfSeedingRegions; ++
i) {
190 output_mask->reserve(original_layerclusters_mask.size());
193 std::begin(original_layerclusters_mask),
std::end(original_layerclusters_mask), std::back_inserter(*output_mask));
195 for (
auto& trackster : *
result) {
198 for (
auto const v : trackster.vertices()) {
201 (*output_mask)[
v] = 0.;