Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
#include <EgammaCalibrationAndSmearingTool.h>
|
virtual double | getEnergy (xAOD::Egamma *, const xAOD::EventInfo *) |
|
virtual double | getElectronMomentum (const xAOD::Electron *, const xAOD::EventInfo *) |
|
double | getResolution (const xAOD::Egamma &particle, bool withCT=true) const override |
|
double | intermodule_correction (double Ecl, double phi, double eta) const |
|
double | correction_phi_unif (double eta, double phi) const |
|
virtual void | print () const =0 |
| Print the state of the tool. More...
|
|
virtual StatusCode | sysInitialize () |
| Function initialising the tool in the correct way in Athena. 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 | 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 |
|
|
| EgammaCalibrationAndSmearingTool (const std::string &name) |
|
| ~EgammaCalibrationAndSmearingTool () |
|
StatusCode | initialize () override |
|
virtual CP::CorrectionCode | applyCorrection (xAOD::Egamma &) const override |
|
virtual CP::CorrectionCode | applyCorrection (xAOD::Egamma &input, const xAOD::EventInfo &event_info) const |
|
virtual CP::CorrectionCode | correctedCopy (const xAOD::Electron &, xAOD::Electron *&) const override |
|
virtual CP::CorrectionCode | correctedCopy (const xAOD::Photon &, xAOD::Photon *&) const override |
|
double | getEnergy (const xAOD::Photon &) const |
|
double | getEnergy (const xAOD::Electron &) const |
|
virtual CP::SystematicSet | affectingSystematics () const override |
| the list of all systematics this tool can be affected by More...
|
|
virtual bool | isAffectedBySystematic (const CP::SystematicVariation &systematic) const override |
| Declare the interface that this class provides. More...
|
|
virtual CP::SystematicSet | recommendedSystematics () const override |
| the list of all systematics this tool recommends to use More...
|
|
virtual StatusCode | applySystematicVariation (const CP::SystematicSet &systConfig) override |
| effects: configure this tool for the given list of systematic variations. More...
|
|
virtual void | setRandomSeedFunction (const IdFunction &&function) |
|
const IdFunction | getRandomSeedFunction () const |
|
virtual double | resolution (double energy, double cl_eta, double cl_etaCalo, PATCore::ParticleType::Type ptype=PATCore::ParticleType::Electron, bool withCT=false) const override |
|
void | setupSystematics () |
|
const EgammaPredicate | EtaCaloPredicateFactory (double eta_min, double eta_max) const |
|
const EgammaPredicate | AbsEtaCaloPredicateFactory (double eta_min, double eta_max) const |
|
const EgammaPredicate | AbsEtaCaloPredicateFactory (std::pair< double, double > edges) const |
|
const std::vector< EgammaPredicate > | AbsEtaCaloPredicatesFactory (const std::vector< std::pair< double, double >> &edges) const |
|
const std::vector< EgammaPredicate > | AbsEtaCaloPredicatesFactory (const std::vector< double > &edges) const |
|
const EgammaPredicate | DoubleOrAbsEtaCaloPredicateFactory (double eta1_min, double eta1_max, double eta2_min, double eta2_max) const |
|
PATCore::ParticleType::Type | xAOD2ptype (const xAOD::Egamma &particle) const |
|
egEnergyCorr::Scale::Variation | oldtool_scale_flag_this_event (const xAOD::Egamma &p, const xAOD::EventInfo &event_info) const |
|
egEnergyCorr::Resolution::Variation | oldtool_resolution_flag_this_event (const xAOD::Egamma &p, const xAOD::EventInfo &event_info) 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...
|
|
◆ EgammaPredicate
◆ IdFunction
◆ MetaStore_t
◆ MetaStorePtr_t
Type of the metadata store pointer in standalone mode.
Definition at line 68 of file AsgMetadataTool.h.
◆ RandomNumber
◆ StoreGateSvc_t
◆ ResolutionDecorrelation
◆ EgammaCalibrationAndSmearingTool()
CP::EgammaCalibrationAndSmearingTool::EgammaCalibrationAndSmearingTool |
( |
const std::string & |
name | ) |
|
|
private |
Definition at line 278 of file EgammaCalibrationAndSmearingTool.cxx.
294 std::abs(
egamma.caloCluster()->
phi()) * 1E6 +
295 std::abs(
egamma.caloCluster()->
eta()) * 1E3 +
337 "This should be explicitly set by the user depending on the "
338 "data type (int)0=full sim, (int)1=fast sim");
341 "This is now deprecated. Kept for explicit error message for now");
◆ ~EgammaCalibrationAndSmearingTool()
CP::EgammaCalibrationAndSmearingTool::~EgammaCalibrationAndSmearingTool |
( |
| ) |
|
|
private |
◆ AbsEtaCaloPredicateFactory() [1/2]
const EgammaPredicate CP::EgammaCalibrationAndSmearingTool::AbsEtaCaloPredicateFactory |
( |
double |
eta_min, |
|
|
double |
eta_max |
|
) |
| const |
|
inlineprivate |
◆ AbsEtaCaloPredicateFactory() [2/2]
const EgammaPredicate CP::EgammaCalibrationAndSmearingTool::AbsEtaCaloPredicateFactory |
( |
std::pair< double, double > |
edges | ) |
const |
|
inlineprivate |
◆ AbsEtaCaloPredicatesFactory() [1/2]
const std::vector<EgammaPredicate> CP::EgammaCalibrationAndSmearingTool::AbsEtaCaloPredicatesFactory |
( |
const std::vector< double > & |
edges | ) |
const |
|
inlineprivate |
◆ AbsEtaCaloPredicatesFactory() [2/2]
const std::vector<EgammaPredicate> CP::EgammaCalibrationAndSmearingTool::AbsEtaCaloPredicatesFactory |
( |
const std::vector< std::pair< double, double >> & |
edges | ) |
const |
|
inlineprivate |
◆ affectingSystematics()
CP::SystematicSet CP::EgammaCalibrationAndSmearingTool::affectingSystematics |
( |
| ) |
const |
|
overrideprivatevirtual |
◆ applyCorrection() [1/2]
◆ applyCorrection() [2/2]
Definition at line 912 of file EgammaCalibrationAndSmearingTool.cxx.
924 ATH_MSG_DEBUG(
"applying energy recalibration before E0|E1|E2|E3 = "
925 <<
input.caloCluster()->energyBE(0) <<
"|"
926 <<
input.caloCluster()->energyBE(1) <<
"|"
927 <<
input.caloCluster()->energyBE(2) <<
"|"
928 <<
input.caloCluster()->energyBE(3));
937 << Es0Acc(*
input.caloCluster()) <<
"|"
938 << Es1Acc(*
input.caloCluster()) <<
"|"
939 << Es2Acc(*
input.caloCluster()) <<
"|"
940 << Es3Acc(*
input.caloCluster()) <<
"|");
941 if (Es2Acc(*
input.caloCluster()) == 0 and
942 Es1Acc(*
input.caloCluster()) == 0 and
943 Es3Acc(*
input.caloCluster()) == 0 and
944 Es0Acc(*
input.caloCluster()) == 0 and
945 (std::abs(
input.eta()) < 1.37 or
946 (std::abs(
input.eta()) > 1.55 and std::abs(
input.eta()) < 2.47))) {
955 if (
input.author() !=
977 const double etaden =
980 :
input.caloCluster()->eta();
982 energy / cosh(etaden), ptype);
996 unsigned int runNumber_for_tool = 0;
1001 runNumber_for_tool = event_info.
runNumber();
1003 const auto cl_eta =
input.caloCluster()->eta();
1004 double etaCalo = 0, phiCalo = 0;
1024 double etaC =
input.caloCluster()->eta();
1025 double phiC =
input.caloCluster()->phi();
1027 ieta = ieta == 0 ? 1
1032 iphi = iphi == 0 ? 1
1038 "energy after phi uniformity correction (for calo distortion) = "
1051 double et =
energy / std::cosh(cl_eta);
1061 const auto es2 = Es2Acc.isAvailable(*
input.caloCluster())
1062 ? Es2Acc(*
input.caloCluster())
1063 :
input.caloCluster()->energyBE(2);
1064 if (!(std::abs(cl_eta) < 1.52 and std::abs(cl_eta) > 1.37) and
1065 std::abs(cl_eta) < 2.4)
1070 double et =
energy / std::cosh(cl_eta);
1079 randomrunnumber_getter(
"RandomRunNumber");
1080 if (randomrunnumber_getter.isAvailable(event_info)) {
1081 runNumber_for_tool = randomrunnumber_getter(event_info);
1084 "Pileup tool not run before using "
1085 "ElectronPhotonFourMomentumCorrection! Assuming it is 2016. If you "
1086 "want to force a specific period set the property randomRunNumber "
1087 "of the tool, e.g. in the job option: "
1088 "tool.randomRunNumber = 123456 or "
1089 "tool.randomRunNumber = "
1090 "EgammaCalibrationAndSmearingToolRunNumbersExample.run_2016");
1098 const double eraw = ((Es0Acc.isAvailable(*
input.caloCluster())
1099 ? Es0Acc(*
input.caloCluster())
1100 :
input.caloCluster()->energyBE(0)) +
1102 ? Es1Acc(*
input.caloCluster())
1103 :
input.caloCluster()->energyBE(1)) +
1105 ? Es2Acc(*
input.caloCluster())
1106 :
input.caloCluster()->energyBE(2)) +
1108 ? Es3Acc(*
input.caloCluster())
1109 :
input.caloCluster()->energyBE(3)));
1122 input.caloCluster()->eta(),
1123 input.caloCluster()->etaBE(2),
1125 Es2Acc.isAvailable(*
input.caloCluster())
1126 ? Es2Acc(*
input.caloCluster())
1127 :
input.caloCluster()->energyBE(2),
1137 const double p2 = new_energy2 >
m2 ? new_energy2 -
m2 : 0.;
◆ applySystematicVariation()
StatusCode CP::EgammaCalibrationAndSmearingTool::applySystematicVariation |
( |
const CP::SystematicSet & |
systConfig | ) |
|
|
overrideprivatevirtual |
effects: configure this tool for the given list of systematic variations.
any requested systematics that are not affecting this tool will be silently ignored (unless they cause other errors). failures: systematic unknown failures: requesting multiple variations on the same systematic (e.g. up & down) failures: requesting an unsupported variation on an otherwise supported systematic (e.g. a 2 sigma variation and the tool only supports 1 sigma variations) failures: unsupported combination of supported systematic failures: other tool specific errors
Implements CP::ISystematicsTool.
Definition at line 1985 of file EgammaCalibrationAndSmearingTool.cxx.
1999 if (systConfig.
empty())
2000 return StatusCode::SUCCESS;
2005 bool first_scale =
true;
2006 bool first_resolution =
true;
2007 for (
const auto&
it : systConfig) {
2010 if (not first_scale) {
2012 throw std::runtime_error(
"multiple scale variations not supported");
2014 first_scale =
false;
2021 if (not first_resolution) {
2022 ATH_MSG_ERROR(
"multiple resolution variations not supported");
2023 throw std::runtime_error(
2024 "multiple resolution variations not supported");
2026 first_resolution =
false;
2031 return StatusCode::SUCCESS;
◆ beginEvent()
StatusCode asg::AsgMetadataTool::beginEvent |
( |
| ) |
|
|
protectedvirtualinherited |
Function called when a new events is loaded.
Dummy implementation that can be overridden by the derived tool.
Reimplemented in AsgElectronEfficiencyCorrectionTool, TrigConf::xAODConfigTool, TauAnalysisTools::TauSelectionTool, TauAnalysisTools::DiTauSelectionTool, TauAnalysisTools::CommonSmearingTool, TauAnalysisTools::DiTauEfficiencyCorrectionsTool, Trig::TrigDecisionTool, TauAnalysisTools::TauEfficiencyCorrectionsTool, Trig::TrigConfBunchCrossingTool, xAODMaker::TriggerMenuMetaDataTool, and Trig::xAODBunchCrossingTool.
Definition at line 196 of file AsgMetadataTool.cxx.
199 return StatusCode::SUCCESS;
◆ beginInputFile()
StatusCode asg::AsgMetadataTool::beginInputFile |
( |
| ) |
|
|
protectedvirtualinherited |
Function called when a new input file is opened.
Dummy implementation that can be overridden by the derived tool.
Reimplemented in AsgElectronEfficiencyCorrectionTool, TrigConf::xAODConfigTool, PMGTools::PMGTruthWeightTool, BookkeeperTool, xAODMaker::FileMetaDataTool, BookkeeperDumperTool, Trig::TrigDecisionTool, xAODMaker::TriggerMenuMetaDataTool, xAODMaker::TruthMetaDataTool, Trig::xAODBunchCrossingTool, TauAnalysisTools::TauEfficiencyCorrectionsTool, and TauAnalysisTools::TauSmearingTool.
Definition at line 180 of file AsgMetadataTool.cxx.
183 return StatusCode::SUCCESS;
◆ correctedCopy() [1/2]
◆ correctedCopy() [2/2]
◆ correction_phi_unif()
double CP::EgammaCalibrationAndSmearingTool::correction_phi_unif |
( |
double |
eta, |
|
|
double |
phi |
|
) |
| const |
Definition at line 2222 of file EgammaCalibrationAndSmearingTool.cxx.
2224 constexpr
double PI =
M_PI;
2229 if (eta < -0.4 && eta > -0.6) {
2230 if (phi < (14 *
PI / 32.) && phi > (13 *
PI / 32.)) {
2232 }
else if (phi < (13 *
PI / 32.) && phi > (12 *
PI / 32.)) {
2250 if (eta < 0.2 && eta > 0.) {
2251 if (phi < (-7 * 2 *
PI / 32.) && phi > (-8 * 2 *
PI / 32.)) {
2256 else if (eta < 0.6 && eta > 0.4) {
2257 if (phi < 0 && phi > (-2 *
PI / 32.)) {
2259 }
else if (phi < (-4 * 2 *
PI / 32.) && phi > (-5 * 2 *
PI / 32.)) {
2264 else if (eta < 0.8 && eta > 0.6) {
2265 if (phi < (7 * 2 *
PI / 32.) && phi > (6 * 2 *
PI / 32.)) {
2270 else if (eta < 1.4 && eta > 1.2) {
2271 if (phi < (-9 * 2 *
PI / 32.) && phi > (-10 * 2 *
PI / 32.)) {
2273 }
else if (phi < (-11 * 2 *
PI / 32.) && phi > (-12 * 2 *
PI / 32.)) {
2278 else if (eta < 2.3 && eta > 2.1) {
2279 if (phi < (-12 * 2 *
PI / 32.) && phi > (-13 * 2 *
PI / 32.)) {
2284 else if (eta < 0. && eta > -0.2) {
2285 if (phi < (-12 * 2 *
PI / 32.) && phi > (-13 * 2 *
PI / 32.)) {
2287 }
else if (phi < (-8 * 2 *
PI / 32.) && phi > (-9 * 2 *
PI / 32.)) {
2292 else if (eta < -0.2 && eta > -0.4) {
2293 if (phi < (-9 * 2 *
PI / 32.) && phi > (-10 * 2 *
PI / 32.)) {
2298 else if (eta < -1.2 && eta > -1.4) {
2299 if (phi < (-6 * 2 *
PI / 32.) && phi > (-7 * 2 *
PI / 32.)) {
2304 else if (eta < -1.6 && eta > -1.8) {
2305 if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2310 else if (eta < -2.3 && eta > -2.5) {
2311 if (phi < (-8 * 2 *
PI / 32.) && phi > (-9 * 2 *
PI / 32.)) {
2313 }
else if (phi < (5 * 2 *
PI / 32.) && phi > (4 * 2 *
PI / 32.)) {
2315 }
else if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2317 }
else if (phi < (10 * 2 *
PI / 32.) && phi > (9 * 2 *
PI / 32.)) {
2319 }
else if (phi < (11 * 2 *
PI / 32.) && phi > (10 * 2 *
PI / 32.)) {
2327 if (eta < 0.6 && eta > 0.4) {
2328 if (phi < 0 && phi > (-2 *
PI / 32.)) {
2330 }
else if (phi < (-4 * 2 *
PI / 32.) && phi > (-5 * 2 *
PI / 32.)) {
2335 else if (eta < 0.8 && eta > 0.6) {
2336 if (phi < (7 * 2 *
PI / 32.) && phi > (6 * 2 *
PI / 32.)) {
2341 else if (eta < 1.4 && eta > 1.2) {
2342 if (phi < (-11 * 2 *
PI / 32.) && phi > (-12 * 2 *
PI / 32.)) {
2347 else if (eta < 2.0 && eta > 1.9) {
2348 if (phi < (10 * 2 *
PI / 32.) && phi > (9 * 2 *
PI / 32.)) {
2353 else if (eta < -1.2 && eta > -1.4) {
2354 if (phi < (-4 * 2 *
PI / 32.) && phi > (-5 * 2 *
PI / 32.)) {
2356 }
else if (phi < (-6 * 2 *
PI / 32.) && phi > (-7 * 2 *
PI / 32.)) {
2361 else if (eta < -1.6 && eta > -1.8) {
2362 if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2367 else if (eta < -2.3 && eta > -2.5) {
2368 if (phi < (-8 * 2 *
PI / 32.) && phi > (-9 * 2 *
PI / 32.)) {
2370 }
else if (phi < (5 * 2 *
PI / 32.) && phi > (4 * 2 *
PI / 32.)) {
2372 }
else if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2374 }
else if (phi < (10 * 2 *
PI / 32.) && phi > (9 * 2 *
PI / 32.)) {
2376 }
else if (phi < (11 * 2 *
PI / 32.) && phi > (10 * 2 *
PI / 32.)) {
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [6/6]
◆ detStore()
◆ DoubleOrAbsEtaCaloPredicateFactory()
const EgammaPredicate CP::EgammaCalibrationAndSmearingTool::DoubleOrAbsEtaCaloPredicateFactory |
( |
double |
eta1_min, |
|
|
double |
eta1_max, |
|
|
double |
eta2_min, |
|
|
double |
eta2_max |
|
) |
| const |
|
inlineprivate |
◆ endInputFile()
StatusCode asg::AsgMetadataTool::endInputFile |
( |
| ) |
|
|
protectedvirtualinherited |
◆ EtaCaloPredicateFactory()
const EgammaPredicate CP::EgammaCalibrationAndSmearingTool::EtaCaloPredicateFactory |
( |
double |
eta_min, |
|
|
double |
eta_max |
|
) |
| const |
|
inlineprivate |
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
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
◆ getElectronMomentum()
◆ getEnergy() [1/3]
◆ getEnergy() [2/3]
double CP::EgammaCalibrationAndSmearingTool::getEnergy |
( |
const xAOD::Photon & |
input | ) |
const |
|
private |
◆ getEnergy() [3/3]
◆ getKey()
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
-
ptr | The 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.
121 #ifdef XAOD_STANDALONE
127 return (
proxy ==
nullptr ? 0 :
proxy->sgkey() );
128 #endif // XAOD_STANDALONE
◆ 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
-
ptr | The 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.
108 #ifdef XAOD_STANDALONE
114 static const std::string
dummy =
"";
116 #endif // XAOD_STANDALONE
◆ getProperty()
template<class T >
const T* asg::AsgTool::getProperty |
( |
const std::string & |
name | ) |
const |
|
inherited |
Get one of the tool's properties.
◆ getRandomSeedFunction()
const IdFunction CP::EgammaCalibrationAndSmearingTool::getRandomSeedFunction |
( |
| ) |
const |
|
inlineprivate |
◆ getResolution()
double CP::EgammaCalibrationAndSmearingTool::getResolution |
( |
const xAOD::Egamma & |
particle, |
|
|
bool |
withCT = true |
|
) |
| const |
|
overridevirtual |
◆ handle()
void asg::AsgMetadataTool::handle |
( |
const Incident & |
inc | ) |
|
|
protectedvirtualinherited |
Function receiving incidents from IncidentSvc/TEvent.
Reimplemented in Trig::TrigDecisionTool.
Definition at line 130 of file AsgMetadataTool.cxx.
136 if( inc.type() == IncidentType::BeginInputFile ) {
140 throw std::runtime_error(
"Couldn't call beginInputFile()" );
142 }
else if( inc.type() == IncidentType::EndInputFile ) {
145 throw std::runtime_error(
"Couldn't call endInputFile()" );
147 }
else if( inc.type() == IncidentType::BeginEvent ) {
155 throw std::runtime_error(
"Couldn't call beginInputFile()" );
160 throw std::runtime_error(
"Couldn't call beginEvent()" );
163 #ifdef XAOD_STANDALONE
164 }
else if( inc.type() == IncidentType::MetaDataStop ) {
167 throw std::runtime_error(
"Couldn't call metaDataStop()" );
170 #endif // XAOD_STANDALONE
172 ATH_MSG_WARNING(
"Unknown incident type received in AsgMetaDataTool: " << inc.type() );
◆ initialize()
StatusCode CP::EgammaCalibrationAndSmearingTool::initialize |
( |
| ) |
|
|
overrideprivatevirtual |
Implements CP::IEgammaCalibrationAndSmearingTool.
Definition at line 351 of file EgammaCalibrationAndSmearingTool.cxx.
377 }
else if (
m_ESModel ==
"es2015PRE_res_improved") {
381 }
else if (
m_ESModel ==
"es2015cPRE_res_improved") {
383 }
else if (
m_ESModel ==
"es2015c_summer") {
387 }
else if (
m_ESModel ==
"es2016data_mc15c") {
389 }
else if (
m_ESModel ==
"es2016data_mc15c_summer") {
391 }
else if (
m_ESModel ==
"es2016data_mc15c_summer_improved") {
393 }
else if (
m_ESModel ==
"es2016data_mc15c_final") {
397 }
else if (
m_ESModel ==
"es2017_R21_PRE") {
399 }
else if (
m_ESModel ==
"es2017_R21_v0") {
401 }
else if (
m_ESModel ==
"es2017_R21_v1") {
403 }
else if (
m_ESModel ==
"es2017_R21_ofc0_v1") {
405 }
else if (
m_ESModel ==
"es2018_R21_v0") {
407 }
else if (
m_ESModel ==
"es2018_R21_v1") {
409 }
else if (
m_ESModel ==
"es2022_R22_PRE") {
411 }
else if (
m_ESModel ==
"es2023_R22_Run2_v0") {
413 }
else if (
m_ESModel ==
"es2023_R22_Run2_v1") {
415 }
else if (
m_ESModel ==
"es2024_Run3_ofc0_v0") {
419 return StatusCode::FAILURE;
422 return StatusCode::FAILURE;
433 return StatusCode::FAILURE;
438 "Property useAFII is deprecated. It is now replaced with useFastSim, "
439 "which should be explicitly configured");
440 return StatusCode::FAILURE;
448 ATH_MSG_ERROR(
"Property useFastSim should be explicitly configured");
449 return StatusCode::FAILURE;
455 "Sample is FastSim but no AF3 calibration is available yet with "
456 "MC23 recommendations. Please get in touch with the EGamma "
457 "CP group in case you are using this");
458 return StatusCode::FAILURE;
477 ATH_MSG_WARNING(
"no decorrelation model specified, assuming full model");
486 return StatusCode::FAILURE;
492 "flag decorrelation model ignored for scale decorrelation model");
503 ATH_MSG_FATAL(
"cannot understand the scale decorrelation model '"
505 return StatusCode::FAILURE;
519 return StatusCode::FAILURE;
523 "not information how to initialize the scale decorrelation model");
524 return StatusCode::FAILURE;
532 "flag decorrelation model ignored for resolution decorrelation "
540 ATH_MSG_FATAL(
"cannot understand the resolution decorrelation model '"
542 return StatusCode::FAILURE;
556 return StatusCode::FAILURE;
563 m_rootTool = std::make_unique<AtlasRoot::egammaEnergyCorrectionTool>();
566 return StatusCode::FAILURE;
573 "Using linear interpolation in the gain tool (uncertainties only)");
591 "egammaMVACalibTool/tool_mva_electron");
592 config_mva_electron.setPropertyFromString(
"folder",
m_MVAfolder);
593 ATH_CHECK(config_mva_electron.setProperty(
"use_layer_corrected",
true));
595 ATH_CHECK(config_mva_electron.setProperty(
600 "egammaMVACalibTool/tool_mva_unconverted");
601 config_mva_unconverted.setPropertyFromString(
"folder",
m_MVAfolder);
603 config_mva_unconverted.setProperty(
"use_layer_corrected",
true));
604 ATH_CHECK(config_mva_unconverted.setProperty(
609 "egammaMVACalibTool/tool_mva_converted");
610 config_mva_converted.setPropertyFromString(
"folder",
m_MVAfolder);
611 ATH_CHECK(config_mva_converted.setProperty(
"use_layer_corrected",
true));
612 ATH_CHECK(config_mva_converted.setProperty(
617 std::ostringstream mva_service_name;
618 mva_service_name <<
"egammaMVASvc/service_mva_egamma_id"
619 << (
void const*)
this;
621 ATH_CHECK(config_mva_service.addPrivateTool(
"ElectronTool",
622 config_mva_electron));
623 ATH_CHECK(config_mva_service.addPrivateTool(
"UnconvertedPhotonTool",
624 config_mva_unconverted));
625 ATH_CHECK(config_mva_service.addPrivateTool(
"ConvertedPhotonTool",
626 config_mva_converted));
627 config_mva_service.setPropertyFromString(
"folder",
m_MVAfolder);
629 config_mva_service.setProperty(
"OutputLevel", this->msg().level()));
642 ATH_MSG_INFO(
"Layer recalibration already applied at cell level");
647 ATH_MSG_DEBUG(
"initializing layer recalibration tool (if needed)");
681 m_rootTool->use_uA2MeV_2015_first2weeks_correction(
690 throw std::runtime_error(
"ep combination not supported yet");
717 "cannot instantiate gain tool for this model (you can only disable "
718 "the gain tool, but not enable it)");
721 "initializing gain tool for run2 final precision recommendations");
723 "Gain corrections required but Zee scales are derived without Gain, "
724 "will cause inconsistency!");
726 "ElectronPhotonFourMomentumCorrection/v29/"
727 "gain_uncertainty_specialRun.root");
729 gain_tool_run_2_filename,
false,
"GainCorrection",
741 "ElectronPhotonFourMomentumCorrection/v25/linearity_ADC.root");
747 m_ESModel +
" recommendations use ADC corrections for scale "
748 "derivation. Disabling the ADCLinearity flag will create "
762 "ElectronPhotonFourMomentumCorrection/v33/"
763 "egammaEnergyCorrectionData.root");
764 std::unique_ptr<TFile> fCorr(
765 TFile::Open(phiUnifCorrfileName.c_str(),
"READ"));
767 dynamic_cast<TH2*
>(fCorr->Get(
"CaloDistortionPhiUniformityCorrection/"
768 "es2023_R22_Run2_v0/h2DcorrPhiUnif")));
772 m_ESModel +
" recommendations use CaloDistPhiUnif for scale "
773 "derivation. Disabling the CaloDistPhiUnif flag will create "
813 if (
registry.registerSystematics(*
this) != StatusCode::SUCCESS)
814 return StatusCode::FAILURE;
816 return StatusCode::SUCCESS;
◆ inputHandles()
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.
◆ inputMetaStore()
AsgMetadataTool::MetaStorePtr_t asg::AsgMetadataTool::inputMetaStore |
( |
| ) |
const |
|
inherited |
Accessor for the input metadata store.
Definition at line 88 of file AsgMetadataTool.cxx.
90 #ifdef XAOD_STANDALONE
92 #else // XAOD_STANDALONE
94 #endif // XAOD_STANDALONE
◆ intermodule_correction()
double CP::EgammaCalibrationAndSmearingTool::intermodule_correction |
( |
double |
Ecl, |
|
|
double |
phi, |
|
|
double |
eta |
|
) |
| const |
Definition at line 2034 of file EgammaCalibrationAndSmearingTool.cxx.
2041 double Ecl_corr = 0.;
2059 phi_mod = fmod(phi, 2 *
pi / 16.) +
pi / 8.;
2061 phi_mod = fmod(phi, 2 *
pi / 16.);
2064 if (std::abs(eta) <= 1.37) {
2066 if (phi < (-7 *
pi / 8) && phi > (-1 *
pi))
2070 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 175.2759))) *
2071 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-189.3612))))));
2072 if (phi < (-6 *
pi / 8) &&
phi > (-7 *
pi / 8))
2076 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 170.8305))) *
2077 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-233.3782))))));
2078 if (phi < (-5 *
pi / 8) &&
phi > (-6 *
pi / 8))
2082 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 147.1451))) *
2083 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-139.3386))))));
2084 if (phi < (-4 *
pi / 8) &&
phi > (-5 *
pi / 8))
2088 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 168.4644))) *
2089 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-246.2897))))));
2090 if (phi < (-3 *
pi / 8) &&
phi > (-4 *
pi / 8))
2094 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 177.6703))) *
2095 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.3227))))));
2096 if (phi < (-2 *
pi / 8) &&
phi > (-3 *
pi / 8))
2100 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 145.0693))) *
2101 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-242.1771))))));
2102 if (phi < (-1 *
pi / 8) &&
phi > (-2 *
pi / 8))
2106 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 132.3303))) *
2107 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-166.1833))))));
2108 if (phi < (0 *
pi / 8) &&
phi > (-1 *
pi / 8))
2112 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 127.6780))) *
2113 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-150.0700))))));
2114 if (phi < (1 *
pi / 8) &&
phi > (0 *
pi / 8))
2118 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 172.0679))) *
2119 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-235.3293))))));
2120 if (phi < (2 *
pi / 8) &&
phi > (1 *
pi / 8))
2124 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 190.3524))) *
2125 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.9400))))));
2126 if (phi < (3 *
pi / 8) &&
phi > (2 *
pi / 8))
2130 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 158.0540))) *
2131 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-165.3893))))));
2132 if (phi < (4 *
pi / 8) &&
phi > (3 *
pi / 8))
2136 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 162.2793))) *
2137 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-133.5131))))));
2138 if (phi < (5 *
pi / 8) &&
phi > (4 *
pi / 8))
2142 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 180.5270))) *
2143 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-168.5074))))));
2144 if (phi < (6 *
pi / 8) &&
phi > (5 *
pi / 8))
2148 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 128.2277))) *
2149 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-154.4455))))));
2150 if (phi < (7 *
pi / 8) &&
phi > (6 *
pi / 8))
2154 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 192.1216))) *
2155 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.0727))))));
2156 if (phi < (8 *
pi / 8) &&
phi > (7 *
pi / 8))
2160 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 199.1735))) *
2161 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-176.4056))))));
2176 DivInt = (
int)(phi / ((2 *
pi) / 16.));
2177 double phi_mod =
phi - DivInt * (2 *
pi / 16.);
2184 if (std::abs(eta) <= 1.4) {
2187 if (phi < (3 *
pi) / 4. && phi >=
pi / 4.) {
2189 Ecl / (1 - 0.131 * ((1 / (1 +
exp((phi_mod - 0.2) * 199.08))) *
2190 (1 / (1 +
exp((phi_mod - 0.2) * (-130.36))))));
2194 if (phi < pi / 4. && phi >= -
pi / 4.) {
2196 Ecl / (1 - 0.0879 * ((1 / (1 +
exp((phi_mod - 0.2) * 221.01))) *
2197 (1 / (1 +
exp((phi_mod - 0.2) * (-149.51))))));
2200 if (phi < -pi / 4. && phi >= (-3 *
pi) / 4.) {
2202 Ecl / (1 - 0.0605 * ((1 / (1 +
exp((phi_mod - 0.2) * 281.37))) *
2203 (1 / (1 +
exp((phi_mod - 0.2) * (-170.29))))));
2206 if ((phi < (-3 *
pi) / 4.) || (
phi >= (3 *
pi) / 4.)) {
2208 Ecl / (1 - 0.102 * ((1 / (1 +
exp((phi_mod - 0.2) * 235.37))) *
2209 (1 / (1 +
exp((phi_mod - 0.2) * (-219.04))))));
◆ isAffectedBySystematic()
◆ metaDataStop()
StatusCode asg::AsgMetadataTool::metaDataStop |
( |
| ) |
|
|
protectedvirtualinherited |
◆ msg() [1/2]
◆ msg() [2/2]
◆ 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.
◆ msgLvl()
◆ oldtool_resolution_flag_this_event()
◆ oldtool_scale_flag_this_event()
◆ outputHandles()
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.
◆ outputMetaStore()
AsgMetadataTool::MetaStorePtr_t asg::AsgMetadataTool::outputMetaStore |
( |
| ) |
const |
|
inherited |
Accessor for the output metadata store.
Definition at line 97 of file AsgMetadataTool.cxx.
99 #ifdef XAOD_STANDALONE
101 #else // XAOD_STANDALONE
103 #endif // XAOD_STANDALONE
◆ print() [1/2]
void asg::AsgTool::print |
( |
| ) |
const |
|
virtualinherited |
Print the state of the tool.
Implements asg::IAsgTool.
Reimplemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
Definition at line 131 of file AsgTool.cxx.
◆ print() [2/2]
virtual void asg::IAsgTool::print |
( |
| ) |
const |
|
pure virtualinherited |
Print the state of the tool.
Implemented in JetRecTool, JetFinder, JetModifiedMassDrop, JetFromPseudojet, JetReclusterer, JetReclusteringTool, JetTruthLabelingTool, JetPileupLabelingTool, HI::HIPileupTool, asg::AsgTool, JetDumper, JetBottomUpSoftDrop, JetRecursiveSoftDrop, JetSoftDrop, JetConstituentsRetriever, JetSubStructureMomentToolsBase, JetSplitter, JetToolRunner, JetPruner, JetPseudojetRetriever, JetTrimmer, AsgHelloTool, and KtDeltaRTool.
◆ recommendedSystematics()
CP::SystematicSet CP::EgammaCalibrationAndSmearingTool::recommendedSystematics |
( |
| ) |
const |
|
overrideprivatevirtual |
◆ renounce()
◆ renounceArray()
◆ resolution()
◆ setRandomSeedFunction()
virtual void CP::EgammaCalibrationAndSmearingTool::setRandomSeedFunction |
( |
const IdFunction && |
function | ) |
|
|
inlineprivatevirtual |
◆ setupSystematics()
void CP::EgammaCalibrationAndSmearingTool::setupSystematics |
( |
| ) |
|
|
private |
Definition at line 1206 of file EgammaCalibrationAndSmearingTool.cxx.
1342 "EG_SCALE_S12EXTRALASTETABINRUN2", +1)] =
1345 "EG_SCALE_S12EXTRALASTETABINRUN2", -1)] =
1351 ScaleDecorrelation::FULL_ETA_CORRELATED or
1391 ScaleDecorrelation::FULL_ETA_CORRELATED) {
1395 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1396 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1397 SysInfo{always, flagup}; \
1398 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1399 SysInfo{always, flagdown};
1400 #include "ElectronPhotonFourMomentumCorrection/systematics_S12_2022.def"
1426 "EG_SCALE_LARCALIB_EXTRA2015PRE", +1)] =
1429 "EG_SCALE_LARCALIB_EXTRA2015PRE", -1)] =
1440 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE", +1)] =
1443 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE", -1)] =
1450 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE", +1)] =
1453 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE", -1)] =
1527 ScaleDecorrelation::ONENP_PLUS_UNCONR) {
1532 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1533 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1534 SysInfo{always, flagup}; \
1535 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1536 SysInfo{always, flagdown};
1537 #include "ElectronPhotonFourMomentumCorrection/systematics_1NPCOR_PLUS_UNCOR.def"
1547 "EG_SCALE_S12EXTRALASTETABINRUN2", +1)] =
1550 "EG_SCALE_S12EXTRALASTETABINRUN2", -1)] =
1555 using pairvector = std::vector<std::pair<double, double>>;
1556 const pairvector decorrelation_bins_BE = {{0., 1.45}, {1.52, 2.5}};
1557 const std::vector<double> decorrelation_edges_TWELVE = {
1558 0., 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4};
1559 std::vector<double> decorrelation_edges_MODULE = {
1560 0., 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.37, 1.52, 1.8};
1561 const std::vector<double> decorrelation_edges_MATERIAL = {0.0, 1.1, 1.5,
1564 std::vector<double> decorrelation_edges_S12;
1567 decorrelation_edges_S12.resize(5);
1568 decorrelation_edges_S12 = {0., 1.35, 1.5, 2.4, 2.5};
1571 decorrelation_edges_S12.resize(8);
1572 decorrelation_edges_S12 = {0., 0.6, 1.0, 1.35, 1.5, 1.8, 2.4, 2.5};
1575 decorrelation_edges_MODULE[7] = 1.4;
1576 decorrelation_edges_MODULE[8] = 1.5;
1581 decorrelation_edges_S12.resize(6);
1582 decorrelation_edges_S12 = {0., 0.6, 1.4, 1.5, 2.4, 2.5};
1595 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1596 if (bool(fullcorrelated)) { \
1597 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1598 SysInfo{always, flagup}; \
1599 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1600 SysInfo{always, flagdown}; \
1603 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1604 m_syst_description[CP::SystematicVariation( \
1605 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1606 m_syst_description[CP::SystematicVariation( \
1607 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1611 #include "ElectronPhotonFourMomentumCorrection/systematics.def"
1615 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1616 if (bool(fullcorrelated)) { \
1617 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1618 SysInfo{always, flagup}; \
1619 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1620 SysInfo{always, flagdown}; \
1623 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1624 m_syst_description[CP::SystematicVariation( \
1625 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1626 m_syst_description[CP::SystematicVariation( \
1627 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1631 #include "ElectronPhotonFourMomentumCorrection/systematics_S12_2022.def"
1634 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1635 if (bool(fullcorrelated)) { \
1636 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1637 SysInfo{always, flagup}; \
1638 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1639 SysInfo{always, flagdown}; \
1642 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1643 m_syst_description[CP::SystematicVariation( \
1644 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1645 m_syst_description[CP::SystematicVariation( \
1646 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1650 #include "ElectronPhotonFourMomentumCorrection/systematics_S12.def"
1657 const TAxis& axis_statistical_error(
m_rootTool->get_ZeeStat_eta_axis());
1658 for (
int ibin = 1; ibin <= axis_statistical_error.GetNbins(); ++ibin) {
1660 axis_statistical_error.GetBinLowEdge(ibin),
1661 axis_statistical_error.GetBinLowEdge(ibin + 1));
1683 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN0", +1)] =
1687 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN0", -1)] =
1691 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN1", +1)] =
1695 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN1", -1)] =
1699 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN2", +1)] =
1703 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN2", -1)] =
1715 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN0", +1)] =
1719 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN0", -1)] =
1723 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN1", +1)] =
1727 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN1", -1)] =
1735 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN0", +1)] =
1739 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN1", +1)] =
1743 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN0", -1)] =
1747 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN1", -1)] =
1806 SysInfo{DoubleOrAbsEtaCaloPredicate(0, 1.52, 1.82, 2.47),
1810 SysInfo{DoubleOrAbsEtaCaloPredicate(0, 1.52, 1.82, 2.47),
1841 "EG_SCALE_E4SCINTILLATOR__ETABIN0", +1)] =
1845 "EG_SCALE_E4SCINTILLATOR__ETABIN1", +1)] =
1849 "EG_SCALE_E4SCINTILLATOR__ETABIN2", +1)] =
1853 "EG_SCALE_E4SCINTILLATOR__ETABIN0", -1)] =
1857 "EG_SCALE_E4SCINTILLATOR__ETABIN1", -1)] =
1861 "EG_SCALE_E4SCINTILLATOR__ETABIN2", -1)] =
1880 "EG_RESOLUTION_ZSMEARING", -1)] =
1883 "EG_RESOLUTION_SAMPLINGTERM", +1)] =
1886 "EG_RESOLUTION_SAMPLINGTERM", -1)] =
1889 "EG_RESOLUTION_MATERIALID", +1)] =
1892 "EG_RESOLUTION_MATERIALID", -1)] =
1895 "EG_RESOLUTION_MATERIALCALO", +1)] =
1898 "EG_RESOLUTION_MATERIALCALO", -1)] =
1901 "EG_RESOLUTION_MATERIALGAP", +1)] =
1904 "EG_RESOLUTION_MATERIALGAP", -1)] =
1907 "EG_RESOLUTION_MATERIALCRYO", +1)] =
1910 "EG_RESOLUTION_MATERIALCRYO", -1)] =
1931 "EG_RESOLUTION_MATERIALIBL", +1)] =
1934 "EG_RESOLUTION_MATERIALIBL", -1)] =
1937 "EG_RESOLUTION_MATERIALPP0", +1)] =
1940 "EG_RESOLUTION_MATERIALPP0", -1)] =
◆ setUseIncidents()
void asg::AsgMetadataTool::setUseIncidents |
( |
const bool |
flag | ) |
|
|
inlineprotectedinherited |
◆ sysInitialize()
StatusCode asg::AsgMetadataTool::sysInitialize |
( |
| ) |
|
|
virtualinherited |
Function initialising the tool in the correct way in Athena.
This function is used to set up the callbacks from IncidentSvc in Athena at the right time during initialisation, without the user having to do anything special in his/her code.
Reimplemented from AthCommonDataStore< AthCommonMsg< AlgTool > >.
Definition at line 110 of file AsgMetadataTool.cxx.
112 #ifndef XAOD_STANDALONE
119 incSvc->addListener(
this, IncidentType::BeginEvent, 0,
false );
124 #endif // not XAOD_STANDALONE
127 return StatusCode::SUCCESS;
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ xAOD2ptype()
◆ AUTO
const int CP::EgammaCalibrationAndSmearingTool::AUTO = 2 |
|
staticprivate |
◆ m_ADCLinearity_tool
std::shared_ptr<LinearityADC> CP::EgammaCalibrationAndSmearingTool::m_ADCLinearity_tool |
|
private |
◆ m_beginInputFileCalled
bool asg::AsgMetadataTool::m_beginInputFileCalled |
|
privateinherited |
Flag helping to discover when the tool misses the opening of the first input file.
Definition at line 126 of file AsgMetadataTool.h.
◆ m_caloDistPhiUnifCorr
std::unique_ptr<TH2> CP::EgammaCalibrationAndSmearingTool::m_caloDistPhiUnifCorr |
|
private |
◆ m_currentResolutionVariation_data
◆ m_currentResolutionVariation_MC
◆ m_currentScalePredicate
EgammaPredicate CP::EgammaCalibrationAndSmearingTool::m_currentScalePredicate |
|
private |
◆ m_currentScaleVariation_data
◆ m_currentScaleVariation_MC
◆ m_decorateEmva
bool CP::EgammaCalibrationAndSmearingTool::m_decorateEmva |
|
private |
◆ m_decorrelation_model_name
std::string CP::EgammaCalibrationAndSmearingTool::m_decorrelation_model_name |
|
private |
◆ m_decorrelation_model_resolution
◆ m_decorrelation_model_resolution_name
std::string CP::EgammaCalibrationAndSmearingTool::m_decorrelation_model_resolution_name |
|
private |
◆ m_decorrelation_model_scale
ScaleDecorrelation CP::EgammaCalibrationAndSmearingTool::m_decorrelation_model_scale = ScaleDecorrelation::FULL |
|
private |
◆ m_decorrelation_model_scale_name
std::string CP::EgammaCalibrationAndSmearingTool::m_decorrelation_model_scale_name |
|
private |
◆ m_detStore
◆ m_doADCLinearityCorrection
int CP::EgammaCalibrationAndSmearingTool::m_doADCLinearityCorrection |
|
private |
◆ m_doLeakageCorrection
int CP::EgammaCalibrationAndSmearingTool::m_doLeakageCorrection |
|
private |
◆ m_doScaleCorrection
int CP::EgammaCalibrationAndSmearingTool::m_doScaleCorrection |
|
private |
◆ m_doSmearing
int CP::EgammaCalibrationAndSmearingTool::m_doSmearing |
|
private |
◆ m_ESModel
std::string CP::EgammaCalibrationAndSmearingTool::m_ESModel |
|
private |
◆ m_evtStore
◆ m_fixForMissingCells
Gaudi::Property<bool> CP::EgammaCalibrationAndSmearingTool::m_fixForMissingCells |
|
private |
◆ m_gain_tool
◆ m_gain_tool_run2
◆ m_inputMetaStore
◆ m_layer_recalibration_tool
◆ m_layer_recalibration_tune
std::string CP::EgammaCalibrationAndSmearingTool::m_layer_recalibration_tune |
|
private |
◆ m_MVACalibSvc
◆ m_MVAfolder
std::string CP::EgammaCalibrationAndSmearingTool::m_MVAfolder |
|
private |
◆ m_outputMetaStore
◆ m_ResolutionType
std::string CP::EgammaCalibrationAndSmearingTool::m_ResolutionType |
|
private |
◆ m_rootTool
◆ m_Run2Run3runNumberTransition
const unsigned int CP::EgammaCalibrationAndSmearingTool::m_Run2Run3runNumberTransition = 400000 |
|
staticprivate |
◆ m_set_seed_function
IdFunction CP::EgammaCalibrationAndSmearingTool::m_set_seed_function |
|
private |
◆ m_simulation
◆ m_syst_description
◆ m_syst_description_resolution
◆ m_TESModel
◆ m_TResolutionType
◆ m_use_AFII
int CP::EgammaCalibrationAndSmearingTool::m_use_AFII |
|
private |
◆ m_use_ep_combination
bool CP::EgammaCalibrationAndSmearingTool::m_use_ep_combination |
|
private |
◆ m_use_full_statistical_error
bool CP::EgammaCalibrationAndSmearingTool::m_use_full_statistical_error |
|
private |
◆ m_use_mapping_correction
bool CP::EgammaCalibrationAndSmearingTool::m_use_mapping_correction |
|
private |
◆ m_use_mva_calibration
int CP::EgammaCalibrationAndSmearingTool::m_use_mva_calibration |
|
private |
◆ m_use_temp_correction201215
int CP::EgammaCalibrationAndSmearingTool::m_use_temp_correction201215 |
|
private |
◆ m_use_uA2MeV_2015_first2weeks_correction
int CP::EgammaCalibrationAndSmearingTool::m_use_uA2MeV_2015_first2weeks_correction |
|
private |
◆ m_useCaloDistPhiUnifCorrection
int CP::EgammaCalibrationAndSmearingTool::m_useCaloDistPhiUnifCorrection |
|
private |
◆ m_useFastSim
int CP::EgammaCalibrationAndSmearingTool::m_useFastSim |
|
private |
◆ m_useGainCorrection
int CP::EgammaCalibrationAndSmearingTool::m_useGainCorrection |
|
private |
◆ m_useGainInterpolation
int CP::EgammaCalibrationAndSmearingTool::m_useGainInterpolation |
|
private |
◆ m_useIncidents
bool asg::AsgMetadataTool::m_useIncidents |
|
privateinherited |
◆ m_useIntermoduleCorrection
int CP::EgammaCalibrationAndSmearingTool::m_useIntermoduleCorrection |
|
private |
◆ m_useLayerCorrection
int CP::EgammaCalibrationAndSmearingTool::m_useLayerCorrection |
|
private |
◆ m_usePhiUniformCorrection
int CP::EgammaCalibrationAndSmearingTool::m_usePhiUniformCorrection |
|
private |
◆ m_usePSCorrection
int CP::EgammaCalibrationAndSmearingTool::m_usePSCorrection |
|
private |
◆ m_user_random_run_number
int CP::EgammaCalibrationAndSmearingTool::m_user_random_run_number |
|
private |
◆ m_useS12Correction
int CP::EgammaCalibrationAndSmearingTool::m_useS12Correction |
|
private |
◆ m_useSaccCorrection
int CP::EgammaCalibrationAndSmearingTool::m_useSaccCorrection |
|
private |
◆ m_varHandleArraysDeclared
◆ m_varSF
double CP::EgammaCalibrationAndSmearingTool::m_varSF |
|
private |
◆ m_vhka
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Extra patterns decribing particle interation process.
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
@ LArCalibExtra2015PreDown
Electron_v1 Electron
Definition of the current "egamma version".
uint64_t eventNumber() const
The current event's event number.
Helper class to provide type-safe access to aux data.
@ LArTemperature2016PreUp
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
virtual double e() const override final
The total energy of the particle.
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
bool empty() const
returns: whether the set is empty
@ LArTemperature2015PreDown
bool use_intermodule_correction(egEnergyCorr::ESModel model)
Class to wrap a set of SystematicVariations.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
std::string egammaMVAToolFolder(egEnergyCorr::ESModel model)
const uint16_t AuthorFwdElectron
Electron reconstructed by the Forward cluster-based algorithm.
#define ATH_MSG_VERBOSE(x)
@ IS_SIMULATION
true: simulation, false: data
uint32_t runNumber() const
The current event's run number.
virtual void setOwner(IDataHandleHolder *o)=0
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
@ LArTemperature2015PreUp
@ Error
Some error happened during the object correction.
bool isConvertedPhoton(const xAOD::Egamma *eg, bool excludeTRT=false)
is the object a converted photon
Helper class to provide type-safe access to aux data.
@ es2015cPRE_res_improved
bool isElectron(const xAOD::Egamma *eg)
is the object an electron (not Fwd)
parameterization of correction for ADC non linearity
MsgStream & msg() const
The standard message stream.
virtual double phi() const
phi in [-pi,pi[
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
virtual double eta() const
pseudo rapidity
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
void insert(const SystematicVariation &systematic)
description: insert a systematic into the set
std::string to_string(const DetectorType &type)
float get_phi_calo(const xAOD::CaloCluster &cluster, int author, bool do_throw=false)
an object that can create a AsgService
bool is_after_run1(egEnergyCorr::ESModel model)
@ S12ExtraLastEtaBinRun2Down
Class describing the basic event information.
Photon_v1 Photon
Definition of the current "egamma version".
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
bool isAvailable(ObjectId< OT, CM > id) const noexcept
@ Ok
The correction was done successfully.
bool empty() const noexcept
#define ATH_MSG_WARNING(x)
This module implements the central registry for handling systematic uncertainties with CP tools.
bool isPhoton(const xAOD::Egamma *eg)
is the object a photon
Return value from object correction CP tools.
bool use_phi_uniform_correction(egEnergyCorr::ESModel model)
float get_eta_calo(const xAOD::CaloCluster &cluster, int author, bool do_throw=false)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
std::unique_ptr< egGain::GainTool > gainToolFactory(egEnergyCorr::ESModel model)
@ LArTemperature2016PreDown
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Class describing a TrackParticle.
std::unique_ptr< egammaLayerRecalibTool > egammaLayerRecalibToolFactory(egEnergyCorr::ESModel model, int enableSacc)
setBGCode setTAP setLVL2ErrorBits bool
@ S12ExtraLastEtaBinRun2Up
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
bool eventType(EventType type) const
Check for one particular bitmask value.
static SystematicRegistry & getInstance()
Get the singleton instance of the registry for the curren thread.