ATLAS Offline Software
Public Types | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
JetCleaningTool Class Reference

Class for selecting jets that pass cleaning cuts. More...

#include <JetCleaningTool.h>

Inheritance diagram for JetCleaningTool:
Collaboration diagram for JetCleaningTool:

Public Types

enum  CleaningLevel {
  SuperLooseBadLLP, VeryLooseBadLLP, LooseBad, LooseBadLLP,
  LooseBadTrigger, TightBad, UnknownCut
}
 Levels of cut. More...
 

Public Member Functions

 JetCleaningTool (const std::string &name="JetCleaningTool")
 Standard constructor. More...
 
 JetCleaningTool (const CleaningLevel alevel, const bool doUgly=false)
 Cut-based constructor. More...
 
 JetCleaningTool (const std::string &name, const CleaningLevel alevel, const bool doUgly=false)
 Cut and string based constructor. More...
 
virtual ~JetCleaningTool ()
 Standard destructor. More...
 
virtual StatusCode initialize () override
 Initialize method. More...
 
const asg::AcceptInfogetAcceptInfo () const
 
asg::AcceptData accept (const int isJetClean, const int fmaxIndex) const
 The DFCommonJets decoration accept method. More...
 
asg::AcceptData accept (const int isJetClean, const double sumpttrk, const double fmax, const double eta, const double pt, const int fmaxIndex) const
 The DFCommonJets decoration + tight method
More...
 
asg::AcceptData accept (const double emf, const double hecf, const double larq, const double hecq, const double sumpttrk, const double eta, const double pt, const double fmax, const double negE, const double AverageLArQF, const int fMaxIndex) const
 The main accept method: the actual cuts are applied here. More...
 
asg::AcceptData accept (const xAOD::Jet &jet) const
 The D3PDReader accept method. More...
 
int keep (const xAOD::Jet &jet) const final
 Method to select. More...
 
virtual StatusCode decorate (const xAOD::JetContainer &jets) const override
 Decorate a jet collection without otherwise modifying it. More...
 
bool containsHotCells (const xAOD::Jet &jet, const unsigned int runNumber) const
 Hot cell checks. More...
 
CleaningLevel getCutLevel (const std::string &) const
 Helpers for cut names. More...
 
std::string getCutName (const CleaningLevel) const
 
virtual void print () const
 Print the state of the tool. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 
virtual StatusCode modify (xAOD::JetContainer &jets) const override final
 Concrete implementation of the function inherited from IJetModifier. More...
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode readHotCells ()
 Hot cells reading helper. More...
 
void missingVariable (const std::string &varName) const
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

Gaudi::Property< std::string > m_cutName {this, "CutLevel", "" }
 Name of the cut. More...
 
CleaningLevel m_cutLevel {LooseBad}
 
Gaudi::Property< bool > m_doUgly {this, "DoUgly", false}
 
Gaudi::Property< bool > m_useDecorations {this, "UseDecorations", true}
 
Gaudi::Property< bool > m_useLooseDecorForTightCut {this, "UseLooseDecorForTightCut", false}
 
SG::ConstAccessor< char > m_acc_jetClean {"DFCommonJets_jetClean_LooseBad"}
 
Gaudi::Property< std::string > m_jetContainerName {this, "JetContainer", "", "SG key for input jet container"}
 
SG::WriteDecorHandleKey< xAOD::JetContainerm_jetCleanKey {this, "JetCleaningName", "isClean", "SG key for output jet cleaning decoration"}
 
asg::AcceptInfo m_accept
 
Gaudi::Property< std::string > m_hotCellsFile {this, "HotCellsFile", ""}
 Hot cells caching. More...
 
std::unordered_map< unsigned int, std::vector< std::unique_ptr< JCT::HotCell > > > m_hotCellsMap
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Class for selecting jets that pass cleaning cuts.

Author
Zach Marshall
Date
Feb 2014

Definition at line 39 of file JetCleaningTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ CleaningLevel

Levels of cut.

Enumerator
SuperLooseBadLLP 
VeryLooseBadLLP 
LooseBad 
LooseBadLLP 
LooseBadTrigger 
TightBad 
UnknownCut 

Definition at line 46 of file JetCleaningTool.h.

47  {
50  LooseBad,
53  TightBad,
55  };

Constructor & Destructor Documentation

◆ JetCleaningTool() [1/3]

JetCleaningTool::JetCleaningTool ( const std::string &  name = "JetCleaningTool")

Standard constructor.

Definition at line 89 of file JetCleaningTool.cxx.

90  : asg::AsgTool(name) {}

◆ JetCleaningTool() [2/3]

JetCleaningTool::JetCleaningTool ( const CleaningLevel  alevel,
const bool  doUgly = false 
)

Cut-based constructor.

Definition at line 92 of file JetCleaningTool.cxx.

93  : JetCleaningTool( "JetCleaningTool_"+getCutName(alevel) )
94 {
95  m_cutLevel=alevel;
96  m_doUgly = doUgly;
97 }

◆ JetCleaningTool() [3/3]

JetCleaningTool::JetCleaningTool ( const std::string &  name,
const CleaningLevel  alevel,
const bool  doUgly = false 
)

Cut and string based constructor.

Definition at line 100 of file JetCleaningTool.cxx.

102 {
103  m_cutLevel=alevel;
104  m_doUgly = doUgly;
105 }

◆ ~JetCleaningTool()

JetCleaningTool::~JetCleaningTool ( )
virtualdefault

Standard destructor.

Member Function Documentation

◆ accept() [1/4]

asg::AcceptData JetCleaningTool::accept ( const double  emf,
const double  hecf,
const double  larq,
const double  hecq,
const double  sumpttrk,
const double  eta,
const double  pt,
const double  fmax,
const double  negE,
const double  AverageLArQF,
const int  fMaxIndex 
) const

The main accept method: the actual cuts are applied here.

Definition at line 209 of file JetCleaningTool.cxx.

222 {
223  asg::AcceptData acceptData (&m_accept);
224  acceptData.setCutResult( "Cleaning", false );
225 
226  // -----------------------------------------------------------
227  // Do the actual selection
228  if (pt<DBL_MIN) return acceptData;
229  const double chf=sumpttrk/pt;
230 
231  //=============================================================
232  //Run-II ugly cuts
233  //=============================================================
234  if(m_doUgly && fmaxIndex==17) return acceptData;
235 
236  //=============================================================
237  //Run-II very loose LLP cuts
238  // From https://indico.cern.ch/event/642438/contributions/2704590/attachments/1514445/2362870/082117a_HCW_NCB_LLP.pdf
239  //=============================================================
240  if (VeryLooseBadLLP == m_cutLevel){
241  if (fmax>0.80) return acceptData;
242  if (emf>0.96) return acceptData;
243  acceptData.setCutResult( "Cleaning", true );
244  return acceptData;
245  }
246 
247  //=============================================================
248  //Run-II loose cuts
249  //=============================================================
250  //Non-collision background & cosmics
251  const bool useLLP = (LooseBadLLP == m_cutLevel); // LLP cleaning cannot use emf...
252  const bool isTrigger = (LooseBadTrigger == m_cutLevel); // trigger cannot use chf
253  const bool useSuperLLP = (SuperLooseBadLLP == m_cutLevel); // other LLP cleaning...
254  if (!useLLP && !useSuperLLP) {
255  if(!isTrigger && emf<0.05 && chf<0.05 && std::fabs(eta)<2) return acceptData;
256  if(emf<0.05 && std::fabs(eta)>=2) return acceptData;
257  }
258  if(fmax>0.99 && std::fabs(eta)<2) return acceptData;
259  //HEC spike-- gone as of 2017!
260  if(hecf>0.5 && std::fabs(hecq)>0.5 && AverageLArQF/65535>0.8) return acceptData;
261  //EM calo noise
262  if(emf>0.95 && std::fabs(larq)>0.8 && std::fabs(eta)<2.8 && AverageLArQF/65535>0.8) return acceptData;
263  // LLP cleaning uses negative energy cut
264  // (https://indico.cern.ch/event/472320/contribution/8/attachments/1220731/1784456/JetTriggerMeeting_20160102.pdf)
265  if (useLLP && std::fabs(negE*0.001)>4 && fmax >0.85) return acceptData;
266  // another LLP cleaning cutting softer on negative energy
267  if (useSuperLLP && std::fabs(negE*0.001)>60) return acceptData;
268 
270  acceptData.setCutResult( "Cleaning", true );
271  return acceptData;
272  }
273 
274  //=============================================================
275  //Run-II tight cuts
276  //=============================================================
277  // NCB monojet-style cut in central, EMF cut in forward
278  if (fmax<DBL_MIN) return acceptData;
279  if(std::fabs(eta)<2.4 && chf/fmax<0.1) return acceptData;
280  //if(std::fabs(eta)>=2.4 && emf<0.1) return acceptData;
281  if(TightBad==m_cutLevel){
282  acceptData.setCutResult( "Cleaning", true );
283  return acceptData;
284  }
285 
286  // We should never arrive here!
287  ATH_MSG_ERROR( "Unknown cut name: " << getCutName( m_cutLevel ) << " in JetCleaningTool" );
288  return acceptData;
289 }

◆ accept() [2/4]

asg::AcceptData JetCleaningTool::accept ( const int  isJetClean,
const double  sumpttrk,
const double  fmax,
const double  eta,
const double  pt,
const int  fmaxIndex 
) const

The DFCommonJets decoration + tight method

Definition at line 172 of file JetCleaningTool.cxx.

179 {
180  asg::AcceptData acceptData (&m_accept);
181  acceptData.setCutResult( "Cleaning", false );
182  const double chf=sumpttrk/pt;
183 
184  //=============================================================
185  //Run-II ugly cuts
186  //=============================================================
187  if(m_doUgly && fmaxIndex==17) return acceptData;
188 
189  //=============================================================
190  //Tight cleaning taken from decoration
191  //=============================================================
192  if(isJetClean==0) return acceptData; //fails Loose cleaning
193  else if (fmax<DBL_MIN) return acceptData;
194  else if(std::fabs(eta)<2.4 && chf/fmax<0.1) return acceptData;
195  else{
196  acceptData.setCutResult( "Cleaning", true );
197  return acceptData;
198  }
199 
200  // We should never arrive here!
201  ATH_MSG_ERROR( "Unknown cut name: " << getCutName( m_cutLevel ) << " in JetCleaningTool" );
202  return acceptData;
203 
204 }

◆ accept() [3/4]

asg::AcceptData JetCleaningTool::accept ( const int  isJetClean,
const int  fmaxIndex 
) const

The DFCommonJets decoration accept method.

Definition at line 145 of file JetCleaningTool.cxx.

146 {
147  asg::AcceptData acceptData (&m_accept);
148  acceptData.setCutResult( "Cleaning", false );
149 
150  //=============================================================
151  //Run-II ugly cuts
152  //=============================================================
153  if(m_doUgly && fmaxIndex==17) return acceptData;
154 
155  //=============================================================
156  //Loose/tight cleaning taken from decoration
157  //=============================================================
158  if(isJetClean==0) return acceptData;
159  else{
160  acceptData.setCutResult( "Cleaning", true );
161  return acceptData;
162  }
163 
164  // We should never arrive here!
165  ATH_MSG_ERROR( "Unknown cut name: " << getCutName( m_cutLevel ) << " in JetCleaningTool" );
166  return acceptData;
167 
168 }

◆ accept() [4/4]

asg::AcceptData JetCleaningTool::accept ( const xAOD::Jet jet) const

The D3PDReader accept method.

Definition at line 298 of file JetCleaningTool.cxx.

299 {
300  std::vector<float> sumPtTrkvec;
301  jet.getAttribute( xAOD::JetAttribute::SumPtTrkPt500, sumPtTrkvec );
302  double sumpttrk = 0;
303  if( ! sumPtTrkvec.empty() ) sumpttrk = sumPtTrkvec[0];
304  // fmax index is not necessarily required
305  // This is only used if doUgly is set
306  // Handle it gracefully if the variable is not present but doUgly is false
307  int FracSamplingMaxIndex = -1;
308  if (!jet.getAttribute(xAOD::JetAttribute::FracSamplingMaxIndex,FracSamplingMaxIndex) && m_doUgly)
309  missingVariable("FracSamplingMaxIndex");
310  // get tight cleaning variables
311  float FracSamplingMax = 0;
312  if (!jet.getAttribute(xAOD::JetAttribute::FracSamplingMax,FracSamplingMax))
313  missingVariable("FracSamplingMax");
314 
315  //start jet cleaning
316  int isJetClean = 0;
317  if( m_useDecorations && m_acc_jetClean.isAvailable(jet) ) { //decoration is already available for all jets
318  isJetClean = m_acc_jetClean(jet);
319 
320  // compute tight cleaning on top of the loose cleaning decoration
322  return accept (isJetClean, sumpttrk, FracSamplingMax, jet.eta(), jet.pt(), FracSamplingMaxIndex);
323  }
324  else {
325  return accept (isJetClean, FracSamplingMaxIndex);
326  }
327  }
328  else{ //running over AOD, need to use all variables
329  ATH_MSG_DEBUG("DFCommon jet cleaning variable not available ... Using jet cleaning tool");
330  // Get all of the required variables
331  // Do it this way so we can gracefully handle missing variables (rather than segfaults)
332 
333  float EMFrac = 0;
334  if (!jet.getAttribute(xAOD::JetAttribute::EMFrac,EMFrac))
335  missingVariable("EMFrac");
336 
337  float HECFrac = 0;
338  if (!jet.getAttribute(xAOD::JetAttribute::HECFrac,HECFrac))
339  missingVariable("HECFrac");
340 
341  float LArQuality = 0;
342  if (!jet.getAttribute(xAOD::JetAttribute::LArQuality,LArQuality))
343  missingVariable("LArQuality");
344 
345 
346  float HECQuality = 0;
347  if (!jet.getAttribute(xAOD::JetAttribute::HECQuality,HECQuality))
348  missingVariable("HECQuality");
349 
350 
351  float NegativeE = 0;
352  if (!jet.getAttribute(xAOD::JetAttribute::NegativeE,NegativeE))
353  missingVariable("NegativeE");
354 
355 
356 
357  float AverageLArQF = 0;
358  if (!jet.getAttribute(xAOD::JetAttribute::AverageLArQF,AverageLArQF))
359  missingVariable("AverageLArQF");
360 
361  return accept (EMFrac,
362  HECFrac,
363  LArQuality,
364  HECQuality,
365  sumpttrk,
366  jet.eta(),
367  jet.pt(),
368  FracSamplingMax,
369  NegativeE,
370  AverageLArQF,
371  FracSamplingMaxIndex);}
372 }

◆ containsHotCells()

bool JetCleaningTool::containsHotCells ( const xAOD::Jet jet,
const unsigned int  runNumber 
) const

Hot cell checks.

Definition at line 389 of file JetCleaningTool.cxx.

390 {
391  // Check if the runNumber contains bad cells
392  std::unordered_map<unsigned int, std::vector<std::unique_ptr<JCT::HotCell>>>::const_iterator hotCells = m_hotCellsMap.find(runNumber);
393  if (hotCells != m_hotCellsMap.end())
394  {
395  // The run contains hot cells
396  // Check if the jet is affected by one of the hot cells
397  for (const std::unique_ptr<JCT::HotCell>& cell : hotCells->second)
398  if (cell->jetAffectedByHotCell(jet))
399  return true;
400  }
401  return false;
402 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ decorate()

StatusCode JetCleaningTool::decorate ( const xAOD::JetContainer jets) const
overridevirtual

Decorate a jet collection without otherwise modifying it.

Implements IJetDecorator.

Definition at line 374 of file JetCleaningTool.cxx.

375 {
376  ATH_MSG_DEBUG(" Decorating jets with jet cleaning decoration : " << m_jetCleanKey.key());
377 
379 
380  for (const xAOD::Jet *jet : jets) {
381  cleanHandle(*jet) = accept(*jet).getCutResult("Cleaning");
382  }
383 
384  return StatusCode::SUCCESS;
385 
386 }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ getAcceptInfo()

const asg::AcceptInfo& JetCleaningTool::getAcceptInfo ( ) const
inline

Definition at line 72 of file JetCleaningTool.h.

73  {
74  return m_accept;
75  }

◆ getCutLevel()

JetCleaningTool::CleaningLevel JetCleaningTool::getCutLevel ( const std::string &  s) const

Helpers for cut names.

Definition at line 405 of file JetCleaningTool.cxx.

406 {
407  if (s=="SuperLooseBadLLP") return SuperLooseBadLLP;
408  if (s=="VeryLooseBadLLP") return VeryLooseBadLLP;
409  if (s=="LooseBad") return LooseBad;
410  if (s=="LooseBadLLP") return LooseBadLLP;
411  if (s=="LooseBadTrigger") return LooseBadTrigger;
412  if (s=="TightBad") return TightBad;
413  ATH_MSG_ERROR( "Unknown cut level requested: " << s );
414  return UnknownCut;
415 }

◆ getCutName()

std::string JetCleaningTool::getCutName ( const CleaningLevel  c) const

Definition at line 417 of file JetCleaningTool.cxx.

418 {
419  if (c==SuperLooseBadLLP) return "SuperLooseBadLLP";
420  if (c==VeryLooseBadLLP) return "VeryLooseBadLLP";
421  if (c==LooseBad) return "LooseBad";
422  if (c==LooseBadLLP) return "LooseBadLLP";
423  if (c==LooseBadTrigger) return "LooseBadTrigger";
424  if (c==TightBad) return "TightBad";
425  return "UnknownCut";
426 }

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void *  ptr) const
inherited

Get the (hashed) key of an object that is in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the SG::sgkey_t key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getName
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The hashed key of the object in the store. If not found, an invalid (zero) key.

Definition at line 119 of file AsgTool.cxx.

119  {
120 
121 #ifdef XAOD_STANDALONE
122  // In case we use @c xAOD::TEvent, we have a direct function call
123  // for this.
124  return evtStore()->event()->getKey( ptr );
125 #else
126  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127  return ( proxy == nullptr ? 0 : proxy->sgkey() );
128 #endif // XAOD_STANDALONE
129  }

◆ getName()

const std::string & asg::AsgTool::getName ( const void *  ptr) const
inherited

Get the name of an object that is / should be in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the std::string name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getKey
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The string name of the object in the store. If not found, an empty string.

Definition at line 106 of file AsgTool.cxx.

106  {
107 
108 #ifdef XAOD_STANDALONE
109  // In case we use @c xAOD::TEvent, we have a direct function call
110  // for this.
111  return evtStore()->event()->getName( ptr );
112 #else
113  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114  static const std::string dummy = "";
115  return ( proxy == nullptr ? dummy : proxy->name() );
116 #endif // XAOD_STANDALONE
117  }

◆ getProperty()

template<class T >
const T* asg::AsgTool::getProperty ( const std::string &  name) const
inherited

Get one of the tool's properties.

◆ initialize()

StatusCode JetCleaningTool::initialize ( )
overridevirtual

Initialize method.

Reimplemented from asg::AsgTool.

Definition at line 116 of file JetCleaningTool.cxx.

117 {
118  if (UnknownCut==m_cutLevel){
119  ATH_MSG_ERROR( "Tool initialized with unknown cleaning level." );
120  return StatusCode::FAILURE;
121  }
122 
124  ATH_MSG_INFO( "Configured with cut level " << getCutName( m_cutLevel ) );
125  std::string jetCleanDFName = "DFCommonJets_jetClean_"+getCutName(m_cutLevel);
126  // if UseLooseDecorForTightCut=true, retrieve loose cleaning decoration to compute tight cleaning
127  if (m_useLooseDecorForTightCut) jetCleanDFName = "DFCommonJets_jetClean_"+getCutName(LooseBad);
128  m_acc_jetClean = jetCleanDFName;
130 
131  ATH_MSG_DEBUG( "Initialized decorator name: " << jetCleanDFName );
132 
133  m_accept.addCut( "Cleaning", "Cleaning of the jet" );
134 
135  // Read in the map of runNumbers to bad cells
137 
138  ATH_CHECK(m_jetCleanKey.initialize(!m_jetContainerName.empty()));
139 
140  return StatusCode::SUCCESS;
141 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ keep()

int JetCleaningTool::keep ( const xAOD::Jet jet) const
inlinefinalvirtual

Method to select.

Returns true if jet is selected.

Implements IJetSelector.

Definition at line 104 of file JetCleaningTool.h.

105  { return static_cast<bool>(accept(jet)); }

◆ missingVariable()

void JetCleaningTool::missingVariable ( const std::string &  varName) const
private

Definition at line 292 of file JetCleaningTool.cxx.

293 {
294  ATH_MSG_FATAL(Form("JetCleaningTool failed to retrieve a required variable - please confirm that the xAOD::Jet being passed contains the variable named %s",varName.c_str()));
295  throw std::runtime_error(Form("JetCleaningTool failed to retrieve a required variable - please confirm that the xAOD::Jet being passed contains the variable named %s",varName.c_str()));
296 }

◆ modify()

virtual StatusCode IJetDecorator::modify ( xAOD::JetContainer jets) const
inlinefinaloverridevirtualinherited

Concrete implementation of the function inherited from IJetModifier.

Implements IJetModifier.

Definition at line 32 of file IJetDecorator.h.

32 {return decorate(jets);};

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msg_level_name()

const std::string & asg::AsgTool::msg_level_name ( ) const
inherited

A deprecated function for getting the message level's name.

Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:

MSG::name( msg().level() )

This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.

Returns
The string name of the current minimum message level that's printed

Definition at line 101 of file AsgTool.cxx.

101  {
102 
103  return MSG::name( msg().level() );
104  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ print()

void asg::AsgTool::print ( ) const
virtualinherited

◆ readHotCells()

StatusCode JetCleaningTool::readHotCells ( )
private

Hot cells reading helper.

Definition at line 430 of file JetCleaningTool.cxx.

431 {
432  if (m_hotCellsFile.empty()) return StatusCode::SUCCESS;
433 
434  // Ensure that the file exists
436  {
437  ATH_MSG_ERROR("Failed to find hot cells file: " << m_hotCellsFile);
438  return StatusCode::FAILURE;
439  }
440 
441  // Now parse the file
442  TEnv readCells;
443  if (readCells.ReadFile(m_hotCellsFile.value().c_str(),kEnvGlobal))
444  {
445  ATH_MSG_ERROR("Cannot read hot cells file: " << m_hotCellsFile);
446  return StatusCode::FAILURE;
447  }
448 
449  // Get the list of run numbers
450  const TString runNumbersString = readCells.GetValue("RunNumbers","");
451  if (runNumbersString=="")
452  {
453  ATH_MSG_ERROR("No RunNumbers field was specified in the hot cells file: " << m_hotCellsFile);
454  return StatusCode::FAILURE;
455  }
456 
457  // Convert into a vector
458  std::vector<unsigned int> runNumbers = JCT::utils::vectorize<unsigned int>(runNumbersString,", ");
459  if (runNumbers.empty())
460  {
461  ATH_MSG_ERROR("RunNumbers field specified, but value is empty or not unsigned ints for hot cells file: " << m_hotCellsFile);
462  return StatusCode::FAILURE;
463  }
464 
465  // Loop over the run numbers
466  for (unsigned int run : runNumbers){
467  std::vector<std::unique_ptr<JCT::HotCell>>& cellVec = m_hotCellsMap[run];
468 
469  // The number of hot cells should be below 100 for a given run...
470  for (size_t iCell = 0; iCell < 100; ++iCell)
471  {
472  const TString baseName = Form("Run%u.Cell%zu.",run,iCell);
473 
474  // Read the cell info
475  const int layer = readCells.GetValue(baseName+"Layer", -1 );
476  const float minEta = readCells.GetValue(baseName+"EtaMin",-10.);
477  const float maxEta = readCells.GetValue(baseName+"EtaMax", 10.);
478  const float minPhi = readCells.GetValue(baseName+"PhiMin",-10.);
479  const float maxPhi = readCells.GetValue(baseName+"PhiMax", 10.);
480 
481  // Check that the input makes sense
482  if (layer < 0 && minEta < -5 && maxEta > 5 && minPhi < -5 && maxPhi > 5)
483  continue;
484  if (layer < 0 || minEta < -5 || maxEta > 5 || minPhi < -5 || maxPhi > 5)
485  {
486  ATH_MSG_ERROR("Partially specified cell - please check the file: " << m_hotCellsFile);
487  ATH_MSG_ERROR(Form("Got Layer=%d, EtaMin=%f, EtaMax=%f, PhiMin=%f, PhiMax=%f",layer,minEta,maxEta,minPhi,maxPhi));
488  return StatusCode::FAILURE;
489  }
490  cellVec.emplace_back(std::make_unique<JCT::HotCell>(layer,minEta,maxEta,minPhi,maxPhi));
491  }
492 
493  // Ensure we found the expected run
494  if (cellVec.empty())
495  {
496  ATH_MSG_ERROR("Specified that Run# " << run << " contains hot cells, but did not find any corresponding cells in the file: " << m_hotCellsFile);
497  return StatusCode::FAILURE;
498  }
499  }
500 
501  // Done
502  return StatusCode::SUCCESS;
503 }

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_acc_jetClean

SG::ConstAccessor<char> JetCleaningTool::m_acc_jetClean {"DFCommonJets_jetClean_LooseBad"}
private

Definition at line 124 of file JetCleaningTool.h.

◆ m_accept

asg::AcceptInfo JetCleaningTool::m_accept
private

Definition at line 129 of file JetCleaningTool.h.

◆ m_cutLevel

CleaningLevel JetCleaningTool::m_cutLevel {LooseBad}
private

Definition at line 120 of file JetCleaningTool.h.

◆ m_cutName

Gaudi::Property<std::string> JetCleaningTool::m_cutName {this, "CutLevel", "" }
private

Name of the cut.

Definition at line 119 of file JetCleaningTool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doUgly

Gaudi::Property<bool> JetCleaningTool::m_doUgly {this, "DoUgly", false}
private

Definition at line 121 of file JetCleaningTool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_hotCellsFile

Gaudi::Property<std::string> JetCleaningTool::m_hotCellsFile {this, "HotCellsFile", ""}
private

Hot cells caching.

Definition at line 132 of file JetCleaningTool.h.

◆ m_hotCellsMap

std::unordered_map<unsigned int, std::vector<std::unique_ptr<JCT::HotCell> > > JetCleaningTool::m_hotCellsMap
private

Definition at line 133 of file JetCleaningTool.h.

◆ m_jetCleanKey

SG::WriteDecorHandleKey<xAOD::JetContainer> JetCleaningTool::m_jetCleanKey {this, "JetCleaningName", "isClean", "SG key for output jet cleaning decoration"}
private

Definition at line 128 of file JetCleaningTool.h.

◆ m_jetContainerName

Gaudi::Property<std::string> JetCleaningTool::m_jetContainerName {this, "JetContainer", "", "SG key for input jet container"}
private

Definition at line 127 of file JetCleaningTool.h.

◆ m_useDecorations

Gaudi::Property<bool> JetCleaningTool::m_useDecorations {this, "UseDecorations", true}
private

Definition at line 122 of file JetCleaningTool.h.

◆ m_useLooseDecorForTightCut

Gaudi::Property<bool> JetCleaningTool::m_useLooseDecorForTightCut {this, "UseLooseDecorForTightCut", false}
private

Definition at line 123 of file JetCleaningTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
JetCleaningTool::m_jetCleanKey
SG::WriteDecorHandleKey< xAOD::JetContainer > m_jetCleanKey
Definition: JetCleaningTool.h:128
python.selector.AtlRunQuerySelectorLhcOlc.runNumbers
string runNumbers
Definition: AtlRunQuerySelectorLhcOlc.py:586
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
xAOD::JetAttribute::LArQuality
@ LArQuality
Definition: JetAttributes.h:83
JetCleaningTool::m_useLooseDecorForTightCut
Gaudi::Property< bool > m_useLooseDecorForTightCut
Definition: JetCleaningTool.h:123
JetCleaningTool::TightBad
@ TightBad
Definition: JetCleaningTool.h:53
xAOD::JetAttribute::FracSamplingMax
@ FracSamplingMax
Definition: JetAttributes.h:116
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
JetCleaningTool::accept
asg::AcceptData accept(const int isJetClean, const int fmaxIndex) const
The DFCommonJets decoration accept method.
Definition: JetCleaningTool.cxx:145
JetCleaningTool::m_hotCellsFile
Gaudi::Property< std::string > m_hotCellsFile
Hot cells caching.
Definition: JetCleaningTool.h:132
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
JetCleaningTool::VeryLooseBadLLP
@ VeryLooseBadLLP
Definition: JetCleaningTool.h:49
test_pyathena.pt
pt
Definition: test_pyathena.py:11
run
int run(int argc, char *argv[])
Definition: ttree2hdf5.cxx:28
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
JetCleaningTool::LooseBad
@ LooseBad
Definition: JetCleaningTool.h:50
JetCleaningTool::LooseBadTrigger
@ LooseBadTrigger
Definition: JetCleaningTool.h:52
JetCleaningTool::JetCleaningTool
JetCleaningTool(const std::string &name="JetCleaningTool")
Standard constructor.
Definition: JetCleaningTool.cxx:89
JCT::utils::fileExists
bool fileExists(const TString &fileName)
Definition: PhysicsAnalysis/JetMissingEtID/JetSelectorTools/Root/Helpers.cxx:91
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
JetCleaningTool::UnknownCut
@ UnknownCut
Definition: JetCleaningTool.h:54
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
JetCleaningTool::m_jetContainerName
Gaudi::Property< std::string > m_jetContainerName
Definition: JetCleaningTool.h:127
JetCleaningTool::m_doUgly
Gaudi::Property< bool > m_doUgly
Definition: JetCleaningTool.h:121
PUfitVar::maxEta
constexpr float maxEta
Definition: GepMETPufitAlg.cxx:13
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
xAOD::JetAttribute::HECQuality
@ HECQuality
Definition: JetAttributes.h:80
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
AthCommonDataStore
Definition: AthCommonDataStore.h:52
JetCleaningTool::m_cutName
Gaudi::Property< std::string > m_cutName
Name of the cut.
Definition: JetCleaningTool.h:119
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
xAOD::JetAttribute::EMFrac
@ EMFrac
Definition: JetAttributes.h:112
PixelAthClusterMonAlgCfg.varName
string varName
end cluster ToT and charge
Definition: PixelAthClusterMonAlgCfg.py:125
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
JetCleaningTool::m_accept
asg::AcceptInfo m_accept
Definition: JetCleaningTool.h:129
python.xAODType.dummy
dummy
Definition: xAODType.py:4
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
run
Definition: run.py:1
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
JetCleaningTool::LooseBadLLP
@ LooseBadLLP
Definition: JetCleaningTool.h:51
JetCleaningTool::m_acc_jetClean
SG::ConstAccessor< char > m_acc_jetClean
Definition: JetCleaningTool.h:124
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
xAOD::JetAttribute::AverageLArQF
@ AverageLArQF
Definition: JetAttributes.h:85
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
xAOD::JetAttribute::SumPtTrkPt500
@ SumPtTrkPt500
Definition: JetAttributes.h:108
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
DeMoAtlasDataLoss.runNumber
string runNumber
Definition: DeMoAtlasDataLoss.py:64
a
TList * a
Definition: liststreamerinfos.cxx:10
h
IJetDecorator::decorate
virtual StatusCode decorate(const xAOD::JetContainer &jets) const =0
Decorate a jet collection without otherwise modifying it.
asg::AcceptData::getCutResult
bool getCutResult(const std::string &cutName) const
Get the result of a cut, based on the cut name (safer)
Definition: AcceptData.h:98
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
JetCleaningTool::m_cutLevel
CleaningLevel m_cutLevel
Definition: JetCleaningTool.h:120
JetCleaningTool::getCutLevel
CleaningLevel getCutLevel(const std::string &) const
Helpers for cut names.
Definition: JetCleaningTool.cxx:405
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
xAOD::JetAttribute::HECFrac
@ HECFrac
Definition: JetAttributes.h:113
JetCleaningTool::readHotCells
StatusCode readHotCells()
Hot cells reading helper.
Definition: JetCleaningTool.cxx:430
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
JetCleaningTool::m_hotCellsMap
std::unordered_map< unsigned int, std::vector< std::unique_ptr< JCT::HotCell > > > m_hotCellsMap
Definition: JetCleaningTool.h:133
xAOD::JetAttribute::FracSamplingMaxIndex
@ FracSamplingMaxIndex
Definition: JetAttributes.h:117
JetCleaningTool::missingVariable
void missingVariable(const std::string &varName) const
Definition: JetCleaningTool.cxx:292
asg::AcceptData
Definition: AcceptData.h:30
SG::DataProxy
Definition: DataProxy.h:45
python.compressB64.c
def c
Definition: compressB64.py:93
JetCleaningTool::getCutName
std::string getCutName(const CleaningLevel) const
Definition: JetCleaningTool.cxx:417
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
xAOD::JetAttribute::NegativeE
@ NegativeE
Definition: JetAttributes.h:84
JetCleaningTool::m_useDecorations
Gaudi::Property< bool > m_useDecorations
Definition: JetCleaningTool.h:122
JetCleaningTool::SuperLooseBadLLP
@ SuperLooseBadLLP
Definition: JetCleaningTool.h:48
fitman.k
k
Definition: fitman.py:528
asg::AcceptInfo::addCut
int addCut(const std::string &cutName, const std::string &cutDescription)
Add a cut; returning the cut position.
Definition: AcceptInfo.h:53