Class ElectronSelector

Inheritance Relationships

Base Type

Class Documentation

class ElectronSelector : public xAH::Algorithm

This is the algorithm class that selects electrons according to user’s choice.

In a nutshell, this algorithm performs the following actions:

  • retrieves an xAOD::ElectronContainer from either TEvent or TStore

  • iterates over the input container, and if electron passes selection, copies it in a ConstDataVector(SG::VIEW_ELEMENTS) container. Otherwise, the electron is skipped

  • saves the view container to TStore, from where it can be retrieved by algorithms downstream via a name lookup

Public Functions

ElectronSelector()
~ElectronSelector()
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()
bool executeSelection(const xAOD::ElectronContainer *inElectrons, float mcEvtWeight, bool countPass, ConstDataVector<xAOD::ElectronContainer> *selectedElectrons)
virtual int passCuts(const xAOD::Electron *electron, const xAOD::Vertex *primaryVertex)

Public Members

bool m_useCutFlow = true
std::string m_inContainerName = ""

The name of the input container for this algorithm read from TEvent or TStore

std::string m_outContainerName = ""

The name of the nominal output container written by the algorithm to TStore

std::string m_inputAlgoSystNames = ""

The name of the vector containing the names of the systematically-varied containers from the upstream algorithm, which will be processed by this algorithm.

This vector is retrieved from the TStore. If left blank, it means there is no upstream algorithm which applies systematics. This is the case when processing straight from the original xAOD or DxAOD.

std::string m_outputAlgoSystNames = "ElectronSelector_Syst"

The name of the vector containing the names of the systematically-varied containers created by by this algorithm.

If m_systName is empty, the vector will contain only an empty string. When running on systematics, this is the string a downstream algorithm needs to process electrons.

bool m_decorateSelectedObjects = true

Adds a passSel decoration for objects that pass selection.

bool m_createSelectedContainer = false

Fill using a read-only container (SG::VIEW_ELEMENTS) to TStore

int m_nToProcess = -1

Number of objects to process, set n=-1 to look at all.

int m_pass_min = -1

Require event to have minimum number of objects passing selection.

int m_pass_max = -1

Require event to have maximum number of objects passing selection.

float m_pT_max = 1e8

[MeV] Require objects to have maximum transverse momentum threshold

float m_pT_min = 1e8

[MeV] Require objects to have minimum transverse momentum threshold

float m_eta_max = 1e8

Require objects to have maximum \(|\eta|\) value

bool m_vetoCrack = true

Require objects to have \(|\eta|\) outside the crack region using caloCluster->eta()

float m_d0_max = 1e8

Require objects to have a maximum \(d_{0}\) [mm] (transverse impact parameter)

float m_d0sig_max = 1e8

Require objects to have a maximum \(d_{0}\) significance at BL

float m_z0sintheta_max = 1e8

Require objects to have maximum \(z_{0}\sin(\theta)\) [mm] (longitudinal impact paramter) at BL - corrected with vertex info

bool m_doAuthorCut = true

Perform author kinematic cut.

bool m_doOQCut = true

Perform object quality cut.

bool m_applyDeadHVCellVeto = false

Apply veto dead HV cells, affects only 2016 data.

bool m_readIDFlagsFromDerivation = false

To read electron PID decision from DAOD, rather than recalculate with tool.

bool m_doModifiedEleId = false

To correct egamma bug, see ATLSUSYSW-445.

bool m_doLHPID = true

Instantiate and perform the electron Likelihood PID.

bool m_doLHPIDcut = false

Cut on electron Likelihood PID (recommended)

std::string m_LHOperatingPoint = "Loose"

Loosest Likelihood PID operating point to save.

bool m_doCutBasedPID = false

Instantiate and perform the electron cut-based PID.

bool m_doCutBasedPIDcut = false

Cut on electron cut-based PID.

std::string m_CutBasedOperatingPoint = "Loose"

Loosest cut-based PID operating point to save.

std::string m_MinIsoWPCut = ""

reject objects which do not pass this isolation cut - default = “” (no cut)

std::string m_IsoWPList = "FCLoose,FCTight,Gradient,FCHighPtCaloOnly"

decorate objects with isIsolated_* flag for each WP in this input list - default = all current ASG WPs

std::string m_CaloIsoEff = "0.1*x+90"

to define a custom WP - make sure "UserDefined" is added in m_IsoWPList

std::string m_TrackIsoEff = "98"

to define a custom WP - make sure "UserDefined" is added in m_IsoWPList

std::string m_CaloBasedIsoType = "topoetcone20"

to define a custom WP - make sure "UserDefined" is added in m_IsoWPList

std::string m_TrackBasedIsoType = "ptvarcone20"

to define a custom WP - make sure "UserDefined" is added in m_IsoWPList

std::string m_singleElTrigChains = ""

A comma-separated string w/ alll the HLT single electron trigger chains for which you want to perform the matching. This is passed by the user as input in configuration If left empty (as it is by default), no trigger matching will be attempted at all.

std::string m_diElTrigChains = ""

A comma-separated string w/ alll the HLT di-electron trigger chains for which you want to perform the matching. This is passed by the user as input in configuration If left empty (as it is by default), no trigger matching will be attempted at all.

double m_minDeltaR = 0.07

Recommended threshold for egamma triggers: see https://svnweb.cern.ch/trac/atlasoff/browser/Trigger/TrigAnalysis/TriggerMatchingTool/trunk/src/TestMatchingToolAlg.cxx.

bool m_applyCrackVetoCleaning = false

Apply fix to EGamma Crack-Electron topocluster association bug for MET (PFlow) / false by default.

bool m_merged_electrons = false

Element links need to be updated if merged electrons are used (LRT + std) / false by default.

std::string m_trigInputPrefix = ""

Input prefix of trigger decision tool.

std::string m_isoDecSuffix = ""