21 std::vector<ldmx::SimCalorimeterHit> ecalSimHits =
26 std::sort(ecalSimHits.begin(), ecalSimHits.end(),
29 return lhs.getID() < rhs.getID();
32 std::vector<ldmx::EcalHit> ecalRecHits =
36 std::sort(ecalRecHits.begin(), ecalRecHits.end(),
38 return lhs.getID() < rhs.getID();
43 double totalRecEnergy{0.};
44 int numModWith0Hits{0};
45 int numModWith1Hits{0};
46 int numModWith2Hits{0};
47 int numModWithMoreThan2Hits{0};
48 std::vector<int> myCostumModIDs;
50 std::set<int> myCostumModIDsSet;
58 int layer = ecal_id.
layer() + 1;
60 int myModConstumID = layer * 100 + moduleID;
62 myCostumModIDs.push_back(myModConstumID);
63 myCostumModIDsSet.insert(myModConstumID);
66 totalRecEnergy += recHit.getEnergy();
69 if (recHit.isNoise()) {
76 int rawID = recHit.getID();
80 double totalSimEDep = 0.;
82 if (rawID == simHit.getID()) {
83 numSimHits += simHit.getNumberOfContribs();
84 totalSimEDep += simHit.getEdep();
85 auto residualX = recHit.getXPos() - simHit.getPosition()[0];
86 auto residualY = recHit.getYPos() - simHit.getPosition()[1];
87 auto residualZ = recHit.getZPos() - simHit.getPosition()[2];
91 }
else if (rawID < simHit.getID()) {
99 recHit.getAmplitude());
102 std::map<int, int> moduleHits;
103 for (
const int &myCostumModID : myCostumModIDs) {
104 moduleHits[myCostumModID]++;
109 numModWith0Hits = 34 * 7 - myCostumModIDsSet.size();
111 for (
const auto &moduleHit : moduleHits) {
112 if (moduleHit.second == 1) {
114 }
else if (moduleHit.second == 2) {
116 }
else if (moduleHit.second > 2) {
118 numModWithMoreThan2Hits++;
129 if (numModWith1Hits > 0)
131 if (numModWith2Hits > 0)
133 if (numModWithMoreThan2Hits > 0)
134 histograms_.
fill(
"num_mod_with_more_than_2hits", numModWithMoreThan2Hits);
136 if (totalRecEnergy > 6000.) {