\(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 either TEvent or TStore

  • adds a scale factor (SF) decoration for each electron in the input container calculated via the AsgElectronEfficiencyCorrectionTool in Tools Used

  • the 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 or TStore

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)

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