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

Photon isEM selector. More...

#include <AsgPhotonIsEMSelector.h>

Inheritance diagram for AsgPhotonIsEMSelector:
Collaboration diagram for AsgPhotonIsEMSelector:

Public Member Functions

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
 

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

ASG_TOOL_CLASS3(AsgPhotonIsEMSelector, IAsgPhotonIsEMSelector, IAsgEGammaIsEMSelector, IAsgSelectionTool) public ~AsgPhotonIsEMSelector ()
 Default constructor. More...
 
virtual StatusCode initialize ()
 AlgTool initialize method. More...
 
virtual const asg::AcceptInfogetAcceptInfo () const
 Method to get the plain AcceptInfo. More...
 
virtual asg::AcceptData accept (const xAOD::IParticle *part) const
 Accept with generic interface. More...
 
virtual asg::AcceptData accept (const EventContext &ctx, const xAOD::IParticle *part) const
 
virtual asg::AcceptData accept (const EventContext &ctx, const xAOD::Egamma *part) const
 Accept with Egamma objects. More...
 
virtual asg::AcceptData accept (const EventContext &ctx, const xAOD::Photon *part) const
 The main accept method: the actual cuts are applied here. More...
 
virtual asg::AcceptData accept (const EventContext &ctx, const xAOD::Electron *part) const
 The main accept method: the actual cuts are applied here. More...
 
virtual std::string getOperatingPointName () const
 Method to get the operating point. More...
 
virtual StatusCode execute (const EventContext &ctx, const xAOD::Egamma *eg, unsigned int &isEM) const
 The basic isem. More...
 
float getMu (const EventContext &ctx) const
 
int RunNumber (const EventContext &ctx) 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

std::string m_WorkingPoint
 Working Point. More...
 
std::string m_configFile
 Config File. More...
 
Root::TPhotonIsEMSelectorm_rootTool
 Pointer to the underlying ROOT based tool. More...
 
bool m_useF3core
 use f3core or f3 (default: use f3) More...
 
bool m_caloOnly
 Flag for calo only cut-base. More...
 
float m_trigEtTh
 
bool m_skipAmbiguityCut
 
bool m_removeTRTConversion
 
bool m_isMuDep = false
 
SG::ReadHandleKey< xAOD::EventInfom_EvtInfoKey
 
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

Photon isEM selector.

Author
Jovan Mitrevski Karsten Koeneke
Date
Dec 2011 - Fab 2012 11-MAR-2014 convert to ASG tool

Definition at line 38 of file AsgPhotonIsEMSelector.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ ~AsgPhotonIsEMSelector()

AsgPhotonIsEMSelector::~AsgPhotonIsEMSelector ( )
private

Default constructor.

Destructor

Definition at line 82 of file AsgPhotonIsEMSelector.cxx.

83 {
84  delete m_rootTool;
85 }

Member Function Documentation

◆ accept() [1/5]

asg::AcceptData AsgPhotonIsEMSelector::accept ( const EventContext &  ctx,
const xAOD::Egamma part 
) const
privatevirtual

Accept with Egamma objects.

Implements IAsgEGammaIsEMSelector.

Definition at line 247 of file AsgPhotonIsEMSelector.cxx.

249 {
250 
251  if (eg) {
252  unsigned int isEM = ~0;
253  StatusCode sc = execute(ctx, eg, isEM);
254  if (sc.isFailure()) {
255  ATH_MSG_ERROR("could not calculate isEM");
256  return m_rootTool->accept();
257  }
258  return m_rootTool->fillAccept(isEM);
259  }
260 
261  ATH_MSG_ERROR("AsgElectronIsEMSelector::accept was given a bad argument");
262  return m_rootTool->accept();
263 }

◆ accept() [2/5]

asg::AcceptData AsgPhotonIsEMSelector::accept ( const EventContext &  ctx,
const xAOD::Electron part 
) const
privatevirtual

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

Implements IAsgEGammaIsEMSelector.

Definition at line 271 of file AsgPhotonIsEMSelector.cxx.

273 {
274  return accept(ctx, static_cast<const xAOD::Egamma*>(el));
275 }

◆ accept() [3/5]

asg::AcceptData AsgPhotonIsEMSelector::accept ( const EventContext &  ctx,
const xAOD::IParticle part 
) const
privatevirtual

Implements IAsgEGammaIsEMSelector.

Definition at line 233 of file AsgPhotonIsEMSelector.cxx.

235 {
236 
237  if (part->type() == xAOD::Type::Photon ||
238  part->type() == xAOD::Type::Electron) {
239  return accept(ctx, static_cast<const xAOD::Egamma*>(part));
240  }
241 
243  "AsgElectronIsEMSelector::could not convert argument to Photon/Electron");
244  return m_rootTool->accept();
245 }

◆ accept() [4/5]

asg::AcceptData AsgPhotonIsEMSelector::accept ( const EventContext &  ctx,
const xAOD::Photon part 
) const
privatevirtual

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

Implements IAsgEGammaIsEMSelector.

Definition at line 265 of file AsgPhotonIsEMSelector.cxx.

267 {
268  return accept(ctx, static_cast<const xAOD::Egamma*>(ph));
269 }

◆ accept() [5/5]

asg::AcceptData AsgPhotonIsEMSelector::accept ( const xAOD::IParticle part) const
privatevirtual

Accept with generic interface.

Implements IAsgEGammaIsEMSelector.

Definition at line 227 of file AsgPhotonIsEMSelector.cxx.

228 {
229  return AsgPhotonIsEMSelector::accept(Gaudi::Hive::currentContext(), part);
230 }

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

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

◆ execute()

StatusCode AsgPhotonIsEMSelector::execute ( const EventContext &  ctx,
const xAOD::Egamma eg,
unsigned int &  isEM 
) const
privatevirtual

The basic isem.

Implements IAsgEGammaIsEMSelector.

Definition at line 318 of file AsgPhotonIsEMSelector.cxx.

321 {
322  //
323  // Particle identification for photons based on cuts
324  // trigEtTh : threshold in ET as applied by trigger
325  //
326  (void)ctx;
327 
328  // initialisation
329  isEM = 0;
330 
331  // protection against null pointer
332  if (eg == nullptr) {
333  ATH_MSG_ERROR("eg == 0");
334  // if object is bad then use the bit for "bad eta"
335  isEM = (0x1 << egammaPID::ClusterEtaRange_Photon);
336  return StatusCode::SUCCESS;
337  }
338 
339  // protection against bad clusters
340  const xAOD::CaloCluster* cluster = eg->caloCluster();
341  if (cluster == nullptr) {
342  ATH_MSG_ERROR("exiting because cluster is NULL " << cluster);
343  // if object is bad then use the bit for "bad eta"
344  isEM = (0x1 << egammaPID::ClusterEtaRange_Photon);
345  return StatusCode::SUCCESS;
346  }
347 
348  // Fill variables
349  // eta position in second sampling
350  const float eta2 = fabsf(cluster->etaBE(2));
351  // transverse energy in calorimeter (using eta position in second sampling)
352  const double energy = cluster->e();
353  double et = 0.;
354  if (eta2 < 999.) {
355  const double cosheta = cosh(eta2);
356  et = (cosheta != 0.) ? energy / cosheta : 0.;
357  }
358 
359  // variables based on HCAL
360  // transverse energy in 1st scintillator of hadronic calorimeter/ET
361  float Rhad1 = eg->showerShapeValue(xAOD::EgammaParameters::Rhad1);
362  // transverse energy in hadronic calorimeter/ET
363  float Rhad = eg->showerShapeValue(xAOD::EgammaParameters::Rhad);
364 
365  // variables based on S2 of EM CAL
366  // E(7*7) in 2nd sampling
367  float e277 = eg->showerShapeValue(xAOD::EgammaParameters::e277);
368  // E(3*7)/E(7*7) in 2nd sampling
369  float Reta = eg->showerShapeValue(xAOD::EgammaParameters::Reta);
370  // E(3*3)/E(3*7) in 2nd sampling
371  float Rphi = eg->showerShapeValue(xAOD::EgammaParameters::Rphi);
372  // shower width in 2nd sampling
373  float weta2c = eg->showerShapeValue(xAOD::EgammaParameters::weta2);
374 
375  // variables based on S1 of EM CAL
376  // fraction of energy reconstructed in the 1st sampling
377  float f1 = eg->showerShapeValue(xAOD::EgammaParameters::f1);
378  // shower width in 3 strips in 1st sampling
379  float weta1c = eg->showerShapeValue(xAOD::EgammaParameters::weta1);
380  // (E of 1st max in strips-E of 2nd max)/(E of 1st max+E of 2nd max)
381  float Eratio = eg->showerShapeValue(xAOD::EgammaParameters::Eratio);
382  // E(2nd max)-E(min) in strips
383  float DeltaE = eg->showerShapeValue(xAOD::EgammaParameters::DeltaE);
384  // total shower width in 1st sampling
385  float wtot = eg->showerShapeValue(xAOD::EgammaParameters::wtots1);
386  // E(+/-3)-E(+/-1)/E(+/-1)
387  float fracm = eg->showerShapeValue(xAOD::EgammaParameters::fracs1);
388 
389  float f3(0);
390  if (m_useF3core) {
391  f3 = eg->showerShapeValue(xAOD::EgammaParameters::f3core);
392  } else {
393  f3 = eg->showerShapeValue(xAOD::EgammaParameters::f3);
394  }
395 
396  // cut on E/p
397  double ep = 1.0; // default passes
398 
399  if (m_caloOnly) {
400  ATH_MSG_DEBUG("Doing CaloCutsOnly");
401  } else {
403  eg)) // returns false if not photon or no conversion
404  {
405  const xAOD::Photon* ph = static_cast<const xAOD::Photon*>(eg);
406  float p = xAOD::EgammaHelpers::momentumAtVertex(ph).mag();
407  if (p != 0.) {
408  ep = energy / p;
409  } else {
410  ep = 9999999.;
411  }
412  }
413  }
414 
415  // modifiy et when dealing with trigger
416  // to be sure that it will take the correct bin (VD)
417  if (m_trigEtTh > 0)
418  et = m_trigEtTh * 1.01;
419 
420  // pileup
421  float mu = m_isMuDep ? this->getMu(ctx) : -999;
422 
423  //runnumber
424  int runnumber = this->RunNumber(ctx);
425  bool excludeTRT = false;
426 
427  if(runnumber >= 410000 && m_removeTRTConversion) excludeTRT = true; // exclude TRT converted photons only for Run-3
428 
429 
430  // apply calorimeter selection for photons
431  isEM = m_rootTool->calcIsEm(eta2,
432  et,
433  Rhad1,
434  Rhad,
435  e277,
436  Reta,
437  Rphi,
438  weta2c,
439  f1,
440  Eratio,
441  DeltaE,
442  weta1c,
443  wtot,
444  fracm,
445  f3,
446  ep,
448  mu);
449 
450  // Add ambiguity resolution cut for photon (vs electron)
451  // to reproduce release 21.2 ambiguity tool configuration
452  if (!m_skipAmbiguityCut){
453  static const SG::AuxElement::Accessor<uint8_t> acc("ambiguityType");
454  int AmbiguityType = acc(*eg);
455  if (eg->author() == xAOD::EgammaParameters::AuthorAmbiguous &&
457  isEM |= (0x1 << egammaPID::AmbiguityResolution_Photon);
458  }
459  }
460 
461  return StatusCode::SUCCESS;
462 }

◆ 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 & AsgPhotonIsEMSelector::getAcceptInfo ( ) const
privatevirtual

Method to get the plain AcceptInfo.

This is needed so that one can already get the AcceptInfo and query what cuts are defined before the first object is passed to the tool.

Implements IAsgSelectionTool.

Definition at line 218 of file AsgPhotonIsEMSelector.cxx.

219 {
220  return m_rootTool->getAcceptInfo();
221 }

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

◆ getMu()

float AsgPhotonIsEMSelector::getMu ( const EventContext &  ctx) const
private

Definition at line 464 of file AsgPhotonIsEMSelector.cxx.

464  {
466  if (!evtI.isValid()) {
467  ATH_MSG_WARNING("Cannot find EventInfo, returning -999.");
468  return -999;
469  }
470  return evtI->actualInteractionsPerCrossing();
471 }

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

◆ getOperatingPointName()

std::string AsgPhotonIsEMSelector::getOperatingPointName ( ) const
privatevirtual

Method to get the operating point.

Get the name of the current operating point.

Implements IAsgEGammaIsEMSelector.

Definition at line 281 of file AsgPhotonIsEMSelector.cxx.

282 {
283  //
284  // For Loose, Medium and Tight ignore if the difference is in bit 23
288  return "Loose";
289  }
293  return "Medium";
294  }
298  return "Tight";
299  }
301  return "LooseEF";
302  }
304  return "MediumEF";
305  }
306  if (m_rootTool->m_isEMMask == 0) {
307  return "No cuts applied";
308  }
309 
310  ATH_MSG_ERROR("Didn't recognize the given operating point with mask: "
311  << m_rootTool->m_isEMMask);
312  return "";
313 }

◆ getProperty()

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

Get one of the tool's properties.

◆ initialize()

StatusCode AsgPhotonIsEMSelector::initialize ( )
privatevirtual

AlgTool initialize method.

----— Read in the TEnv config ---—///

----— Use helpers to read in the cut arrays ---—///

Reimplemented from asg::AsgTool.

Definition at line 89 of file AsgPhotonIsEMSelector.cxx.

90 {
91  if (!m_WorkingPoint.empty()) {
96  }
97 
99  if (filename.empty()) {
100  ATH_MSG_ERROR("Could not locate " << m_configFile);
101  return StatusCode::FAILURE;
102  }
103  TEnv env;
104  env.ReadFile(filename.c_str(), kEnvLocal);
106  // Override the mask via the config only if it is not set
108  unsigned int mask(
109  env.GetValue("isEMMask", static_cast<int>(egammaPID::EgPidUndefined)));
111  }
114  AsgConfigHelper::HelperFloat("CutBinEta_photonsNonConverted", env);
116  AsgConfigHelper::HelperFloat("CutBinEnergy_photonsNonConverted", env);
118  AsgConfigHelper::HelperFloat("CutBinMu_photonsNonConverted", env);
120  AsgConfigHelper::HelperFloat("e277_photonsNonConverted", env);
122  AsgConfigHelper::HelperFloat("CutHadLeakage_photonsNonConverted", env);
124  AsgConfigHelper::HelperFloat("Reta37_photonsNonConverted", env);
126  AsgConfigHelper::HelperFloat("Rphi33_photonsNonConverted", env);
128  AsgConfigHelper::HelperFloat("weta2_photonsNonConverted", env);
130  AsgConfigHelper::HelperFloat("CutBinEtaStrips_photonsNonConverted", env);
132  AsgConfigHelper::HelperFloat("CutBinEnergyStrips_photonsNonConverted", env);
134  AsgConfigHelper::HelperFloat("CutBinMuStrips_photonsNonConverted", env);
136  AsgConfigHelper::HelperFloat("f1_photonsNonConverted", env);
138  AsgConfigHelper::HelperFloat("deltae_photonsNonConverted", env);
140  AsgConfigHelper::HelperFloat("DEmaxs1_photonsNonConverted", env);
142  AsgConfigHelper::HelperFloat("wtot_photonsNonConverted", env);
144  AsgConfigHelper::HelperFloat("fracm_photonsNonConverted", env);
146  AsgConfigHelper::HelperFloat("w1_photonsNonConverted", env);
148  AsgConfigHelper::HelperFloat("CutF3_photonsNonConverted", env);
150  AsgConfigHelper::HelperFloat("CutBinEta_photonsConverted", env);
152  AsgConfigHelper::HelperFloat("CutBinEnergy_photonsConverted", env);
154  AsgConfigHelper::HelperFloat("CutBinMu_photonsConverted", env);
156  AsgConfigHelper::HelperFloat("e277_photonsConverted", env);
158  AsgConfigHelper::HelperFloat("CutHadLeakage_photonsConverted", env);
160  AsgConfigHelper::HelperFloat("Reta37_photonsConverted", env);
162  AsgConfigHelper::HelperFloat("Rphi33_photonsConverted", env);
164  AsgConfigHelper::HelperFloat("weta2_photonsConverted", env);
166  AsgConfigHelper::HelperFloat("CutBinEtaStrips_photonsConverted", env);
168  AsgConfigHelper::HelperFloat("CutBinEnergyStrips_photonsConverted", env);
170  AsgConfigHelper::HelperFloat("CutBinMuStrips_photonsConverted", env);
172  AsgConfigHelper::HelperFloat("f1_photonsConverted", env);
174  AsgConfigHelper::HelperFloat("deltae_photonsConverted", env);
176  AsgConfigHelper::HelperFloat("DEmaxs1_photonsConverted", env);
178  AsgConfigHelper::HelperFloat("wtot_photonsConverted", env);
180  AsgConfigHelper::HelperFloat("fracm_photonsConverted", env);
182  AsgConfigHelper::HelperFloat("w1_photonsConverted", env);
184  AsgConfigHelper::HelperFloat("CutminEp_photonsConverted", env);
186  AsgConfigHelper::HelperFloat("CutmaxEp_photonsConverted", env);
188  AsgConfigHelper::HelperFloat("CutF3_photonsConverted", env);
189 
190  // Get the message level and set the underlying ROOT tool message level
191  // accordingly
192  m_rootTool->msg().setLevel(this->msg().level());
193 
194  // We need to initialize the underlying ROOT TSelectorTool
195  if (m_rootTool->initialize().isFailure()) {
196  ATH_MSG_ERROR("Could not initialize the TPhotonIsEMSelector!");
197  return StatusCode::FAILURE;
198  }
199 
200  // if we use mu-dependent menu
201  m_isMuDep =
207  if (m_isMuDep)
208  ATH_MSG_INFO("Running a mu-dependent photon ID menu");
209 
210  return StatusCode::SUCCESS;
211 }

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

◆ 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

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

◆ RunNumber()

int AsgPhotonIsEMSelector::RunNumber ( const EventContext &  ctx) const
private

Definition at line 473 of file AsgPhotonIsEMSelector.cxx.

473  {
475  if (!evtI.isValid()) {
476  ATH_MSG_WARNING("Cannot find EventInfo, returning -999.");
477  return -999;
478  }
479  return evtI->runNumber();
480 }

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

bool AsgPhotonIsEMSelector::m_caloOnly
private

Flag for calo only cut-base.

Definition at line 96 of file AsgPhotonIsEMSelector.h.

◆ m_configFile

std::string AsgPhotonIsEMSelector::m_configFile
private

Config File.

Definition at line 87 of file AsgPhotonIsEMSelector.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_EvtInfoKey

SG::ReadHandleKey<xAOD::EventInfo> AsgPhotonIsEMSelector::m_EvtInfoKey
private
Initial value:
{ this,
"EventInfo", "EventInfo", "The event info object key" }

Definition at line 109 of file AsgPhotonIsEMSelector.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_isMuDep

bool AsgPhotonIsEMSelector::m_isMuDep = false
private

Definition at line 106 of file AsgPhotonIsEMSelector.h.

◆ m_removeTRTConversion

bool AsgPhotonIsEMSelector::m_removeTRTConversion
private

Definition at line 103 of file AsgPhotonIsEMSelector.h.

◆ m_rootTool

Root::TPhotonIsEMSelector* AsgPhotonIsEMSelector::m_rootTool
private

Pointer to the underlying ROOT based tool.

Definition at line 90 of file AsgPhotonIsEMSelector.h.

◆ m_skipAmbiguityCut

bool AsgPhotonIsEMSelector::m_skipAmbiguityCut
private

Definition at line 100 of file AsgPhotonIsEMSelector.h.

◆ m_trigEtTh

float AsgPhotonIsEMSelector::m_trigEtTh
private

Definition at line 97 of file AsgPhotonIsEMSelector.h.

◆ m_useF3core

bool AsgPhotonIsEMSelector::m_useF3core
private

use f3core or f3 (default: use f3)

Definition at line 93 of file AsgPhotonIsEMSelector.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.

◆ m_WorkingPoint

std::string AsgPhotonIsEMSelector::m_WorkingPoint
private

Working Point.

Definition at line 84 of file AsgPhotonIsEMSelector.h.


The documentation for this class was generated from the following files:
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
Root::TPhotonIsEMSelector::m_cutBinMuStrips_photonsNonConverted
std::vector< float > m_cutBinMuStrips_photonsNonConverted
binning in pielup in strips for photons
Definition: TPhotonIsEMSelector.h:256
et
Extra patterns decribing particle interation process.
egammaPID::PhotonTight
const unsigned int PhotonTight
Tight photon selection.
Definition: egammaPIDdefs.h:602
xAOD::Electron
Electron_v1 Electron
Definition of the current "egamma version".
Definition: Event/xAOD/xAODEgamma/xAODEgamma/Electron.h:17
Root::TPhotonIsEMSelector::m_cutBinEta_photonsNonConverted
std::vector< float > m_cutBinEta_photonsNonConverted
range of eta bins for photon-ID
Definition: TPhotonIsEMSelector.h:235
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ParticleGun_SamplingFraction.eta2
eta2
Definition: ParticleGun_SamplingFraction.py:96
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
ParticleTest.eg
eg
Definition: ParticleTest.py:29
xAOD::EgammaParameters::Reta
@ Reta
e237/e277
Definition: EgammaEnums.h:154
EgammaSelectors::PhotonCutPointToMask
const std::map< std::string, unsigned int > PhotonCutPointToMask
Definition: EGSelectorConfigurationMapping.h:121
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition: Control/AthContainers/AthContainers/Accessor.h:66
egammaPID::PhotonLoose
const unsigned int PhotonLoose
Loose photon selection.
Definition: egammaPIDdefs.h:586
Root::TPhotonIsEMSelector::m_f1_photonsConverted
std::vector< float > m_f1_photonsConverted
Cut on fraction of energy rec.
Definition: TPhotonIsEMSelector.h:301
Root::TPhotonIsEMSelector::m_e277_photonsNonConverted
std::vector< float > m_e277_photonsNonConverted
Cut in E277 for photons.
Definition: TPhotonIsEMSelector.h:241
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Root::TPhotonIsEMSelector::m_deltae_photonsNonConverted
std::vector< float > m_deltae_photonsNonConverted
Cut on Demax2 for photons.
Definition: TPhotonIsEMSelector.h:262
Root::TPhotonIsEMSelector::m_cutBinMuStrips_photonsConverted
std::vector< float > m_cutBinMuStrips_photonsConverted
binning in pileup in strips for photons
Definition: TPhotonIsEMSelector.h:299
Root::TPhotonIsEMSelector::m_cutBinEnergyStrips_photonsNonConverted
std::vector< float > m_cutBinEnergyStrips_photonsNonConverted
Definition: TPhotonIsEMSelector.h:254
AsgPhotonIsEMSelector::m_rootTool
Root::TPhotonIsEMSelector * m_rootTool
Pointer to the underlying ROOT based tool.
Definition: AsgPhotonIsEMSelector.h:90
Root::TPhotonIsEMSelector::m_cutminEp_photonsConverted
std::vector< float > m_cutminEp_photonsConverted
cut min on E/p for e-ID
Definition: TPhotonIsEMSelector.h:315
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
Root::TPhotonIsEMSelector::m_wtot_photonsConverted
std::vector< float > m_wtot_photonsConverted
Cut on total width in strips for photons.
Definition: TPhotonIsEMSelector.h:309
AsgPhotonIsEMSelector::m_caloOnly
bool m_caloOnly
Flag for calo only cut-base.
Definition: AsgPhotonIsEMSelector.h:96
xAOD::Egamma_v1
Definition: Egamma_v1.h:56
Root::TPhotonIsEMSelector::m_cutBinEnergy_photonsConverted
std::vector< float > m_cutBinEnergy_photonsConverted
range of ET bins for photon-ID
Definition: TPhotonIsEMSelector.h:280
Root::TPhotonIsEMSelector::m_Rphi33_photonsNonConverted
std::vector< float > m_Rphi33_photonsNonConverted
ratio E233/E237
Definition: TPhotonIsEMSelector.h:247
xAOD::EgammaParameters::Rphi
@ Rphi
e233/e237
Definition: EgammaEnums.h:156
Root::TPhotonIsEMSelector::m_Reta37_photonsNonConverted
std::vector< float > m_Reta37_photonsNonConverted
ratio E237/E277
Definition: TPhotonIsEMSelector.h:245
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Root::TPhotonIsEMSelector::m_fracm_photonsNonConverted
std::vector< float > m_fracm_photonsNonConverted
Cut on fraction of energy outside core for photons.
Definition: TPhotonIsEMSelector.h:268
Root::TPhotonIsEMSelector::initialize
StatusCode initialize()
Initialize this class.
Definition: TPhotonIsEMSelector.cxx:126
AsgPhotonIsEMSelector::m_WorkingPoint
std::string m_WorkingPoint
Working Point.
Definition: AsgPhotonIsEMSelector.h:84
xAOD::EgammaParameters::wtots1
@ wtots1
shower width is determined in a window detaxdphi = 0,0625 ×~0,2, corresponding typically to 20 strips...
Definition: EgammaEnums.h:140
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:460
Root::TPhotonIsEMSelector::m_Reta37_photonsConverted
std::vector< float > m_Reta37_photonsConverted
ratio E237/E277
Definition: TPhotonIsEMSelector.h:288
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
Root::TPhotonIsEMSelector::calcIsEm
unsigned int calcIsEm(float eta2, double et, float Rhad1, float Rhad, float e277, float Reta, float Rphi, float weta2c, float f1, float Eratio, float DeltaE, float weta1c, float wtot, float fracm, float f3, double ep, bool isConversion, float mu) const
Definition: TPhotonIsEMSelector.cxx:355
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
Root::TPhotonIsEMSelector::m_cutBinEtaStrips_photonsConverted
std::vector< float > m_cutBinEtaStrips_photonsConverted
binning in eta in strips for photons
Definition: TPhotonIsEMSelector.h:295
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
egammaPID::EgPidUndefined
const unsigned int EgPidUndefined
Definition: egammaPIDdefs.h:90
Root::TPhotonIsEMSelector::m_DEmaxs1_photonsNonConverted
std::vector< float > m_DEmaxs1_photonsNonConverted
cut on (Emax1-Emax2)/(Emax1-Emax2) for photons
Definition: TPhotonIsEMSelector.h:264
xAOD::EgammaParameters::f3
@ f3
fraction of energy reconstructed in 3rd sampling
Definition: EgammaEnums.h:54
xAOD::CaloCluster_v1::etaBE
float etaBE(const unsigned layer) const
Get the eta in one layer of the EM Calo.
Definition: CaloCluster_v1.cxx:644
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::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
xAOD::EgammaHelpers::isConvertedPhoton
bool isConvertedPhoton(const xAOD::Egamma *eg, bool excludeTRT=false)
is the object a converted photon
Definition: EgammaxAODHelpers.cxx:26
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
AsgPhotonIsEMSelector::m_trigEtTh
float m_trigEtTh
Definition: AsgPhotonIsEMSelector.h:97
Root::TPhotonIsEMSelector::m_cutHadLeakage_photonsNonConverted
std::vector< float > m_cutHadLeakage_photonsNonConverted
Cut on hadronic leakage for photons.
Definition: TPhotonIsEMSelector.h:243
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
xAOD::EgammaParameters::f1
@ f1
E1/E = fraction of energy reconstructed in the first sampling, where E1 is energy in all strips belon...
Definition: EgammaEnums.h:52
AsgPhotonIsEMSelector::m_useF3core
bool m_useF3core
use f3core or f3 (default: use f3)
Definition: AsgPhotonIsEMSelector.h:93
Root::TPhotonIsEMSelector::m_cutF3_photonsConverted
std::vector< float > m_cutF3_photonsConverted
cut values for cut on f3 or f3core
Definition: TPhotonIsEMSelector.h:319
AsgPhotonIsEMSelector::accept
virtual asg::AcceptData accept(const xAOD::IParticle *part) const
Accept with generic interface.
Definition: AsgPhotonIsEMSelector.cxx:227
Root::TPhotonIsEMSelector::m_deltae_photonsConverted
std::vector< float > m_deltae_photonsConverted
Cut on Demax2 for photons.
Definition: TPhotonIsEMSelector.h:305
Root::TPhotonIsEMSelector::m_cutBinEtaStrips_photonsNonConverted
std::vector< float > m_cutBinEtaStrips_photonsNonConverted
binning in eta in strips for photons
Definition: TPhotonIsEMSelector.h:252
xAOD::EgammaParameters::AuthorAmbiguous
const uint16_t AuthorAmbiguous
Object Reconstructed by standard cluster-based algorithm.
Definition: EgammaDefs.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
egammaPID::PhotonLooseEF
const unsigned int PhotonLooseEF
TrigEgamma Pid Definitions.
Definition: egammaPIDdefs.h:611
Root::TPhotonIsEMSelector::m_cutBinEnergyStrips_photonsConverted
std::vector< float > m_cutBinEnergyStrips_photonsConverted
Definition: TPhotonIsEMSelector.h:297
xAOD::EgammaHelpers::momentumAtVertex
Amg::Vector3D momentumAtVertex(const xAOD::Photon *, bool debug=false)
return the momentum at the vertex (which can be 0)
Definition: PhotonxAODHelpers.cxx:88
asg::AsgMessaging::msg
MsgStream & msg() const
The standard message stream.
Definition: AsgMessaging.cxx:49
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
egammaPID::AmbiguityResolution_Photon
@ AmbiguityResolution_Photon
ambiguity resolution for photon (vs electron)
Definition: egammaPIDdefs.h:194
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16
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
Root::TPhotonIsEMSelector::m_cutBinMu_photonsConverted
std::vector< float > m_cutBinMu_photonsConverted
range of mu bins for photon-ID
Definition: TPhotonIsEMSelector.h:282
Root::TPhotonIsEMSelector::m_wtot_photonsNonConverted
std::vector< float > m_wtot_photonsNonConverted
Cut on total width in strips for photons.
Definition: TPhotonIsEMSelector.h:266
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
xAOD::AmbiguityTool::AmbiguityType
AmbiguityType
Definition: IEGammaAmbiguityTool.h:33
Root::TPhotonIsEMSelector::m_cutBinEta_photonsConverted
std::vector< float > m_cutBinEta_photonsConverted
range of eta bins for photon-ID
Definition: TPhotonIsEMSelector.h:278
xAOD::EgammaParameters::Rhad1
@ Rhad1
ethad1/et
Definition: EgammaEnums.h:162
DeMoScan.runnumber
runnumber
Definition: DeMoScan.py:266
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
egammaPID::ClusterEtaRange_Photon
@ ClusterEtaRange_Photon
cluster eta range
Definition: egammaPIDdefs.h:164
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
Root::TPhotonIsEMSelector::m_f1_photonsNonConverted
std::vector< float > m_f1_photonsNonConverted
Cut on fraction of energy rec.
Definition: TPhotonIsEMSelector.h:258
Root::TPhotonIsEMSelector::m_isEMMask
unsigned int m_isEMMask
which subset of cuts to apply
Definition: TPhotonIsEMSelector.h:222
Root::TPhotonIsEMSelector::m_weta2_photonsNonConverted
std::vector< float > m_weta2_photonsNonConverted
Cut on width in 2nd sampling for photons.
Definition: TPhotonIsEMSelector.h:249
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
AsgPhotonIsEMSelector::m_configFile
std::string m_configFile
Config File.
Definition: AsgPhotonIsEMSelector.h:87
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
xAOD::AmbiguityTool::ambiguousNoInnermost
@ ambiguousNoInnermost
Definition: IEGammaAmbiguityTool.h:39
Root::TPhotonIsEMSelector::m_cutBinEnergy_photonsNonConverted
std::vector< float > m_cutBinEnergy_photonsNonConverted
range of ET bins for photon-ID
Definition: TPhotonIsEMSelector.h:237
Root::TPhotonIsEMSelector::m_weta2_photonsConverted
std::vector< float > m_weta2_photonsConverted
Cut on width in 2nd sampling for photons.
Definition: TPhotonIsEMSelector.h:292
Root::TPhotonIsEMSelector::accept
asg::AcceptData accept(float eta2, double et, float Rhad1, float Rhad, float e277, float Reta, float Rphi, float weta2c, float f1, float Eratio, float DeltaE, float weta1c, float wtot, float fracm, float f3, double ep, bool isConversion, float mu)
The main accept method: the actual cuts are applied here.
Definition: TPhotonIsEMSelector.cxx:289
xAOD::Photon
Photon_v1 Photon
Definition of the current "egamma version".
Definition: Event/xAOD/xAODEgamma/xAODEgamma/Photon.h:17
AsgPhotonIsEMSelector::RunNumber
int RunNumber(const EventContext &ctx) const
Definition: AsgPhotonIsEMSelector.cxx:473
PathResolverFindCalibFile
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Definition: PathResolver.cxx:431
Root::TPhotonIsEMSelector::m_cutBinMu_photonsNonConverted
std::vector< float > m_cutBinMu_photonsNonConverted
range of mu bins for photon-ID
Definition: TPhotonIsEMSelector.h:239
AsgPhotonIsEMSelector::m_skipAmbiguityCut
bool m_skipAmbiguityCut
Definition: AsgPhotonIsEMSelector.h:100
egammaPID::PhotonMedium
const unsigned int PhotonMedium
Medium photon selection.
Definition: egammaPIDdefs.h:594
a
TList * a
Definition: liststreamerinfos.cxx:10
Root::TPhotonIsEMSelector::m_cutmaxEp_photonsConverted
std::vector< float > m_cutmaxEp_photonsConverted
cut max on E/p for e-ID
Definition: TPhotonIsEMSelector.h:317
h
xAOD::Photon_v1
Definition: Photon_v1.h:37
EgammaSelectors::PhotonCutPointToConfFile
const std::map< std::string, std::string > PhotonCutPointToConfFile
Definition: EGSelectorConfigurationMapping.h:75
egammaPID::PhotonMediumEF
const unsigned int PhotonMediumEF
Medium photon selection for online EF.
Definition: egammaPIDdefs.h:614
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Root::TPhotonIsEMSelector::m_w1_photonsConverted
std::vector< float > m_w1_photonsConverted
Cut on width in 3 strips for photons.
Definition: TPhotonIsEMSelector.h:313
AsgPhotonIsEMSelector::execute
virtual StatusCode execute(const EventContext &ctx, const xAOD::Egamma *eg, unsigned int &isEM) const
The basic isem.
Definition: AsgPhotonIsEMSelector.cxx:318
AsgPhotonIsEMSelector::m_EvtInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_EvtInfoKey
Definition: AsgPhotonIsEMSelector.h:109
Root::TPhotonIsEMSelector::m_w1_photonsNonConverted
std::vector< float > m_w1_photonsNonConverted
Cut on width in 3 strips for photons.
Definition: TPhotonIsEMSelector.h:270
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
Root::TPhotonIsEMSelector::getAcceptInfo
const asg::AcceptInfo & getAcceptInfo() const
accesss to the accept info object
Definition: TPhotonIsEMSelector.h:322
AsgPhotonIsEMSelector::m_isMuDep
bool m_isMuDep
Definition: AsgPhotonIsEMSelector.h:106
CaloCellTimeCorrFiller.filename
filename
Definition: CaloCellTimeCorrFiller.py:24
Root::TPhotonIsEMSelector::m_fracm_photonsConverted
std::vector< float > m_fracm_photonsConverted
Cut on fraction of energy outside core for photons.
Definition: TPhotonIsEMSelector.h:311
AsgConfigHelper::findMask
unsigned int findMask(const std::string &input, const std::map< std::string, unsigned int > &maskmap)
Definition: AsgEGammaConfigHelper.cxx:29
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
xAOD::EgammaParameters::e277
@ e277
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
Definition: EgammaEnums.h:80
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
Root::TPhotonIsEMSelector::m_e277_photonsConverted
std::vector< float > m_e277_photonsConverted
Cut in E277 for photons.
Definition: TPhotonIsEMSelector.h:284
xAOD::EgammaParameters::weta1
@ weta1
shower width using +/-3 strips around the one with the maximal energy deposit: w3 strips = sqrt{sum(E...
Definition: EgammaEnums.h:97
xAOD::EgammaParameters::Eratio
@ Eratio
(emaxs1-e2tsts1)/(emaxs1+e2tsts1)
Definition: EgammaEnums.h:158
AsgPhotonIsEMSelector::m_removeTRTConversion
bool m_removeTRTConversion
Definition: AsgPhotonIsEMSelector.h:103
AsgConfigHelper::HelperFloat
std::vector< float > HelperFloat(const std::string &input, TEnv &env)
Definition: AsgEGammaConfigHelper.cxx:110
xAOD::EgammaParameters::f3core
@ f3core
E3(3x3)/E fraction of the energy reconstructed in the third compartment of the electromagnetic calori...
Definition: EgammaEnums.h:65
xAOD::EgammaParameters::Rhad
@ Rhad
ethad/et
Definition: EgammaEnums.h:160
python.DataFormatRates.env
env
Definition: DataFormatRates.py:32
Root::TPhotonIsEMSelector::m_cutF3_photonsNonConverted
std::vector< float > m_cutF3_photonsNonConverted
cut values for cut on f3 or f3core
Definition: TPhotonIsEMSelector.h:272
xAOD::EgammaParameters::DeltaE
@ DeltaE
e2tsts1-emins1
Definition: EgammaEnums.h:164
SG::DataProxy
Definition: DataProxy.h:44
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
Root::TPhotonIsEMSelector::m_Rphi33_photonsConverted
std::vector< float > m_Rphi33_photonsConverted
ratio E233/E237
Definition: TPhotonIsEMSelector.h:290
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
Root::TPhotonIsEMSelector::fillAccept
asg::AcceptData fillAccept(unsigned int isEM) const
Definition: TPhotonIsEMSelector.cxx:272
xAOD::CaloCluster_v1::e
virtual double e() const
The total energy of the particle.
Definition: CaloCluster_v1.cxx:265
Root::TPhotonIsEMSelector::m_cutHadLeakage_photonsConverted
std::vector< float > m_cutHadLeakage_photonsConverted
Cut on hadronic leakage for photons.
Definition: TPhotonIsEMSelector.h:286
AsgPhotonIsEMSelector::getMu
float getMu(const EventContext &ctx) const
Definition: AsgPhotonIsEMSelector.cxx:464
xAOD::EgammaParameters::fracs1
@ fracs1
shower shape in the shower core : [E(+/-3)-E(+/-1)]/E(+/-1), where E(+/-n) is the energy in ± n strip...
Definition: EgammaEnums.h:111
fitman.k
k
Definition: fitman.py:528
read_hist_ntuple.f1
f1
Definition: read_hist_ntuple.py:4
Root::TPhotonIsEMSelector::m_DEmaxs1_photonsConverted
std::vector< float > m_DEmaxs1_photonsConverted
cut on (Emax1-Emax2)/(Emax1-Emax2) for photons
Definition: TPhotonIsEMSelector.h:307
xAOD::EgammaParameters::weta2
@ weta2
the lateral width is calculated with a window of 3x5 cells using the energy weighted sum over all cel...
Definition: EgammaEnums.h:103
AsgConfigHelper::findConfigFile
std::string findConfigFile(const std::string &input, const std::map< std::string, std::string > &configmap)
Definition: AsgEGammaConfigHelper.cxx:14