Program Listing for File MuonCalibrator.h¶
↰ Return to documentation for file (xAODAnaHelpers/MuonCalibrator.h
)
#ifndef xAODAnaHelpers_MuonCalibrator_H
#define xAODAnaHelpers_MuonCalibrator_H
// algorithm wrapper
#include "xAODAnaHelpers/Algorithm.h"
// external tools include(s):
#include <AsgTools/AnaToolHandle.h>
#include <AsgAnalysisInterfaces/IPileupReweightingTool.h>
#include "MuonMomentumCorrections/MuonCalibTool.h"
class MuonCalibrator : public xAH::Algorithm
{
// put your configuration variables here as public variables.
// that way they can be set directly from CINT and python.
public:
// configuration variables
std::string m_inContainerName = "";
std::string m_outContainerName = "";
std::string m_calibrationMode = "noOption";
bool m_isRun3Geo = false;
bool m_do2StationsHighPt = false;
// sort after calibration
bool m_sort = true;
// systematics
std::string m_inputAlgoSystNames = "";
// 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)
std::string m_outputAlgoSystNames = "MuonCalibrator_Syst";
bool m_writeSystToMetadata = false;
float m_systVal = 0.0;
std::string m_systName = "";
bool m_forceDataCalib = false;
private:
int m_numEvent;
int m_numObject;
std::string m_outAuxContainerName;
std::string m_outSCContainerName;
std::string m_outSCAuxContainerName;
std::vector<CP::SystematicSet> m_systList;
// tools
asg::AnaToolHandle<CP::MuonCalibTool> m_muonCalibrationTool_handle{"CP::MuonCalibTool/MuonCalibrationTool", this};
// variables that don't get filled at submission time should be
// protected from being send from the submission node to the worker
// node (done by the //!)
public:
// Tree *myTree; //!
// TH1 *myHist; //!
// this is a standard constructor
MuonCalibrator ();
// these are the functions inherited from Algorithm
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 ();
// this is needed to distribute the algorithm to the workers
ClassDef(MuonCalibrator, 1);
};
#endif