20 EnoiseCut_ = parameters.getParameter<
double>(
"EnoiseCut");
21 deltaTime_ = parameters.getParameter<
double>(
"deltaTime");
22 deltaR_ = parameters.getParameter<
double>(
"deltaR");
23 EminCluster_ = parameters.getParameter<
double>(
"EminCluster");
24 cutOff_ = parameters.getParameter<
double>(
"cutOff");
26 clusterCollName_ = parameters.getParameter<std::string>(
"clusterCollName");
39 std::vector<ldmx::HcalCluster> hcalClusters;
40 std::list<const ldmx::HcalHit*> seedList;
41 std::vector<ldmx::HcalHit> hcalHits =
44 if (hcalHits.empty()) {
49 if (hit.getEnergy() < EnoiseCut_)
continue;
50 if (hit.getEnergy() == 0)
continue;
51 finder.add(&hit, hcalGeom);
56 finder.cluster(EminCluster_, cutOff_, deltaTime_);
58 std::vector<WorkingCluster> wcVec = finder.getClusters();
59 for (
unsigned int c = 0; c < wcVec.size(); c++) {
60 if (wcVec[c].empty())
continue;
62 cluster.
setEnergy(wcVec[c].centroid().E());
63 cluster.
setCentroidXYZ(wcVec[c].centroid().Px(), wcVec[c].centroid().Py(),
64 wcVec[c].centroid().Pz());
65 cluster.
setNHits(wcVec[c].getHits().size());
66 cluster.
addHits(wcVec[c].getHits());
67 std::vector<const ldmx::HcalHit*> hits = wcVec[c].getHits();
68 if (hits.size() > 0) {
69 std::sort(hits.begin(), hits.end(), compHitTimes);
70 cluster.setTime(hits[0]->getTime());
72 hcalClusters.push_back(cluster);
74 event.add(clusterCollName_, hcalClusters);