|
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 266 of file EgammaCalibrationAndSmearingTool.cxx.
282 std::abs(
egamma.caloCluster()->
phi()) * 1E6 +
283 std::abs(
egamma.caloCluster()->
eta()) * 1E3 +
325 "This should be explicitly set by the user depending on the "
326 "data type (int)0=full sim, (int)1=fast sim");
329 "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 888 of file EgammaCalibrationAndSmearingTool.cxx.
900 ATH_MSG_DEBUG(
"applying energy recalibration before E0|E1|E2|E3 = "
901 <<
input.caloCluster()->energyBE(0) <<
"|"
902 <<
input.caloCluster()->energyBE(1) <<
"|"
903 <<
input.caloCluster()->energyBE(2) <<
"|"
904 <<
input.caloCluster()->energyBE(3));
913 << Es0Acc(*
input.caloCluster()) <<
"|"
914 << Es1Acc(*
input.caloCluster()) <<
"|"
915 << Es2Acc(*
input.caloCluster()) <<
"|"
916 << Es3Acc(*
input.caloCluster()) <<
"|");
917 if (Es2Acc(*
input.caloCluster()) == 0 and
918 Es1Acc(*
input.caloCluster()) == 0 and
919 Es3Acc(*
input.caloCluster()) == 0 and
920 Es0Acc(*
input.caloCluster()) == 0 and
921 (std::abs(
input.eta()) < 1.37 or
922 (std::abs(
input.eta()) > 1.55 and std::abs(
input.eta()) < 2.47))) {
931 if (
input.author() !=
948 const double etaden =
951 :
input.caloCluster()->eta();
953 energy / cosh(etaden), ptype);
967 unsigned int runNumber_for_tool = 0;
972 runNumber_for_tool = event_info.
runNumber();
974 const auto cl_eta =
input.caloCluster()->eta();
975 double etaCalo = 0, phiCalo = 0;
995 double etaC =
input.caloCluster()->eta();
996 double phiC =
input.caloCluster()->phi();
1003 iphi = iphi == 0 ? 1
1009 "energy after phi uniformity correction (for calo distortion) = "
1022 double et =
energy / std::cosh(cl_eta);
1032 const auto es2 = Es2Acc.isAvailable(*
input.caloCluster())
1033 ? Es2Acc(*
input.caloCluster())
1034 :
input.caloCluster()->energyBE(2);
1035 if (!(std::abs(cl_eta) < 1.52 and std::abs(cl_eta) > 1.37) and
1036 std::abs(cl_eta) < 2.4)
1041 double et =
energy / std::cosh(cl_eta);
1050 randomrunnumber_getter(
"RandomRunNumber");
1051 if (randomrunnumber_getter.isAvailable(event_info)) {
1052 runNumber_for_tool = randomrunnumber_getter(event_info);
1055 "Pileup tool not run before using "
1056 "ElectronPhotonFourMomentumCorrection! Assuming it is 2016. If you "
1057 "want to force a specific period set the property randomRunNumber "
1058 "of the tool, e.g. in the job option: "
1059 "tool.randomRunNumber = 123456 or "
1060 "tool.randomRunNumber = "
1061 "EgammaCalibrationAndSmearingToolRunNumbersExample.run_2016");
1069 const double eraw = ((Es0Acc.isAvailable(*
input.caloCluster())
1070 ? Es0Acc(*
input.caloCluster())
1071 :
input.caloCluster()->energyBE(0)) +
1073 ? Es1Acc(*
input.caloCluster())
1074 :
input.caloCluster()->energyBE(1)) +
1076 ? Es2Acc(*
input.caloCluster())
1077 :
input.caloCluster()->energyBE(2)) +
1079 ? Es3Acc(*
input.caloCluster())
1080 :
input.caloCluster()->energyBE(3)));
1093 input.caloCluster()->eta(),
1094 input.caloCluster()->etaBE(2),
1096 Es2Acc.isAvailable(*
input.caloCluster())
1097 ? Es2Acc(*
input.caloCluster())
1098 :
input.caloCluster()->energyBE(2),
1108 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 1908 of file EgammaCalibrationAndSmearingTool.cxx.
1922 if (systConfig.
empty())
1923 return StatusCode::SUCCESS;
1928 bool first_scale =
true;
1929 bool first_resolution =
true;
1930 for (
const auto&
it : systConfig) {
1933 if (not first_scale) {
1935 throw std::runtime_error(
"multiple scale variations not supported");
1937 first_scale =
false;
1944 if (not first_resolution) {
1945 ATH_MSG_ERROR(
"multiple resolution variations not supported");
1946 throw std::runtime_error(
1947 "multiple resolution variations not supported");
1949 first_resolution =
false;
1954 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 2143 of file EgammaCalibrationAndSmearingTool.cxx.
2145 constexpr
double PI =
M_PI;
2150 if (eta < -0.4 && eta > -0.6) {
2151 if (phi < (14 *
PI / 32.) && phi > (13 *
PI / 32.)) {
2153 }
else if (phi < (13 *
PI / 32.) && phi > (12 *
PI / 32.)) {
2169 if (eta < 0.2 && eta > 0.) {
2170 if (phi < (-7 * 2 *
PI / 32.) && phi > (-8 * 2 *
PI / 32.)) {
2175 else if (eta < 0.6 && eta > 0.4) {
2176 if (phi < 0 && phi > (-2 *
PI / 32.)) {
2178 }
else if (phi < (-4 * 2 *
PI / 32.) && phi > (-5 * 2 *
PI / 32.)) {
2183 else if (eta < 0.8 && eta > 0.6) {
2184 if (phi < (7 * 2 *
PI / 32.) && phi > (6 * 2 *
PI / 32.)) {
2189 else if (eta < 1.4 && eta > 1.2) {
2190 if (phi < (-9 * 2 *
PI / 32.) && phi > (-10 * 2 *
PI / 32.)) {
2192 }
else if (phi < (-11 * 2 *
PI / 32.) && phi > (-12 * 2 *
PI / 32.)) {
2197 else if (eta < 2.3 && eta > 2.1) {
2198 if (phi < (-12 * 2 *
PI / 32.) && phi > (-13 * 2 *
PI / 32.)) {
2203 else if (eta < 0. && eta > -0.2) {
2204 if (phi < (-12 * 2 *
PI / 32.) && phi > (-13 * 2 *
PI / 32.)) {
2206 }
else if (phi < (-8 * 2 *
PI / 32.) && phi > (-9 * 2 *
PI / 32.)) {
2211 else if (eta < -0.2 && eta > -0.4) {
2212 if (phi < (-9 * 2 *
PI / 32.) && phi > (-10 * 2 *
PI / 32.)) {
2217 else if (eta < -1.2 && eta > -1.4) {
2218 if (phi < (-6 * 2 *
PI / 32.) && phi > (-7 * 2 *
PI / 32.)) {
2223 else if (eta < -1.6 && eta > -1.8) {
2224 if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2229 else if (eta < -2.3 && eta > -2.5) {
2230 if (phi < (-8 * 2 *
PI / 32.) && phi > (-9 * 2 *
PI / 32.)) {
2232 }
else if (phi < (5 * 2 *
PI / 32.) && phi > (4 * 2 *
PI / 32.)) {
2234 }
else if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2236 }
else if (phi < (10 * 2 *
PI / 32.) && phi > (9 * 2 *
PI / 32.)) {
2238 }
else if (phi < (11 * 2 *
PI / 32.) && phi > (10 * 2 *
PI / 32.)) {
2246 if (eta < 0.6 && eta > 0.4) {
2247 if (phi < 0 && phi > (-2 *
PI / 32.)) {
2249 }
else if (phi < (-4 * 2 *
PI / 32.) && phi > (-5 * 2 *
PI / 32.)) {
2254 else if (eta < 0.8 && eta > 0.6) {
2255 if (phi < (7 * 2 *
PI / 32.) && phi > (6 * 2 *
PI / 32.)) {
2260 else if (eta < 1.4 && eta > 1.2) {
2261 if (phi < (-11 * 2 *
PI / 32.) && phi > (-12 * 2 *
PI / 32.)) {
2266 else if (eta < 2.0 && eta > 1.9) {
2267 if (phi < (10 * 2 *
PI / 32.) && phi > (9 * 2 *
PI / 32.)) {
2272 else if (eta < -1.2 && eta > -1.4) {
2273 if (phi < (-4 * 2 *
PI / 32.) && phi > (-5 * 2 *
PI / 32.)) {
2275 }
else if (phi < (-6 * 2 *
PI / 32.) && phi > (-7 * 2 *
PI / 32.)) {
2280 else if (eta < -1.6 && eta > -1.8) {
2281 if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2286 else if (eta < -2.3 && eta > -2.5) {
2287 if (phi < (-8 * 2 *
PI / 32.) && phi > (-9 * 2 *
PI / 32.)) {
2289 }
else if (phi < (5 * 2 *
PI / 32.) && phi > (4 * 2 *
PI / 32.)) {
2291 }
else if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2293 }
else if (phi < (10 * 2 *
PI / 32.) && phi > (9 * 2 *
PI / 32.)) {
2295 }
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 338 of file EgammaCalibrationAndSmearingTool.cxx.
364 }
else if (
m_ESModel ==
"es2015PRE_res_improved") {
368 }
else if (
m_ESModel ==
"es2015cPRE_res_improved") {
370 }
else if (
m_ESModel ==
"es2015c_summer") {
374 }
else if (
m_ESModel ==
"es2016data_mc15c") {
376 }
else if (
m_ESModel ==
"es2016data_mc15c_summer") {
378 }
else if (
m_ESModel ==
"es2016data_mc15c_summer_improved") {
380 }
else if (
m_ESModel ==
"es2016data_mc15c_final") {
384 }
else if (
m_ESModel ==
"es2017_R21_PRE") {
386 }
else if (
m_ESModel ==
"es2017_R21_v0") {
388 }
else if (
m_ESModel ==
"es2017_R21_v1") {
390 }
else if (
m_ESModel ==
"es2017_R21_ofc0_v1") {
392 }
else if (
m_ESModel ==
"es2018_R21_v0") {
394 }
else if (
m_ESModel ==
"es2018_R21_v1") {
396 }
else if (
m_ESModel ==
"es2022_R22_PRE") {
398 }
else if (
m_ESModel ==
"es2023_R22_Run2_v0") {
402 return StatusCode::FAILURE;
405 return StatusCode::FAILURE;
416 return StatusCode::FAILURE;
421 "Property useAFII is deprecated. It is now replaced with useFastSim, "
422 "which should be explicitly configured");
423 return StatusCode::FAILURE;
431 ATH_MSG_ERROR(
"Property useFastSim should be explicitly configured");
432 return StatusCode::FAILURE;
438 "Sample is FastSim but no AF3 calibration is available yet with "
439 "es2022_R22_PRE recommendations. Please get in touch with the EGamma "
440 "CP group in case you are using this");
441 return StatusCode::FAILURE;
460 ATH_MSG_WARNING(
"no decorrelation model specified, assuming full model");
469 return StatusCode::FAILURE;
475 "flag decorrelation model ignored for scale decorrelation model");
486 ATH_MSG_FATAL(
"cannot understand the scale decorrelation model '"
488 return StatusCode::FAILURE;
502 return StatusCode::FAILURE;
506 "not information how to initialize the scale decorrelation model");
507 return StatusCode::FAILURE;
515 "flag decorrelation model ignored for resolution decorrelation "
523 ATH_MSG_FATAL(
"cannot understand the resolution decorrelation model '"
525 return StatusCode::FAILURE;
539 return StatusCode::FAILURE;
546 m_rootTool = std::make_unique<AtlasRoot::egammaEnergyCorrectionTool>();
549 return StatusCode::FAILURE;
556 "Using linear interpolation in the gain tool (uncertainties only)");
574 "egammaMVACalibTool/tool_mva_electron");
575 config_mva_electron.setPropertyFromString(
"folder",
m_MVAfolder);
576 ATH_CHECK(config_mva_electron.setProperty(
"use_layer_corrected",
true));
578 ATH_CHECK(config_mva_electron.setProperty(
583 "egammaMVACalibTool/tool_mva_unconverted");
584 config_mva_unconverted.setPropertyFromString(
"folder",
m_MVAfolder);
586 config_mva_unconverted.setProperty(
"use_layer_corrected",
true));
587 ATH_CHECK(config_mva_unconverted.setProperty(
592 "egammaMVACalibTool/tool_mva_converted");
593 config_mva_converted.setPropertyFromString(
"folder",
m_MVAfolder);
594 ATH_CHECK(config_mva_converted.setProperty(
"use_layer_corrected",
true));
595 ATH_CHECK(config_mva_converted.setProperty(
600 std::ostringstream mva_service_name;
601 mva_service_name <<
"egammaMVASvc/service_mva_egamma_id"
602 << (
void const*)
this;
604 ATH_CHECK(config_mva_service.addPrivateTool(
"ElectronTool",
605 config_mva_electron));
606 ATH_CHECK(config_mva_service.addPrivateTool(
"UnconvertedPhotonTool",
607 config_mva_unconverted));
608 ATH_CHECK(config_mva_service.addPrivateTool(
"ConvertedPhotonTool",
609 config_mva_converted));
611 config_mva_service.setProperty(
"OutputLevel", this->msg().level()));
624 ATH_MSG_INFO(
"Layer recalibration already applied at cell level");
629 ATH_MSG_DEBUG(
"initializing layer recalibration tool (if needed)");
663 m_rootTool->use_uA2MeV_2015_first2weeks_correction(
672 throw std::runtime_error(
"ep combination not supported yet");
694 "cannot instantiate gain tool for this model (you can only disable "
695 "the gain tool, but not enable it)");
698 "initializing gain tool for run2 final precision recommendations");
700 "Gain corrections required but Zee scales are derived without Gain, "
701 "will cause inconsistency!");
703 "ElectronPhotonFourMomentumCorrection/v29/"
704 "gain_uncertainty_specialRun.root");
706 gain_tool_run_2_filename,
false,
"GainCorrection",
717 "ElectronPhotonFourMomentumCorrection/v25/linearity_ADC.root");
723 "es2023_R22_Run2_v0 recommendations use ADC corrections for scale "
724 "derivation. Disabling the ADCLinearity flag will create "
738 "ElectronPhotonFourMomentumCorrection/v32/"
739 "egammaEnergyCorrectionData.root");
740 std::unique_ptr<TFile> fCorr(
741 TFile::Open(phiUnifCorrfileName.c_str(),
"READ"));
743 dynamic_cast<TH2*
>(fCorr->Get(
"CaloDistortionPhiUniformityCorrection/"
744 "es2023_R22_Run2_v0/h2DcorrPhiUnif")));
748 "es2023_R22_Run2_v0 recommendations use CaloDistPhiUnif for scale "
749 "derivation. Disabling the CaloDistPhiUnif flag will create "
789 if (
registry.registerSystematics(*
this) != StatusCode::SUCCESS)
790 return StatusCode::FAILURE;
792 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 1957 of file EgammaCalibrationAndSmearingTool.cxx.
1964 double Ecl_corr = 0.;
1980 phi_mod = fmod(phi, 2 *
pi / 16.) +
pi / 8.;
1982 phi_mod = fmod(phi, 2 *
pi / 16.);
1985 if (std::abs(eta) <= 1.37) {
1987 if (phi < (-7 *
pi / 8) && phi > (-1 *
pi))
1991 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 175.2759))) *
1992 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-189.3612))))));
1993 if (phi < (-6 *
pi / 8) &&
phi > (-7 *
pi / 8))
1997 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 170.8305))) *
1998 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-233.3782))))));
1999 if (phi < (-5 *
pi / 8) &&
phi > (-6 *
pi / 8))
2003 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 147.1451))) *
2004 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-139.3386))))));
2005 if (phi < (-4 *
pi / 8) &&
phi > (-5 *
pi / 8))
2009 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 168.4644))) *
2010 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-246.2897))))));
2011 if (phi < (-3 *
pi / 8) &&
phi > (-4 *
pi / 8))
2015 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 177.6703))) *
2016 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.3227))))));
2017 if (phi < (-2 *
pi / 8) &&
phi > (-3 *
pi / 8))
2021 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 145.0693))) *
2022 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-242.1771))))));
2023 if (phi < (-1 *
pi / 8) &&
phi > (-2 *
pi / 8))
2027 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 132.3303))) *
2028 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-166.1833))))));
2029 if (phi < (0 *
pi / 8) &&
phi > (-1 *
pi / 8))
2033 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 127.6780))) *
2034 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-150.0700))))));
2035 if (phi < (1 *
pi / 8) &&
phi > (0 *
pi / 8))
2039 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 172.0679))) *
2040 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-235.3293))))));
2041 if (phi < (2 *
pi / 8) &&
phi > (1 *
pi / 8))
2045 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 190.3524))) *
2046 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.9400))))));
2047 if (phi < (3 *
pi / 8) &&
phi > (2 *
pi / 8))
2051 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 158.0540))) *
2052 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-165.3893))))));
2053 if (phi < (4 *
pi / 8) &&
phi > (3 *
pi / 8))
2057 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 162.2793))) *
2058 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-133.5131))))));
2059 if (phi < (5 *
pi / 8) &&
phi > (4 *
pi / 8))
2063 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 180.5270))) *
2064 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-168.5074))))));
2065 if (phi < (6 *
pi / 8) &&
phi > (5 *
pi / 8))
2069 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 128.2277))) *
2070 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-154.4455))))));
2071 if (phi < (7 *
pi / 8) &&
phi > (6 *
pi / 8))
2075 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 192.1216))) *
2076 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.0727))))));
2077 if (phi < (8 *
pi / 8) &&
phi > (7 *
pi / 8))
2081 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 199.1735))) *
2082 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-176.4056))))));
2097 DivInt = (
int)(phi / ((2 *
pi) / 16.));
2098 double phi_mod =
phi - DivInt * (2 *
pi / 16.);
2105 if (std::abs(eta) <= 1.4) {
2108 if (phi < (3 *
pi) / 4. && phi >=
pi / 4.) {
2110 Ecl / (1 - 0.131 * ((1 / (1 +
exp((phi_mod - 0.2) * 199.08))) *
2111 (1 / (1 +
exp((phi_mod - 0.2) * (-130.36))))));
2115 if (phi < pi / 4. && phi >= -
pi / 4.) {
2117 Ecl / (1 - 0.0879 * ((1 / (1 +
exp((phi_mod - 0.2) * 221.01))) *
2118 (1 / (1 +
exp((phi_mod - 0.2) * (-149.51))))));
2121 if (phi < -pi / 4. && phi >= (-3 *
pi) / 4.) {
2123 Ecl / (1 - 0.0605 * ((1 / (1 +
exp((phi_mod - 0.2) * 281.37))) *
2124 (1 / (1 +
exp((phi_mod - 0.2) * (-170.29))))));
2127 if ((phi < (-3 *
pi) / 4.) || (
phi >= (3 *
pi) / 4.)) {
2129 Ecl / (1 - 0.102 * ((1 / (1 +
exp((phi_mod - 0.2) * 235.37))) *
2130 (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 1177 of file EgammaCalibrationAndSmearingTool.cxx.
1300 "EG_SCALE_S12EXTRALASTETABINRUN2", +1)] =
1303 "EG_SCALE_S12EXTRALASTETABINRUN2", -1)] =
1309 ScaleDecorrelation::FULL_ETA_CORRELATED or
1339 ScaleDecorrelation::FULL_ETA_CORRELATED) {
1343 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1344 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1345 SysInfo{always, flagup}; \
1346 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1347 SysInfo{always, flagdown};
1348 #include "ElectronPhotonFourMomentumCorrection/systematics_S12_2022.def"
1373 "EG_SCALE_LARCALIB_EXTRA2015PRE", +1)] =
1376 "EG_SCALE_LARCALIB_EXTRA2015PRE", -1)] =
1387 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE", +1)] =
1390 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE", -1)] =
1397 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE", +1)] =
1400 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE", -1)] =
1468 ScaleDecorrelation::ONENP_PLUS_UNCONR) {
1473 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1474 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1475 SysInfo{always, flagup}; \
1476 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1477 SysInfo{always, flagdown};
1478 #include "ElectronPhotonFourMomentumCorrection/systematics_1NPCOR_PLUS_UNCOR.def"
1488 "EG_SCALE_S12EXTRALASTETABINRUN2", +1)] =
1491 "EG_SCALE_S12EXTRALASTETABINRUN2", -1)] =
1496 using pairvector = std::vector<std::pair<double, double>>;
1497 const pairvector decorrelation_bins_BE = {{0., 1.45}, {1.52, 2.5}};
1498 const std::vector<double> decorrelation_edges_TWELVE = {
1499 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};
1500 std::vector<double> decorrelation_edges_MODULE = {
1501 0., 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.37, 1.52, 1.8};
1502 const std::vector<double> decorrelation_edges_MATERIAL = {0.0, 1.1, 1.5,
1505 std::vector<double> decorrelation_edges_S12;
1508 decorrelation_edges_S12.resize(5);
1509 decorrelation_edges_S12 = {0., 1.35, 1.5, 2.4, 2.5};
1511 decorrelation_edges_S12.resize(8);
1512 decorrelation_edges_S12 = {0., 0.6, 1.0, 1.35, 1.5, 1.8, 2.4, 2.5};
1515 decorrelation_edges_MODULE[7] = 1.4;
1516 decorrelation_edges_MODULE[8] = 1.5;
1521 decorrelation_edges_S12.resize(6);
1522 decorrelation_edges_S12 = {0., 0.6, 1.4, 1.5, 2.4, 2.5};
1533 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1534 if (bool(fullcorrelated)) { \
1535 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1536 SysInfo{always, flagup}; \
1537 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1538 SysInfo{always, flagdown}; \
1541 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1542 m_syst_description[CP::SystematicVariation( \
1543 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1544 m_syst_description[CP::SystematicVariation( \
1545 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1549 #include "ElectronPhotonFourMomentumCorrection/systematics.def"
1552 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1553 if (bool(fullcorrelated)) { \
1554 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1555 SysInfo{always, flagup}; \
1556 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1557 SysInfo{always, flagdown}; \
1560 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1561 m_syst_description[CP::SystematicVariation( \
1562 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1563 m_syst_description[CP::SystematicVariation( \
1564 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1568 #include "ElectronPhotonFourMomentumCorrection/systematics_S12_2022.def"
1571 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1572 if (bool(fullcorrelated)) { \
1573 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1574 SysInfo{always, flagup}; \
1575 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1576 SysInfo{always, flagdown}; \
1579 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1580 m_syst_description[CP::SystematicVariation( \
1581 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1582 m_syst_description[CP::SystematicVariation( \
1583 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1587 #include "ElectronPhotonFourMomentumCorrection/systematics_S12.def"
1594 const TAxis& axis_statistical_error(
m_rootTool->get_ZeeStat_eta_axis());
1595 for (
int ibin = 1; ibin <= axis_statistical_error.GetNbins(); ++ibin) {
1597 axis_statistical_error.GetBinLowEdge(ibin),
1598 axis_statistical_error.GetBinLowEdge(ibin + 1));
1620 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN0", +1)] =
1624 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN0", -1)] =
1628 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN1", +1)] =
1632 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN1", -1)] =
1636 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN2", +1)] =
1640 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN2", -1)] =
1652 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN0", +1)] =
1656 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN0", -1)] =
1660 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN1", +1)] =
1664 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN1", -1)] =
1672 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN0", +1)] =
1676 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN1", +1)] =
1680 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN0", -1)] =
1684 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN1", -1)] =
1739 SysInfo{DoubleOrAbsEtaCaloPredicate(0, 1.52, 1.82, 2.47),
1743 SysInfo{DoubleOrAbsEtaCaloPredicate(0, 1.52, 1.82, 2.47),
1772 "EG_SCALE_E4SCINTILLATOR__ETABIN0", +1)] =
1776 "EG_SCALE_E4SCINTILLATOR__ETABIN1", +1)] =
1780 "EG_SCALE_E4SCINTILLATOR__ETABIN2", +1)] =
1784 "EG_SCALE_E4SCINTILLATOR__ETABIN0", -1)] =
1788 "EG_SCALE_E4SCINTILLATOR__ETABIN1", -1)] =
1792 "EG_SCALE_E4SCINTILLATOR__ETABIN2", -1)] =
1811 "EG_RESOLUTION_ZSMEARING", -1)] =
1814 "EG_RESOLUTION_SAMPLINGTERM", +1)] =
1817 "EG_RESOLUTION_SAMPLINGTERM", -1)] =
1820 "EG_RESOLUTION_MATERIALID", +1)] =
1823 "EG_RESOLUTION_MATERIALID", -1)] =
1826 "EG_RESOLUTION_MATERIALCALO", +1)] =
1829 "EG_RESOLUTION_MATERIALCALO", -1)] =
1832 "EG_RESOLUTION_MATERIALGAP", +1)] =
1835 "EG_RESOLUTION_MATERIALGAP", -1)] =
1838 "EG_RESOLUTION_MATERIALCRYO", +1)] =
1841 "EG_RESOLUTION_MATERIALCRYO", -1)] =
1860 "EG_RESOLUTION_MATERIALIBL", +1)] =
1863 "EG_RESOLUTION_MATERIALIBL", -1)] =
1866 "EG_RESOLUTION_MATERIALPP0", +1)] =
1869 "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_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
bool isAvailable(const T_Aux &cont, SG::auxid_t auxid)
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
@ es2015cPRE_res_improved
bool is_run2(egEnergyCorr::ESModel model)
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
@ 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)
@ Ok
The correction was done successfully.
#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.