48 std::vector<double> usedSeedEnergy;
49 usedSeedEnergy.clear();
54 std::cout <<
"Current Cluster: " << (*currentSeed)->energy() <<
" "
55 << (
std::find(usedSeedEnergy.begin(), usedSeedEnergy.end(), (*currentSeed)->energy()) !=
61 if (
std::find(usedSeedEnergy.begin(), usedSeedEnergy.end(), (*currentSeed)->energy()) != usedSeedEnergy.end())
69 double energy_ = (*currentSeed)->energy();
71 (*currentSeed)->position().X(), (*currentSeed)->position().Y(), (*currentSeed)->position().Z());
73 usedSeedEnergy.push_back((*currentSeed)->energy());
77 std::cout <<
"*****************************" << std::endl;
78 std::cout <<
"******NEW SUPERCLUSTER*******" << std::endl;
79 std::cout <<
"Seed R = " << (*currentSeed)->position().Rho() << std::endl;
80 std::cout <<
"Seed Et = " << (*currentSeed)->energy() *
sin((*currentSeed)->position().theta()) << std::endl;
85 constituentClusters.
push_back(*currentSeed);
89 while (currentCluster != clusters_v.
end()) {
92 std::cout <<
"->Cluster: " << (*currentCluster)->energy() <<
" Used = "
93 << (
std::find(usedSeedEnergy.begin(), usedSeedEnergy.end(), (*currentCluster)->energy()) !=
95 <<
" Matched = " <<
match(*currentSeed, *currentCluster, etaRoad, phiRoad) << std::endl;
99 if (
match(*currentSeed, *currentCluster, etaRoad, phiRoad) &&
100 (
std::find(usedSeedEnergy.begin(), usedSeedEnergy.end(), (*currentCluster)->energy()) ==
101 usedSeedEnergy.end())) {
103 constituentClusters.
push_back(*currentCluster);
104 energy_ += (*currentCluster)->energy();
105 position_ += (*currentCluster)->energy() *
math::XYZVector((*currentCluster)->position().X(),
106 (*currentCluster)->position().Y(),
107 (*currentCluster)->position().Z());
109 usedSeedEnergy.push_back((*currentCluster)->energy());
112 std::cout <<
"Cluster R = " << (*currentCluster)->position().Rho() << std::endl;
119 position_ /= energy_;
122 std::cout <<
"Final SuperCluster R = " << position_.Rho() << std::endl;
127 energy_,
math::XYZPoint(position_.X(), position_.Y(), position_.Z()), (*currentSeed), constituentClusters);
132 std::cout <<
"created a new supercluster of: " << std::endl;
133 std::cout <<
"Energy = " << newSuperCluster.energy() << std::endl;
134 std::cout <<
"Position in (R, phi, theta, eta) = (" << newSuperCluster.position().Rho() <<
", "
135 << newSuperCluster.position().phi() <<
", " << newSuperCluster.position().theta() <<
", "
136 << newSuperCluster.position().eta() <<
")" << std::endl;
140 usedSeedEnergy.clear();