ATLAS Offline Software
Photons.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // This source file implements all of the functions related to Photons
6 // in the SUSYObjDef_xAOD class
7 
8 // Local include(s):
10 
13 
20 
23 
24 // Helper for object quality
26 
27 #ifndef XAOD_STANDALONE // For now metadata is Athena-only
29 #endif
30 
31 namespace ST {
32 
33 StatusCode SUSYObjDef_xAOD::GetPhotons(xAOD::PhotonContainer*& copy, xAOD::ShallowAuxContainer*& copyaux, bool recordSG, const std::string& photonkey, const xAOD::PhotonContainer* containerToBeCopied)
34 {
35  if (!m_tool_init) {
36  ATH_MSG_ERROR("SUSYTools was not initialized!!");
37  return StatusCode::FAILURE;
38  }
39 
40  if (m_isPHYSLITE && photonkey.find("AnalysisPhotons")==std::string::npos){
41  ATH_MSG_ERROR("You are running on PHYSLITE derivation. Please change the Photons container to 'AnalysisPhotons'");
42  return StatusCode::FAILURE;
43  }
44 
45  const xAOD::PhotonContainer* photons = nullptr;
46  if (copy==nullptr) { // empty container provided
47  if (containerToBeCopied != nullptr) {
48  photons = containerToBeCopied;
49  }
50  else {
51  ATH_CHECK( evtStore()->retrieve(photons, photonkey) );
52  }
53  std::pair<xAOD::PhotonContainer*, xAOD::ShallowAuxContainer*> shallowcopy = xAOD::shallowCopyContainer(*photons);
54  copy = shallowcopy.first;
55  copyaux = shallowcopy.second;
56  bool setLinks = xAOD::setOriginalObjectLink(*photons, *copy);
57  if (!setLinks) {
58  ATH_MSG_WARNING("Failed to set original object links on " << photonkey);
59  }
60  } else { // use the user-supplied collection instead
61  ATH_MSG_DEBUG("Not retrieving photon collecton, using existing one provided by user");
62  photons=copy;
63  }
64 
65  for (const auto photon : *copy) {
68  }
69 
70  if (recordSG) {
71  ATH_CHECK( evtStore()->record(copy, "STCalib" + photonkey + m_currentSyst.name()) );
72  ATH_CHECK( evtStore()->record(copyaux, "STCalib" + photonkey + m_currentSyst.name() + "Aux.") );
73  }
74  return StatusCode::SUCCESS;
75 }
76 
77 
79 
80  ATH_MSG_VERBOSE( "Starting FillPhoton on ph with pre-calibration pt=" << input.pt() );
81 
82  if ( !input.caloCluster() ) {
83  ATH_MSG_WARNING( "FillPhoton: no caloCluster found: " << input.caloCluster() );
84  return StatusCode::SUCCESS;
85  }
86 
87  //Check DeadHVCellRemoval
88  bool pass_deadHVTool = m_deadHVTool->accept(&input);
89 
90  if (m_debug) {
91  ATH_MSG_INFO( "PHOTON eta: " << input.eta() );
92  ATH_MSG_INFO( "PHOTON phi: " << input.phi() );
93  ATH_MSG_INFO( "PHOTON cl eta: " << input.caloCluster()->eta() );
94  ATH_MSG_INFO( "PHOTON cl phi: " << input.caloCluster()->phi() );
95  ATH_MSG_INFO( "PHOTON cl e: " << input.caloCluster()->e() );
96  ATH_MSG_INFO( "PHOTON OQ: " << input.OQ() );
97  ATH_MSG_INFO( "PHOTON author: " << input.author() );
98  ATH_MSG_INFO( "PHOTON deadHVTools: " << pass_deadHVTool );
99  }
100 
101  dec_baseline(input) = false;
102  dec_selected(input) = 0;
103  dec_isol(input) = false;
104  dec_isEM(input) = 0;
105 
106  if (!pass_deadHVTool) return StatusCode::SUCCESS;
107 
108  // Author cuts needed according to https://twiki.cern.ch/twiki/bin/view/AtlasProtected/EGammaIdentificationRun2#Photon_authors
110  return StatusCode::SUCCESS;
111 
112  // calibrate the photon 4-vector here only if within eta window
113  if (std::abs(input.caloCluster()->etaBE(2)) >= etacut) return StatusCode::SUCCESS;
114 
116  if ( std::abs( input.caloCluster()->etaBE(2) ) >1.37 && std::abs( input.caloCluster()->etaBE(2) ) <1.52) {
117  return StatusCode::SUCCESS;
118  }
119  }
120 
122  ATH_MSG_ERROR("FillPhoton: EgammaCalibTool applyCorrection failed");
123 
125  ATH_MSG_ERROR("FillPhoton: IsolationCorrectionTool applyCorrection failed");
126 
127  ATH_MSG_VERBOSE( "FillPhoton: post-calibration pt=" << input.pt() );
128 
129  if (input.pt() < ptcut) return StatusCode::SUCCESS;
130 
131  //Object quality cut as described at https://twiki.cern.ch/twiki/bin/view/AtlasProtected/EGammaIdentificationRun2#Object_quality_cut
132  if (!input.isGoodOQ(xAOD::EgammaParameters::BADCLUSPHOTON))
133  return StatusCode::SUCCESS;
134 
135  //Photon quality as in https://twiki.cern.ch/twiki/bin/view/AtlasProtected/EGammaIdentificationRun2#Photon_cleaning
136  bool passPhCleaning = false;
137  if (acc_passPhCleaning.isAvailable(input) && acc_passPhCleaningNoTime.isAvailable(input)) {
138  if ( (!m_photonAllowLate && acc_passPhCleaning(input)) || (m_photonAllowLate && acc_passPhCleaningNoTime(input)) ) passPhCleaning = true;
139  } else {
140  ATH_MSG_VERBOSE ("DFCommonPhotonsCleaning is not found in DAOD..");
141  if ( (!m_photonAllowLate && PhotonHelpers::passOQquality(input)) ||
142  ( m_photonAllowLate && PhotonHelpers::passOQqualityDelayed(input)) ) passPhCleaning = true;
143  }
144  if (!passPhCleaning) return StatusCode::SUCCESS;
145 
146 
147  bool passBaseID = false;
148  if (m_acc_photonIdBaseline.isAvailable(input)) {
149  passBaseID = bool(m_acc_photonIdBaseline(input));
150  } else {
151  passBaseID = bool(m_photonSelIsEMBaseline->accept(&input));
152  }
153  if (!passBaseID) return StatusCode::SUCCESS;
154 
155  //--- Do baseline isolation check
156  if ( !( m_photonBaselineIso_WP.empty() ) && !( m_isoBaselineTool->accept(input) ) ) return StatusCode::SUCCESS;
157 
158  dec_baseline(input) = true;
159  dec_selected(input) = 2;
160  if (!m_photonIso_WP.empty()) dec_isol(input) = bool(m_isoTool->accept(input));
161 
162  ATH_MSG_VERBOSE("FillPhoton: passed baseline selection.");
163  return StatusCode::SUCCESS;
164 }
165 
166 
167 bool SUSYObjDef_xAOD::IsSignalPhoton(const xAOD::Photon& input, float ptcut, float etacut) const
168 {
169  dec_signal(input) = false;
170 
171  if ( !acc_baseline(input) ) return false;
172 
173  if ( !m_egammaAmbiguityTool->accept(input) ) return false;
174 
175  if ( input.pt() < ptcut ) return false;
176  if ( etacut==DUMMYDEF ){
177  if(std::abs(input.caloCluster()->etaBE(2)) > m_photonEta ) return false;
178  }
179  else if ( std::abs(input.caloCluster()->etaBE(2)) > etacut ) return false;
180 
181  if (m_photonCrackVeto){
182  if ( std::abs( input.caloCluster()->etaBE(2) ) >1.37 && std::abs( input.caloCluster()->etaBE(2) ) <1.52) {
183  return false;
184  }
185  }
186 
187  if (acc_isol(input) || !m_doPhIsoSignal) {
188  ATH_MSG_VERBOSE( "IsSignalPhoton: passed isolation");
189  } else return false;
190 
191  bool passID = false;
192  if (m_acc_photonId.isAvailable(input)) {
193  passID = m_acc_photonId(input);
194  } else {
195  ATH_MSG_VERBOSE ("DFCommonPhotonsIsEMxxx variables are not found. Calculating the ID from Photon ID tool..");
196  passID = bool(m_photonSelIsEM->accept(&input));
197  }
198  if ( !passID ) return false;
199 
200  dec_signal(input) = true;
201 
202  return true;
203 }
204 
205 
206 double SUSYObjDef_xAOD::GetSignalPhotonSF(const xAOD::Photon& ph, const bool effSF, const bool isoSF, const bool triggerSF) const
207 {
208  double sf(1.);
209 
210  if (effSF) {
211 
212  double sf_eff = 1.;
213 
215  if (res == CP::CorrectionCode::OutOfValidityRange) ATH_MSG_WARNING(" GetSignalPhotonSF: EfficiencyScaleFactor out of validity range");
216 
217  sf *= sf_eff;
218  }
219 
220  if (isoSF) {
221 
222  double sf_iso = 1.;
223 
225  if (res == CP::CorrectionCode::OutOfValidityRange) ATH_MSG_WARNING(" GetSignalPhotonSF: IsolationScaleFactor out of validity range");
226 
227  sf *= sf_iso;
228  }
229 
230  if (triggerSF) {
231 
232  double sf_trigger = 1.;
233 
235  if (res == CP::CorrectionCode::OutOfValidityRange) ATH_MSG_WARNING(" GetSignalPhotonSF: TriggerScaleFactor out of validity range");
236 
237  sf *= sf_trigger;
238  }
239 
240  ATH_MSG_VERBOSE( "ScaleFactor " << sf );
241 
242  dec_effscalefact(ph) = sf;
243  return sf;
244 }
245 
246 
247 double SUSYObjDef_xAOD::GetSignalPhotonSFsys(const xAOD::Photon& ph, const CP::SystematicSet& systConfig, const bool effSF, const bool isoSF, const bool triggerSF)
248 {
249  double sf(1.);
250 
251  //Set the new systematic variation
253  if (ret != StatusCode::SUCCESS) {
254  ATH_MSG_ERROR("Cannot configure AsgPhotonEfficiencyCorrectionTool (reco) for systematic var. " << systConfig.name() );
255  }
256 
258  if (ret != StatusCode::SUCCESS) {
259  ATH_MSG_ERROR("Cannot configure AsgPhotonEfficiencyCorrectionTool (iso) for systematic var. " << systConfig.name() );
260  }
261 
263  if (ret != StatusCode::SUCCESS) {
264  ATH_MSG_ERROR("Cannot configure AsgPhotonEfficiencyCorrectionTool (trigger) for systematic var. " << systConfig.name() );
265  }
266 
267  if (effSF) {
268 
269  double sf_eff = 1.;
270 
272  if (res == CP::CorrectionCode::OutOfValidityRange) ATH_MSG_WARNING(" GetSignalPhotonSF: getEfficiencyScaleFactor out of validity range");
273 
274  sf *= sf_eff;
275  }
276 
277  if (isoSF) {
278 
279  double sf_iso = 1.;
280 
282  if (res == CP::CorrectionCode::OutOfValidityRange) ATH_MSG_WARNING(" GetSignalPhotonSF: getEfficiencyScaleFactor out of validity range");
283 
284  sf *= sf_iso;
285  }
286 
287  if (triggerSF) {
288 
289  double sf_trigger = 1.;
290 
292  if (res == CP::CorrectionCode::OutOfValidityRange) ATH_MSG_WARNING(" GetSignalPhotonSF: getEfficiencyScaleFactor out of validity range");
293 
294  sf *= sf_trigger;
295  }
296 
297  //Roll back to current sys
299  if (ret != StatusCode::SUCCESS) {
300  ATH_MSG_ERROR("Cannot configure AsgPhotonEfficiencyCorrectionTool back to default.");
301  }
302 
304  if (ret != StatusCode::SUCCESS) {
305  ATH_MSG_ERROR("Cannot configure AsgPhotonEfficiencyCorrectionTool (iso) for systematic var. " << systConfig.name() );
306  }
307 
309  if (ret != StatusCode::SUCCESS) {
310  ATH_MSG_ERROR("Cannot configure AsgPhotonEfficiencyCorrectionTool (trigger) for systematic var. " << systConfig.name() );
311  }
312 
313  ATH_MSG_VERBOSE( "ScaleFactor " << sf );
314 
315  dec_effscalefact(ph) = sf;
316  return sf;
317 }
318 
319 
320 double SUSYObjDef_xAOD::GetTotalPhotonSF(const xAOD::PhotonContainer& photons, const bool effSF, const bool isoSF, const bool triggerSF) const
321 {
322  double sf(1.);
323 
324  for (const xAOD::Photon* photon : photons) {
325  if (acc_signal(*photon) && acc_passOR(*photon)) { sf *= this->GetSignalPhotonSF(*photon, effSF, isoSF, triggerSF); }
326  }
327 
328  return sf;
329 }
330 
331 
332 double SUSYObjDef_xAOD::GetTotalPhotonSFsys(const xAOD::PhotonContainer& photons, const CP::SystematicSet& systConfig, const bool effSF, const bool isoSF, const bool triggerSF)
333 {
334  double sf(1.);
335 
336  for (const xAOD::Photon* photon : photons) {
337  if (acc_signal(*photon) && acc_passOR(*photon)) { sf *= this->GetSignalPhotonSFsys(*photon, systConfig, effSF, isoSF, triggerSF); }
338  }
339 
340  return sf;
341 }
342 
343 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
ST::SUSYObjDef_xAOD::m_acc_photonIdBaseline
SG::ConstAccessor< char > m_acc_photonIdBaseline
Definition: SUSYObjDef_xAOD.h:994
ST::SUSYObjDef_xAOD::m_photonBaselinePt
double m_photonBaselinePt
Definition: SUSYObjDef_xAOD.h:717
ST::SUSYObjDef_xAOD::m_deadHVTool
asg::AnaToolHandle< IAsgDeadHVCellRemovalTool > m_deadHVTool
Definition: SUSYObjDef_xAOD.h:902
IAsgPhotonEfficiencyCorrectionTool::getEfficiencyScaleFactor
virtual CP::CorrectionCode getEfficiencyScaleFactor(const xAOD::Egamma &, double &) const =0
Get the "photon scale factor" as a return value.
PhotonHelpers.h
TrackParticlexAODHelpers.h
ST::SUSYObjDef_xAOD::m_egammaCalibTool
asg::AnaToolHandle< CP::IEgammaCalibrationAndSmearingTool > m_egammaCalibTool
Combined electron collection.
Definition: SUSYObjDef_xAOD.h:897
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
CP::IIsolationCorrectionTool::applyCorrection
virtual CP::CorrectionCode applyCorrection(xAOD::Egamma &)=0
IAsgPhotonIsEMSelector.h
IAsgDeadHVCellRemovalTool::accept
virtual bool accept(const xAOD::Egamma *part) const =0
ST::SUSYObjDef_xAOD::GetTotalPhotonSFsys
double GetTotalPhotonSFsys(const xAOD::PhotonContainer &photons, const CP::SystematicSet &systConfig, const bool effSF=true, const bool isoSF=true, const bool triggerSF=false) override final
Definition: Photons.cxx:332
ST::SUSYObjDef_xAOD::m_photonBaselineCrackVeto
bool m_photonBaselineCrackVeto
Definition: SUSYObjDef_xAOD.h:721
ST
Definition: Electrons.cxx:41
ST::SUSYObjDef_xAOD::m_photonTriggerSFTool
asg::AnaToolHandle< IAsgPhotonEfficiencyCorrectionTool > m_photonTriggerSFTool
Definition: SUSYObjDef_xAOD.h:905
ST::SUSYObjDef_xAOD::m_isoBaselineTool
asg::AnaToolHandle< CP::IIsolationSelectionTool > m_isoBaselineTool
Definition: SUSYObjDef_xAOD.h:972
xAOD::ShallowAuxContainer
Class creating a shallow copy of an existing auxiliary container.
Definition: ShallowAuxContainer.h:54
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition: SystematicSet.h:31
ST::SUSYObjDef_xAOD::m_photonIso_WP
std::string m_photonIso_WP
Definition: SUSYObjDef_xAOD.h:663
CP::SystematicSet::name
std::string name() const
returns: the systematics joined into a single string.
Definition: SystematicSet.cxx:278
ST::SUSYObjDef_xAOD::m_doPhIsoSignal
bool m_doPhIsoSignal
Definition: SUSYObjDef_xAOD.h:794
SUSYObjDef_xAOD.h
CP::IIsolationSelectionTool::accept
virtual asg::AcceptData accept(const xAOD::Photon &x) const =0
Declare the interface that the class provides.
ST::SUSYObjDef_xAOD::IsSignalPhoton
bool IsSignalPhoton(const xAOD::Photon &input, const float ptcut, const float etacut=DUMMYDEF) const override final
Definition: Photons.cxx:167
ST::SUSYObjDef_xAOD::m_photonEta
double m_photonEta
Definition: SUSYObjDef_xAOD.h:719
CP::IEgammaCalibrationAndSmearingTool::applyCorrection
virtual CP::CorrectionCode applyCorrection(xAOD::Egamma &) const =0
IAsgPhotonEfficiencyCorrectionTool.h
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
ST::SUSYObjDef_xAOD::m_debug
bool m_debug
Definition: SUSYObjDef_xAOD.h:536
ST::SUSYObjDef_xAOD::GetSignalPhotonSFsys
double GetSignalPhotonSFsys(const xAOD::Photon &ph, const CP::SystematicSet &systConfig, const bool effSF=true, const bool isoSF=true, const bool triggerSF=false) override final
Definition: Photons.cxx:247
Pythia8_A14_NNPDF23LO_forMGHT_EvtGen.ptcut
float ptcut
Definition: Pythia8_A14_NNPDF23LO_forMGHT_EvtGen.py:9
ST::SUSYObjDef_xAOD::m_tool_init
bool m_tool_init
Definition: SUSYObjDef_xAOD.h:562
ST::SUSYObjDef_xAOD::m_photonBaselineEta
double m_photonBaselineEta
Definition: SUSYObjDef_xAOD.h:718
IEGammaAmbiguityTool.h
ST::SUSYObjDef_xAOD::m_photonEfficiencySFTool
asg::AnaToolHandle< IAsgPhotonEfficiencyCorrectionTool > m_photonEfficiencySFTool
Definition: SUSYObjDef_xAOD.h:903
IElectronPhotonShowerShapeFudgeTool.h
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
ST::SUSYObjDef_xAOD::m_isPHYSLITE
bool m_isPHYSLITE
Definition: SUSYObjDef_xAOD.h:804
PhotonHelpers::passOQquality
bool passOQquality(const xAOD::Photon &ph)
Helper to ease the implemmantation of the pass Quality requirements.
Definition: PhotonHelpers.cxx:12
IEgammaCalibrationAndSmearingTool.h
CP::CorrectionCode::OutOfValidityRange
@ OutOfValidityRange
Input object is out of validity range.
Definition: CorrectionCode.h:37
IIsolationCorrectionTool.h
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
IAsgEGammaIsEMSelector::accept
virtual asg::AcceptData accept(const xAOD::IParticle *part) const =0
accept with pointer to IParticle so as to not hide the IAsgSelectionTool one
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
res
std::pair< std::vector< unsigned int >, bool > res
Definition: JetGroupProductTest.cxx:11
ST::SUSYObjDef_xAOD::m_photonSelIsEM
asg::AnaToolHandle< IAsgPhotonIsEMSelector > m_photonSelIsEM
Definition: SUSYObjDef_xAOD.h:900
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
IAsgDeadHVCellRemovalTool.h
ST::SUSYObjDef_xAOD::m_photonBaselineIso_WP
std::string m_photonBaselineIso_WP
Definition: SUSYObjDef_xAOD.h:662
ST::SUSYObjDef_xAOD::GetTotalPhotonSF
double GetTotalPhotonSF(const xAOD::PhotonContainer &photons, const bool effSF=true, const bool isoSF=true, const bool triggerSF=false) const override final
Definition: Photons.cxx:320
ST::SUSYObjDef_xAOD::m_photonAllowLate
bool m_photonAllowLate
Definition: SUSYObjDef_xAOD.h:723
ST::SUSYObjDef_xAOD::GetSignalPhotonSF
double GetSignalPhotonSF(const xAOD::Photon &ph, const bool effSF=true, const bool isoSF=true, const bool triggerSF=false) const override final
Definition: Photons.cxx:206
IEGammaAmbiguityTool::accept
virtual bool accept(const xAOD::Egamma &egamma) const =0
Accept or reject egamma object based on ambiguity resolution.
IIsolationSelectionTool.h
xAOD::shallowCopyContainer
std::pair< std::unique_ptr< T >, std::unique_ptr< ShallowAuxContainer > > shallowCopyContainer(const T &cont, [[maybe_unused]] const EventContext &ctx)
Function making a shallow copy of a constant container.
Definition: ShallowCopy.h:110
AthAnalysisHelper.h
ST::SUSYObjDef_xAOD::FillPhoton
StatusCode FillPhoton(xAOD::Photon &input, const float ptcut, const float etacut) override final
Definition: Photons.cxx:78
xAOD::EgammaParameters::BADCLUSPHOTON
const uint32_t BADCLUSPHOTON
Definition: EgammaDefs.h:124
CP::CorrectionCode::Ok
@ Ok
The correction was done successfully.
Definition: CorrectionCode.h:38
xAOD::photon
@ photon
Definition: TrackingPrimitives.h:200
ST::SUSYObjDef_xAOD::GetPhotons
StatusCode GetPhotons(xAOD::PhotonContainer *&copy, xAOD::ShallowAuxContainer *&copyaux, const bool recordSG=true, const std::string &photonkey="Photons", const xAOD::PhotonContainer *containerToBeCopied=nullptr) override final
Definition: Photons.cxx:33
xAOD::Photon_v1
Definition: Photon_v1.h:37
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
ST::SUSYObjDef_xAOD::m_photonSelIsEMBaseline
asg::AnaToolHandle< IAsgPhotonIsEMSelector > m_photonSelIsEMBaseline
Definition: SUSYObjDef_xAOD.h:901
ST::SUSYObjDef_xAOD::m_photonPt
double m_photonPt
Definition: SUSYObjDef_xAOD.h:720
xAOD::setOriginalObjectLink
bool setOriginalObjectLink(const IParticle &original, IParticle &copy)
This function should be used by CP tools when they make a deep copy of an object in their correctedCo...
Definition: IParticleHelpers.cxx:30
CP::CorrectionCode
Return value from object correction CP tools.
Definition: CorrectionCode.h:31
ST::SUSYObjDef_xAOD::m_currentSyst
CP::SystematicSet m_currentSyst
Definition: SUSYObjDef_xAOD.h:816
xAOD::EgammaParameters::AuthorPhoton
const uint16_t AuthorPhoton
Object Reconstructed by standard cluster-based algorithm.
Definition: EgammaDefs.h:28
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
IParticleHelpers.h
PhotonHelpers::passOQqualityDelayed
bool passOQqualityDelayed(const xAOD::Photon &ph)
Helpers to ease the implementation of the pass Quality requirements.
Definition: PhotonHelpers.cxx:29
calibdata.copy
bool copy
Definition: calibdata.py:26
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
CP::ISystematicsTool::applySystematicVariation
virtual StatusCode applySystematicVariation(const SystematicSet &systConfig)=0
effects: configure this tool for the given list of systematic variations.
ST::SUSYObjDef_xAOD::m_photonCrackVeto
bool m_photonCrackVeto
Definition: SUSYObjDef_xAOD.h:722
ST::SUSYObjDef_xAOD::m_isoCorrTool
asg::AnaToolHandle< CP::IIsolationCorrectionTool > m_isoCorrTool
Definition: SUSYObjDef_xAOD.h:969
ST::SUSYObjDef_xAOD::m_acc_photonId
SG::ConstAccessor< char > m_acc_photonId
Definition: SUSYObjDef_xAOD.h:995
ST::SUSYObjDef_xAOD::m_photonIsolationSFTool
asg::AnaToolHandle< IAsgPhotonEfficiencyCorrectionTool > m_photonIsolationSFTool
Definition: SUSYObjDef_xAOD.h:904
ST::SUSYObjDef_xAOD::m_egammaAmbiguityTool
asg::AnaToolHandle< IEGammaAmbiguityTool > m_egammaAmbiguityTool
Definition: SUSYObjDef_xAOD.h:912
ST::SUSYObjDef_xAOD::m_isoTool
asg::AnaToolHandle< CP::IIsolationSelectionTool > m_isoTool
Definition: SUSYObjDef_xAOD.h:970