 |
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 |
| |
| void | setPt (columnar::MutableEgammaId input, double energy) 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 288 of file EgammaCalibrationAndSmearingTool.cxx.
301 const Accessors&
acc = *
tool.m_accessors;
306 std::abs(
acc.clusterPhiAcc(cluster)) * 1E6 +
307 std::abs(
acc.clusterEtaAcc(cluster)) * 1E3 +
308 acc.eventNumberAcc(ei));
350 "This should be explicitly set by the user depending on the "
351 "data type (int)0=full sim, (int)1=fast sim");
354 "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 987 of file EgammaCalibrationAndSmearingTool.cxx.
998 ATH_MSG_DEBUG(
"applying energy recalibration before E0|E1|E2|E3 = "
999 <<
acc.energyBEAcc (inputCluster, 0) <<
"|"
1000 <<
acc.energyBEAcc (inputCluster, 1) <<
"|"
1001 <<
acc.energyBEAcc (inputCluster, 2) <<
"|"
1002 <<
acc.energyBEAcc (inputCluster, 3));
1009 <<
acc.Es0Acc(inputCluster) <<
"|"
1010 <<
acc.Es1Acc(inputCluster) <<
"|"
1011 <<
acc.Es2Acc(inputCluster) <<
"|"
1012 <<
acc.Es3Acc(inputCluster) <<
"|");
1013 if (
acc.Es2Acc(inputCluster) == 0 and
acc.Es1Acc(inputCluster) == 0 and
1014 acc.Es3Acc(inputCluster) == 0 and
acc.Es0Acc(inputCluster) == 0 and
1015 (std::abs(
acc.etaAcc (input)) < 1.37 or (std::abs(
acc.etaAcc (input)) > 1.55 and std::abs(
acc.etaAcc (input)) < 2.47)))
1026 if (
acc.authorAcc (input) ==
1033 unsigned int npv(0);
1034 for (
const auto *vtx : *pVtxCont) {
1039 gei.
acmu =
acc.actIntPerXingAcc(event_info);
1042 if (
acc.authorAcc (input) !=
1058 if (
acc.authorAcc (input) ==
1067 const double etaden =
1070 :
acc.clusterEtaAcc(inputCluster);
1072 energy / cosh(etaden), ptype);
1086 unsigned int runNumber_for_tool = 0;
1091 runNumber_for_tool =
acc.runNumberAcc(event_info);
1093 const auto cl_eta =
acc.clusterEtaAcc(inputCluster);
1094 double etaCalo = 0, phiCalo = 0;
1096 etaCalo =
acc.etaCaloAcc(inputCluster,
acc.authorAcc(input),
false);
1099 acc.phiCaloAcc(inputCluster,
acc.authorAcc(input),
false);
1116 double etaC =
acc.clusterEtaAcc(inputCluster);
1117 double phiC =
acc.clusterPhiAcc(inputCluster);
1119 ieta = ieta == 0 ? 1
1124 iphi = iphi == 0 ? 1
1130 "energy after phi uniformity correction (for calo distortion) = "
1143 double et =
energy / std::cosh(cl_eta);
1153 const auto es2 =
acc.Es2Acc.isAvailable(inputCluster)
1154 ?
acc.Es2Acc(inputCluster)
1155 :
acc.energyBEAcc (inputCluster,2);
1156 if (!(std::abs(cl_eta) < 1.52 and std::abs(cl_eta) > 1.37) and
1157 std::abs(cl_eta) < 2.4)
1162 double et =
energy / std::cosh(cl_eta);
1170 if (
acc.randomrunnumber_getter.isAvailable(event_info)) {
1171 runNumber_for_tool =
acc.randomrunnumber_getter(event_info);
1174 "Pileup tool not run before using "
1175 "ElectronPhotonFourMomentumCorrection! Assuming it is 2016. If you "
1176 "want to force a specific period set the property randomRunNumber "
1177 "of the tool, e.g. in the job option: "
1178 "tool.randomRunNumber = 123456 or "
1179 "tool.randomRunNumber = "
1180 "EgammaCalibrationAndSmearingToolRunNumbersExample.run_2016");
1188 const double eraw = ((
acc.Es0Acc.isAvailable(inputCluster)
1189 ?
acc.Es0Acc(inputCluster)
1190 :
acc.energyBEAcc(inputCluster,0)) +
1191 (
acc.Es1Acc.isAvailable(inputCluster)
1192 ?
acc.Es1Acc(inputCluster)
1193 :
acc.energyBEAcc(inputCluster,1)) +
1194 (
acc.Es2Acc.isAvailable(inputCluster)
1195 ?
acc.Es2Acc(inputCluster)
1196 :
acc.energyBEAcc(inputCluster,2)) +
1197 (
acc.Es3Acc.isAvailable(inputCluster)
1198 ?
acc.Es3Acc(inputCluster)
1199 :
acc.energyBEAcc(inputCluster,3)));
1212 inputCluster(
acc.clusterEtaAcc),
1213 inputCluster(
acc.clusterEtaBEAcc,2),
1214 acc.etaCaloAcc(inputCluster,
acc.authorAcc (input),
false),
energy,
1215 acc.Es2Acc.isAvailable(inputCluster)
1216 ?
acc.Es2Acc(inputCluster)
1217 : inputCluster(
acc.energyBEAcc,2),
◆ 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 2140 of file EgammaCalibrationAndSmearingTool.cxx.
2154 if (systConfig.
empty())
2155 return StatusCode::SUCCESS;
2160 bool first_scale =
true;
2161 bool first_resolution =
true;
2162 for (
const auto&
it : systConfig) {
2165 if (not first_scale) {
2167 throw std::runtime_error(
"multiple scale variations not supported");
2169 first_scale =
false;
2176 if (not first_resolution) {
2177 ATH_MSG_ERROR(
"multiple resolution variations not supported");
2178 throw std::runtime_error(
2179 "multiple resolution variations not supported");
2181 first_resolution =
false;
2186 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 2378 of file EgammaCalibrationAndSmearingTool.cxx.
2380 constexpr
double PI =
M_PI;
2385 if (eta < -0.4 && eta > -0.6) {
2386 if (
phi < (14 *
PI / 32.) &&
phi > (13 *
PI / 32.)) {
2388 }
else if (
phi < (13 *
PI / 32.) &&
phi > (12 *
PI / 32.)) {
2407 if (eta < 0.2 && eta > 0.) {
2408 if (
phi < (-7 * 2 *
PI / 32.) &&
phi > (-8 * 2 *
PI / 32.)) {
2413 else if (eta < 0.6 && eta > 0.4) {
2414 if (phi < 0 && phi > (-2 *
PI / 32.)) {
2416 }
else if (
phi < (-4 * 2 *
PI / 32.) &&
phi > (-5 * 2 *
PI / 32.)) {
2421 else if (eta < 0.8 && eta > 0.6) {
2422 if (
phi < (7 * 2 *
PI / 32.) &&
phi > (6 * 2 *
PI / 32.)) {
2427 else if (eta < 1.4 && eta > 1.2) {
2428 if (
phi < (-9 * 2 *
PI / 32.) &&
phi > (-10 * 2 *
PI / 32.)) {
2430 }
else if (
phi < (-11 * 2 *
PI / 32.) &&
phi > (-12 * 2 *
PI / 32.)) {
2435 else if (eta < 2.3 && eta > 2.1) {
2436 if (
phi < (-12 * 2 *
PI / 32.) &&
phi > (-13 * 2 *
PI / 32.)) {
2441 else if (eta < 0. && eta > -0.2) {
2442 if (
phi < (-12 * 2 *
PI / 32.) &&
phi > (-13 * 2 *
PI / 32.)) {
2444 }
else if (
phi < (-8 * 2 *
PI / 32.) &&
phi > (-9 * 2 *
PI / 32.)) {
2449 else if (eta < -0.2 && eta > -0.4) {
2450 if (
phi < (-9 * 2 *
PI / 32.) &&
phi > (-10 * 2 *
PI / 32.)) {
2455 else if (eta < -1.2 && eta > -1.4) {
2456 if (
phi < (-6 * 2 *
PI / 32.) &&
phi > (-7 * 2 *
PI / 32.)) {
2461 else if (eta < -1.6 && eta > -1.8) {
2462 if (
phi < (9 * 2 *
PI / 32.) &&
phi > (8 * 2 *
PI / 32.)) {
2467 else if (eta < -2.3 && eta > -2.5) {
2468 if (
phi < (-8 * 2 *
PI / 32.) &&
phi > (-9 * 2 *
PI / 32.)) {
2470 }
else if (
phi < (5 * 2 *
PI / 32.) &&
phi > (4 * 2 *
PI / 32.)) {
2472 }
else if (
phi < (9 * 2 *
PI / 32.) &&
phi > (8 * 2 *
PI / 32.)) {
2474 }
else if (
phi < (10 * 2 *
PI / 32.) &&
phi > (9 * 2 *
PI / 32.)) {
2476 }
else if (
phi < (11 * 2 *
PI / 32.) &&
phi > (10 * 2 *
PI / 32.)) {
2484 if (eta < 0.6 && eta > 0.4) {
2485 if (phi < 0 && phi > (-2 *
PI / 32.)) {
2487 }
else if (
phi < (-4 * 2 *
PI / 32.) &&
phi > (-5 * 2 *
PI / 32.)) {
2492 else if (eta < 0.8 && eta > 0.6) {
2493 if (
phi < (7 * 2 *
PI / 32.) &&
phi > (6 * 2 *
PI / 32.)) {
2498 else if (eta < 1.4 && eta > 1.2) {
2499 if (
phi < (-11 * 2 *
PI / 32.) &&
phi > (-12 * 2 *
PI / 32.)) {
2504 else if (eta < 2.0 && eta > 1.9) {
2505 if (
phi < (10 * 2 *
PI / 32.) &&
phi > (9 * 2 *
PI / 32.)) {
2510 else if (eta < -1.2 && eta > -1.4) {
2511 if (
phi < (-4 * 2 *
PI / 32.) &&
phi > (-5 * 2 *
PI / 32.)) {
2513 }
else if (
phi < (-6 * 2 *
PI / 32.) &&
phi > (-7 * 2 *
PI / 32.)) {
2518 else if (eta < -1.6 && eta > -1.8) {
2519 if (
phi < (9 * 2 *
PI / 32.) &&
phi > (8 * 2 *
PI / 32.)) {
2524 else if (eta < -2.3 && eta > -2.5) {
2525 if (
phi < (-8 * 2 *
PI / 32.) &&
phi > (-9 * 2 *
PI / 32.)) {
2527 }
else if (
phi < (5 * 2 *
PI / 32.) &&
phi > (4 * 2 *
PI / 32.)) {
2529 }
else if (
phi < (9 * 2 *
PI / 32.) &&
phi > (8 * 2 *
PI / 32.)) {
2531 }
else if (
phi < (10 * 2 *
PI / 32.) &&
phi > (9 * 2 *
PI / 32.)) {
2533 }
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 364 of file EgammaCalibrationAndSmearingTool.cxx.
390 }
else if (
m_ESModel ==
"es2015PRE_res_improved") {
394 }
else if (
m_ESModel ==
"es2015cPRE_res_improved") {
396 }
else if (
m_ESModel ==
"es2015c_summer") {
400 }
else if (
m_ESModel ==
"es2016data_mc15c") {
402 }
else if (
m_ESModel ==
"es2016data_mc15c_summer") {
404 }
else if (
m_ESModel ==
"es2016data_mc15c_summer_improved") {
406 }
else if (
m_ESModel ==
"es2016data_mc15c_final") {
410 }
else if (
m_ESModel ==
"es2017_R21_PRE") {
412 }
else if (
m_ESModel ==
"es2017_R21_v0") {
414 }
else if (
m_ESModel ==
"es2017_R21_v1") {
416 }
else if (
m_ESModel ==
"es2017_R21_ofc0_v1") {
418 }
else if (
m_ESModel ==
"es2018_R21_v0") {
420 }
else if (
m_ESModel ==
"es2018_R21_v1") {
422 }
else if (
m_ESModel ==
"es2022_R22_PRE") {
424 }
else if (
m_ESModel ==
"es2023_R22_Run2_v0") {
426 }
else if (
m_ESModel ==
"es2023_R22_Run2_v1") {
428 }
else if (
m_ESModel ==
"es2024_Run3_ofc0_v0") {
430 }
else if (
m_ESModel ==
"es2024_Run3_v0") {
434 return StatusCode::FAILURE;
437 return StatusCode::FAILURE;
448 return StatusCode::FAILURE;
453 "Property useAFII is deprecated. It is now replaced with useFastSim, "
454 "which should be explicitly configured");
455 return StatusCode::FAILURE;
463 ATH_MSG_ERROR(
"Property useFastSim should be explicitly configured");
464 return StatusCode::FAILURE;
470 "Sample is FastSim but no AF3 calibration is supported with "
471 "MC23 pre-recommendations (es2022_R22_PRE and es2024_Run3_ofc0_v0). "
472 "Please swtich to Run3 consolidated recommendations (es2024_Run3_v0), "
473 "or get in touch with the EGamma CP group in case you are using this");
474 return StatusCode::FAILURE;
493 ATH_MSG_WARNING(
"no decorrelation model specified, assuming full model");
502 return StatusCode::FAILURE;
508 "flag decorrelation model ignored for scale decorrelation model");
519 ATH_MSG_FATAL(
"cannot understand the scale decorrelation model '"
521 return StatusCode::FAILURE;
535 return StatusCode::FAILURE;
539 "not information how to initialize the scale decorrelation model");
540 return StatusCode::FAILURE;
548 "flag decorrelation model ignored for resolution decorrelation "
556 ATH_MSG_FATAL(
"cannot understand the resolution decorrelation model '"
558 return StatusCode::FAILURE;
572 return StatusCode::FAILURE;
579 m_rootTool = std::make_unique<AtlasRoot::egammaEnergyCorrectionTool>();
582 return StatusCode::FAILURE;
591 "Using linear interpolation in the gain tool (uncertainties only)");
609 "egammaMVACalibTool/tool_mva_electron");
610 config_mva_electron.setPropertyFromString(
"folder",
m_MVAfolder);
611 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(
623 ATH_CHECK(config_mva_unconverted.setProperty(
"OutputLevel",
624 this->msg().level()));
628 "egammaMVACalibTool/tool_mva_converted");
629 config_mva_converted.setPropertyFromString(
"folder",
m_MVAfolder);
630 ATH_CHECK(config_mva_converted.setProperty(
"use_layer_corrected",
true));
631 ATH_CHECK(config_mva_converted.setProperty(
633 ATH_CHECK(config_mva_converted.setProperty(
"OutputLevel",
634 this->msg().level()));
638 std::ostringstream mva_service_name;
639 mva_service_name <<
"egammaMVASvc/service_mva_egamma_id"
640 << (
void const*)
this;
642 ATH_CHECK(config_mva_service.addPrivateTool(
"ElectronTool",
643 config_mva_electron));
644 ATH_CHECK(config_mva_service.addPrivateTool(
"UnconvertedPhotonTool",
645 config_mva_unconverted));
646 ATH_CHECK(config_mva_service.addPrivateTool(
"ConvertedPhotonTool",
647 config_mva_converted));
651 "egammaMVACalibTool/tool_mva_fwdelectron");
652 config_mva_fwdelectron.setPropertyFromString(
"folder",
m_MVAfolder);
653 ATH_CHECK(config_mva_fwdelectron.setProperty(
655 ATH_CHECK(config_mva_fwdelectron.setProperty(
"ShiftType", 0));
656 ATH_CHECK(config_mva_fwdelectron.setProperty(
"OutputLevel", this->msg().level()));
657 ATH_CHECK(config_mva_service.addPrivateTool(
"FwdElectronTool",
658 config_mva_fwdelectron));
660 config_mva_service.setPropertyFromString(
"folder",
m_MVAfolder);
662 config_mva_service.setProperty(
"OutputLevel", this->msg().level()));
675 ATH_MSG_INFO(
"Layer recalibration already applied at cell level");
680 ATH_MSG_DEBUG(
"initializing layer recalibration tool (if needed)");
714 m_rootTool->use_uA2MeV_2015_first2weeks_correction(
723 throw std::runtime_error(
"ep combination not supported yet");
752 "cannot instantiate gain tool for this model (you can only disable "
753 "the gain tool, but not enable it)");
757 "initializing gain tool for run2 final precision recommendations");
759 "Gain corrections required but Zee scales are derived without Gain, "
760 "will cause inconsistency!");
762 "ElectronPhotonFourMomentumCorrection/v29/"
763 "gain_uncertainty_specialRun.root");
765 gain_tool_run_2_filename,
false,
"GainCorrection",
778 "ElectronPhotonFourMomentumCorrection/v25/linearity_ADC.root");
784 m_ESModel +
" recommendations use ADC corrections for scale "
785 "derivation. Disabling the ADCLinearity flag will create "
799 "ElectronPhotonFourMomentumCorrection/v33/"
800 "egammaEnergyCorrectionData.root");
801 std::unique_ptr<TFile> fCorr(
802 TFile::Open(phiUnifCorrfileName.c_str(),
"READ"));
804 dynamic_cast<TH2*
>(fCorr->Get(
"CaloDistortionPhiUniformityCorrection/"
805 "es2023_R22_Run2_v0/h2DcorrPhiUnif")));
809 m_ESModel +
" recommendations use CaloDistPhiUnif for scale "
810 "derivation. Disabling the CaloDistPhiUnif flag will create "
851 return StatusCode::FAILURE;
854 ATH_MSG_ERROR(
"Cannot select both onlyElectrons and onlyPhotons");
855 return StatusCode::FAILURE;
870 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 2189 of file EgammaCalibrationAndSmearingTool.cxx.
2196 double Ecl_corr = 0.;
2215 phi_mod = fmod(
phi, 2 *
pi / 16.) +
pi / 8.;
2217 phi_mod = fmod(
phi, 2 *
pi / 16.);
2220 if (std::abs(
eta) <= 1.37) {
2226 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 175.2759))) *
2227 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-189.3612))))));
2228 if (
phi < (-6 *
pi / 8) &&
phi > (-7 *
pi / 8))
2232 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 170.8305))) *
2233 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-233.3782))))));
2234 if (
phi < (-5 *
pi / 8) &&
phi > (-6 *
pi / 8))
2238 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 147.1451))) *
2239 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-139.3386))))));
2240 if (
phi < (-4 *
pi / 8) &&
phi > (-5 *
pi / 8))
2244 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 168.4644))) *
2245 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-246.2897))))));
2246 if (
phi < (-3 *
pi / 8) &&
phi > (-4 *
pi / 8))
2250 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 177.6703))) *
2251 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.3227))))));
2252 if (
phi < (-2 *
pi / 8) &&
phi > (-3 *
pi / 8))
2256 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 145.0693))) *
2257 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-242.1771))))));
2258 if (
phi < (-1 *
pi / 8) &&
phi > (-2 *
pi / 8))
2262 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 132.3303))) *
2263 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-166.1833))))));
2264 if (
phi < (0 *
pi / 8) &&
phi > (-1 *
pi / 8))
2268 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 127.6780))) *
2269 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-150.0700))))));
2270 if (
phi < (1 *
pi / 8) &&
phi > (0 *
pi / 8))
2274 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 172.0679))) *
2275 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-235.3293))))));
2276 if (
phi < (2 *
pi / 8) &&
phi > (1 *
pi / 8))
2280 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 190.3524))) *
2281 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.9400))))));
2282 if (
phi < (3 *
pi / 8) &&
phi > (2 *
pi / 8))
2286 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 158.0540))) *
2287 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-165.3893))))));
2288 if (
phi < (4 *
pi / 8) &&
phi > (3 *
pi / 8))
2292 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 162.2793))) *
2293 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-133.5131))))));
2294 if (
phi < (5 *
pi / 8) &&
phi > (4 *
pi / 8))
2298 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 180.5270))) *
2299 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-168.5074))))));
2300 if (
phi < (6 *
pi / 8) &&
phi > (5 *
pi / 8))
2304 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 128.2277))) *
2305 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-154.4455))))));
2306 if (
phi < (7 *
pi / 8) &&
phi > (6 *
pi / 8))
2310 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 192.1216))) *
2311 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-198.0727))))));
2312 if (
phi < (8 *
pi / 8) &&
phi > (7 *
pi / 8))
2316 ((1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * 199.1735))) *
2317 (1 / (1 +
exp((phi_mod - 2 *
pi / 32.) * (-176.4056))))));
2332 DivInt = (
int)(
phi / ((2 *
pi) / 16.));
2333 double phi_mod =
phi - DivInt * (2 *
pi / 16.);
2340 if (std::abs(
eta) <= 1.4) {
2345 Ecl / (1 - 0.131 * ((1 / (1 +
exp((phi_mod - 0.2) * 199.08))) *
2346 (1 / (1 +
exp((phi_mod - 0.2) * (-130.36))))));
2350 if (phi < pi / 4. && phi >= -
pi / 4.) {
2352 Ecl / (1 - 0.0879 * ((1 / (1 +
exp((phi_mod - 0.2) * 221.01))) *
2353 (1 / (1 +
exp((phi_mod - 0.2) * (-149.51))))));
2356 if (phi < -pi / 4. && phi >= (-3 *
pi) / 4.) {
2358 Ecl / (1 - 0.0605 * ((1 / (1 +
exp((phi_mod - 0.2) * 281.37))) *
2359 (1 / (1 +
exp((phi_mod - 0.2) * (-170.29))))));
2362 if ((
phi < (-3 *
pi) / 4.) || (
phi >= (3 *
pi) / 4.)) {
2364 Ecl / (1 - 0.102 * ((1 / (1 +
exp((phi_mod - 0.2) * 235.37))) *
2365 (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()
◆ setPt()
◆ setRandomSeedFunction()
| virtual void CP::EgammaCalibrationAndSmearingTool::setRandomSeedFunction |
( |
const IdFunction && |
function | ) |
|
|
inlineprivatevirtual |
◆ setupSystematics()
| void CP::EgammaCalibrationAndSmearingTool::setupSystematics |
( |
| ) |
|
|
private |
Definition at line 1302 of file EgammaCalibrationAndSmearingTool.cxx.
1443 "EG_SCALE_S12EXTRALASTETABINRUN2", +1)] =
1446 "EG_SCALE_S12EXTRALASTETABINRUN2", -1)] =
1452 ScaleDecorrelation::FULL_ETA_CORRELATED or
1491 ScaleDecorrelation::FULL_ETA_CORRELATED) {
1494 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1495 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1496 SysInfo{always, flagup}; \
1497 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1498 SysInfo{always, flagdown};
1499 #include "ElectronPhotonFourMomentumCorrection/systematics_es2024_Run3_v0.def"
1504 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1505 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1506 SysInfo{always, flagup}; \
1507 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1508 SysInfo{always, flagdown};
1509 #include "ElectronPhotonFourMomentumCorrection/systematics_S12_2022.def"
1537 "EG_SCALE_LARCALIB_EXTRA2015PRE", +1)] =
1540 "EG_SCALE_LARCALIB_EXTRA2015PRE", -1)] =
1551 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE", +1)] =
1554 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE", -1)] =
1561 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE", +1)] =
1564 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE", -1)] =
1641 ScaleDecorrelation::ONENP_PLUS_UNCONR) {
1646 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1647 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1648 SysInfo{always, flagup}; \
1649 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1650 SysInfo{always, flagdown};
1651 #include "ElectronPhotonFourMomentumCorrection/systematics_1NPCOR_PLUS_UNCOR.def"
1661 "EG_SCALE_S12EXTRALASTETABINRUN2", +1)] =
1664 "EG_SCALE_S12EXTRALASTETABINRUN2", -1)] =
1669 using pairvector = std::vector<std::pair<double, double>>;
1670 const pairvector decorrelation_bins_BE = {{0., 1.45}, {1.52, 2.5}};
1671 const std::vector<double> decorrelation_edges_TWELVE = {
1672 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};
1673 std::vector<double> decorrelation_edges_MODULE = {
1674 0., 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.37, 1.52, 1.8};
1675 const std::vector<double> decorrelation_edges_MATERIAL = {0.0, 1.1, 1.5,
1677 std::vector<double> decorrelation_edges_S12_EXTRARUN3 = {
1680 std::vector<double> decorrelation_edges_S12;
1683 decorrelation_edges_S12.resize(5);
1684 decorrelation_edges_S12 = {0., 1.35, 1.5, 2.4, 2.5};
1688 decorrelation_edges_S12.resize(8);
1689 decorrelation_edges_S12 = {0., 0.6, 1.0, 1.35, 1.5, 1.8, 2.4, 2.5};
1692 decorrelation_edges_MODULE[7] = 1.4;
1693 decorrelation_edges_MODULE[8] = 1.5;
1698 decorrelation_edges_S12.resize(6);
1699 decorrelation_edges_S12 = {0., 0.6, 1.4, 1.5, 2.4, 2.5};
1713 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1714 if (bool(fullcorrelated)) { \
1715 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1716 SysInfo{always, flagup}; \
1717 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1718 SysInfo{always, flagdown}; \
1721 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1722 m_syst_description[CP::SystematicVariation( \
1723 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1724 m_syst_description[CP::SystematicVariation( \
1725 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1729 #include "ElectronPhotonFourMomentumCorrection/systematics.def"
1733 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1734 if (bool(fullcorrelated)) { \
1735 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1736 SysInfo{always, flagup}; \
1737 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1738 SysInfo{always, flagdown}; \
1741 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1742 m_syst_description[CP::SystematicVariation( \
1743 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1744 m_syst_description[CP::SystematicVariation( \
1745 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1749 #include "ElectronPhotonFourMomentumCorrection/systematics_S12_2022.def"
1752 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1753 if (bool(fullcorrelated)) { \
1754 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1755 SysInfo{always, flagup}; \
1756 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1757 SysInfo{always, flagdown}; \
1760 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1761 m_syst_description[CP::SystematicVariation( \
1762 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1763 m_syst_description[CP::SystematicVariation( \
1764 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1768 #include "ElectronPhotonFourMomentumCorrection/systematics_es2024_Run3_v0.def"
1771 #define SYSMACRO(name, fullcorrelated, decorrelation, flagup, flagdown) \
1772 if (bool(fullcorrelated)) { \
1773 m_syst_description[CP::SystematicVariation(#name, +1)] = \
1774 SysInfo{always, flagup}; \
1775 m_syst_description[CP::SystematicVariation(#name, -1)] = \
1776 SysInfo{always, flagdown}; \
1779 for (const auto& p : AbsEtaCaloPredicatesFactory(decorrelation)) { \
1780 m_syst_description[CP::SystematicVariation( \
1781 #name "__ETABIN" + std::to_string(i), +1)] = SysInfo{p, flagup}; \
1782 m_syst_description[CP::SystematicVariation( \
1783 #name "__ETABIN" + std::to_string(i), -1)] = SysInfo{p, flagdown}; \
1787 #include "ElectronPhotonFourMomentumCorrection/systematics_S12.def"
1794 const TAxis& axis_statistical_error(
m_rootTool->get_ZeeStat_eta_axis());
1795 for (
int ibin = 1; ibin <= axis_statistical_error.GetNbins(); ++ibin) {
1797 axis_statistical_error.GetBinLowEdge(ibin),
1798 axis_statistical_error.GetBinLowEdge(ibin + 1));
1820 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN0", +1)] =
1824 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN0", -1)] =
1828 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN1", +1)] =
1832 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN1", -1)] =
1836 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN2", +1)] =
1840 "EG_SCALE_LARCALIB_EXTRA2015PRE__ETABIN2", -1)] =
1852 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN0", +1)] =
1856 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN0", -1)] =
1860 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN1", +1)] =
1864 "EG_SCALE_LARTEMPERATURE_EXTRA2015PRE__ETABIN1", -1)] =
1872 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN0", +1)] =
1876 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN1", +1)] =
1880 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN0", -1)] =
1884 "EG_SCALE_LARTEMPERATURE_EXTRA2016PRE__ETABIN1", -1)] =
1945 SysInfo{DoubleOrAbsEtaCaloPredicate(0, 1.52, 1.82, 2.47),
1949 SysInfo{DoubleOrAbsEtaCaloPredicate(0, 1.52, 1.82, 2.47),
1981 "EG_SCALE_E4SCINTILLATOR__ETABIN0", +1)] =
1985 "EG_SCALE_E4SCINTILLATOR__ETABIN1", +1)] =
1989 "EG_SCALE_E4SCINTILLATOR__ETABIN2", +1)] =
1993 "EG_SCALE_E4SCINTILLATOR__ETABIN0", -1)] =
1997 "EG_SCALE_E4SCINTILLATOR__ETABIN1", -1)] =
2001 "EG_SCALE_E4SCINTILLATOR__ETABIN2", -1)] =
2006 "EG_SCALE_E4SCINTILLATOR__ETABIN3", +1)] =
2010 "EG_SCALE_E4SCINTILLATOR__ETABIN3", -1)] =
2033 "EG_RESOLUTION_ZSMEARING", -1)] =
2036 "EG_RESOLUTION_SAMPLINGTERM", +1)] =
2039 "EG_RESOLUTION_SAMPLINGTERM", -1)] =
2042 "EG_RESOLUTION_MATERIALID", +1)] =
2045 "EG_RESOLUTION_MATERIALID", -1)] =
2048 "EG_RESOLUTION_MATERIALCALO", +1)] =
2051 "EG_RESOLUTION_MATERIALCALO", -1)] =
2054 "EG_RESOLUTION_MATERIALGAP", +1)] =
2057 "EG_RESOLUTION_MATERIALGAP", -1)] =
2060 "EG_RESOLUTION_MATERIALCRYO", +1)] =
2063 "EG_RESOLUTION_MATERIALCRYO", -1)] =
2085 "EG_RESOLUTION_MATERIALIBL", +1)] =
2088 "EG_RESOLUTION_MATERIALIBL", -1)] =
2091 "EG_RESOLUTION_MATERIALPP0", +1)] =
2094 "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_doFwdCalib
| Gaudi::Property<bool> CP::EgammaCalibrationAndSmearingTool::m_doFwdCalib |
|
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_pVtxKey
| Gaudi::Property<std::string> CP::EgammaCalibrationAndSmearingTool::m_pVtxKey |
|
private |
◆ 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".
Scalar phi() const
phi method
@ LArTemperature2016PreUp
Scalar eta() const
pseudorapidity method
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)
std::string to_string(const SectorProjector proj)
@ IS_SIMULATION
true: simulation, false: data
StatusCode registerSystematics(const IReentrantSystematicsTool &tool)
effects: register all the systematics from the tool
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
@ 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
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
A structure holding some global event information.
#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.