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){
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;
66 for (
const auto seed: m_seeds) {
68 float seedEt = seed->et();
71 if(seedEt < m_seedEtThreshold)
continue;
72 float seedEta = seed->eta();
73 float seedPhi = seed->phi();
78 jet.seedEta = seedEta;
79 jet.seedPhi = seedPhi;
82 TLorentzVector jetVec;
88 float dR_seed_cl =
deltaR(seedEta,
cl.vec.Eta(), seedPhi,
cl.vec.Phi());
90 if (dR_seed_cl < m_jetR) {
95 jet.constituentsIndices.push_back(clusterIndex);
102 if (
jet.constituentsIndices.empty()) {
continue;}
106 if (m_recombScheme == RecombScheme::EScheme) {
109 }
else if (m_recombScheme == RecombScheme::SeedScheme) {
113 jet.vec.SetPtEtaPhiM(
pt, seedEta, seedPhi,
m);
115 throw std::runtime_error(
"GEP ConeJetMaker recombinaton scheme error");
125 std::stringstream
ss;
126 ss <<
"ConeJetMaker. seed thresholds: " << m_seedEtThreshold
127 <<
" rad: " << m_jetR <<
" recombinaton scheme: " << recombSchemeAsString();