\(\gamma\)¶
-
class
PhotonCalibrator¶ Inherits from xAH::Algorithm
Public Functions
-
PhotonCalibrator()¶
-
EL::StatusCode
setupJob(EL::Job &job)¶
-
EL::StatusCode
fileExecute()¶
-
EL::StatusCode
histInitialize()¶
-
EL::StatusCode
changeInput(bool firstFile)¶
-
EL::StatusCode
initialize()¶
-
EL::StatusCode
execute()¶
-
EL::StatusCode
postExecute()¶
-
EL::StatusCode
finalize()¶
-
EL::StatusCode
histFinalize()¶
-
StatusCode
algInitialize()¶ Run any initializations commmon to all xAH Algorithms (such as registerInstance). Call this inside
histInitializefor best results.
-
StatusCode
algFinalize()¶ Run any finalizations common to all xAH Algorithms (such as unregisterInstance). Call this inside
histFinalizefor best results.
-
StatusCode
parseSystValVector()¶ Parse string of systematic sigma levels in m_systValVectorString into m_systValVector.
Public Members
-
std::string
m_inContainerName= ""¶
-
std::string
m_outContainerName= ""¶
-
std::string
m_photonCalibMap= "PhotonEfficiencyCorrection/2015_2016/rel20.7/Moriond2017_v1/map0.txt"¶
-
std::string
m_conEffCalibPath= "PhotonEfficiencyCorrection/efficiencySF.offline.Tight.2016.13TeV.rel20.7.25ns.con.v00.root"¶
-
std::string
m_uncEffCalibPath= "PhotonEfficiencyCorrection/efficiencySF.offline.Tight.2016.13TeV.rel20.7.25ns.unc.v00.root"¶
-
std::string
m_conEffAFIICalibPath= "PhotonEfficiencyCorrection/efficiencySF.offline.Tight.2015.13TeV.rel20.AFII.con.v01.root"¶
-
std::string
m_uncEffAFIICalibPath= "PhotonEfficiencyCorrection/efficiencySF.offline.Tight.2015.13TeV.rel20.AFII.unc.v01.root"¶
-
std::string
m_tightIDConfigPath= "ElectronPhotonSelectorTools/offline/mc15_20150712/PhotonIsEMTightSelectorCutDefs.conf"¶
-
std::string
m_mediumIDConfigPath= "ElectronPhotonSelectorTools/offline/mc15_20150712/PhotonIsEMMediumSelectorCutDefs.conf"¶
-
std::string
m_looseIDConfigPath= "ElectronPhotonSelectorTools/offline/mc15_20150712/PhotonIsEMLooseSelectorCutDefs.conf"¶
-
bool
m_sort= true¶
-
std::string
m_inputAlgoSystNames= ""¶ this is the name of the vector of names of the systematically varied containers produced by the upstream algo (e.g., the SC containers with calibration systematics)
-
std::string
m_outputAlgoSystNames= "PhotonCalibrator_Syst"¶ this is the name of the vector of names of the systematically varied containers produced by THIS algo ( these will be the m_inputAlgoSystNames of the algo downstream
-
bool
m_useAFII= false¶
-
float
m_systVal= 0.0¶
-
std::string
m_systName= ""¶
-
std::string
m_esModel= "es2016data_mc15c"¶
-
std::string
m_decorrelationModel= ""¶
-
int
m_randomRunNumber= -1¶
-
std::string
m_name= "UnnamedAlgorithm"¶ All algorithms initialized should have a unique name, to differentiate them at the TObject level.
Note,
GetName()returns achar*while this returns astd::string.
-
bool
m_debug= false¶ m_debug is being deprecated
-
bool
m_verbose= false¶ m_verbose is being deprecated
-
MSG::Level
m_msgLevel= MSG::INFO¶ debug level
-
std::string
m_systValVectorString= ""¶ If running systematics, you can run multiple points and store them in here. A comma separated list of working points should be given to m_systValVectorString, and then parsed by calling parseSystValVector.
-
std::vector<float>
m_systValVector¶
-
std::string
m_eventInfoContainerName= "EventInfo"¶ If the xAOD has a different EventInfo container name, set it here
-
int
m_isMC= -1¶ This is an override at the algorithm level to force analyzing MC or not.
Value Meaning -1 Default, use eventInfo object to determine if data or mc 0 Treat the input as data 1 Treat the input as MC
Protected Functions
-
bool
isMC()¶ - Try to determine if we are running over data or MC. The
xAH::Algorithm::m_isMCcan be usedto fix the return value. Otherwise the EventInfo object is queried.
An exception is thrown if the type cannot be determined.
Return Value Meaning 0 Data 1 MC
-
void
registerInstance()¶ Register the given instance under the moniker
xAH::Algorithm::m_classNameThis will increase the reference count by 1.
-
int
numInstances()¶ Return number of instances registered under the moniker
xAH::Algorithm::m_classNameThis will return the reference count.
Warning
If for some reason the instance wasn’t registered, we spit out a warning.
-
void
unregisterInstance()¶ Unregister the given instance under the moniker
xAH::Algorithm::m_classNameThis will decrease the reference count by 1.
Warning
If for some reason the instance wasn’t registered, we spit out a warning.
- template <typename T>
-
StatusCode
checkToolStore(const std::string &tool_name)¶ - Check whether the input CP tool already exists with this name in the asg::ToolStore
Depending on the outcome, the content of the map
xAH::Algorithm::m_toolAlreadyUsedwll be set accordingly.
-
bool
isToolAlreadyUsed(const std::string &tool_name)¶ Check whether the input CP tool has been already used by any
xAH::Algorithmin the current job by scanningxAH::Algorithm::m_toolAlreadyUsed.
- template <typename T>
-
void
setToolName(asg::AnaToolHandle<T> &handle, std::string name = "") const¶ Note: This function does nothing in release 21.1! The native private tool mechanism is used instead.
Sets the name of a tool. If no name is needed, the tool will use the name of the algorithm plus a unique identifier (
xAH::Algorithm::getAddress()) appended to ensure the tool is unique and effectively private.The tool will not be guaranteed unique if two tools of the same type are created without a name passed in. But this is, at this point, up to the user and a more complex scenario than what this function tries to simplify on its own.
-
std::string
getAddress() const¶ Return a
std::stringrepresentation ofthis
Protected Attributes
-
std::string
m_className= "Algorithm"¶ The moniker by which all instances are tracked in
xAH::Algorithm::m_instanceRegistry
-
xAOD::TEvent *
m_event= nullptr¶ The TEvent object
-
xAOD::TStore *
m_store= nullptr¶ The TStore object
Private Functions
-
EL::StatusCode
decorate(xAOD::Photon *photon)¶
Private Members
-
std::string
m_outAuxContainerName¶
-
std::string
m_outSCContainerName¶
-
std::string
m_outSCAuxContainerName¶
-
std::vector<CP::SystematicSet>
m_systList¶
-
CP::EgammaCalibrationAndSmearingTool *
m_EgammaCalibrationAndSmearingTool= nullptr¶
-
asg::AnaToolHandle<CP::IIsolationCorrectionTool>
m_isolationCorrectionTool_handle= {"CP::IsolationCorrectionTool/IsolationCorrectionTool", PRIVATETOOL}¶
-
ElectronPhotonShowerShapeFudgeTool *
m_photonFudgeMCTool= nullptr¶
-
AsgPhotonIsEMSelector *
m_photonTightIsEMSelector= nullptr¶
-
AsgPhotonIsEMSelector *
m_photonMediumIsEMSelector= nullptr¶
-
AsgPhotonIsEMSelector *
m_photonLooseIsEMSelector= nullptr¶
-
asg::AnaToolHandle<IAsgPhotonEfficiencyCorrectionTool>
m_photonTightEffTool_handle= {"AsgPhotonEfficiencyCorrectionTool/tight" , PRIVATETOOL}¶
-
asg::AnaToolHandle<IAsgPhotonEfficiencyCorrectionTool>
m_photonMediumEffTool_handle= {"AsgPhotonEfficiencyCorrectionTool/medium" , PRIVATETOOL}¶
-
asg::AnaToolHandle<IAsgPhotonEfficiencyCorrectionTool>
m_photonLooseEffTool_handle= {"AsgPhotonEfficiencyCorrectionTool/loose" , PRIVATETOOL}¶
-