24 maxtotal_energy_compare_ = parameters.
get<
double>(
"max_total_energy_compare");
25 mintotal_energy_compare_ = parameters.
get<
double>(
"min_total_energy_compare");
26 maxn_clusters_ = parameters.
get<
double>(
"n_clusters");
27 max_mean_hits_per_cluster_ = parameters.
get<
double>(
"mean_hits_per_cluster");
28 max_mean_energy_per_cluster_ =
29 parameters.
get<
double>(
"mean_energy_per_cluster");
30 output_coll_name_ = parameters.
get<std::string>(
"outputCollName");
31 input_hcal_cluster_coll_name_ =
32 parameters.
get<std::string>(
"inputHCALClusterCollName");
33 input_hcal_hit_coll_name_ =
34 parameters.
get<std::string>(
"inputHCALHitCollName");
35 input_ecal_hit_coll_name_ =
36 parameters.
get<std::string>(
"inputECALHitCollName");
37 hcal_hit_passname_ = parameters.
get<std::string>(
"hcal_hit_passname");
38 ecal_hit_passname_ = parameters.
get<std::string>(
"ecal_hit_passname");
39 hcal_cluster_passname_ = parameters.
get<std::string>(
"hcal_cluster_passname");
45 const std::vector<ldmx::HcalHit> hcal_rec_hits =
49 const std::vector<ldmx::EcalHit> ecal_rec_hits =
54 const std::vector<ldmx::HcalCluster> hcal_clusters =
56 hcal_cluster_passname_);
60 float total_hcal_energy{0};
61 float total_ecal_energy{0};
65 if (hcal_hit.isNoise() == 0) {
66 total_hcal_energy += hcal_hit.getPE();
70 if (max_pe < hcal_hit.getPE()) {
71 max_pe = hcal_hit.getPE();
77 if (ecal_hit.isNoise() == 0) {
78 total_ecal_energy += ecal_hit.getEnergy();
81 std::vector<double> nhits;
82 std::vector<double> energies;
83 unsigned int n_clusters = 0;
86 energies.push_back(hcal_cluster.getEnergy());
87 nhits.push_back(hcal_cluster.getNHits());
91 std::accumulate(energies.begin(), energies.end(), 0.0) / energies.size();
93 std::accumulate(nhits.begin(), nhits.end(), 0.0) / nhits.size();
94 bool passes_energy_combo =
95 (((total_ecal_energy + total_hcal_energy) < maxtotal_energy_compare_));
96 bool passesn_clusters = (n_clusters < maxn_clusters_);
98 ((mean_nhits < max_mean_hits_per_cluster_) or isnan(mean_nhits));
100 ((mean_energy < max_mean_energy_per_cluster_) or isnan(mean_energy));
103 bool passes_veto = (passes_energy_combo and passesn_clusters and
104 passes_n_hits and passes_energy);
116 event.add(output_coll_name_, result);