22 parameters.
get<std::string>(
"sim_coll_name",
"TaggerSimHits");
23 sim_pass_name_ = parameters.
get<std::string>(
"sim_pass_name",
"");
24 digi_coll_name_ = parameters.
get<std::string>(
"digi_coll_name",
"");
25 digi_pass_name_ = parameters.
get<std::string>(
"digi_pass_name",
"");
26 fitted_coll_name_ = parameters.
get<std::string>(
"fitted_coll_name",
27 "TaggerFittedSiStripHits");
28 fitted_pass_name_ = parameters.
get<std::string>(
"fitted_pass_name",
"");
29 cluster_coll_name_ = parameters.
get<std::string>(
"cluster_coll_name",
30 "TaggerClusterMeasurements");
31 cluster_pass_name_ = parameters.
get<std::string>(
"cluster_pass_name",
"");
32 n_sensors_ = parameters.
get<
int>(
"n_sensors", 14);
39 if (event.
exists(sim_coll_name_, sim_pass_name_)) {
41 sim_coll_name_, sim_pass_name_);
44 std::map<int, int> sim_count;
46 for (
const auto& hit : sim_hits) {
49 int layer = sensorIndexToLayer(tracking::sim::utils::getSensorID(hit));
50 if (layer < 0 || layer >= n_sensors_)
continue;
52 const std::string s = std::to_string(layer);
57 for (
int i = 0; i < n_sensors_; ++i) {
59 static_cast<double>(sim_count[i]));
66 if (event.
exists(fitted_coll_name_, fitted_pass_name_)) {
68 fitted_coll_name_, fitted_pass_name_);
70 std::map<int, int> strip_count;
72 for (
const auto& hit : fitted_hits) {
76 int layer = sensorIndexToLayer(hit.getLayerID());
77 if (layer < 0 || layer >= n_sensors_)
continue;
79 const std::string s = std::to_string(layer);
87 for (
int i = 0; i < n_sensors_; ++i) {
89 static_cast<double>(strip_count[i]));
97 std::map<int, std::map<int, float>> truth_u_by_layer;
98 if (!digi_coll_name_.empty() &&
99 event.
exists(digi_coll_name_, digi_pass_name_)) {
101 digi_coll_name_, digi_pass_name_);
102 for (
const auto& m : digi_meas) {
103 int layer = m.getLayer();
104 if (layer < 0 || layer >= n_sensors_)
continue;
105 if (std::isnan(m.getTruthU()))
continue;
107 m.getTrackIds().empty() ? -1 :
static_cast<int>(m.getTrackIds()[0]);
108 truth_u_by_layer[layer][tid] = m.getTruthU();
115 if (event.
exists(cluster_coll_name_, cluster_pass_name_)) {
117 cluster_coll_name_, cluster_pass_name_);
119 std::map<int, int> cluster_count;
121 for (
const auto& meas : cluster_meas) {
122 int layer = meas.getLayer();
123 if (layer < 0 || layer >= n_sensors_)
continue;
125 const std::string s = std::to_string(layer);
126 const float u = meas.getLocalPosition()[0];
130 if (meas.getNStrips() > 0)
132 cluster_count[layer]++;
135 int tid = meas.getTrackIds().empty()
137 :
static_cast<int>(meas.getTrackIds()[0]);
138 auto layer_it = truth_u_by_layer.find(layer);
139 if (layer_it != truth_u_by_layer.end()) {
140 auto tid_it = layer_it->second.find(tid);
141 if (tid_it != layer_it->second.end())
146 for (
int i = 0; i < n_sensors_; ++i) {
148 static_cast<double>(cluster_count[i]));
bool exists(const std::string &name, const std::string &passName, bool unique=true) const
Check for the existence of an object or collection with the given name and pass name in the event.