 |
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 |
|
void | callSingleEvent (columnar::MutableEgammaRange egammas, columnar::EventInfoId event) const |
|
void | callEvents (columnar::EventContextRange events) const override |
|
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, V, H > &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 |
|
|
Gaudi::Property< bool > | m_onlyElectrons {this, "onlyElectrons", false, "the tool will only be applied to electrons"} |
|
Gaudi::Property< bool > | m_onlyPhotons {this, "onlyPhotons", false, "the tool will only be applied to photons"} |
|
std::unique_ptr< Accessors > | m_accessors |
|
|
| EgammaCalibrationAndSmearingTool (const std::string &name) |
|
| ~EgammaCalibrationAndSmearingTool () |
|
StatusCode | initialize () override |
|
virtual CP::CorrectionCode | applyCorrection (xAOD::Egamma &) const override |
|
CP::CorrectionCode | applyCorrection (columnar::MutableEgammaId input, columnar::EventInfoId 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 (columnar::EgammaId particle) const |
|
egEnergyCorr::Scale::Variation | oldtool_scale_flag_this_event (columnar::EgammaId p, columnar::EventInfoId event_info) const |
|
egEnergyCorr::Resolution::Variation | oldtool_resolution_flag_this_event (columnar::EgammaId p, columnar::EventInfoId event_info) const |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &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 287 of file EgammaCalibrationAndSmearingTool.cxx.
300 const Accessors&
acc = *
tool.m_accessors;
305 std::abs(
acc.clusterPhiAcc(cluster)) * 1E6 +
306 std::abs(
acc.clusterEtaAcc(cluster)) * 1E3 +
307 acc.eventNumberAcc(ei));
349 "This should be explicitly set by the user depending on the "
350 "data type (int)0=full sim, (int)1=fast sim");
353 "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]
Definition at line 971 of file EgammaCalibrationAndSmearingTool.cxx.
981 ATH_MSG_DEBUG(
"applying energy recalibration before E0|E1|E2|E3 = "
982 <<
acc.energyBEAcc (inputCluster, 0) <<
"|"
983 <<
acc.energyBEAcc (inputCluster, 1) <<
"|"
984 <<
acc.energyBEAcc (inputCluster, 2) <<
"|"
985 <<
acc.energyBEAcc (inputCluster, 3));
992 <<
acc.Es0Acc(inputCluster) <<
"|"
993 <<
acc.Es1Acc(inputCluster) <<
"|"
994 <<
acc.Es2Acc(inputCluster) <<
"|"
995 <<
acc.Es3Acc(inputCluster) <<
"|");
996 if (
acc.Es2Acc(inputCluster) == 0 and
acc.Es1Acc(inputCluster) == 0 and
997 acc.Es3Acc(inputCluster) == 0 and
acc.Es0Acc(inputCluster) == 0 and
998 (std::abs(
acc.etaAcc (input)) < 1.37 or (std::abs(
acc.etaAcc (input)) > 1.55 and std::abs(
acc.etaAcc (input)) < 2.47)))
1008 if (
acc.authorAcc (input) !=
1029 const double etaden =
1032 :
acc.clusterEtaAcc(inputCluster);
1034 energy / cosh(etaden), ptype);
1048 unsigned int runNumber_for_tool = 0;
1053 runNumber_for_tool =
acc.runNumberAcc(event_info);
1055 const auto cl_eta =
acc.clusterEtaAcc(inputCluster);
1056 double etaCalo = 0, phiCalo = 0;
1058 etaCalo =
acc.etaCaloAcc(inputCluster,
acc.authorAcc(input),
false);
1061 acc.phiCaloAcc(inputCluster,
acc.authorAcc(input),
false);
1078 double etaC =
acc.clusterEtaAcc(inputCluster);
1079 double phiC =
acc.clusterPhiAcc(inputCluster);
1081 ieta = ieta == 0 ? 1
1086 iphi = iphi == 0 ? 1
1092 "energy after phi uniformity correction (for calo distortion) = "
1105 double et =
energy / std::cosh(cl_eta);
1115 const auto es2 =
acc.Es2Acc.isAvailable(inputCluster)
1116 ?
acc.Es2Acc(inputCluster)
1117 :
acc.energyBEAcc (inputCluster,2);
1118 if (!(std::abs(cl_eta) < 1.52 and std::abs(cl_eta) > 1.37) and
1119 std::abs(cl_eta) < 2.4)
1124 double et =
energy / std::cosh(cl_eta);
1132 if (
acc.randomrunnumber_getter.isAvailable(event_info)) {
1133 runNumber_for_tool =
acc.randomrunnumber_getter(event_info);
1136 "Pileup tool not run before using "
1137 "ElectronPhotonFourMomentumCorrection! Assuming it is 2016. If you "
1138 "want to force a specific period set the property randomRunNumber "
1139 "of the tool, e.g. in the job option: "
1140 "tool.randomRunNumber = 123456 or "
1141 "tool.randomRunNumber = "
1142 "EgammaCalibrationAndSmearingToolRunNumbersExample.run_2016");
1150 const double eraw = ((
acc.Es0Acc.isAvailable(inputCluster)
1151 ?
acc.Es0Acc(inputCluster)
1152 :
acc.energyBEAcc(inputCluster,0)) +
1153 (
acc.Es1Acc.isAvailable(inputCluster)
1154 ?
acc.Es1Acc(inputCluster)
1155 :
acc.energyBEAcc(inputCluster,1)) +
1156 (
acc.Es2Acc.isAvailable(inputCluster)
1157 ?
acc.Es2Acc(inputCluster)
1158 :
acc.energyBEAcc(inputCluster,2)) +
1159 (
acc.Es3Acc.isAvailable(inputCluster)
1160 ?
acc.Es3Acc(inputCluster)
1161 :
acc.energyBEAcc(inputCluster,3)));
1174 inputCluster(
acc.clusterEtaAcc),
1175 inputCluster(
acc.clusterEtaBEAcc,2),
1176 acc.etaCaloAcc(inputCluster,
acc.authorAcc (input),
false),
energy,
1177 acc.Es2Acc.isAvailable(inputCluster)
1178 ?
acc.Es2Acc(inputCluster)
1179 : inputCluster(
acc.energyBEAcc,2),
1188 const double m2 =
acc.mAcc (input) *
acc.mAcc (input);
1189 const double p2 = new_energy2 >
m2 ? new_energy2 -
m2 : 0.;
1190 acc.ptOutDec (input) = sqrt(
p2) / cosh(
acc.etaAcc (input));
◆ applyCorrection() [2/2]
◆ 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 2098 of file EgammaCalibrationAndSmearingTool.cxx.
2112 if (systConfig.
empty())
2113 return StatusCode::SUCCESS;
2118 bool first_scale =
true;
2119 bool first_resolution =
true;
2120 for (
const auto&
it : systConfig) {
2123 if (not first_scale) {
2125 throw std::runtime_error(
"multiple scale variations not supported");
2127 first_scale =
false;
2134 if (not first_resolution) {
2135 ATH_MSG_ERROR(
"multiple resolution variations not supported");
2136 throw std::runtime_error(
2137 "multiple resolution variations not supported");
2139 first_resolution =
false;
2144 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 201 of file AsgMetadataTool.cxx.
204 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, BookkeeperDumperTool, Trig::TrigDecisionTool, xAODMaker::TriggerMenuMetaDataTool, xAODMaker::TruthMetaDataTool, Trig::xAODBunchCrossingTool, TauAnalysisTools::TauEfficiencyCorrectionsTool, and TauAnalysisTools::TauSmearingTool.
Definition at line 185 of file AsgMetadataTool.cxx.
188 return StatusCode::SUCCESS;
◆ callEvents()
◆ callSingleEvent()
◆ correctedCopy() [1/2]
◆ correctedCopy() [2/2]
◆ correction_phi_unif()
double CP::EgammaCalibrationAndSmearingTool::correction_phi_unif |
( |
double |
eta, |
|
|
double |
phi |
|
) |
| const |
Definition at line 2336 of file EgammaCalibrationAndSmearingTool.cxx.
2338 constexpr
double PI =
M_PI;
2343 if (eta < -0.4 && eta > -0.6) {
2344 if (phi < (14 *
PI / 32.) && phi > (13 *
PI / 32.)) {
2346 }
else if (phi < (13 *
PI / 32.) && phi > (12 *
PI / 32.)) {
2365 if (eta < 0.2 && eta > 0.) {
2366 if (phi < (-7 * 2 *
PI / 32.) && phi > (-8 * 2 *
PI / 32.)) {
2371 else if (eta < 0.6 && eta > 0.4) {
2372 if (phi < 0 && phi > (-2 *
PI / 32.)) {
2374 }
else if (phi < (-4 * 2 *
PI / 32.) && phi > (-5 * 2 *
PI / 32.)) {
2379 else if (eta < 0.8 && eta > 0.6) {
2380 if (phi < (7 * 2 *
PI / 32.) && phi > (6 * 2 *
PI / 32.)) {
2385 else if (eta < 1.4 && eta > 1.2) {
2386 if (phi < (-9 * 2 *
PI / 32.) && phi > (-10 * 2 *
PI / 32.)) {
2388 }
else if (phi < (-11 * 2 *
PI / 32.) && phi > (-12 * 2 *
PI / 32.)) {
2393 else if (eta < 2.3 && eta > 2.1) {
2394 if (phi < (-12 * 2 *
PI / 32.) && phi > (-13 * 2 *
PI / 32.)) {
2399 else if (eta < 0. && eta > -0.2) {
2400 if (phi < (-12 * 2 *
PI / 32.) && phi > (-13 * 2 *
PI / 32.)) {
2402 }
else if (phi < (-8 * 2 *
PI / 32.) && phi > (-9 * 2 *
PI / 32.)) {
2407 else if (eta < -0.2 && eta > -0.4) {
2408 if (phi < (-9 * 2 *
PI / 32.) && phi > (-10 * 2 *
PI / 32.)) {
2413 else if (eta < -1.2 && eta > -1.4) {
2414 if (phi < (-6 * 2 *
PI / 32.) && phi > (-7 * 2 *
PI / 32.)) {
2419 else if (eta < -1.6 && eta > -1.8) {
2420 if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2425 else if (eta < -2.3 && eta > -2.5) {
2426 if (phi < (-8 * 2 *
PI / 32.) && phi > (-9 * 2 *
PI / 32.)) {
2428 }
else if (phi < (5 * 2 *
PI / 32.) && phi > (4 * 2 *
PI / 32.)) {
2430 }
else if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2432 }
else if (phi < (10 * 2 *
PI / 32.) && phi > (9 * 2 *
PI / 32.)) {
2434 }
else if (phi < (11 * 2 *
PI / 32.) && phi > (10 * 2 *
PI / 32.)) {
2442 if (eta < 0.6 && eta > 0.4) {
2443 if (phi < 0 && phi > (-2 *
PI / 32.)) {
2445 }
else if (phi < (-4 * 2 *
PI / 32.) && phi > (-5 * 2 *
PI / 32.)) {
2450 else if (eta < 0.8 && eta > 0.6) {
2451 if (phi < (7 * 2 *
PI / 32.) && phi > (6 * 2 *
PI / 32.)) {
2456 else if (eta < 1.4 && eta > 1.2) {
2457 if (phi < (-11 * 2 *
PI / 32.) && phi > (-12 * 2 *
PI / 32.)) {
2462 else if (eta < 2.0 && eta > 1.9) {
2463 if (phi < (10 * 2 *
PI / 32.) && phi > (9 * 2 *
PI / 32.)) {
2468 else if (eta < -1.2 && eta > -1.4) {
2469 if (phi < (-4 * 2 *
PI / 32.) && phi > (-5 * 2 *
PI / 32.)) {
2471 }
else if (phi < (-6 * 2 *
PI / 32.) && phi > (-7 * 2 *
PI / 32.)) {
2476 else if (eta < -1.6 && eta > -1.8) {
2477 if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2482 else if (eta < -2.3 && eta > -2.5) {
2483 if (phi < (-8 * 2 *
PI / 32.) && phi > (-9 * 2 *
PI / 32.)) {
2485 }
else if (phi < (5 * 2 *
PI / 32.) && phi > (4 * 2 *
PI / 32.)) {
2487 }
else if (phi < (9 * 2 *
PI / 32.) && phi > (8 * 2 *
PI / 32.)) {
2489 }
else if (phi < (10 * 2 *
PI / 32.) && phi > (9 * 2 *
PI / 32.)) {
2491 }
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 135 of file AsgMetadataTool.cxx.
141 if( inc.type() == IncidentType::BeginInputFile ) {
145 throw std::runtime_error(
"Couldn't call beginInputFile()" );
147 }
else if( inc.type() == IncidentType::EndInputFile ) {
150 throw std::runtime_error(
"Couldn't call endInputFile()" );
152 }
else if( inc.type() == IncidentType::BeginEvent ) {
160 throw std::runtime_error(
"Couldn't call beginInputFile()" );
165 throw std::runtime_error(
"Couldn't call beginEvent()" );
168 #ifdef XAOD_STANDALONE
169 }
else if( inc.type() == IncidentType::MetaDataStop ) {
172 throw std::runtime_error(
"Couldn't call metaDataStop()" );
175 #endif // XAOD_STANDALONE
177 ATH_MSG_WARNING(
"Unknown incident type received in AsgMetaDataTool: " << inc.type() );
◆ initialize()
StatusCode CP::EgammaCalibrationAndSmearingTool::initialize |
( |
| ) |
|
|
overrideprivatevirtual |
Implements CP::IEgammaCalibrationAndSmearingTool.
Definition at line 363 of file EgammaCalibrationAndSmearingTool.cxx.
389 }
else if (
m_ESModel ==
"es2015PRE_res_improved") {
393 }
else if (
m_ESModel ==
"es2015cPRE_res_improved") {
395 }
else if (
m_ESModel ==
"es2015c_summer") {
399 }
else if (
m_ESModel ==
"es2016data_mc15c") {
401 }
else if (
m_ESModel ==
"es2016data_mc15c_summer") {
403 }
else if (
m_ESModel ==
"es2016data_mc15c_summer_improved") {
405 }
else if (
m_ESModel ==
"es2016data_mc15c_final") {
409 }
else if (
m_ESModel ==
"es2017_R21_PRE") {
411 }
else if (
m_ESModel ==
"es2017_R21_v0") {
413 }
else if (
m_ESModel ==
"es2017_R21_v1") {
415 }
else if (
m_ESModel ==
"es2017_R21_ofc0_v1") {
417 }
else if (
m_ESModel ==
"es2018_R21_v0") {
419 }
else if (
m_ESModel ==
"es2018_R21_v1") {
421 }
else if (
m_ESModel ==
"es2022_R22_PRE") {
423 }
else if (
m_ESModel ==
"es2023_R22_Run2_v0") {
425 }
else if (
m_ESModel ==
"es2023_R22_Run2_v1") {
427 }
else if (
m_ESModel ==
"es2024_Run3_ofc0_v0") {
429 }
else if (
m_ESModel ==
"es2024_Run3_v0") {
433 return StatusCode::FAILURE;
436 return StatusCode::FAILURE;
447 return StatusCode::FAILURE;
452 "Property useAFII is deprecated. It is now replaced with useFastSim, "
453 "which should be explicitly configured");
454 return StatusCode::FAILURE;
462 ATH_MSG_ERROR(
"Property useFastSim should be explicitly configured");
463 return StatusCode::FAILURE;
469 "Sample is FastSim but no AF3 calibration is supported with "
470 "MC23 pre-recommendations (es2022_R22_PRE and es2024_Run3_ofc0_v0). "
471 "Please swtich to Run3 consolidated recommendations (es2024_Run3_v0), "
472 "or get in touch with the EGamma CP group in case you are using this");
473 return StatusCode::FAILURE;
492 ATH_MSG_WARNING(
"no decorrelation model specified, assuming full model");
501 return StatusCode::FAILURE;
507 "flag decorrelation model ignored for scale decorrelation model");
518 ATH_MSG_FATAL(
"cannot understand the scale decorrelation model '"
520 return StatusCode::FAILURE;
534 return StatusCode::FAILURE;
538 "not information how to initialize the scale decorrelation model");
539 return StatusCode::FAILURE;
547 "flag decorrelation model ignored for resolution decorrelation "
555 ATH_MSG_FATAL(
"cannot understand the resolution decorrelation model '"
557 return StatusCode::FAILURE;
571 return StatusCode::FAILURE;
578 m_rootTool = std::make_unique<AtlasRoot::egammaEnergyCorrectionTool>();
581 return StatusCode::FAILURE;
590 "Using linear interpolation in the gain tool (uncertainties only)");
608 "egammaMVACalibTool/tool_mva_electron");
609 config_mva_electron.setPropertyFromString(
"folder",
m_MVAfolder);
610 ATH_CHECK(config_mva_electron.setProperty(
"use_layer_corrected",
true));
612 ATH_CHECK(config_mva_electron.setProperty(
617 "egammaMVACalibTool/tool_mva_unconverted");
618 config_mva_unconverted.setPropertyFromString(
"folder",
m_MVAfolder);
620 config_mva_unconverted.setProperty(
"use_layer_corrected",
true));
621 ATH_CHECK(config_mva_unconverted.setProperty(
626 "egammaMVACalibTool/tool_mva_converted");
627 config_mva_converted.setPropertyFromString(
"folder",
m_MVAfolder);
628 ATH_CHECK(config_mva_converted.setProperty(
"use_layer_corrected",
true));
629 ATH_CHECK(config_mva_converted.setProperty(
634 std::ostringstream mva_service_name;
635 mva_service_name <<
"egammaMVASvc/service_mva_egamma_id"
636 << (
void const*)
this;
638 ATH_CHECK(config_mva_service.addPrivateTool(
"ElectronTool",
639 config_mva_electron));
640 ATH_CHECK(config_mva_service.addPrivateTool(
"UnconvertedPhotonTool",
641 config_mva_unconverted));
642 ATH_CHECK(config_mva_service.addPrivateTool(
"ConvertedPhotonTool",
643 config_mva_converted));
644 config_mva_service.setPropertyFromString(
"folder",
m_MVAfolder);
646 config_mva_service.setProperty(
"OutputLevel", this->msg().level()));
659 ATH_MSG_INFO(
"Layer recalibration already applied at cell level");
664 ATH_MSG_DEBUG(
"initializing layer recalibration tool (if needed)");
698 m_rootTool->use_uA2MeV_2015_first2weeks_correction(
707 throw std::runtime_error(
"ep combination not supported yet");
736 "cannot instantiate gain tool for this model (you can only disable "
737 "the gain tool, but not enable it)");
741 "initializing gain tool for run2 final precision recommendations");
743 "Gain corrections required but Zee scales are derived without Gain, "
744 "will cause inconsistency!");
746 "ElectronPhotonFourMomentumCorrection/v29/"
747 "gain_uncertainty_specialRun.root");
749 gain_tool_run_2_filename,
false,
"GainCorrection",
762 "ElectronPhotonFourMomentumCorrection/v25/linearity_ADC.root");
768 m_ESModel +
" recommendations use ADC corrections for scale "
769 "derivation. Disabling the ADCLinearity flag will create "
783 "ElectronPhotonFourMomentumCorrection/v33/"
784 "egammaEnergyCorrectionData.root");
785 std::unique_ptr<TFile> fCorr(
786 TFile::Open(phiUnifCorrfileName.c_str(),
"READ"));
788 dynamic_cast<TH2*
>(fCorr->Get(
"CaloDistortionPhiUniformityCorrection/"
789 "es2023_R22_Run2_v0/h2DcorrPhiUnif")));
793 m_ESModel +
" recommendations use CaloDistPhiUnif for scale "
794 "derivation. Disabling the CaloDistPhiUnif flag will create "
834 if (
registry.registerSystematics(*
this) != StatusCode::SUCCESS)
835 return StatusCode::FAILURE;
838 ATH_MSG_ERROR(
"Cannot select both onlyElectrons and onlyPhotons");
839 return StatusCode::FAILURE;
854 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 93 of file AsgMetadataTool.cxx.
95 #ifdef XAOD_STANDALONE
97 #else // XAOD_STANDALONE
99 #endif // XAOD_STANDALONE
◆ intermodule_correction()
double CP::EgammaCalibrationAndSmearingTool::intermodule_correction |
( |
double |
Ecl, |
|
|
double |
phi, |
|
|
double |
eta |
|
) |
| const |
Definition at line 2147 of file EgammaCalibrationAndSmearingTool.cxx.
2154 double Ecl_corr = 0.;
2173 phi_mod = fmod(phi, 2 *
pi / 16.) +
pi / 8.;
2175 phi_mod = fmod(phi, 2 *
pi / 16.);
2178 if (std::abs(eta) <= 1.37) {
2180 if (phi < (-7 *
pi / 8) && phi > (-1 *
pi))
2184 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 175.2759))) *
2185 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-189.3612))))));
2186 if (phi < (-6 *
pi / 8) &&
phi > (-7 *
pi / 8))
2190 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 170.8305))) *
2191 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-233.3782))))));
2192 if (phi < (-5 *
pi / 8) &&
phi > (-6 *
pi / 8))
2196 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 147.1451))) *
2197 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-139.3386))))));
2198 if (phi < (-4 *
pi / 8) &&
phi > (-5 *
pi / 8))
2202 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 168.4644))) *
2203 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-246.2897))))));
2204 if (phi < (-3 *
pi / 8) &&
phi > (-4 *
pi / 8))
2208 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 177.6703))) *
2209 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.3227))))));
2210 if (phi < (-2 *
pi / 8) &&
phi > (-3 *
pi / 8))
2214 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 145.0693))) *
2215 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-242.1771))))));
2216 if (phi < (-1 *
pi / 8) &&
phi > (-2 *
pi / 8))
2220 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 132.3303))) *
2221 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-166.1833))))));
2222 if (phi < (0 *
pi / 8) &&
phi > (-1 *
pi / 8))
2226 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 127.6780))) *
2227 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-150.0700))))));
2228 if (phi < (1 *
pi / 8) &&
phi > (0 *
pi / 8))
2232 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 172.0679))) *
2233 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-235.3293))))));
2234 if (phi < (2 *
pi / 8) &&
phi > (1 *
pi / 8))
2238 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 190.3524))) *
2239 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.9400))))));
2240 if (phi < (3 *
pi / 8) &&
phi > (2 *
pi / 8))
2244 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 158.0540))) *
2245 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-165.3893))))));
2246 if (phi < (4 *
pi / 8) &&
phi > (3 *
pi / 8))
2250 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 162.2793))) *
2251 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-133.5131))))));
2252 if (phi < (5 *
pi / 8) &&
phi > (4 *
pi / 8))
2256 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 180.5270))) *
2257 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-168.5074))))));
2258 if (phi < (6 *
pi / 8) &&
phi > (5 *
pi / 8))
2262 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 128.2277))) *
2263 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-154.4455))))));
2264 if (phi < (7 *
pi / 8) &&
phi > (6 *
pi / 8))
2268 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 192.1216))) *
2269 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.0727))))));
2270 if (phi < (8 *
pi / 8) &&
phi > (7 *
pi / 8))
2274 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 199.1735))) *
2275 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-176.4056))))));
2290 DivInt = (
int)(phi / ((2 *
pi) / 16.));
2291 double phi_mod =
phi - DivInt * (2 *
pi / 16.);
2298 if (std::abs(eta) <= 1.4) {
2301 if (phi < (3 *
pi) / 4. && phi >=
pi / 4.) {
2303 Ecl / (1 - 0.131 * ((1 / (1 +
exp((phi_mod - 0.2) * 199.08))) *
2304 (1 / (1 +
exp((phi_mod - 0.2) * (-130.36))))));
2308 if (phi < pi / 4. && phi >= -
pi / 4.) {
2310 Ecl / (1 - 0.0879 * ((1 / (1 +
exp((phi_mod - 0.2) * 221.01))) *
2311 (1 / (1 +
exp((phi_mod - 0.2) * (-149.51))))));
2314 if (phi < -pi / 4. && phi >= (-3 *
pi) / 4.) {
2316 Ecl / (1 - 0.0605 * ((1 / (1 +
exp((phi_mod - 0.2) * 281.37))) *
2317 (1 / (1 +
exp((phi_mod - 0.2) * (-170.29))))));
2320 if ((phi < (-3 *
pi) / 4.) || (
phi >= (3 *
pi) / 4.)) {
2322 Ecl / (1 - 0.102 * ((1 / (1 +
exp((phi_mod - 0.2) * 235.37))) *
2323 (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 102 of file AsgMetadataTool.cxx.
104 #ifdef XAOD_STANDALONE
106 #else // XAOD_STANDALONE
108 #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, LundVariablesTool, 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, LundVariablesTool, 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 1260 of file EgammaCalibrationAndSmearingTool.cxx.
1401 "EG_SCALE_S12EXTRALASTETABINRUN2", +1)] =
1404 "EG_SCALE_S12EXTRALASTETABINRUN2", -1)] =
1410 ScaleDecorrelation::FULL_ETA_CORRELATED or
1449 ScaleDecorrelation::FULL_ETA_CORRELATED) {
1452 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1453 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1454 SysInfo{always, flagup}; \
1455 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1456 SysInfo{always, flagdown};
1457 #include "ElectronPhotonFourMomentumCorrection/systematics_es2024_Run3_v0.def"
1462 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1463 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1464 SysInfo{always, flagup}; \
1465 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1466 SysInfo{always, flagdown};
1467 #include "ElectronPhotonFourMomentumCorrection/systematics_S12_2022.def"
1495 "EG_SCALE_LARCALIB_EXTRA2015PRE", +1)] =
1498 "EG_SCALE_LARCALIB_EXTRA2015PRE", -1)] =
1509 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE", +1)] =
1512 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE", -1)] =
1519 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE", +1)] =
1522 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE", -1)] =
1599 ScaleDecorrelation::ONENP_PLUS_UNCONR) {
1604 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1605 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1606 SysInfo{always, flagup}; \
1607 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1608 SysInfo{always, flagdown};
1609 #include "ElectronPhotonFourMomentumCorrection/systematics_1NPCOR_PLUS_UNCOR.def"
1619 "EG_SCALE_S12EXTRALASTETABINRUN2", +1)] =
1622 "EG_SCALE_S12EXTRALASTETABINRUN2", -1)] =
1627 using pairvector = std::vector<std::pair<double, double>>;
1628 const pairvector decorrelation_bins_BE = {{0., 1.45}, {1.52, 2.5}};
1629 const std::vector<double> decorrelation_edges_TWELVE = {
1630 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};
1631 std::vector<double> decorrelation_edges_MODULE = {
1632 0., 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.37, 1.52, 1.8};
1633 const std::vector<double> decorrelation_edges_MATERIAL = {0.0, 1.1, 1.5,
1635 std::vector<double> decorrelation_edges_S12_EXTRARUN3 = {
1638 std::vector<double> decorrelation_edges_S12;
1641 decorrelation_edges_S12.resize(5);
1642 decorrelation_edges_S12 = {0., 1.35, 1.5, 2.4, 2.5};
1646 decorrelation_edges_S12.resize(8);
1647 decorrelation_edges_S12 = {0., 0.6, 1.0, 1.35, 1.5, 1.8, 2.4, 2.5};
1650 decorrelation_edges_MODULE[7] = 1.4;
1651 decorrelation_edges_MODULE[8] = 1.5;
1656 decorrelation_edges_S12.resize(6);
1657 decorrelation_edges_S12 = {0., 0.6, 1.4, 1.5, 2.4, 2.5};
1671 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1672 if (bool(fullcorrelated)) { \
1673 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1674 SysInfo{always, flagup}; \
1675 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1676 SysInfo{always, flagdown}; \
1679 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1680 m_syst_description[CP::SystematicVariation( \
1681 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1682 m_syst_description[CP::SystematicVariation( \
1683 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1687 #include "ElectronPhotonFourMomentumCorrection/systematics.def"
1691 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1692 if (bool(fullcorrelated)) { \
1693 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1694 SysInfo{always, flagup}; \
1695 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1696 SysInfo{always, flagdown}; \
1699 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1700 m_syst_description[CP::SystematicVariation( \
1701 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1702 m_syst_description[CP::SystematicVariation( \
1703 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1707 #include "ElectronPhotonFourMomentumCorrection/systematics_S12_2022.def"
1710 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1711 if (bool(fullcorrelated)) { \
1712 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1713 SysInfo{always, flagup}; \
1714 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1715 SysInfo{always, flagdown}; \
1718 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1719 m_syst_description[CP::SystematicVariation( \
1720 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1721 m_syst_description[CP::SystematicVariation( \
1722 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1726 #include "ElectronPhotonFourMomentumCorrection/systematics_es2024_Run3_v0.def"
1729 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1730 if (bool(fullcorrelated)) { \
1731 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1732 SysInfo{always, flagup}; \
1733 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1734 SysInfo{always, flagdown}; \
1737 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1738 m_syst_description[CP::SystematicVariation( \
1739 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1740 m_syst_description[CP::SystematicVariation( \
1741 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1745 #include "ElectronPhotonFourMomentumCorrection/systematics_S12.def"
1752 const TAxis& axis_statistical_error(
m_rootTool->get_ZeeStat_eta_axis());
1753 for (
int ibin = 1; ibin <= axis_statistical_error.GetNbins(); ++ibin) {
1755 axis_statistical_error.GetBinLowEdge(ibin),
1756 axis_statistical_error.GetBinLowEdge(ibin + 1));
1778 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN0", +1)] =
1782 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN0", -1)] =
1786 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN1", +1)] =
1790 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN1", -1)] =
1794 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN2", +1)] =
1798 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN2", -1)] =
1810 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN0", +1)] =
1814 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN0", -1)] =
1818 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN1", +1)] =
1822 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN1", -1)] =
1830 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN0", +1)] =
1834 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN1", +1)] =
1838 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN0", -1)] =
1842 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN1", -1)] =
1903 SysInfo{DoubleOrAbsEtaCaloPredicate(0, 1.52, 1.82, 2.47),
1907 SysInfo{DoubleOrAbsEtaCaloPredicate(0, 1.52, 1.82, 2.47),
1939 "EG_SCALE_E4SCINTILLATOR__ETABIN0", +1)] =
1943 "EG_SCALE_E4SCINTILLATOR__ETABIN1", +1)] =
1947 "EG_SCALE_E4SCINTILLATOR__ETABIN2", +1)] =
1951 "EG_SCALE_E4SCINTILLATOR__ETABIN0", -1)] =
1955 "EG_SCALE_E4SCINTILLATOR__ETABIN1", -1)] =
1959 "EG_SCALE_E4SCINTILLATOR__ETABIN2", -1)] =
1964 "EG_SCALE_E4SCINTILLATOR__ETABIN3", +1)] =
1968 "EG_SCALE_E4SCINTILLATOR__ETABIN3", -1)] =
1991 "EG_RESOLUTION_ZSMEARING", -1)] =
1994 "EG_RESOLUTION_SAMPLINGTERM", +1)] =
1997 "EG_RESOLUTION_SAMPLINGTERM", -1)] =
2000 "EG_RESOLUTION_MATERIALID", +1)] =
2003 "EG_RESOLUTION_MATERIALID", -1)] =
2006 "EG_RESOLUTION_MATERIALCALO", +1)] =
2009 "EG_RESOLUTION_MATERIALCALO", -1)] =
2012 "EG_RESOLUTION_MATERIALGAP", +1)] =
2015 "EG_RESOLUTION_MATERIALGAP", -1)] =
2018 "EG_RESOLUTION_MATERIALCRYO", +1)] =
2021 "EG_RESOLUTION_MATERIALCRYO", -1)] =
2043 "EG_RESOLUTION_MATERIALIBL", +1)] =
2046 "EG_RESOLUTION_MATERIALIBL", -1)] =
2049 "EG_RESOLUTION_MATERIALPP0", +1)] =
2052 "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 115 of file AsgMetadataTool.cxx.
117 #ifndef XAOD_STANDALONE
124 incSvc->addListener(
this, IncidentType::BeginEvent, 0,
false );
129 #endif // not XAOD_STANDALONE
132 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_accessors
std::unique_ptr<Accessors> CP::EgammaCalibrationAndSmearingTool::m_accessors |
◆ m_ADCLinearity_tool
std::shared_ptr<LinearityADC> CP::EgammaCalibrationAndSmearingTool::m_ADCLinearity_tool |
|
private |
◆ m_beginInputFileCalled
bool asg::AsgMetadataTool::m_beginInputFileCalled |
|
privateinherited |
Flag helping to discover when the tool misses the opening of the first input file.
Definition at line 126 of file AsgMetadataTool.h.
◆ m_caloDistPhiUnifCorr
std::unique_ptr<TH2> CP::EgammaCalibrationAndSmearingTool::m_caloDistPhiUnifCorr |
|
private |
◆ m_currentResolutionVariation_data
◆ m_currentResolutionVariation_MC
◆ m_currentScalePredicate
EgammaPredicate CP::EgammaCalibrationAndSmearingTool::m_currentScalePredicate |
|
private |
◆ m_currentScaleVariation_data
◆ m_currentScaleVariation_MC
◆ m_decorateEmva
bool CP::EgammaCalibrationAndSmearingTool::m_decorateEmva |
|
private |
◆ m_decorrelation_model_name
std::string CP::EgammaCalibrationAndSmearingTool::m_decorrelation_model_name |
|
private |
◆ m_decorrelation_model_resolution
◆ m_decorrelation_model_resolution_name
std::string CP::EgammaCalibrationAndSmearingTool::m_decorrelation_model_resolution_name |
|
private |
◆ m_decorrelation_model_scale
ScaleDecorrelation CP::EgammaCalibrationAndSmearingTool::m_decorrelation_model_scale = ScaleDecorrelation::FULL |
|
private |
◆ m_decorrelation_model_scale_name
std::string CP::EgammaCalibrationAndSmearingTool::m_decorrelation_model_scale_name |
|
private |
◆ m_detStore
◆ m_doADCLinearityCorrection
int CP::EgammaCalibrationAndSmearingTool::m_doADCLinearityCorrection |
|
private |
◆ m_doLeakageCorrection
int CP::EgammaCalibrationAndSmearingTool::m_doLeakageCorrection |
|
private |
◆ m_doScaleCorrection
int CP::EgammaCalibrationAndSmearingTool::m_doScaleCorrection |
|
private |
◆ m_doSmearing
int CP::EgammaCalibrationAndSmearingTool::m_doSmearing |
|
private |
◆ m_ESModel
std::string CP::EgammaCalibrationAndSmearingTool::m_ESModel |
|
private |
◆ m_evtStore
◆ m_fixForMissingCells
Gaudi::Property<bool> CP::EgammaCalibrationAndSmearingTool::m_fixForMissingCells |
|
private |
◆ m_gain_tool
◆ m_gain_tool_run2
◆ m_inputMetaStore
◆ m_layer_recalibration_tool
◆ m_layer_recalibration_tune
std::string CP::EgammaCalibrationAndSmearingTool::m_layer_recalibration_tune |
|
private |
◆ m_MVACalibSvc
◆ m_MVAfolder
std::string CP::EgammaCalibrationAndSmearingTool::m_MVAfolder |
|
private |
◆ m_onlyElectrons
Gaudi::Property<bool> CP::EgammaCalibrationAndSmearingTool::m_onlyElectrons {this, "onlyElectrons", false, "the tool will only be applied to electrons"} |
◆ m_onlyPhotons
Gaudi::Property<bool> CP::EgammaCalibrationAndSmearingTool::m_onlyPhotons {this, "onlyPhotons", false, "the tool will only be applied to photons"} |
◆ 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".
@ LArTemperature2016PreUp
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
virtual void setOwner(IDataHandleHolder *o)=0
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
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
POOL::TEvent event(POOL::TEvent::kClassAccess)
@ es2015cPRE_res_improved
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
bool isElectron(const xAOD::Egamma *eg)
is the object an electron (not Fwd)
MsgStream & msg() const
The standard message stream.
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 void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
a class representing a single object (electron, muons, etc.)
void insert(const SystematicVariation &systematic)
description: insert a systematic into the set
std::string to_string(const DetectorType &type)
an object that can create a AsgService
bool is_after_run1(egEnergyCorr::ESModel model)
@ S12ExtraLastEtaBinRun2Down
Class describing the basic event information.
Photon_v1 Photon
Definition of the current "egamma version".
std::string PathResolverFindCalibFile(const std::string &logical_file_name)
@ Ok
The correction was done successfully.
bool empty() const noexcept
#define ATH_MSG_WARNING(x)
This module implements the central registry for handling systematic uncertainties with CP tools.
bool isPhoton(const xAOD::Egamma *eg)
is the object a photon
Return value from object correction CP tools.
bool use_phi_uniform_correction(egEnergyCorr::ESModel model)
float get_eta_calo(const xAOD::CaloCluster &cluster, int author, bool do_throw=false)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
std::unique_ptr< egGain::GainTool > gainToolFactory(egEnergyCorr::ESModel model)
@ LArTemperature2016PreDown
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Class describing a TrackParticle.
std::unique_ptr< egammaLayerRecalibTool > egammaLayerRecalibToolFactory(egEnergyCorr::ESModel model, int enableSacc)
void resetAccessor(AccessorTemplate< CI, CT, CAM, CM > &accessor, ColumnarTool< CM > &columnBase, const std::string &name, ColumnInfo &&info={})
reset a column accessor to point to a new column
ObjectId< ContainerId::egamma > EgammaId
setBGCode setTAP setLVL2ErrorBits bool
@ S12ExtraLastEtaBinRun2Up
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.