Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Protected Attributes | List of all members
jet::JetCaloCalculations Class Reference

Holds a list of JetCalculators. More...

#include <JetCaloCalculations.h>

Inheritance diagram for jet::JetCaloCalculations:
Collaboration diagram for jet::JetCaloCalculations:

Public Member Functions

 JetCaloCalculations (bool ownCalc=true)
 
virtual ~JetCaloCalculations ()
 
void addCalculator (JetCaloCalculator *c)
 
bool setupEvent ()
 
virtual std::vector< double > process (const xAOD::Jet *jet) const
 Perform all tasks correspondings to the associated JetCaloCalculators on Jet jet. More...
 
void clear ()
 
size_t numCalculators () const
 
const JetCaloCalculatorat (size_t i) const
 

Protected Attributes

std::vector< JetCaloCalculator * > m_calculators
 
bool m_owncalculators
 

Detailed Description

Holds a list of JetCalculators.

For a given jet, performs a single, optimized loop over constituents and calls the processConstituent function of all its calculators.

When processing constituents, it passes JetConstituentVector::iterator at the UncalibratedJetConstituent scale : this is a choice (most quantities are build from cluster moments calculated at EM scale).

See also JetCaloCellCalculations in JetCaloCellQualityUtils.h for a similar object using calculators acting on CaloCell directly

Definition at line 145 of file JetCaloCalculations.h.

Constructor & Destructor Documentation

◆ JetCaloCalculations()

jet::JetCaloCalculations::JetCaloCalculations ( bool  ownCalc = true)
inline

Definition at line 148 of file JetCaloCalculations.h.

148 : m_owncalculators(ownCalc) {}

◆ ~JetCaloCalculations()

virtual jet::JetCaloCalculations::~JetCaloCalculations ( )
inlinevirtual

Definition at line 150 of file JetCaloCalculations.h.

150 {clear();}

Member Function Documentation

◆ addCalculator()

void jet::JetCaloCalculations::addCalculator ( JetCaloCalculator c)

Definition at line 257 of file JetCaloCalculations.cxx.

257  {
258  m_calculators.push_back(c);
259  }

◆ at()

const JetCaloCalculator* jet::JetCaloCalculations::at ( size_t  i) const
inline

Definition at line 162 of file JetCaloCalculations.h.

162 {return m_calculators[i];}

◆ clear()

void jet::JetCaloCalculations::clear ( )

Definition at line 331 of file JetCaloCalculations.cxx.

331  {
332  if(m_owncalculators) for(size_t i=0;i < m_calculators.size();i++) delete m_calculators[i];
333  m_calculators.clear();
334  }

◆ numCalculators()

size_t jet::JetCaloCalculations::numCalculators ( ) const
inline

Definition at line 161 of file JetCaloCalculations.h.

161 {return m_calculators.size();}

◆ process()

std::vector< double > jet::JetCaloCalculations::process ( const xAOD::Jet jet) const
virtual

Perform all tasks correspondings to the associated JetCaloCalculators on Jet jet.

Reimplemented in jet::JetCaloCellCalculations.

Definition at line 269 of file JetCaloCalculations.cxx.

269  {
270  size_t nConstit = jet->numConstituents();
271  std::vector<double> results;
272  results.reserve(m_calculators.size());
273 
274  if( nConstit == 0) {
275  results.resize(m_calculators.size(),0);
276  return results;
277  }
278 
279  // Clone calculators : we are in a const method, we can't call the
280  // non const setupJet() and processConstituent() methods of our calculators.
281  std::vector<JetCaloCalculator*> clonedCalc;
282  clonedCalc.reserve(m_calculators.size());
283  for( const JetCaloCalculator *calc : m_calculators) clonedCalc.push_back( calc->clone() );
284 
285  // prepare each calculator
286  for(JetCaloCalculator* calc: clonedCalc) {
287  calc->setupJet(jet);
288  }
289 
290  // retrieve the cluster moment extractor for this jet.
292  // assign the extractor to the calculators :
293  for( JetCaloCalculator* calc : clonedCalc) calc->setExtractor(extractor);
294 
295  xAOD::JetConstituentVector constits = jet->getConstituents();
296  // Use the constituent iterator at UNCALIBRATED scale
299 
300  // loop over constituents
301  for(; it != itE; ++it)
302  {
303  //std::cout << " processing constit ---- "<< (*it)->pt() << " v= "<< extractor->valid(it) << std::endl;
304 
305  if( ! extractor->valid(it) ) continue; // this can happen for charged pflow objects
306  // loop over calculators for this constituent.
307  for(JetCaloCalculator* calc : clonedCalc) {
308  calc->processConstituent(it);
309  }
310  } // constituents loop
311 
312  // copy results & clear the cloned calc
313  for(JetCaloCalculator* calc: clonedCalc) {
314  results.push_back( calc->jetCalculation() );
315  delete calc;
316  }
317 
318  return results;
319  }

◆ setupEvent()

bool jet::JetCaloCalculations::setupEvent ( )

Definition at line 262 of file JetCaloCalculations.cxx.

262  {
263  for(size_t i=0;i < m_calculators.size();i++) m_calculators[i]->setupEvent();
264  return true;
265  }

Member Data Documentation

◆ m_calculators

std::vector<JetCaloCalculator*> jet::JetCaloCalculations::m_calculators
protected

Definition at line 167 of file JetCaloCalculations.h.

◆ m_owncalculators

bool jet::JetCaloCalculations::m_owncalculators
protected

Definition at line 168 of file JetCaloCalculations.h.


The documentation for this class was generated from the following files:
CaloConstitHelpers::CaloConstitExtractor
Interface to retrieve calo informations from a jet constituent.
Definition: JetCaloCalculations.h:31
xAOD::JetConstituentVector::end
iterator end() const
iterator after the last constituent
Definition: JetConstituentVector.cxx:104
skel.it
it
Definition: skel.GENtoEVGEN.py:401
TruthTest.itE
itE
Definition: TruthTest.py:25
xAOD::JetConstituentVector::begin
iterator begin() const
iterator on the first constituent
Definition: JetConstituentVector.cxx:103
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
lumiFormat.i
int i
Definition: lumiFormat.py:85
jet::JetCaloCalculations::clear
void clear()
Definition: JetCaloCalculations.cxx:331
add-xsec-uncert-quadrature-N.results
dictionary results
Definition: add-xsec-uncert-quadrature-N.py:39
jet::JetCaloCalculations::m_owncalculators
bool m_owncalculators
Definition: JetCaloCalculations.h:168
CaloConstitHelpers::extractorForJet
const CaloConstitExtractor * extractorForJet(const xAOD::Jet *jet)
returns a pointer to a CaloConstitExtractor for a given jet.
Definition: JetCaloCalculations.cxx:185
xAOD::UncalibratedJetConstituent
@ UncalibratedJetConstituent
Definition: JetTypes.h:21
CaloConstitHelpers::CaloConstitExtractor::valid
virtual bool valid(xAOD::JetConstituentVector::iterator &) const
Definition: JetCaloCalculations.h:33
xAOD::JetConstituentVector
A vector of jet constituents at the scale used during jet finding.
Definition: JetConstituentVector.h:117
xAOD::JetConstituentVector::iterator
Definition: JetConstituentVector.h:121
jet::JetCaloCalculations::m_calculators
std::vector< JetCaloCalculator * > m_calculators
Definition: JetCaloCalculations.h:167
beamspotnt.calc
calc
Definition: bin/beamspotnt.py:1252
python.compressB64.c
def c
Definition: compressB64.py:93
jet::JetCaloCalculations::setupEvent
bool setupEvent()
Definition: JetCaloCalculations.cxx:262