ATLAS Offline Software
Loading...
Searching...
No Matches
Gep::ConeJetMaker Class Reference

#include <ConeJetMaker.h>

Inheritance diagram for Gep::ConeJetMaker:
Collaboration diagram for Gep::ConeJetMaker:

Public Member Functions

 ConeJetMaker (float jetR, const xAOD::jFexSRJetRoIContainer &seeds, float seedEtThreshold=5.e3, const std::string &recombScheme="EScheme")
std::string toString () const override
virtual std::vector< Gep::JetmakeJets (const std::vector< Gep::Cluster > &clusters) const override
float getJetR () const
float getSeedEtThreshold () const
std::string recombSchemeAsString () const

Private Types

enum class  RecombScheme { EScheme , SeedScheme }

Private Member Functions

RecombScheme string2RecombScheme (const std::string &) const

Private Attributes

float m_jetR
const xAOD::jFexSRJetRoIContainerm_seeds
float m_seedEtThreshold
std::vector< std::pair< std::string, RecombScheme > > m_knownSchemes
RecombScheme m_recombScheme {RecombScheme::EScheme}

Detailed Description

Definition at line 22 of file ConeJetMaker.h.

Member Enumeration Documentation

◆ RecombScheme

enum class Gep::ConeJetMaker::RecombScheme
strongprivate
Enumerator
EScheme 
SeedScheme 

Definition at line 44 of file ConeJetMaker.h.

44{EScheme, SeedScheme};

Constructor & Destructor Documentation

◆ ConeJetMaker()

Gep::ConeJetMaker::ConeJetMaker ( float jetR,
const xAOD::jFexSRJetRoIContainer & seeds,
float seedEtThreshold = 5.e3,
const std::string & recombScheme = "EScheme" )

Definition at line 13 of file ConeJetMaker.cxx.

16 :
17 m_jetR{jetR},
18 m_seeds{seeds},
19 m_seedEtThreshold{seedEtThreshold},
21}
RecombScheme m_recombScheme
RecombScheme string2RecombScheme(const std::string &) const
const xAOD::jFexSRJetRoIContainer & m_seeds

Member Function Documentation

◆ getJetR()

float Gep::ConeJetMaker::getJetR ( ) const
inline

Definition at line 34 of file ConeJetMaker.h.

34{ return m_jetR; }

◆ getSeedEtThreshold()

float Gep::ConeJetMaker::getSeedEtThreshold ( ) const
inline

Definition at line 35 of file ConeJetMaker.h.

35{ return m_seedEtThreshold; }

◆ makeJets()

std::vector< Gep::Jet > Gep::ConeJetMaker::makeJets ( const std::vector< Gep::Cluster > & clusters) const
overridevirtual

Implements Gep::IJetMaker.

Definition at line 62 of file ConeJetMaker.cxx.

63{
64 std::vector<Gep::Jet> jets;
65 for (const auto seed: m_seeds) {
66
67 float seedEt = seed->et();
68
69 // skip seeds with Et below threshold
70 if(seedEt < m_seedEtThreshold) continue;
71 float seedEta = seed->eta();
72 float seedPhi = seed->phi();
73
74 Gep::Jet jet;
75
76 jet.radius = m_jetR;
77 jet.seedEta = seedEta;
78 jet.seedPhi = seedPhi;
79 jet.seedEt = seedEt;
80
81 TLorentzVector jetVec;
82 float px{0}, py{0};
83 int clusterIndex {0};
84
85 //build jet with clusters within dR from seed
86 for (const auto &cl: clusters) {
87 float dR_seed_cl = deltaR(seedEta, cl.vec.Eta(), seedPhi, cl.vec.Phi());
88
89 if (dR_seed_cl < m_jetR) {
90 jetVec += cl.vec;
91 px += cl.vec.Px();
92 py += cl.vec.Py();
93
94 jet.constituentsIndices.push_back(clusterIndex);
95 }
96 clusterIndex++;
97 }
98
99
100 // skip cone jets with 0 constituents
101 if (jet.constituentsIndices.empty()) {continue;}
102
103
104 // recombination scheme
106 // default option: add four-vectors of constituents
107 jet.vec = jetVec;
109 // massless jet, correct pt, re-using seed (eta,phi)
110 float m = 0;
111 float pt = std::sqrt(px*px + py*py);
112 jet.vec.SetPtEtaPhiM(pt, seedEta, seedPhi, m);
113 } else {
114 throw std::runtime_error("GEP ConeJetMaker recombinaton scheme error");
115 }
116 jets.emplace_back(std::move(jet));
117 }
118
119 return jets;
120}
Scalar deltaR(const MatrixBase< Derived > &vec) const
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
std::vector< int > constituentsIndices

◆ recombSchemeAsString()

std::string Gep::ConeJetMaker::recombSchemeAsString ( ) const

Definition at line 42 of file ConeJetMaker.cxx.

42 {
43 auto schemeMatches =
44 [&scheme=m_recombScheme](const std::pair<std::string, RecombScheme>& p){
45 return (p.second) == scheme;};
46
47 auto scheme_it = std::find_if(m_knownSchemes.cbegin(),
48 m_knownSchemes.cend(),
49 schemeMatches);
50
51 if (scheme_it == m_knownSchemes.end()){
52 throw std::runtime_error("GEP ConeJetMaker unknown recombinaton scheme " +
54 }
55
56 return scheme_it->first;
57}
std::vector< std::pair< std::string, RecombScheme > > m_knownSchemes
std::string recombSchemeAsString() const

◆ string2RecombScheme()

Gep::ConeJetMaker::RecombScheme Gep::ConeJetMaker::string2RecombScheme ( const std::string & scheme) const
private

Definition at line 25 of file ConeJetMaker.cxx.

25 {
26 auto schemeMatches =
27 [&scheme](const std::pair<std::string, RecombScheme>& p){return (p.first) == scheme;};
28
29 auto scheme_it = std::find_if(m_knownSchemes.cbegin(),
30 m_knownSchemes.cend(),
31 schemeMatches);
32
33 if (scheme_it == m_knownSchemes.end()){
34 throw std::runtime_error("GEP ConeJetMaker unknown recombinaton scheme " +
35 scheme);
36 }
37
38 return scheme_it->second;
39}

◆ toString()

std::string Gep::ConeJetMaker::toString ( ) const
overridevirtual

Implements Gep::IJetMaker.

Definition at line 123 of file ConeJetMaker.cxx.

123 {
124 std::stringstream ss;
125 ss << "ConeJetMaker. seed thresholds: " << m_seedEtThreshold
126 << " rad: " << m_jetR << " recombinaton scheme: " << recombSchemeAsString();
127 return ss.str();
128}
static Double_t ss

Member Data Documentation

◆ m_jetR

float Gep::ConeJetMaker::m_jetR
private

Definition at line 40 of file ConeJetMaker.h.

◆ m_knownSchemes

std::vector<std::pair<std::string, RecombScheme> > Gep::ConeJetMaker::m_knownSchemes
private
Initial value:
{
{"EScheme", RecombScheme::EScheme},
{"SeedScheme", RecombScheme::SeedScheme}
}

Definition at line 46 of file ConeJetMaker.h.

46 {
47 {"EScheme", RecombScheme::EScheme},
48 {"SeedScheme", RecombScheme::SeedScheme}
49 };

◆ m_recombScheme

RecombScheme Gep::ConeJetMaker::m_recombScheme {RecombScheme::EScheme}
private

Definition at line 51 of file ConeJetMaker.h.

◆ m_seedEtThreshold

float Gep::ConeJetMaker::m_seedEtThreshold
private

Definition at line 42 of file ConeJetMaker.h.

◆ m_seeds

const xAOD::jFexSRJetRoIContainer& Gep::ConeJetMaker::m_seeds
private

Definition at line 41 of file ConeJetMaker.h.


The documentation for this class was generated from the following files: