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}
 
SG::AuxElement::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 207 of file JetCleaningTool.cxx.

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

◆ 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 170 of file JetCleaningTool.cxx.

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

◆ accept() [3/4]

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

The DFCommonJets decoration accept method.

Definition at line 143 of file JetCleaningTool.cxx.

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

◆ accept() [4/4]

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

The D3PDReader accept method.

Definition at line 296 of file JetCleaningTool.cxx.

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

◆ containsHotCells()

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

Hot cell checks.

Definition at line 380 of file JetCleaningTool.cxx.

381 {
382  // Check if the runNumber contains bad cells
383  std::unordered_map<unsigned int, std::vector<std::unique_ptr<JCT::HotCell>>>::const_iterator hotCells = m_hotCellsMap.find(runNumber);
384  if (hotCells != m_hotCellsMap.end())
385  {
386  // The run contains hot cells
387  // Check if the jet is affected by one of the hot cells
388  for (const std::unique_ptr<JCT::HotCell>& cell : hotCells->second)
389  if (cell->jetAffectedByHotCell(jet))
390  return true;
391  }
392  return false;
393 }

◆ 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 365 of file JetCleaningTool.cxx.

366 {
367  ATH_MSG_DEBUG(" Decorating jets with jet cleaning decoration : " << m_jetCleanKey.key());
368 
370 
371  for (const xAOD::Jet *jet : jets) {
372  cleanHandle(*jet) = accept(*jet).getCutResult("Cleaning");
373  }
374 
375  return StatusCode::SUCCESS;
376 
377 }

◆ 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 396 of file JetCleaningTool.cxx.

397 {
398  if (s=="SuperLooseBadLLP") return SuperLooseBadLLP;
399  if (s=="VeryLooseBadLLP") return VeryLooseBadLLP;
400  if (s=="LooseBad") return LooseBad;
401  if (s=="LooseBadLLP") return LooseBadLLP;
402  if (s=="LooseBadTrigger") return LooseBadTrigger;
403  if (s=="TightBad") return TightBad;
404  ATH_MSG_ERROR( "Unknown cut level requested: " << s );
405  return UnknownCut;
406 }

◆ getCutName()

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

Definition at line 408 of file JetCleaningTool.cxx.

409 {
410  if (c==SuperLooseBadLLP) return "SuperLooseBadLLP";
411  if (c==VeryLooseBadLLP) return "VeryLooseBadLLP";
412  if (c==LooseBad) return "LooseBad";
413  if (c==LooseBadLLP) return "LooseBadLLP";
414  if (c==LooseBadTrigger) return "LooseBadTrigger";
415  if (c==TightBad) return "TightBad";
416  return "UnknownCut";
417 }

◆ 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  m_acc_jetClean = jetCleanDFName;
128 
129  ATH_MSG_DEBUG( "Initialized decorator name: " << jetCleanDFName );
130 
131  m_accept.addCut( "Cleaning", "Cleaning of the jet" );
132 
133  // Read in the map of runNumbers to bad cells
135 
136  ATH_CHECK(m_jetCleanKey.initialize(!m_jetContainerName.empty()));
137 
138  return StatusCode::SUCCESS;
139 }

◆ 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 290 of file JetCleaningTool.cxx.

291 {
292  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()));
293  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()));
294 }

◆ 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 421 of file JetCleaningTool.cxx.

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

◆ 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::AuxElement::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_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
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
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:143
JetCleaningTool::m_hotCellsFile
Gaudi::Property< std::string > m_hotCellsFile
Hot cells caching.
Definition: JetCleaningTool.h:132
JetCleaningTool::m_acc_jetClean
SG::AuxElement::ConstAccessor< char > m_acc_jetClean
Definition: JetCleaningTool.h:124
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
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
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
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
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:117
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:99
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
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:192
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:616
JetCleaningTool::m_cutLevel
CleaningLevel m_cutLevel
Definition: JetCleaningTool.h:120
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
JetCleaningTool::getCutLevel
CleaningLevel getCutLevel(const std::string &) const
Helpers for cut names.
Definition: JetCleaningTool.cxx:396
xAOD::JetAttribute::HECFrac
@ HECFrac
Definition: JetAttributes.h:113
JetCleaningTool::readHotCells
StatusCode readHotCells()
Hot cells reading helper.
Definition: JetCleaningTool.cxx:421
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
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:290
asg::AcceptData
Definition: AcceptData.h:30
SG::DataProxy
Definition: DataProxy.h:44
python.compressB64.c
def c
Definition: compressB64.py:93
JetCleaningTool::getCutName
std::string getCutName(const CleaningLevel) const
Definition: JetCleaningTool.cxx:408
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