ATLAS Offline Software
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
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  RecombScheme { RecombScheme::EScheme, RecombScheme::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 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 }

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

◆ 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 }

◆ 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 124 of file ConeJetMaker.cxx.

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

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.

◆ 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:
Gep::ConeJetMaker::m_recombScheme
RecombScheme m_recombScheme
Definition: ConeJetMaker.h:51
Gep::ConeJetMaker::string2RecombScheme
RecombScheme string2RecombScheme(const std::string &) const
Definition: ConeJetMaker.cxx:25
test_pyathena.px
px
Definition: test_pyathena.py:18
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
Gep::ConeJetMaker::m_seedEtThreshold
float m_seedEtThreshold
Definition: ConeJetMaker.h:42
test_pyathena.pt
pt
Definition: test_pyathena.py:11
deltaR
double deltaR(double eta_1, double eta_2, double phi_1, double phi_2)
Definition: ConeJetMaker.cxx:132
Gep::ConeJetMaker::m_jetR
float m_jetR
Definition: ConeJetMaker.h:40
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
Generate_dsid_ranseed.seed
seed
Definition: Generate_dsid_ranseed.py:10
Gep::ConeJetMaker::m_knownSchemes
std::vector< std::pair< std::string, RecombScheme > > m_knownSchemes
Definition: ConeJetMaker.h:46
JetTagCalibConfig.scheme
scheme
Definition: JetTagCalibConfig.py:10
Gep::Jet
Definition: Trigger/TrigT1/TrigGepPerf/src/Jet.h:12
Amg::py
@ py
Definition: GeoPrimitives.h:39
Gep::ConeJetMaker::RecombScheme::SeedScheme
@ SeedScheme
Gep::ConeJetMaker::RecombScheme::EScheme
@ EScheme
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
Gep::ConeJetMaker::m_seeds
const xAOD::jFexSRJetRoIContainer & m_seeds
Definition: ConeJetMaker.h:41
dq_make_web_display.cl
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Definition: dq_make_web_display.py:26
Gep::ConeJetMaker::recombSchemeAsString
std::string recombSchemeAsString() const
Definition: ConeJetMaker.cxx:42