\(e\)¶
-
class ElectronEfficiencyCorrector : public xAH::Algorithm¶
This is the algorithm class that applies generic corrections to electrons. At the moment, only data/MC efficiency correction is included (electron trigger SF and others will follow…).
In a nutshell, this algorithm performs the following actions:
retrieves an
xAOD::ElectronContainer
from eitherTEvent
orTStore
adds a scale factor (SF) decoration for each electron in the input container calculated via the
AsgElectronEfficiencyCorrectionTool
in Tools Usedthe nominal SF and all the systematically-varied ones are saved as a
vector<double>
decoration for each electron
Note
Bear in mind that this algorithm must be called after
ElectronSelector
. In fact, the configuration file(s) being used must have the same working point as the one chosen in the selector.Public Functions
-
ElectronEfficiencyCorrector()¶
-
virtual EL::StatusCode setupJob(EL::Job &job)¶
-
virtual EL::StatusCode fileExecute()¶
-
virtual EL::StatusCode histInitialize()¶
-
virtual EL::StatusCode changeInput(bool firstFile)¶
-
virtual EL::StatusCode initialize()¶
-
virtual EL::StatusCode execute()¶
-
virtual EL::StatusCode postExecute()¶
-
virtual EL::StatusCode finalize()¶
-
virtual EL::StatusCode histFinalize()¶
-
virtual EL::StatusCode executeSF(const xAOD::ElectronContainer *inputElectrons, bool nominal, bool writeSystNames)¶
Public Members
-
std::string m_inContainerName = ""¶
The name of the input container for this algorithm to read from
TEvent
orTStore
-
std::string m_inputSystNamesElectrons¶
The name of the vector containing the names of the systematically-varied electrons-related containers from the upstream algorithm, which will be processed by this algorithm.
Only electron calibration systematics or any other that create shallow copies of electron containers should be passed to this tool. It is advised to run this algorithm before running algorithms combining multiple calibration systematics (e.g. overlap removal).
-
bool m_writeSystToMetadata = false¶
Write systematics names to metadata.
-
float m_systValPID = 0.0¶
-
float m_systValIso = 0.0¶
-
float m_systValReco = 0.0¶
-
float m_systValTrig = 0.0¶
-
std::string m_systNamePID = ""¶
-
std::string m_systNameIso = ""¶
-
std::string m_systNameReco = ""¶
-
std::string m_systNameTrig = ""¶
-
std::string m_outputSystNamesPID = "EleEffCorr_PIDSyst"¶
-
std::string m_outputSystNamesIso = "EleEffCorr_IsoSyst"¶
-
std::string m_outputSystNamesReco = "EleEffCorr_RecoSyst"¶
-
std::string m_outputSystNamesTrig = "EleEffCorr_TrigSyst"¶
-
std::string m_correlationModel = "FULL"¶
Systematic correlation model.
-
std::string m_WorkingPointPID = ""¶
PID working point (LooseBLayer, Medium, Tight)
-
std::string m_WorkingPointIso = ""¶
Isolation working point.
-
std::string m_WorkingPointReco = ""¶
Reconstruction working point (Reconstruction only)
-
std::string m_WorkingPointTrig = ""¶
Trigger working point.
-
bool m_usePerElectronTriggerSFs = true¶
-
std::string m_overrideMapFilePath = ""¶
Override corrections map file (not recommended)
-
std::string m_overrideMapFilePathTrig = ""¶
Override corrections map file for trigger (needed as Run2 R22 Trigger SF use R21 values)
Private Members
-
int m_numEvent¶
-
int m_numObject¶
-
std::vector<CP::SystematicSet> m_systListPID¶
-
std::vector<CP::SystematicSet> m_systListIso¶
-
std::vector<CP::SystematicSet> m_systListReco¶
-
std::vector<CP::SystematicSet> m_systListTrig¶
-
AsgElectronEfficiencyCorrectionTool *m_asgElEffCorrTool_elSF_PID = nullptr¶
-
std::string m_pidEffSF_tool_name¶
-
AsgElectronEfficiencyCorrectionTool *m_asgElEffCorrTool_elSF_Iso = nullptr¶
-
std::string m_IsoEffSF_tool_name¶
-
AsgElectronEfficiencyCorrectionTool *m_asgElEffCorrTool_elSF_Reco = nullptr¶
-
std::string m_RecoEffSF_tool_name¶
-
AsgElectronEfficiencyCorrectionTool *m_asgElEffCorrTool_elSF_Trig = nullptr¶
-
std::string m_TrigEffSF_tool_name¶
-
AsgElectronEfficiencyCorrectionTool *m_asgElEffCorrTool_elSF_TrigMCEff = nullptr¶
-
std::string m_TrigMCEff_tool_name¶