|
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 271 of file EgammaCalibrationAndSmearingTool.cxx.
287 std::abs(
egamma.caloCluster()->
phi()) * 1E6 +
288 std::abs(
egamma.caloCluster()->
eta()) * 1E3 +
330 "This should be explicitly set by the user depending on the "
331 "data type (int)0=full sim, (int)1=fast sim");
334 "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 896 of file EgammaCalibrationAndSmearingTool.cxx.
908 ATH_MSG_DEBUG(
"applying energy recalibration before E0|E1|E2|E3 = "
909 <<
input.caloCluster()->energyBE(0) <<
"|"
910 <<
input.caloCluster()->energyBE(1) <<
"|"
911 <<
input.caloCluster()->energyBE(2) <<
"|"
912 <<
input.caloCluster()->energyBE(3));
921 << Es0Acc(*
input.caloCluster()) <<
"|"
922 << Es1Acc(*
input.caloCluster()) <<
"|"
923 << Es2Acc(*
input.caloCluster()) <<
"|"
924 << Es3Acc(*
input.caloCluster()) <<
"|");
925 if (Es2Acc(*
input.caloCluster()) == 0 and
926 Es1Acc(*
input.caloCluster()) == 0 and
927 Es3Acc(*
input.caloCluster()) == 0 and
928 Es0Acc(*
input.caloCluster()) == 0 and
929 (std::abs(
input.eta()) < 1.37 or
930 (std::abs(
input.eta()) > 1.55 and std::abs(
input.eta()) < 2.47))) {
939 if (
input.author() !=
956 const double etaden =
959 :
input.caloCluster()->eta();
961 energy / cosh(etaden), ptype);
975 unsigned int runNumber_for_tool = 0;
980 runNumber_for_tool = event_info.
runNumber();
982 const auto cl_eta =
input.caloCluster()->eta();
983 double etaCalo = 0, phiCalo = 0;
1003 double etaC =
input.caloCluster()->eta();
1004 double phiC =
input.caloCluster()->phi();
1006 ieta = ieta == 0 ? 1
1011 iphi = iphi == 0 ? 1
1017 "energy after phi uniformity correction (for calo distortion) = "
1030 double et =
energy / std::cosh(cl_eta);
1040 const auto es2 = Es2Acc.isAvailable(*
input.caloCluster())
1041 ? Es2Acc(*
input.caloCluster())
1042 :
input.caloCluster()->energyBE(2);
1043 if (!(std::abs(cl_eta) < 1.52 and std::abs(cl_eta) > 1.37) and
1044 std::abs(cl_eta) < 2.4)
1049 double et =
energy / std::cosh(cl_eta);
1058 randomrunnumber_getter(
"RandomRunNumber");
1059 if (randomrunnumber_getter.isAvailable(event_info)) {
1060 runNumber_for_tool = randomrunnumber_getter(event_info);
1063 "Pileup tool not run before using "
1064 "ElectronPhotonFourMomentumCorrection! Assuming it is 2016. If you "
1065 "want to force a specific period set the property randomRunNumber "
1066 "of the tool, e.g. in the job option: "
1067 "tool.randomRunNumber = 123456 or "
1068 "tool.randomRunNumber = "
1069 "EgammaCalibrationAndSmearingToolRunNumbersExample.run_2016");
1077 const double eraw = ((Es0Acc.isAvailable(*
input.caloCluster())
1078 ? Es0Acc(*
input.caloCluster())
1079 :
input.caloCluster()->energyBE(0)) +
1081 ? Es1Acc(*
input.caloCluster())
1082 :
input.caloCluster()->energyBE(1)) +
1084 ? Es2Acc(*
input.caloCluster())
1085 :
input.caloCluster()->energyBE(2)) +
1087 ? Es3Acc(*
input.caloCluster())
1088 :
input.caloCluster()->energyBE(3)));
1101 input.caloCluster()->eta(),
1102 input.caloCluster()->etaBE(2),
1104 Es2Acc.isAvailable(*
input.caloCluster())
1105 ? Es2Acc(*
input.caloCluster())
1106 :
input.caloCluster()->energyBE(2),
1116 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 1928 of file EgammaCalibrationAndSmearingTool.cxx.
1942 if (systConfig.
empty())
1943 return StatusCode::SUCCESS;
1948 bool first_scale =
true;
1949 bool first_resolution =
true;
1950 for (
const auto&
it : systConfig) {
1953 if (not first_scale) {
1955 throw std::runtime_error(
"multiple scale variations not supported");
1957 first_scale =
false;
1964 if (not first_resolution) {
1965 ATH_MSG_ERROR(
"multiple resolution variations not supported");
1966 throw std::runtime_error(
1967 "multiple resolution variations not supported");
1969 first_resolution =
false;
1974 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 2164 of file EgammaCalibrationAndSmearingTool.cxx.
2166 constexpr
double PI =
M_PI;
2171 if (eta < -0.4 && eta > -0.6) {
2172 if (phi < (14 *
PI / 32.) && phi > (13 *
PI / 32.)) {
2174 }
else if (phi < (13 *
PI / 32.) && phi > (12 *
PI / 32.)) {
2191 if (eta < 0.2 && eta > 0.) {
2192 if (phi < (-7 * 2 *
PI / 32.) && phi > (-8 * 2 *
PI / 32.)) {
2197 else if (eta < 0.6 && eta > 0.4) {
2198 if (phi < 0 && phi > (-2 *
PI / 32.)) {
2200 }
else if (phi < (-4 * 2 *
PI / 32.) && phi > (-5 * 2 *
PI / 32.)) {
2205 else if (eta < 0.8 && eta > 0.6) {
2206 if (phi < (7 * 2 *
PI / 32.) && phi > (6 * 2 *
PI / 32.)) {
2211 else if (eta < 1.4 && eta > 1.2) {
2212 if (phi < (-9 * 2 *
PI / 32.) && phi > (-10 * 2 *
PI / 32.)) {
2214 }
else if (phi < (-11 * 2 *
PI / 32.) && phi > (-12 * 2 *
PI / 32.)) {
2219 else if (eta < 2.3 && eta > 2.1) {
2220 if (phi < (-12 * 2 *
PI / 32.) && phi > (-13 * 2 *
PI / 32.)) {
2225 else if (eta < 0. && eta > -0.2) {
2226 if (phi < (-12 * 2 *
PI / 32.) && phi > (-13 * 2 *
PI / 32.)) {
2228 }
else if (phi < (-8 * 2 *
PI / 32.) && phi > (-9 * 2 *
PI / 32.)) {
2233 else if (eta < -0.2 && eta > -0.4) {
2234 if (phi < (-9 * 2 *
PI / 32.) && phi > (-10 * 2 *
PI / 32.)) {
2239 else if (eta < -1.2 && eta > -1.4) {
2240 if (phi < (-6 * 2 *
PI / 32.) && phi > (-7 * 2 *
PI / 32.)) {
2245 else if (eta < -1.6 && eta > -1.8) {
2246 if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2251 else if (eta < -2.3 && eta > -2.5) {
2252 if (phi < (-8 * 2 *
PI / 32.) && phi > (-9 * 2 *
PI / 32.)) {
2254 }
else if (phi < (5 * 2 *
PI / 32.) && phi > (4 * 2 *
PI / 32.)) {
2256 }
else if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2258 }
else if (phi < (10 * 2 *
PI / 32.) && phi > (9 * 2 *
PI / 32.)) {
2260 }
else if (phi < (11 * 2 *
PI / 32.) && phi > (10 * 2 *
PI / 32.)) {
2268 if (eta < 0.6 && eta > 0.4) {
2269 if (phi < 0 && phi > (-2 *
PI / 32.)) {
2271 }
else if (phi < (-4 * 2 *
PI / 32.) && phi > (-5 * 2 *
PI / 32.)) {
2276 else if (eta < 0.8 && eta > 0.6) {
2277 if (phi < (7 * 2 *
PI / 32.) && phi > (6 * 2 *
PI / 32.)) {
2282 else if (eta < 1.4 && eta > 1.2) {
2283 if (phi < (-11 * 2 *
PI / 32.) && phi > (-12 * 2 *
PI / 32.)) {
2288 else if (eta < 2.0 && eta > 1.9) {
2289 if (phi < (10 * 2 *
PI / 32.) && phi > (9 * 2 *
PI / 32.)) {
2294 else if (eta < -1.2 && eta > -1.4) {
2295 if (phi < (-4 * 2 *
PI / 32.) && phi > (-5 * 2 *
PI / 32.)) {
2297 }
else if (phi < (-6 * 2 *
PI / 32.) && phi > (-7 * 2 *
PI / 32.)) {
2302 else if (eta < -1.6 && eta > -1.8) {
2303 if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2308 else if (eta < -2.3 && eta > -2.5) {
2309 if (phi < (-8 * 2 *
PI / 32.) && phi > (-9 * 2 *
PI / 32.)) {
2311 }
else if (phi < (5 * 2 *
PI / 32.) && phi > (4 * 2 *
PI / 32.)) {
2313 }
else if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2315 }
else if (phi < (10 * 2 *
PI / 32.) && phi > (9 * 2 *
PI / 32.)) {
2317 }
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 343 of file EgammaCalibrationAndSmearingTool.cxx.
369 }
else if (
m_ESModel ==
"es2015PRE_res_improved") {
373 }
else if (
m_ESModel ==
"es2015cPRE_res_improved") {
375 }
else if (
m_ESModel ==
"es2015c_summer") {
379 }
else if (
m_ESModel ==
"es2016data_mc15c") {
381 }
else if (
m_ESModel ==
"es2016data_mc15c_summer") {
383 }
else if (
m_ESModel ==
"es2016data_mc15c_summer_improved") {
385 }
else if (
m_ESModel ==
"es2016data_mc15c_final") {
389 }
else if (
m_ESModel ==
"es2017_R21_PRE") {
391 }
else if (
m_ESModel ==
"es2017_R21_v0") {
393 }
else if (
m_ESModel ==
"es2017_R21_v1") {
395 }
else if (
m_ESModel ==
"es2017_R21_ofc0_v1") {
397 }
else if (
m_ESModel ==
"es2018_R21_v0") {
399 }
else if (
m_ESModel ==
"es2018_R21_v1") {
401 }
else if (
m_ESModel ==
"es2022_R22_PRE") {
403 }
else if (
m_ESModel ==
"es2023_R22_Run2_v0") {
405 }
else if (
m_ESModel ==
"es2024_Run3_ofc0_v0") {
409 return StatusCode::FAILURE;
412 return StatusCode::FAILURE;
423 return StatusCode::FAILURE;
428 "Property useAFII is deprecated. It is now replaced with useFastSim, "
429 "which should be explicitly configured");
430 return StatusCode::FAILURE;
438 ATH_MSG_ERROR(
"Property useFastSim should be explicitly configured");
439 return StatusCode::FAILURE;
445 "Sample is FastSim but no AF3 calibration is available yet with "
446 "es2022_R22_PRE recommendations. Please get in touch with the EGamma "
447 "CP group in case you are using this");
448 return StatusCode::FAILURE;
467 ATH_MSG_WARNING(
"no decorrelation model specified, assuming full model");
476 return StatusCode::FAILURE;
482 "flag decorrelation model ignored for scale decorrelation model");
493 ATH_MSG_FATAL(
"cannot understand the scale decorrelation model '"
495 return StatusCode::FAILURE;
509 return StatusCode::FAILURE;
513 "not information how to initialize the scale decorrelation model");
514 return StatusCode::FAILURE;
522 "flag decorrelation model ignored for resolution decorrelation "
530 ATH_MSG_FATAL(
"cannot understand the resolution decorrelation model '"
532 return StatusCode::FAILURE;
546 return StatusCode::FAILURE;
553 m_rootTool = std::make_unique<AtlasRoot::egammaEnergyCorrectionTool>();
556 return StatusCode::FAILURE;
563 "Using linear interpolation in the gain tool (uncertainties only)");
581 "egammaMVACalibTool/tool_mva_electron");
582 config_mva_electron.setPropertyFromString(
"folder",
m_MVAfolder);
583 ATH_CHECK(config_mva_electron.setProperty(
"use_layer_corrected",
true));
585 ATH_CHECK(config_mva_electron.setProperty(
590 "egammaMVACalibTool/tool_mva_unconverted");
591 config_mva_unconverted.setPropertyFromString(
"folder",
m_MVAfolder);
593 config_mva_unconverted.setProperty(
"use_layer_corrected",
true));
594 ATH_CHECK(config_mva_unconverted.setProperty(
599 "egammaMVACalibTool/tool_mva_converted");
600 config_mva_converted.setPropertyFromString(
"folder",
m_MVAfolder);
601 ATH_CHECK(config_mva_converted.setProperty(
"use_layer_corrected",
true));
602 ATH_CHECK(config_mva_converted.setProperty(
607 std::ostringstream mva_service_name;
608 mva_service_name <<
"egammaMVASvc/service_mva_egamma_id"
609 << (
void const*)
this;
611 ATH_CHECK(config_mva_service.addPrivateTool(
"ElectronTool",
612 config_mva_electron));
613 ATH_CHECK(config_mva_service.addPrivateTool(
"UnconvertedPhotonTool",
614 config_mva_unconverted));
615 ATH_CHECK(config_mva_service.addPrivateTool(
"ConvertedPhotonTool",
616 config_mva_converted));
617 config_mva_service.setPropertyFromString(
"folder",
m_MVAfolder);
619 config_mva_service.setProperty(
"OutputLevel", this->msg().level()));
632 ATH_MSG_INFO(
"Layer recalibration already applied at cell level");
637 ATH_MSG_DEBUG(
"initializing layer recalibration tool (if needed)");
671 m_rootTool->use_uA2MeV_2015_first2weeks_correction(
680 throw std::runtime_error(
"ep combination not supported yet");
702 "cannot instantiate gain tool for this model (you can only disable "
703 "the gain tool, but not enable it)");
706 "initializing gain tool for run2 final precision recommendations");
708 "Gain corrections required but Zee scales are derived without Gain, "
709 "will cause inconsistency!");
711 "ElectronPhotonFourMomentumCorrection/v29/"
712 "gain_uncertainty_specialRun.root");
714 gain_tool_run_2_filename,
false,
"GainCorrection",
725 "ElectronPhotonFourMomentumCorrection/v25/linearity_ADC.root");
731 "es2023_R22_Run2_v0 recommendations use ADC corrections for scale "
732 "derivation. Disabling the ADCLinearity flag will create "
746 "ElectronPhotonFourMomentumCorrection/v33/"
747 "egammaEnergyCorrectionData.root");
748 std::unique_ptr<TFile> fCorr(
749 TFile::Open(phiUnifCorrfileName.c_str(),
"READ"));
751 dynamic_cast<TH2*
>(fCorr->Get(
"CaloDistortionPhiUniformityCorrection/"
752 "es2023_R22_Run2_v0/h2DcorrPhiUnif")));
756 "es2023_R22_Run2_v0 recommendations use CaloDistPhiUnif for scale "
757 "derivation. Disabling the CaloDistPhiUnif flag will create "
797 if (
registry.registerSystematics(*
this) != StatusCode::SUCCESS)
798 return StatusCode::FAILURE;
800 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 1977 of file EgammaCalibrationAndSmearingTool.cxx.
1984 double Ecl_corr = 0.;
2001 phi_mod = fmod(phi, 2 *
pi / 16.) +
pi / 8.;
2003 phi_mod = fmod(phi, 2 *
pi / 16.);
2006 if (std::abs(eta) <= 1.37) {
2008 if (phi < (-7 *
pi / 8) && phi > (-1 *
pi))
2012 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 175.2759))) *
2013 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-189.3612))))));
2014 if (phi < (-6 *
pi / 8) &&
phi > (-7 *
pi / 8))
2018 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 170.8305))) *
2019 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-233.3782))))));
2020 if (phi < (-5 *
pi / 8) &&
phi > (-6 *
pi / 8))
2024 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 147.1451))) *
2025 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-139.3386))))));
2026 if (phi < (-4 *
pi / 8) &&
phi > (-5 *
pi / 8))
2030 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 168.4644))) *
2031 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-246.2897))))));
2032 if (phi < (-3 *
pi / 8) &&
phi > (-4 *
pi / 8))
2036 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 177.6703))) *
2037 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.3227))))));
2038 if (phi < (-2 *
pi / 8) &&
phi > (-3 *
pi / 8))
2042 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 145.0693))) *
2043 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-242.1771))))));
2044 if (phi < (-1 *
pi / 8) &&
phi > (-2 *
pi / 8))
2048 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 132.3303))) *
2049 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-166.1833))))));
2050 if (phi < (0 *
pi / 8) &&
phi > (-1 *
pi / 8))
2054 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 127.6780))) *
2055 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-150.0700))))));
2056 if (phi < (1 *
pi / 8) &&
phi > (0 *
pi / 8))
2060 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 172.0679))) *
2061 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-235.3293))))));
2062 if (phi < (2 *
pi / 8) &&
phi > (1 *
pi / 8))
2066 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 190.3524))) *
2067 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.9400))))));
2068 if (phi < (3 *
pi / 8) &&
phi > (2 *
pi / 8))
2072 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 158.0540))) *
2073 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-165.3893))))));
2074 if (phi < (4 *
pi / 8) &&
phi > (3 *
pi / 8))
2078 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 162.2793))) *
2079 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-133.5131))))));
2080 if (phi < (5 *
pi / 8) &&
phi > (4 *
pi / 8))
2084 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 180.5270))) *
2085 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-168.5074))))));
2086 if (phi < (6 *
pi / 8) &&
phi > (5 *
pi / 8))
2090 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 128.2277))) *
2091 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-154.4455))))));
2092 if (phi < (7 *
pi / 8) &&
phi > (6 *
pi / 8))
2096 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 192.1216))) *
2097 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.0727))))));
2098 if (phi < (8 *
pi / 8) &&
phi > (7 *
pi / 8))
2102 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 199.1735))) *
2103 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-176.4056))))));
2118 DivInt = (
int)(phi / ((2 *
pi) / 16.));
2119 double phi_mod =
phi - DivInt * (2 *
pi / 16.);
2126 if (std::abs(eta) <= 1.4) {
2129 if (phi < (3 *
pi) / 4. && phi >=
pi / 4.) {
2131 Ecl / (1 - 0.131 * ((1 / (1 +
exp((phi_mod - 0.2) * 199.08))) *
2132 (1 / (1 +
exp((phi_mod - 0.2) * (-130.36))))));
2136 if (phi < pi / 4. && phi >= -
pi / 4.) {
2138 Ecl / (1 - 0.0879 * ((1 / (1 +
exp((phi_mod - 0.2) * 221.01))) *
2139 (1 / (1 +
exp((phi_mod - 0.2) * (-149.51))))));
2142 if (phi < -pi / 4. && phi >= (-3 *
pi) / 4.) {
2144 Ecl / (1 - 0.0605 * ((1 / (1 +
exp((phi_mod - 0.2) * 281.37))) *
2145 (1 / (1 +
exp((phi_mod - 0.2) * (-170.29))))));
2148 if ((phi < (-3 *
pi) / 4.) || (
phi >= (3 *
pi) / 4.)) {
2150 Ecl / (1 - 0.102 * ((1 / (1 +
exp((phi_mod - 0.2) * 235.37))) *
2151 (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 1185 of file EgammaCalibrationAndSmearingTool.cxx.
1310 "EG_SCALE_S12EXTRALASTETABINRUN2", +1)] =
1313 "EG_SCALE_S12EXTRALASTETABINRUN2", -1)] =
1319 ScaleDecorrelation::FULL_ETA_CORRELATED or
1350 ScaleDecorrelation::FULL_ETA_CORRELATED) {
1354 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1355 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1356 SysInfo{always, flagup}; \
1357 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1358 SysInfo{always, flagdown};
1359 #include "ElectronPhotonFourMomentumCorrection/systematics_S12_2022.def"
1384 "EG_SCALE_LARCALIB_EXTRA2015PRE", +1)] =
1387 "EG_SCALE_LARCALIB_EXTRA2015PRE", -1)] =
1398 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE", +1)] =
1401 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE", -1)] =
1408 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE", +1)] =
1411 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE", -1)] =
1482 ScaleDecorrelation::ONENP_PLUS_UNCONR) {
1487 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1488 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1489 SysInfo{always, flagup}; \
1490 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1491 SysInfo{always, flagdown};
1492 #include "ElectronPhotonFourMomentumCorrection/systematics_1NPCOR_PLUS_UNCOR.def"
1502 "EG_SCALE_S12EXTRALASTETABINRUN2", +1)] =
1505 "EG_SCALE_S12EXTRALASTETABINRUN2", -1)] =
1510 using pairvector = std::vector<std::pair<double, double>>;
1511 const pairvector decorrelation_bins_BE = {{0., 1.45}, {1.52, 2.5}};
1512 const std::vector<double> decorrelation_edges_TWELVE = {
1513 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};
1514 std::vector<double> decorrelation_edges_MODULE = {
1515 0., 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.37, 1.52, 1.8};
1516 const std::vector<double> decorrelation_edges_MATERIAL = {0.0, 1.1, 1.5,
1519 std::vector<double> decorrelation_edges_S12;
1522 decorrelation_edges_S12.resize(5);
1523 decorrelation_edges_S12 = {0., 1.35, 1.5, 2.4, 2.5};
1525 decorrelation_edges_S12.resize(8);
1526 decorrelation_edges_S12 = {0., 0.6, 1.0, 1.35, 1.5, 1.8, 2.4, 2.5};
1529 decorrelation_edges_MODULE[7] = 1.4;
1530 decorrelation_edges_MODULE[8] = 1.5;
1535 decorrelation_edges_S12.resize(6);
1536 decorrelation_edges_S12 = {0., 0.6, 1.4, 1.5, 2.4, 2.5};
1548 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1549 if (bool(fullcorrelated)) { \
1550 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1551 SysInfo{always, flagup}; \
1552 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1553 SysInfo{always, flagdown}; \
1556 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1557 m_syst_description[CP::SystematicVariation( \
1558 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1559 m_syst_description[CP::SystematicVariation( \
1560 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1564 #include "ElectronPhotonFourMomentumCorrection/systematics.def"
1567 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1568 if (bool(fullcorrelated)) { \
1569 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1570 SysInfo{always, flagup}; \
1571 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1572 SysInfo{always, flagdown}; \
1575 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1576 m_syst_description[CP::SystematicVariation( \
1577 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1578 m_syst_description[CP::SystematicVariation( \
1579 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1583 #include "ElectronPhotonFourMomentumCorrection/systematics_S12_2022.def"
1586 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1587 if (bool(fullcorrelated)) { \
1588 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1589 SysInfo{always, flagup}; \
1590 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1591 SysInfo{always, flagdown}; \
1594 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1595 m_syst_description[CP::SystematicVariation( \
1596 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1597 m_syst_description[CP::SystematicVariation( \
1598 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1602 #include "ElectronPhotonFourMomentumCorrection/systematics_S12.def"
1609 const TAxis& axis_statistical_error(
m_rootTool->get_ZeeStat_eta_axis());
1610 for (
int ibin = 1; ibin <= axis_statistical_error.GetNbins(); ++ibin) {
1612 axis_statistical_error.GetBinLowEdge(ibin),
1613 axis_statistical_error.GetBinLowEdge(ibin + 1));
1635 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN0", +1)] =
1639 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN0", -1)] =
1643 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN1", +1)] =
1647 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN1", -1)] =
1651 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN2", +1)] =
1655 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN2", -1)] =
1667 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN0", +1)] =
1671 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN0", -1)] =
1675 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN1", +1)] =
1679 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN1", -1)] =
1687 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN0", +1)] =
1691 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN1", +1)] =
1695 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN0", -1)] =
1699 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN1", -1)] =
1756 SysInfo{DoubleOrAbsEtaCaloPredicate(0, 1.52, 1.82, 2.47),
1760 SysInfo{DoubleOrAbsEtaCaloPredicate(0, 1.52, 1.82, 2.47),
1790 "EG_SCALE_E4SCINTILLATOR__ETABIN0", +1)] =
1794 "EG_SCALE_E4SCINTILLATOR__ETABIN1", +1)] =
1798 "EG_SCALE_E4SCINTILLATOR__ETABIN2", +1)] =
1802 "EG_SCALE_E4SCINTILLATOR__ETABIN0", -1)] =
1806 "EG_SCALE_E4SCINTILLATOR__ETABIN1", -1)] =
1810 "EG_SCALE_E4SCINTILLATOR__ETABIN2", -1)] =
1829 "EG_RESOLUTION_ZSMEARING", -1)] =
1832 "EG_RESOLUTION_SAMPLINGTERM", +1)] =
1835 "EG_RESOLUTION_SAMPLINGTERM", -1)] =
1838 "EG_RESOLUTION_MATERIALID", +1)] =
1841 "EG_RESOLUTION_MATERIALID", -1)] =
1844 "EG_RESOLUTION_MATERIALCALO", +1)] =
1847 "EG_RESOLUTION_MATERIALCALO", -1)] =
1850 "EG_RESOLUTION_MATERIALGAP", +1)] =
1853 "EG_RESOLUTION_MATERIALGAP", -1)] =
1856 "EG_RESOLUTION_MATERIALCRYO", +1)] =
1859 "EG_RESOLUTION_MATERIALCRYO", -1)] =
1879 "EG_RESOLUTION_MATERIALIBL", +1)] =
1882 "EG_RESOLUTION_MATERIALIBL", -1)] =
1885 "EG_RESOLUTION_MATERIALPP0", +1)] =
1888 "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.