ATLAS Offline Software
Public Types | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
CP::IsolationSelectionTool Class Referenceabstract

#include <IsolationSelectionTool.h>

Inheritance diagram for CP::IsolationSelectionTool:
Collaboration diagram for CP::IsolationSelectionTool:

Public Types

enum  IsoWPType { Efficiency, Cut }
 Function finalizing the tool. More...
 

Public Member Functions

 IsolationSelectionTool (const std::string &name)
 Create a proper constructor for Athena. More...
 
virtual ~IsolationSelectionTool ()
 Destructor. More...
 
virtual StatusCode initialize () override
 Function initialising the tool. More...
 
virtual asg::AcceptData accept (const xAOD::Photon &x) const override
 Declare the interface that the class provides. More...
 
virtual asg::AcceptData accept (const xAOD::Electron &x) const override
 
virtual asg::AcceptData accept (const xAOD::Muon &x) const override
 
virtual asg::AcceptData accept (const strObj &x) const override
 
virtual asg::AcceptData accept (const xAOD::IParticle &x) const override
 
virtual const asg::AcceptInfogetPhotonAcceptInfo () const override
 
virtual const asg::AcceptInfogetElectronAcceptInfo () const override
 
virtual const asg::AcceptInfogetMuonAcceptInfo () const override
 
virtual const asg::AcceptInfogetObjAcceptInfo () const override
 
virtual const std::vector< std::unique_ptr< IsolationWP > > & getMuonWPs () const override
 
virtual const std::vector< std::unique_ptr< IsolationWP > > & getElectronWPs () const override
 
virtual const std::vector< std::unique_ptr< IsolationWP > > & getPhotonWPs () const override
 
virtual const std::vector< std::unique_ptr< IsolationWP > > & getObjWPs () const override
 
virtual StatusCode setIParticleCutsFrom (xAOD::Type::ObjectType ObjType) override
 
StatusCode addWP (const std::string &WP, xAOD::Type::ObjectType type)
 
StatusCode addWP (std::unique_ptr< IsolationWP > wp, xAOD::Type::ObjectType type)
 
StatusCode addMuonWP (const std::string &wpname)
 
StatusCode addPhotonWP (const std::string &wpname)
 
StatusCode addElectronWP (const std::string &wpname)
 
StatusCode addUserDefinedWP (const std::string &WPname, xAOD::Type::ObjectType ObjType, std::vector< std::pair< xAOD::Iso::IsolationType, std::string >> &cuts, std::string key="", IsoWPType type=Efficiency)
 
StatusCode addCutToWP (IsolationWP *wp, const std::string &key_in, const xAOD::Iso::IsolationType t, const std::string &expression, const xAOD::Iso::IsolationType isoCutRemap)
 
StatusCode addCutToWP (IsolationWP *wp, const std::string &key, const xAOD::Iso::IsolationType t, const std::string &expression)
 
virtual void print () const =0
 Print the state of the tool. More...
 
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

template<typename T >
void evaluateWP (const T &x, const std::vector< std::unique_ptr< IsolationWP >> &WP, asg::AcceptData &accept) const
 
void addDependencies (const std::string &container, const IsolationWP &wp)
 
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_muWPname {this, "MuonWP", "Undefined", "Working point for muon"}
 
Gaudi::Property< std::string > m_elWPname {this, "ElectronWP", "Undefined", "Working point for electron"}
 
Gaudi::Property< std::string > m_phWPname {this, "PhotonWP", "Undefined", "Working point for photon"}
 
Gaudi::Property< std::vector< std::string > > m_muWPvec {this, "MuonWPVec", {}, "Vector of working points for muon"}
 
Gaudi::Property< std::vector< std::string > > m_elWPvec {this, "ElectronWPVec", {}, "Vector of working points for electron"}
 
Gaudi::Property< std::vector< std::string > > m_phWPvec {this, "PhotonWPVec", {}, "Vector of working points for photon"}
 
Gaudi::Property< std::string > m_muWPKey {this, "MuonKey", "/Muons/DFCommonGoodMuon/mu_cutValues_", "path of the cut map for muon"}
 
Gaudi::Property< std::string > m_elWPKey
 
Gaudi::Property< std::string > m_phWPKey
 
Gaudi::Property< std::string > m_isoDecSuffix
 
Gaudi::Property< std::string > m_calibFileName {this, "CalibFileName", "", " The config to use"}
 input file More...
 
std::unique_ptr< TFile > m_calibFile {nullptr}
 
std::vector< std::unique_ptr< IsolationWP > > m_muWPs {}
 internal use More...
 
std::vector< std::unique_ptr< IsolationWP > > m_elWPs {}
 
std::vector< std::unique_ptr< IsolationWP > > m_phWPs {}
 
std::vector< std::unique_ptr< IsolationWP > > m_objWPs {}
 
asg::AcceptInfo m_photonAccept {"IsolationSelectionToolPhotonAcceptInfo"}
 AcceptInfo's. More...
 
asg::AcceptInfo m_electronAccept {"IsolationSelectionToolElectronAcceptInfo"}
 
asg::AcceptInfo m_muonAccept {"IsolationSelectionToolMuonAcceptInfo"}
 
asg::AcceptInfo m_objAccept {"IsolationSelectionToolObjAcceptInfo"}
 
std::vector< std::unique_ptr< IsolationWP > > * m_iparWPs {nullptr}
 Iparticle interface. More...
 
asg::AcceptInfom_iparAcceptInfo {nullptr}
 
Gaudi::Property< bool > m_doInterpM {this, "doCutInterpolationMuon", false, "flag to perform cut interpolation, muon"}
 
Gaudi::Property< bool > m_doInterpE {this, "doCutInterpolationElec", true, "flag to perform cut interpolation, electron"}
 
std::shared_ptr< Interp3Dm_Interp {nullptr}
 
SG::ReadDecorHandleKeyArray< xAOD::IParticleContainerm_isoDecors {this, "IsolationDecors", {}, "List of decorations needed by the tool"}
 
Gaudi::Property< std::string > m_inMuonContainer {this, "InMuonContainer", "" , "Name of the muon container parsed to the tool."}
 Properties to declare the data dependencies to the avalanche scheduler. More...
 
Gaudi::Property< std::string > m_inElecContainer {this, "InElectronContainer", "" , "Name of the electron container parsed to the tool."}
 
Gaudi::Property< std::string > m_inPhotContainer {this, "InPhotonContainer", "", "Name of the photon container parsed to the tool."}
 
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

Definition at line 25 of file IsolationSelectionTool.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

◆ IsoWPType

Function finalizing the tool.

Enumerator
Efficiency 
Cut 

Definition at line 39 of file IsolationSelectionTool.h.

39 { Efficiency, Cut };

Constructor & Destructor Documentation

◆ IsolationSelectionTool()

CP::IsolationSelectionTool::IsolationSelectionTool ( const std::string &  name)

Create a proper constructor for Athena.

Constructor for standalone usage, but please do use the interface and ToolHandle

Definition at line 20 of file IsolationSelectionTool.cxx.

20 : asg::AsgTool(name) {}

◆ ~IsolationSelectionTool()

CP::IsolationSelectionTool::~IsolationSelectionTool ( )
virtualdefault

Destructor.

Member Function Documentation

◆ accept() [1/5]

asg::AcceptData CP::IsolationSelectionTool::accept ( const strObj x) const
overridevirtual

Implements CP::IIsolationSelectionTool.

Definition at line 443 of file IsolationSelectionTool.cxx.

443  {
444  if (x.type == xAOD::Type::Electron) {
447  return accept;
448  } else if (x.type == xAOD::Type::Muon) {
451  return accept;
452  } else if (x.type == xAOD::Type::Photon) {
455  return accept;
456  } else {
459  return accept;
460  }
461  return asg::AcceptData(&m_objAccept);
462  }

◆ accept() [2/5]

asg::AcceptData CP::IsolationSelectionTool::accept ( const xAOD::Electron x) const
overridevirtual

Implements CP::IIsolationSelectionTool.

Definition at line 407 of file IsolationSelectionTool.cxx.

407  {
410  return accept;
411  }

◆ accept() [3/5]

asg::AcceptData CP::IsolationSelectionTool::accept ( const xAOD::IParticle x) const
overridevirtual

Implements CP::IIsolationSelectionTool.

Definition at line 419 of file IsolationSelectionTool.cxx.

419  {
420  if (x.type() == xAOD::Type::Electron) {
423  return accept;
424  } else if (x.type() == xAOD::Type::Muon) {
427  return accept;
428  } else if (x.type() == xAOD::Type::Photon) {
431  return accept;
432  }
433 
434  else if (m_iparAcceptInfo && m_iparWPs) {
437  return accept;
438  }
439  ATH_MSG_ERROR("Someting here makes really no sense");
440  return asg::AcceptData(&m_objAccept);
441  }

◆ accept() [4/5]

asg::AcceptData CP::IsolationSelectionTool::accept ( const xAOD::Muon x) const
overridevirtual

Implements CP::IIsolationSelectionTool.

Definition at line 413 of file IsolationSelectionTool.cxx.

413  {
416  return accept;
417  }

◆ accept() [5/5]

asg::AcceptData CP::IsolationSelectionTool::accept ( const xAOD::Photon x) const
overridevirtual

Declare the interface that the class provides.

Implements CP::IIsolationSelectionTool.

Definition at line 401 of file IsolationSelectionTool.cxx.

401  {
404  return accept;
405  }

◆ addCutToWP() [1/2]

StatusCode CP::IsolationSelectionTool::addCutToWP ( IsolationWP wp,
const std::string &  key,
const xAOD::Iso::IsolationType  t,
const std::string &  expression 
)

Definition at line 138 of file IsolationSelectionTool.cxx.

139  {
140  return addCutToWP(wp, key, t, expression, t);
141  }

◆ addCutToWP() [2/2]

StatusCode CP::IsolationSelectionTool::addCutToWP ( IsolationWP wp,
const std::string &  key_in,
const xAOD::Iso::IsolationType  t,
const std::string &  expression,
const xAOD::Iso::IsolationType  isoCutRemap 
)

Definition at line 111 of file IsolationSelectionTool.cxx.

112  {
113  if (!m_calibFile) {
114  ATH_MSG_ERROR("Calibration File (" << m_calibFileName << ") is missing.");
115  return StatusCode::FAILURE;
116  }
117 
118  std::string varname(xAOD::Iso::toCString(isoCutRemap));
119  std::string key = key_in + varname;
120 
121  TH3F* calibHisto{nullptr};
122  m_calibFile->GetObject(key.c_str(), calibHisto);
123  if (!calibHisto) {
124  ATH_MSG_FATAL(" Failed to load " << key << " from " << m_calibFile->GetName());
125  return StatusCode::FAILURE;
126  }
127  calibHisto->SetDirectory(nullptr);
128  std::unique_ptr<TH3F> histogram(calibHisto);
129  std::unique_ptr<IsolationConditionHist> ich =
130  std::make_unique<IsolationConditionHist>(varname, t, expression, std::move(histogram));
131  if ((m_doInterpM && key.find("Muon") != std::string::npos) || (m_doInterpE && key.find("Electron") != std::string::npos))
132  ich->setInterp(m_Interp);
133  wp->addCut(std::move(ich));
134 
135  return StatusCode::SUCCESS;
136  }

◆ addDependencies()

void CP::IsolationSelectionTool::addDependencies ( const std::string &  container,
const IsolationWP wp 
)
private

Definition at line 85 of file IsolationSelectionTool.cxx.

85  {
86  if (container.empty()) return;
87  for (const std::unique_ptr<IsolationCondition>& cond : wp.conditions()) {
88  for (unsigned int acc = 0; acc < cond->num_types(); ++acc) {
89  m_isoDecors.emplace_back(container + "." + SG::AuxTypeRegistry::instance().getName(cond->accessor(acc).auxid()));
90  }
91  }
92  }

◆ addElectronWP()

StatusCode CP::IsolationSelectionTool::addElectronWP ( const std::string &  wpname)

Definition at line 253 of file IsolationSelectionTool.cxx.

253  {
254  std::unique_ptr<IsolationWP> wp = std::make_unique<IsolationWP>(elWPname);
255 
256  if (elWPname == "HighPtCaloOnly") {
257  wp->addCut(std::make_unique<IsolationConditionFormula>("FCHighPtCaloOnly_calo", xAOD::Iso::topoetcone20,
258  "std::max(0.015*x,3.5E3)", false, m_isoDecSuffix)); // units are MeV!
259  } else if (elWPname == "Tight_VarRad") {
260  wp->addCut(std::make_unique<IsolationConditionFormula>(
262  wp->addCut(std::make_unique<IsolationConditionFormula>("ElecTight_calo", xAOD::Iso::topoetcone20, "0.06*x", false, m_isoDecSuffix));
263  } else if (elWPname == "Loose_VarRad") {
264  wp->addCut(std::make_unique<IsolationConditionFormula>(
266  wp->addCut(std::make_unique<IsolationConditionFormula>("ElecLoose_calo", xAOD::Iso::topoetcone20, "0.20*x", false, m_isoDecSuffix));
267  } else if (elWPname == "TightTrackOnly_VarRad") {
268  wp->addCut(std::make_unique<IsolationConditionFormula>(
270  } else if (elWPname == "TightTrackOnly_FixedRad") {
271  wp->addCut(std::make_unique<IsolationConditionFormula>(
272  "ElecTightTrackOnly_lowPt", xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt1000, "0.06*(x>50e3?1e9:x)", false, m_isoDecSuffix));
273  wp->addCut(std::make_unique<IsolationConditionFormula>(
274  "ElecTightTrackOnly_highPt", xAOD::Iso::ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt1000, "0.06*(x>50e3?x:1e9)", false, m_isoDecSuffix));
275  } else if (elWPname == "PflowTight_FixedRad") {
276  std::vector<xAOD::Iso::IsolationType> isoTypesHighPt{xAOD::Iso::ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt500,
278  std::vector<xAOD::Iso::IsolationType> isoTypesLowPt{xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt500,
280  wp->addCut(std::make_unique<IsolationConditionCombined>("ElecPFlowTightLowPt", isoTypesLowPt,
281  std::make_unique<TF2>("pflowTFunctionLowPt", "fabs(x)+0.4*(y>0?y:0)"),
282  "0.045*(x>50e3?1e9:x)", m_isoDecSuffix));
283  wp->addCut(std::make_unique<IsolationConditionCombined>("ElecPFlowTightHighPt", isoTypesHighPt,
284  std::make_unique<TF2>("pflowTFunctionHighPt", "fabs(x)+0.4*(y>0?y:0)"),
285  "0.045*(x>50e3?x:1e9)", m_isoDecSuffix));
286  } else if (elWPname == "PflowTight") {
287  std::vector<xAOD::Iso::IsolationType> isoTypes{xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt500,
289  wp->addCut(std::make_unique<IsolationConditionCombined>(
290  "ElecPFlowTight", isoTypes, std::make_unique<TF2>("pflowLFunction", "fabs(x)+0.4*(y>0?y:0)"), "0.045*x", m_isoDecSuffix));
291  } else if (elWPname == "PflowLoose_FixedRad") {
292  std::vector<xAOD::Iso::IsolationType> isoTypesHighPt{xAOD::Iso::ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt500,
294  std::vector<xAOD::Iso::IsolationType> isoTypesLowPt{xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt500,
296  wp->addCut(std::make_unique<IsolationConditionCombined>("ElecPFlowLooseLowPt", isoTypesLowPt,
297  std::make_unique<TF2>("pflowLFunctionLowPt", "fabs(x)+0.4*(y>0?y:0)"),
298  "0.16*(x>50e3?1e9:x)", m_isoDecSuffix));
299  wp->addCut(std::make_unique<IsolationConditionCombined>("ElecPFlowLooseHighPt", isoTypesHighPt,
300  std::make_unique<TF2>("pflowLFunctionHighPt", "fabs(x)+0.4*(y>0?y:0)"),
301  "0.16*(x>50e3?x:1e9)", m_isoDecSuffix));
302  } else if (elWPname == "PflowLoose") {
303  std::vector<xAOD::Iso::IsolationType> isoTypes{xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt500,
305  wp->addCut(std::make_unique<IsolationConditionCombined>(
306  "ElecPFlowLoose", isoTypes, std::make_unique<TF2>("pflowLFunction", "fabs(x)+0.4*(y>0?y:0)"), "0.16*x", m_isoDecSuffix));
307  } else {
308  ATH_MSG_ERROR("Unknown electron isolation WP: " << elWPname);
309  return StatusCode::FAILURE;
310  }
311 
312  m_electronAccept.addCut(wp->name(), wp->name());
313 #ifndef XAOD_STANDALONE
315 #endif
316  m_elWPs.push_back(std::move(wp));
317 
318  // Return gracefully:
319  return StatusCode::SUCCESS;
320  }

◆ addMuonWP()

StatusCode CP::IsolationSelectionTool::addMuonWP ( const std::string &  wpname)

Definition at line 143 of file IsolationSelectionTool.cxx.

143  {
144  std::unique_ptr<IsolationWP> wp = std::make_unique<IsolationWP>(muWPname);
145  if (muWPname == "HighPtTrackOnly") {
146  wp->addCut(std::make_unique<IsolationConditionFormula>(
147  "ptcone20_Tight_1p25", xAOD::Iso::ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000, "1.25E03", false, m_isoDecSuffix)); // units are MeV!
148  } else if (muWPname == "TightTrackOnly_FixedRad") {
149  wp->addCut(std::make_unique<IsolationConditionFormula>(
150  "MuonFixedCutHighMuTrackOnly_lowPt", xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000, "0.06*(x>50e3?1e9:x)", false, m_isoDecSuffix));
151  wp->addCut(std::make_unique<IsolationConditionFormula>(
152  "MuonFixedCutHighMuTrackOnly_highPt", xAOD::Iso::ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000, "0.06*(x>50e3?x:1e9)", false, m_isoDecSuffix));
153  } else if (muWPname == "Tight_FixedRad") {
154  wp->addCut(std::make_unique<IsolationConditionFormula>(
155  "MuonFixedCutHighMuTight_track_lowPt", xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000, "0.04*(x>50e3?1e9:x)", false, m_isoDecSuffix));
156  wp->addCut(std::make_unique<IsolationConditionFormula>(
157  "MuonFixedCutHighMuTight_track_highPt", xAOD::Iso::ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000, "0.04*(x>50e3?x:1e9)", false, m_isoDecSuffix));
158  wp->addCut(std::make_unique<IsolationConditionFormula>("MuonFixedCutHighMuTight_calo", xAOD::Iso::topoetcone20, "0.15*x", false, m_isoDecSuffix));
159  } else if (muWPname == "Loose_FixedRad") {
160  wp->addCut(std::make_unique<IsolationConditionFormula>(
161  "MuonFixedCutHighMuLoose_track_lowPt", xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000, "0.15*(x>50e3?1e9:x)", false, m_isoDecSuffix));
162  wp->addCut(std::make_unique<IsolationConditionFormula>(
163  "MuonFixedCutHighMuLoose_track_highPt", xAOD::Iso::ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000, "0.15*(x>50e3?x:1e9)", false, m_isoDecSuffix));
164  wp->addCut(std::make_unique<IsolationConditionFormula>("MuonFixedCutHighMuLoose_calo", xAOD::Iso::topoetcone20, "0.30*x", false, m_isoDecSuffix));
165  } else if (muWPname == "TightTrackOnly_VarRad") {
166  wp->addCut(std::make_unique<IsolationConditionFormula>("MuonFixedCutHighMuTrackOnly",
168  } else if (muWPname == "Tight_VarRad") {
169  wp->addCut(std::make_unique<IsolationConditionFormula>("MuonFixedCutHighMuTight_track",
171  wp->addCut(std::make_unique<IsolationConditionFormula>("MuonFixedCutHighMuTight_calo", xAOD::Iso::topoetcone20, "0.15*x", false, m_isoDecSuffix));
172  } else if (muWPname == "Loose_VarRad") {
173  wp->addCut(std::make_unique<IsolationConditionFormula>("MuonFixedCutHighMuLoose_track",
175  wp->addCut(std::make_unique<IsolationConditionFormula>("MuonFixedCutHighMuLoose_calo", xAOD::Iso::topoetcone20, "0.30*x", false, m_isoDecSuffix));
176  } else if (muWPname == "PflowTight_FixedRad") {
177  std::vector<xAOD::Iso::IsolationType> isoTypesHighPt{xAOD::Iso::ptcone20_Nonprompt_All_MaxWeightTTVA_pt500,
179  std::vector<xAOD::Iso::IsolationType> isoTypesLowPt{xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500,
181  wp->addCut(std::make_unique<IsolationConditionCombined>("MuonPFlowTightLowPt", isoTypesLowPt,
182  std::make_unique<TF2>("pflowTFunctionLowPt", "fabs(x)+0.4*(y>0?y:0)"),
183  "0.045*(x>50e3?1e9:x)", m_isoDecSuffix));
184  wp->addCut(std::make_unique<IsolationConditionCombined>("MuonPFlowTightHighPt", isoTypesHighPt,
185  std::make_unique<TF2>("pflowTFunctionHighPt", "fabs(x)+0.4*(y>0?y:0)"),
186  "0.045*(x>50e3?x:1e9)", m_isoDecSuffix));
187  } else if (muWPname == "PflowTight_VarRad") {
188  std::vector<xAOD::Iso::IsolationType> isoTypes{xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500,
190  wp->addCut(std::make_unique<IsolationConditionCombined>(
191  "MuonPFlowTight", isoTypes, std::make_unique<TF2>("pflowTFunction", "fabs(x)+0.4*(y>0?y:0)"), "0.045*x", m_isoDecSuffix));
192  } else if (muWPname == "PflowLoose_FixedRad") {
193  std::vector<xAOD::Iso::IsolationType> isoTypesHighPt{xAOD::Iso::ptcone20_Nonprompt_All_MaxWeightTTVA_pt500,
195  std::vector<xAOD::Iso::IsolationType> isoTypesLowPt{xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500,
197  wp->addCut(std::make_unique<IsolationConditionCombined>("MuonPFlowLooseLowPt", isoTypesLowPt,
198  std::make_unique<TF2>("pflowLFunctionLowPt", "fabs(x)+0.4*(y>0?y:0)"),
199  "0.16*(x>50e3?1e9:x)", m_isoDecSuffix));
200  wp->addCut(std::make_unique<IsolationConditionCombined>("MuonPFlowLooseHighPt", isoTypesHighPt,
201  std::make_unique<TF2>("pflowLFunctionHighPt", "fabs(x)+0.4*(y>0?y:0)"),
202  "0.16*(x>50e3?x:1e9)", m_isoDecSuffix));
203  } else if (muWPname == "PflowLoose_VarRad") {
204  std::vector<xAOD::Iso::IsolationType> isoTypes{xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500,
206  wp->addCut(std::make_unique<IsolationConditionCombined>(
207  "MuonPFlowLoose", isoTypes, std::make_unique<TF2>("pflowTFunction", "fabs(x)+0.4*(y>0?y:0)"), "0.16*x", m_isoDecSuffix));
208  } else {
209  ATH_MSG_ERROR("Unknown muon isolation WP: " << muWPname);
210  return StatusCode::FAILURE;
211  }
212  m_muonAccept.addCut(wp->name(), wp->name());
213 #ifndef XAOD_STANDALONE
215 #endif
216  m_muWPs.push_back(std::move(wp));
217  return StatusCode::SUCCESS;
218  }

◆ addPhotonWP()

StatusCode CP::IsolationSelectionTool::addPhotonWP ( const std::string &  wpname)

Definition at line 220 of file IsolationSelectionTool.cxx.

220  {
221  std::unique_ptr<IsolationWP> wp = std::make_unique<IsolationWP>(phWPname);
222  if (phWPname == "TightCaloOnly") {
223  wp->addCut(std::make_unique<IsolationConditionFormula>("PhFixedCut_calo40", xAOD::Iso::topoetcone40, "0.022*x+2450", false, m_isoDecSuffix));
224  } else if (phWPname == "FixedCutTight") {
225  wp->addCut(std::make_unique<IsolationConditionFormula>("PhFixedCut_calo40", xAOD::Iso::topoetcone40, "0.022*x+2450", false, m_isoDecSuffix));
226  wp->addCut(std::make_unique<IsolationConditionFormula>("PhFixedCut_track20", xAOD::Iso::ptcone20, "0.05*x", false, m_isoDecSuffix));
227  } else if (phWPname == "FixedCutLoose") {
228  wp->addCut(std::make_unique<IsolationConditionFormula>("PhFixedCut_calo20", xAOD::Iso::topoetcone20, "0.065*x", false, m_isoDecSuffix));
229  wp->addCut(std::make_unique<IsolationConditionFormula>("PhFixedCut_track20", xAOD::Iso::ptcone20, "0.05*x", false, m_isoDecSuffix));
230  } else if (phWPname == "Tight") {
231  wp->addCut(std::make_unique<IsolationConditionFormula>("PhFixedCut_calo40", xAOD::Iso::topoetcone40, "0.022*x+2450", false, m_isoDecSuffix));
232  wp->addCut(std::make_unique<IsolationConditionFormula>("PhFixedCut_Tighttrack20",
234  } else if (phWPname == "Loose") {
235  wp->addCut(std::make_unique<IsolationConditionFormula>("PhFixedCut_calo20", xAOD::Iso::topoetcone20, "0.065*x", false, m_isoDecSuffix));
236  wp->addCut(std::make_unique<IsolationConditionFormula>("PhFixedCut_Tighttrack20",
238  } else {
239  ATH_MSG_ERROR("Unknown photon isolation WP: " << phWPname);
240  return StatusCode::FAILURE;
241  }
242 
243  m_photonAccept.addCut(wp->name(), wp->name());
244 #ifndef XAOD_STANDALONE
246 #endif
247  m_phWPs.push_back(std::move(wp));
248 
249  // Return gracefully:
250  return StatusCode::SUCCESS;
251  }

◆ addUserDefinedWP()

StatusCode CP::IsolationSelectionTool::addUserDefinedWP ( const std::string &  WPname,
xAOD::Type::ObjectType  ObjType,
std::vector< std::pair< xAOD::Iso::IsolationType, std::string >> &  cuts,
std::string  key = "",
IsoWPType  type = Efficiency 
)

Definition at line 322 of file IsolationSelectionTool.cxx.

324  {
325  std::vector<std::unique_ptr<IsolationWP>>* wps(nullptr);
326  asg::AcceptInfo* ac = nullptr;
327  if (ObjType == xAOD::Type::Electron) {
328  if (key == "") key = m_elWPKey;
329  wps = &m_elWPs;
330  ac = &m_electronAccept;
331  } else if (ObjType == xAOD::Type::Muon) {
332  if (key == "") key = m_muWPKey;
333  wps = &m_muWPs;
334  ac = &m_muonAccept;
335  } else if (ObjType == xAOD::Type::Photon) {
336  if (key == "") key = m_phWPKey;
337  wps = &m_phWPs;
338  ac = &m_photonAccept;
339  } else if (ObjType == xAOD::Type::Other) {
340  if (key == "") return StatusCode::FAILURE;
341  wps = &m_objWPs;
342  ac = &m_objAccept;
343  } else {
344  return StatusCode::FAILURE;
345  }
346 
347  std::unique_ptr<IsolationWP> wp = std::make_unique<IsolationWP>(WPname);
348  if (type == Efficiency) {
349  for (auto& c : cuts) ATH_CHECK(addCutToWP(wp.get(), key, c.first, c.second));
350  } else if (type == Cut) {
351  for (auto& c : cuts) wp->addCut(std::make_unique<IsolationConditionFormula>(xAOD::Iso::toCString(c.first), c.first, c.second));
352  } else {
353  ATH_MSG_ERROR("Unknown isolation WP type -- should not happen.");
354  return StatusCode::FAILURE;
355  }
356 
357  ac->addCut(wp->name(), wp->name());
358  wps->push_back(std::move(wp));
359  return StatusCode::SUCCESS;
360  }

◆ addWP() [1/2]

StatusCode CP::IsolationSelectionTool::addWP ( const std::string &  WP,
xAOD::Type::ObjectType  type 
)

Definition at line 362 of file IsolationSelectionTool.cxx.

362  {
363  if (ObjType == xAOD::Type::Electron) {
364  return addElectronWP(WP);
365  } else if (ObjType == xAOD::Type::Muon) {
366  return addMuonWP(WP);
367  } else if (ObjType == xAOD::Type::Photon) {
368  return addPhotonWP(WP);
369  }
370 
371  return StatusCode::FAILURE;
372  }

◆ addWP() [2/2]

StatusCode CP::IsolationSelectionTool::addWP ( std::unique_ptr< IsolationWP wp,
xAOD::Type::ObjectType  type 
)

Definition at line 373 of file IsolationSelectionTool.cxx.

373  {
374  if (ObjType == xAOD::Type::Electron) {
375  m_electronAccept.addCut(wp->name(), wp->name());
376  m_elWPs.push_back(std::move(wp));
377  } else if (ObjType == xAOD::Type::Muon) {
378  m_muonAccept.addCut(wp->name(), wp->name());
379  m_muWPs.push_back(std::move(wp));
380 
381  } else if (ObjType == xAOD::Type::Photon) {
382  m_photonAccept.addCut(wp->name(), wp->name());
383  m_phWPs.push_back(std::move(wp));
384 
385  } else if (ObjType == xAOD::Type::Other) {
386  m_objAccept.addCut(wp->name(), wp->name());
387  m_objWPs.push_back(std::move(wp));
388  } else {
389  return StatusCode::FAILURE;
390  }
391 
392  return StatusCode::SUCCESS;
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  }

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

◆ evaluateWP()

template<typename T >
void CP::IsolationSelectionTool::evaluateWP ( const T &  x,
const std::vector< std::unique_ptr< IsolationWP >> &  WP,
asg::AcceptData accept 
) const
private

Definition at line 395 of file IsolationSelectionTool.cxx.

395  {
396  accept.clear();
397  for (const std::unique_ptr<IsolationWP>& i : WP) {
398  if (i->accept(x)) accept.setCutResult(i->name(), true);
399  }
400  }

◆ 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

◆ getElectronAcceptInfo()

const asg::AcceptInfo & CP::IsolationSelectionTool::getElectronAcceptInfo ( ) const
overridevirtual

Implements CP::IIsolationSelectionTool.

Definition at line 466 of file IsolationSelectionTool.cxx.

466 { return m_electronAccept; }

◆ getElectronWPs()

const std::vector< std::unique_ptr< IsolationWP > > & CP::IsolationSelectionTool::getElectronWPs ( ) const
overridevirtual

Implements CP::IIsolationSelectionTool.

Definition at line 22 of file IsolationSelectionTool.cxx.

22 { return m_elWPs; }

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

◆ getMuonAcceptInfo()

const asg::AcceptInfo & CP::IsolationSelectionTool::getMuonAcceptInfo ( ) const
overridevirtual

Implements CP::IIsolationSelectionTool.

Definition at line 468 of file IsolationSelectionTool.cxx.

468 { return m_muonAccept; }

◆ getMuonWPs()

const std::vector< std::unique_ptr< IsolationWP > > & CP::IsolationSelectionTool::getMuonWPs ( ) const
overridevirtual

Implements CP::IIsolationSelectionTool.

Definition at line 21 of file IsolationSelectionTool.cxx.

21 { return m_muWPs; }

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

◆ getObjAcceptInfo()

const asg::AcceptInfo & CP::IsolationSelectionTool::getObjAcceptInfo ( ) const
overridevirtual

Implements CP::IIsolationSelectionTool.

Definition at line 469 of file IsolationSelectionTool.cxx.

469 { return m_objAccept; }

◆ getObjWPs()

const std::vector< std::unique_ptr< IsolationWP > > & CP::IsolationSelectionTool::getObjWPs ( ) const
overridevirtual

Implements CP::IIsolationSelectionTool.

Definition at line 24 of file IsolationSelectionTool.cxx.

24 { return m_objWPs; }

◆ getPhotonAcceptInfo()

const asg::AcceptInfo & CP::IsolationSelectionTool::getPhotonAcceptInfo ( ) const
overridevirtual

Implements CP::IIsolationSelectionTool.

Definition at line 464 of file IsolationSelectionTool.cxx.

464 { return m_photonAccept; }

◆ getPhotonWPs()

const std::vector< std::unique_ptr< IsolationWP > > & CP::IsolationSelectionTool::getPhotonWPs ( ) const
overridevirtual

Implements CP::IIsolationSelectionTool.

Definition at line 23 of file IsolationSelectionTool.cxx.

23 { return m_phWPs; }

◆ getProperty()

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

Get one of the tool's properties.

◆ initialize()

StatusCode CP::IsolationSelectionTool::initialize ( )
overridevirtual

Function initialising the tool.

Greet the user:

setup working points

Return gracefully:

Reimplemented from asg::AsgTool.

Definition at line 27 of file IsolationSelectionTool.cxx.

27  {
29  ATH_MSG_INFO("Initialising...");
30 
31  ATH_MSG_INFO("IsoDecSuffix: " << m_isoDecSuffix);
32 
33  if (!m_calibFileName.empty()) {
35 
36  ATH_MSG_INFO("Reading input file " << m_calibFileName << " from " << filename);
37  m_calibFile = std::make_unique<TFile>(filename.c_str(), "READ");
38 
39  TObjString* versionInfo{nullptr};
40  m_calibFile->GetObject("VersionInfo", versionInfo);
41  if (versionInfo)
42  ATH_MSG_INFO("VersionInfo:" << versionInfo->String());
43  else
44  ATH_MSG_WARNING("VersionInfo of input file (" << filename << ") is missing.");
45  }
46 
47  if (m_doInterpE || m_doInterpM) {
48  // special setting for electrons
49  // do not apply interpolation in crack vicinity for topoetcone
50  std::vector<std::pair<double, double>> rangeEtaNoInt;
51  std::pair<double, double> apair(1.26, 1.665);
52  rangeEtaNoInt.push_back(apair);
53  // do not apply interpolation between Z defined and J/Psi defined cuts (pT < > 15 GeV/c) for both calo and track iso
54  std::vector<std::pair<double, double>> rangePtNoInt;
55  apair.first = 12.5;
56  apair.second = 17.5;
57  rangePtNoInt.push_back(apair);
58  std::map<std::string, Interp3D::VetoInterp> amap;
60  veto.xRange = rangePtNoInt;
61  veto.yRange = std::vector<std::pair<double, double>>();
62  amap.insert(std::make_pair(std::string("el_cutValues_ptvarcone20"), veto));
63  veto.yRange = rangeEtaNoInt;
64  amap.insert(std::make_pair(std::string("el_cutValues_topoetcone20"), veto));
65  m_Interp = std::make_unique<Interp3D>(amap);
66  m_Interp->debug(false);
67  }
68 
70  if (m_phWPname != "Undefined") ATH_CHECK(addPhotonWP(m_phWPname));
71  if (m_elWPname != "Undefined") ATH_CHECK(addElectronWP(m_elWPname));
72  if (m_muWPname != "Undefined") ATH_CHECK(addMuonWP(m_muWPname));
73  for (const std::string& c : m_muWPvec) ATH_CHECK(addMuonWP(c));
74  for (const std::string& c : m_elWPvec) ATH_CHECK(addElectronWP(c));
75  for (const std::string& c : m_phWPvec) ATH_CHECK(addPhotonWP(c));
76 
77  m_calibFile.reset();
78  #ifndef XAOD_STANDALONE
79  ATH_CHECK(m_isoDecors.initialize());
80  #endif
81  return StatusCode::SUCCESS;
83  }

◆ 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() [1/2]

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

◆ print() [2/2]

virtual void asg::IAsgTool::print ( ) const
pure 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  }

◆ setIParticleCutsFrom()

StatusCode CP::IsolationSelectionTool::setIParticleCutsFrom ( xAOD::Type::ObjectType  ObjType)
overridevirtual

Implements CP::IIsolationSelectionTool.

Definition at line 94 of file IsolationSelectionTool.cxx.

94  {
95  if (ObjType == xAOD::Type::Electron) {
97  m_iparWPs = &m_elWPs;
98  } else if (ObjType == xAOD::Type::Muon) {
100  m_iparWPs = &m_muWPs;
101  } else if (ObjType == xAOD::Type::Photon) {
103  m_iparWPs = &m_phWPs;
104  } else {
105  return StatusCode::FAILURE;
106  }
107 
108  return StatusCode::SUCCESS;
109  }

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

std::unique_ptr<TFile> CP::IsolationSelectionTool::m_calibFile {nullptr}
private

Definition at line 94 of file IsolationSelectionTool.h.

◆ m_calibFileName

Gaudi::Property<std::string> CP::IsolationSelectionTool::m_calibFileName {this, "CalibFileName", "", " The config to use"}
private

input file

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

Gaudi::Property<bool> CP::IsolationSelectionTool::m_doInterpE {this, "doCutInterpolationElec", true, "flag to perform cut interpolation, electron"}
private

Definition at line 114 of file IsolationSelectionTool.h.

◆ m_doInterpM

Gaudi::Property<bool> CP::IsolationSelectionTool::m_doInterpM {this, "doCutInterpolationMuon", false, "flag to perform cut interpolation, muon"}
private

Definition at line 113 of file IsolationSelectionTool.h.

◆ m_electronAccept

asg::AcceptInfo CP::IsolationSelectionTool::m_electronAccept {"IsolationSelectionToolElectronAcceptInfo"}
private

Definition at line 104 of file IsolationSelectionTool.h.

◆ m_elWPKey

Gaudi::Property<std::string> CP::IsolationSelectionTool::m_elWPKey
private
Initial value:
{this, "ElectronKey", "/ElectronPhoton/LHTight/el_cutValues_",
"path of the cut map for electron"}

Definition at line 84 of file IsolationSelectionTool.h.

◆ m_elWPname

Gaudi::Property<std::string> CP::IsolationSelectionTool::m_elWPname {this, "ElectronWP", "Undefined", "Working point for electron"}
private

Definition at line 77 of file IsolationSelectionTool.h.

◆ m_elWPs

std::vector<std::unique_ptr<IsolationWP> > CP::IsolationSelectionTool::m_elWPs {}
private

Definition at line 98 of file IsolationSelectionTool.h.

◆ m_elWPvec

Gaudi::Property<std::vector<std::string> > CP::IsolationSelectionTool::m_elWPvec {this, "ElectronWPVec", {}, "Vector of working points for electron"}
private

Definition at line 80 of file IsolationSelectionTool.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_inElecContainer

Gaudi::Property<std::string> CP::IsolationSelectionTool::m_inElecContainer {this, "InElectronContainer", "" , "Name of the electron container parsed to the tool."}
private

Definition at line 122 of file IsolationSelectionTool.h.

◆ m_inMuonContainer

Gaudi::Property<std::string> CP::IsolationSelectionTool::m_inMuonContainer {this, "InMuonContainer", "" , "Name of the muon container parsed to the tool."}
private

Properties to declare the data dependencies to the avalanche scheduler.

Definition at line 121 of file IsolationSelectionTool.h.

◆ m_inPhotContainer

Gaudi::Property<std::string> CP::IsolationSelectionTool::m_inPhotContainer {this, "InPhotonContainer", "", "Name of the photon container parsed to the tool."}
private

Definition at line 123 of file IsolationSelectionTool.h.

◆ m_Interp

std::shared_ptr<Interp3D> CP::IsolationSelectionTool::m_Interp {nullptr}
private

Definition at line 115 of file IsolationSelectionTool.h.

◆ m_iparAcceptInfo

asg::AcceptInfo* CP::IsolationSelectionTool::m_iparAcceptInfo {nullptr}
private

Definition at line 110 of file IsolationSelectionTool.h.

◆ m_iparWPs

std::vector<std::unique_ptr<IsolationWP> >* CP::IsolationSelectionTool::m_iparWPs {nullptr}
private

Iparticle interface.

Definition at line 109 of file IsolationSelectionTool.h.

◆ m_isoDecors

SG::ReadDecorHandleKeyArray<xAOD::IParticleContainer> CP::IsolationSelectionTool::m_isoDecors {this, "IsolationDecors", {}, "List of decorations needed by the tool"}
private

Definition at line 118 of file IsolationSelectionTool.h.

◆ m_isoDecSuffix

Gaudi::Property<std::string> CP::IsolationSelectionTool::m_isoDecSuffix
private
Initial value:
{
this, "IsoDecSuffix", "", "Suffix added to output isolation variables to allow to NOT overwrite existing values"}

Definition at line 88 of file IsolationSelectionTool.h.

◆ m_muonAccept

asg::AcceptInfo CP::IsolationSelectionTool::m_muonAccept {"IsolationSelectionToolMuonAcceptInfo"}
private

Definition at line 105 of file IsolationSelectionTool.h.

◆ m_muWPKey

Gaudi::Property<std::string> CP::IsolationSelectionTool::m_muWPKey {this, "MuonKey", "/Muons/DFCommonGoodMuon/mu_cutValues_", "path of the cut map for muon"}
private

Definition at line 83 of file IsolationSelectionTool.h.

◆ m_muWPname

Gaudi::Property<std::string> CP::IsolationSelectionTool::m_muWPname {this, "MuonWP", "Undefined", "Working point for muon"}
private

Definition at line 76 of file IsolationSelectionTool.h.

◆ m_muWPs

std::vector<std::unique_ptr<IsolationWP> > CP::IsolationSelectionTool::m_muWPs {}
private

internal use

Definition at line 97 of file IsolationSelectionTool.h.

◆ m_muWPvec

Gaudi::Property<std::vector<std::string> > CP::IsolationSelectionTool::m_muWPvec {this, "MuonWPVec", {}, "Vector of working points for muon"}
private

Definition at line 79 of file IsolationSelectionTool.h.

◆ m_objAccept

asg::AcceptInfo CP::IsolationSelectionTool::m_objAccept {"IsolationSelectionToolObjAcceptInfo"}
private

Definition at line 106 of file IsolationSelectionTool.h.

◆ m_objWPs

std::vector<std::unique_ptr<IsolationWP> > CP::IsolationSelectionTool::m_objWPs {}
private

Definition at line 100 of file IsolationSelectionTool.h.

◆ m_photonAccept

asg::AcceptInfo CP::IsolationSelectionTool::m_photonAccept {"IsolationSelectionToolPhotonAcceptInfo"}
private

AcceptInfo's.

Definition at line 103 of file IsolationSelectionTool.h.

◆ m_phWPKey

Gaudi::Property<std::string> CP::IsolationSelectionTool::m_phWPKey
private
Initial value:
{this, "PhotonKey", "/ElectronPhoton/LHTight/el_cutValues_",
"path of the cut map for photon"}

Definition at line 86 of file IsolationSelectionTool.h.

◆ m_phWPname

Gaudi::Property<std::string> CP::IsolationSelectionTool::m_phWPname {this, "PhotonWP", "Undefined", "Working point for photon"}
private

Definition at line 78 of file IsolationSelectionTool.h.

◆ m_phWPs

std::vector<std::unique_ptr<IsolationWP> > CP::IsolationSelectionTool::m_phWPs {}
private

Definition at line 99 of file IsolationSelectionTool.h.

◆ m_phWPvec

Gaudi::Property<std::vector<std::string> > CP::IsolationSelectionTool::m_phWPvec {this, "PhotonWPVec", {}, "Vector of working points for photon"}
private

Definition at line 81 of file IsolationSelectionTool.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:
CP::IsolationSelectionTool::m_elWPKey
Gaudi::Property< std::string > m_elWPKey
Definition: IsolationSelectionTool.h:84
xAOD::Iso::ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt500
@ ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt500
Ptcone http://arxiv.org/abs/1007.2221 for high mu.
Definition: IsolationType.h:109
CP::IsolationSelectionTool::m_isoDecors
SG::ReadDecorHandleKeyArray< xAOD::IParticleContainer > m_isoDecors
Definition: IsolationSelectionTool.h:118
CP::IsolationSelectionTool::m_photonAccept
asg::AcceptInfo m_photonAccept
AcceptInfo's.
Definition: IsolationSelectionTool.h:103
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
xAOD::Iso::topoetcone20
@ topoetcone20
Topo-cluster ET-sum.
Definition: IsolationType.h:48
xAOD::Electron
Electron_v1 Electron
Definition of the current "egamma version".
Definition: Event/xAOD/xAODEgamma/xAODEgamma/Electron.h:17
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
xAOD::Iso::neflowisol20
@ neflowisol20
Neutral eflow isolation.
Definition: IsolationType.h:64
asg::AsgTool::getName
const std::string & getName(const void *ptr) const
Get the name of an object that is / should be in the event store.
Definition: AsgTool.cxx:106
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
SG::AuxTypeRegistry::instance
static AuxTypeRegistry & instance()
Return the singleton registry instance.
Definition: AuxTypeRegistry.cxx:49
CP::IsolationSelectionTool::evaluateWP
void evaluateWP(const T &x, const std::vector< std::unique_ptr< IsolationWP >> &WP, asg::AcceptData &accept) const
Definition: IsolationSelectionTool.cxx:395
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
IsoCloseByCorrectionTest.WP
WP
Definition: IsoCloseByCorrectionTest.py:56
CP::IsolationSelectionTool::m_electronAccept
asg::AcceptInfo m_electronAccept
Definition: IsolationSelectionTool.h:104
xAOD::Iso::ptcone20
@ ptcone20
Track isolation.
Definition: IsolationType.h:40
xAOD::Iso::ptcone20_Nonprompt_All_MaxWeightTTVA_pt500
@ ptcone20_Nonprompt_All_MaxWeightTTVA_pt500
Ptcone http://arxiv.org/abs/1007.2221 for high mu.
Definition: IsolationType.h:85
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
CP::IsolationSelectionTool::addCutToWP
StatusCode addCutToWP(IsolationWP *wp, const std::string &key_in, const xAOD::Iso::IsolationType t, const std::string &expression, const xAOD::Iso::IsolationType isoCutRemap)
Definition: IsolationSelectionTool.cxx:111
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
x
#define x
CP::IsolationSelectionTool::m_inMuonContainer
Gaudi::Property< std::string > m_inMuonContainer
Properties to declare the data dependencies to the avalanche scheduler.
Definition: IsolationSelectionTool.h:121
CP::IsolationSelectionTool::m_objWPs
std::vector< std::unique_ptr< IsolationWP > > m_objWPs
Definition: IsolationSelectionTool.h:100
Cut
Definition: SUSYToolsAlg.cxx:62
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
CP::IsolationSelectionTool::m_inElecContainer
Gaudi::Property< std::string > m_inElecContainer
Definition: IsolationSelectionTool.h:122
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
CP::IsolationSelectionTool::m_elWPname
Gaudi::Property< std::string > m_elWPname
Definition: IsolationSelectionTool.h:77
CP::IsolationSelectionTool::Efficiency
@ Efficiency
Definition: IsolationSelectionTool.h:39
HION12.expression
string expression
Definition: HION12.py:56
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
CP::IsolationSelectionTool::m_calibFileName
Gaudi::Property< std::string > m_calibFileName
input file
Definition: IsolationSelectionTool.h:93
asg::AcceptInfo
Definition: AcceptInfo.h:28
CP::IsolationSelectionTool::m_elWPvec
Gaudi::Property< std::vector< std::string > > m_elWPvec
Definition: IsolationSelectionTool.h:80
CP::IsolationSelectionTool::m_phWPs
std::vector< std::unique_ptr< IsolationWP > > m_phWPs
Definition: IsolationSelectionTool.h:99
lumiFormat.i
int i
Definition: lumiFormat.py:92
CP::IsolationSelectionTool::addMuonWP
StatusCode addMuonWP(const std::string &wpname)
Definition: IsolationSelectionTool.cxx:143
CP::IsolationSelectionTool::m_isoDecSuffix
Gaudi::Property< std::string > m_isoDecSuffix
Definition: IsolationSelectionTool.h:88
CP::IsolationSelectionTool::m_muWPs
std::vector< std::unique_ptr< IsolationWP > > m_muWPs
internal use
Definition: IsolationSelectionTool.h:97
plotBeamSpotVert.cuts
string cuts
Definition: plotBeamSpotVert.py:93
xAOD::Iso::ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt1000
@ ptcone20_Nonprompt_All_MaxWeightTTVALooseCone_pt1000
Definition: IsolationType.h:112
CP::IsolationSelectionTool::m_inPhotContainer
Gaudi::Property< std::string > m_inPhotContainer
Definition: IsolationSelectionTool.h:123
CP::IsolationSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::Photon &x) const override
Declare the interface that the class provides.
Definition: IsolationSelectionTool.cxx:401
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16
python.xAODType.dummy
dummy
Definition: xAODType.py:4
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
CP::IsolationSelectionTool::addPhotonWP
StatusCode addPhotonWP(const std::string &wpname)
Definition: IsolationSelectionTool.cxx:220
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
PlotSFuncertainty.wp
wp
Definition: PlotSFuncertainty.py:112
xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt1000
@ ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt1000
Definition: IsolationType.h:101
CP::IsolationSelectionTool::m_objAccept
asg::AcceptInfo m_objAccept
Definition: IsolationSelectionTool.h:106
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
CP::IsolationSelectionTool::m_phWPKey
Gaudi::Property< std::string > m_phWPKey
Definition: IsolationSelectionTool.h:86
CP::IsolationSelectionTool::m_phWPname
Gaudi::Property< std::string > m_phWPname
Definition: IsolationSelectionTool.h:78
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
CP::IsolationSelectionTool::m_muWPname
Gaudi::Property< std::string > m_muWPname
Definition: IsolationSelectionTool.h:76
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt500
@ ptvarcone30_Nonprompt_All_MaxWeightTTVALooseCone_pt500
Definition: IsolationType.h:98
CP::IsolationSelectionTool::m_doInterpM
Gaudi::Property< bool > m_doInterpM
Definition: IsolationSelectionTool.h:113
TH3F
Definition: rootspy.cxx:495
CP::IsolationSelectionTool::m_calibFile
std::unique_ptr< TFile > m_calibFile
Definition: IsolationSelectionTool.h:94
CP::IsolationSelectionTool::m_muWPKey
Gaudi::Property< std::string > m_muWPKey
Definition: IsolationSelectionTool.h:83
xAOD::Photon
Photon_v1 Photon
Definition of the current "egamma version".
Definition: Event/xAOD/xAODEgamma/xAODEgamma/Photon.h:17
PathResolverFindCalibFile
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
Definition: PathResolver.cxx:431
Muon
struct TBPatternUnitContext Muon
CP::IsolationSelectionTool::addElectronWP
StatusCode addElectronWP(const std::string &wpname)
Definition: IsolationSelectionTool.cxx:253
LArG4AODNtuplePlotter.varname
def varname(hname)
Definition: LArG4AODNtuplePlotter.py:37
Interp3D::VetoInterp
Definition: Interp3D.h:15
a
TList * a
Definition: liststreamerinfos.cxx:10
asg::AcceptData::setCutResult
void setCutResult(const std::string &cutName, bool cutResult)
Set the result of a cut, based on the cut name (safer)
Definition: AcceptData.h:134
CP::IsolationSelectionTool::m_muonAccept
asg::AcceptInfo m_muonAccept
Definition: IsolationSelectionTool.h:105
h
asg::AcceptData::clear
void clear()
Clear all bits.
Definition: AcceptData.h:54
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
xAOD::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000
@ ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt1000
Definition: IsolationType.h:77
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
CP::IsolationSelectionTool::m_Interp
std::shared_ptr< Interp3D > m_Interp
Definition: IsolationSelectionTool.h:115
CaloCellTimeCorrFiller.filename
filename
Definition: CaloCellTimeCorrFiller.py:24
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
CP::IsolationSelectionTool::m_iparWPs
std::vector< std::unique_ptr< IsolationWP > > * m_iparWPs
Iparticle interface.
Definition: IsolationSelectionTool.h:109
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
CP::IsolationSelectionTool::m_phWPvec
Gaudi::Property< std::vector< std::string > > m_phWPvec
Definition: IsolationSelectionTool.h:81
CP::IsolationSelectionTool::addDependencies
void addDependencies(const std::string &container, const IsolationWP &wp)
Definition: IsolationSelectionTool.cxx:85
veto
std::vector< std::string > veto
these patterns are anded
Definition: listroot.cxx:191
CP::IsolationSelectionTool::m_doInterpE
Gaudi::Property< bool > m_doInterpE
Definition: IsolationSelectionTool.h:114
xAOD::Iso::topoetcone40
@ topoetcone40
Definition: IsolationType.h:50
asg::AcceptData
Definition: AcceptData.h:30
CP::IsolationSelectionTool::m_muWPvec
Gaudi::Property< std::vector< std::string > > m_muWPvec
Definition: IsolationSelectionTool.h:79
SG::DataProxy
Definition: DataProxy.h:44
python.compressB64.c
def c
Definition: compressB64.py:93
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::Iso::ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500
@ ptvarcone30_Nonprompt_All_MaxWeightTTVA_pt500
Definition: IsolationType.h:74
xAOD::Iso::ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000
@ ptcone20_Nonprompt_All_MaxWeightTTVA_pt1000
Definition: IsolationType.h:88
histogram
std::string histogram
Definition: chains.cxx:52
CP::IsolationSelectionTool::m_elWPs
std::vector< std::unique_ptr< IsolationWP > > m_elWPs
Definition: IsolationSelectionTool.h:98
CP::IsolationSelectionTool::m_iparAcceptInfo
asg::AcceptInfo * m_iparAcceptInfo
Definition: IsolationSelectionTool.h:110
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
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37