5#ifndef ASGANALYSISALGORITHMS_ASGXAODMETNTUPLEMAKERALG_H
6#define ASGANALYSISALGORITHMS_ASGXAODMETNTUPLEMAKERALG_H
60 StatusCode
setupBranch(
const std::string &branchDecl,
67 Gaudi::Property<std::string>
m_treeName {
this,
"TreeName",
"physics",
"Name of the tree to write"};
69 Gaudi::Property<std::vector< std::string >>
m_branches {
this,
"Branches", {},
"Branches to write to the output tree"};
117 StatusCode
addBranch( TTree&
tree,
const std::string& auxName,
118 const std::string& branchName,
155 StatusCode
setup( TTree&
tree,
const std::string& auxName,
156 const std::string& branchName,
177 std::unique_ptr< SG::TypelessConstAccessor >
m_acc;
181 std::unique_ptr< SG::IAuxTypeVector >
m_data;
207 std::unordered_map< std::string, ElementProcessor >
m_elements;
217 Gaudi::Property<std::string>
m_termName {
this,
"termName",
"Final",
"the name of the MissingET term to save"};
Base class for elements of a container that can have aux data.
Define macros for attributes used to control the static checker.
TTree * tree(const std::string &treeName, const std::string &tDir="", const std::string &stream="")
Simplify the retrieval of registered TTrees.
Class writing one variable from an xAOD object into a branch.
std::unique_ptr< SG::IAuxTypeVector > m_data
The object managing the memory of the written variable.
std::unique_ptr< SG::TypelessConstAccessor > m_acc
Object accessing the variable in question.
const SG::IAuxTypeVectorFactory * m_factory
Pointer to the helper object that handles this variable.
std::string m_branchName
Name of the branch being written.
void * m_dataPtr
Helper variable, pointing at the object to be written.
StatusCode addBranch(TTree &tree, const std::string &auxName, const std::string &branchName, bool allowMissing, bool &created)
Add one branch to the output tree.
ElementProcessor()
Default constructor.
std::list< BranchProcessor > m_branches
List of branch processors set up for this xAOD object.
TTree * m_tree
The tree being written.
std::unordered_map< std::string, ElementProcessor > m_elements
Objects to write branches from.
ServiceHandle< ISystematicsSvc > m_systematicsService
the handle for the systematics service
StatusCode setupBranch(const std::string &branchDecl, const CP::SystematicSet &sys)
Function setting up an individual branch on the first event.
Gaudi::Property< std::vector< std::string > > m_branches
The branches to write into this output tree.
bool m_isInitialized
Internal status flag, showing whether the algorithm is initialised.
Gaudi::Property< std::string > m_treeName
The name of the output tree to write.
StatusCode finalize() override
Function executed as part of the job finalisation.
AsgxAODMetNTupleMakerAlg(const std::string &name, ISvcLocator *svcLoc)
Algorithm constructor.
StatusCode setupTree()
Function setting up the internal data structures on the first event.
StatusCode execute() override
Function executed once per event.
Gaudi::Property< std::string > m_termName
Class to wrap a set of SystematicVariations.
the (new) base class for EventLoop algorithms
Base class for elements of a container that can have aux data.
Interface for factory objects that create vectors.
Class mimicking the AthMessaging class from the offline software.
MsgStream & msg() const
The standard message stream.
bool setup(asg::AnaToolHandle< Interface > &tool, const std::string &type, const std::vector< std::string > &config, const std::string &progressFile="")
mostly useful for athena, which will otherwise re-use the previous tool
const std::string process
Select isolated Photons, Electrons and Muons.
void ErrorHandler ATLAS_NOT_THREAD_SAFE(Int_t level, Bool_t abort, const char *location, const char *message)
Function filtering the warnings coming from ROOT.