24 maxtotalEnergyCompare_ =
25 parameters.getParameter<
double>(
"max_total_energy_compare");
26 mintotalEnergyCompare_ =
27 parameters.getParameter<
double>(
"min_total_energy_compare");
28 maxnClusters_ = parameters.getParameter<
double>(
"n_clusters");
29 maxMeanHitsPerCluster_ =
30 parameters.getParameter<
double>(
"mean_hits_per_cluster");
31 maxMeanEnergyPerCluster_ =
32 parameters.getParameter<
double>(
"mean_energy_per_cluster");
33 outputCollName_ = parameters.getParameter<std::string>(
"outputCollName");
34 inputHCALClusterCollName_ =
35 parameters.getParameter<std::string>(
"inputHCALClusterCollName");
36 inputHCALHitCollName_ =
37 parameters.getParameter<std::string>(
"inputHCALHitCollName");
38 inputECALHitCollName_ =
39 parameters.getParameter<std::string>(
"inputECALHitCollName");
45 const std::vector<ldmx::HcalHit> hcalRecHits =
48 const std::vector<ldmx::EcalHit> ecalRecHits =
51 const std::vector<ldmx::HcalCluster> hcalClusters =
56 float totalHCALEnergy{0};
57 float totalECALEnergy{0};
61 if (hcalHit.isNoise() == 0) {
62 totalHCALEnergy += hcalHit.getPE();
66 if (maxPE < hcalHit.getPE()) {
67 maxPE = hcalHit.getPE();
73 if (ecalHit.isNoise() == 0) {
74 totalECALEnergy += ecalHit.getEnergy();
77 std::vector<double> nhits;
78 std::vector<double> energies;
79 unsigned int nClusters = 0;
82 energies.push_back(hcalCluster.getEnergy());
83 nhits.push_back(hcalCluster.getNHits());
87 std::accumulate(energies.begin(), energies.end(), 0.0) / energies.size();
89 std::accumulate(nhits.begin(), nhits.end(), 0.0) / nhits.size();
90 bool passesEnergyCombo =
91 (((totalECALEnergy + totalHCALEnergy) < maxtotalEnergyCompare_));
92 bool passesnClusters = (nClusters < maxnClusters_);
93 bool passesNHits = ((meanNhits < maxMeanHitsPerCluster_) or isnan(meanNhits));
95 ((meanEnergy < maxMeanEnergyPerCluster_) or isnan(meanEnergy));
99 (passesEnergyCombo and passesnClusters and passesNHits and passesEnergy);
111 event.add(outputCollName_, result);