15 float seedEtThreshold,
16 const std::string& scheme) :
19 m_seedEtThreshold{seedEtThreshold},
20 m_recombScheme{string2RecombScheme(scheme)}{
27 [&scheme](
const std::pair<std::string, RecombScheme>&
p){
return (
p.first) == scheme;};
29 auto scheme_it = std::find_if(m_knownSchemes.cbegin(),
30 m_knownSchemes.cend(),
33 if (scheme_it == m_knownSchemes.end()){
34 throw std::runtime_error(
"GEP ConeJetMaker unknown recombinaton scheme " +
38 return scheme_it->second;
44 [&scheme=m_recombScheme](
const std::pair<std::string, RecombScheme>&
p){
45 return (
p.second) == scheme;};
47 auto scheme_it = std::find_if(m_knownSchemes.cbegin(),
48 m_knownSchemes.cend(),
51 if (scheme_it == m_knownSchemes.end()){
52 throw std::runtime_error(
"GEP ConeJetMaker unknown recombinaton scheme " +
53 recombSchemeAsString());
56 return scheme_it->first;
59 double deltaR (
double eta_1,
double eta_2,
double phi_1,
double phi_2);
64 std::vector<Gep::Jet>
jets;
65 for (
const auto seed: m_seeds) {
67 float seedEt = seed->et();
70 if(seedEt < m_seedEtThreshold)
continue;
71 float seedEta = seed->eta();
72 float seedPhi = seed->phi();
77 jet.seedEta = seedEta;
78 jet.seedPhi = seedPhi;
81 TLorentzVector jetVec;
87 float dR_seed_cl =
deltaR(seedEta,
cl.vec.Eta(), seedPhi,
cl.vec.Phi());
89 if (dR_seed_cl < m_jetR) {
94 jet.constituentsIndices.push_back(clusterIndex);
101 if (
jet.constituentsIndices.empty()) {
continue;}
105 if (m_recombScheme == RecombScheme::EScheme) {
108 }
else if (m_recombScheme == RecombScheme::SeedScheme) {
112 jet.vec.SetPtEtaPhiM(
pt, seedEta, seedPhi,
m);
114 throw std::runtime_error(
"GEP ConeJetMaker recombinaton scheme error");
116 jets.emplace_back(std::move(
jet));
124 std::stringstream
ss;
125 ss <<
"ConeJetMaker. seed thresholds: " << m_seedEtThreshold
126 <<
" rad: " << m_jetR <<
" recombinaton scheme: " << recombSchemeAsString();