4#ifndef ASGANALYSISALGORITHMS_RNTUPLETREEMAKERALG_H
5#define ASGANALYSISALGORITHMS_RNTUPLETREEMAKERALG_H
13#include <ROOT/RNTupleModel.hxx>
14#include <ROOT/RNTupleWriter.hxx>
22#include <unordered_map>
37 virtual StatusCode
execute()
override;
40 virtual StatusCode
finalize()
override;
50 this,
"TreeName",
"physics",
"Name of the RNTuple model/tree"};
53 this,
"OutputStreamName",
"ANALYSIS",
"Name of the output stream"};
56 this,
"Branches", {},
"List of branches to create (format: Object.Var -> BranchName)"};
59 this,
"NonContainers", {},
"List of objects to treat as non-containers"};
65 this,
"SystematicsSvc",
"SystematicsSvc",
"Systematics service"};
70 std::unique_ptr<ROOT::RNTupleModel>
m_model;
Algorithm that creates an RNTuple (instead of TTree).
virtual StatusCode execute() override
Function executed once per event.
Gaudi::Property< std::vector< std::string > > m_nonContainers
Gaudi::Property< std::vector< std::string > > m_branches
Gaudi::Property< std::string > m_outputStreamName
StatusCode setupTree()
Function setting up the internal data structures on the first event.
Gaudi::Property< std::string > m_modelName
CP::RNtupleFieldHelpers::ProcessorList m_processorList
std::unique_ptr< ROOT::RNTupleWriter > m_writer
virtual StatusCode initialize() override
Function executed during algorithm initialization.
ServiceHandle< ISystematicsSvc > m_systematicsService
Service handle for systematics.
virtual StatusCode finalize() override
Function executed during algo finalization.
std::unique_ptr< ROOT::RNTupleModel > m_model
the (new) base class for EventLoop algorithms
AnaAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
constructor with parameters
Select isolated Photons, Electrons and Muons.