4 #ifndef JUGBASE_PODIOOUTPUT_H
5 #define JUGBASE_PODIOOUTPUT_H
8 #include "GaudiAlg/GaudiAlgorithm.h"
9 #include "podio/CollectionBase.h"
24 PodioOutput(
const std::string& name, ISvcLocator* svcLoc);
35 void resetBranches(
const std::vector<std::pair<std::string, podio::CollectionBase*>>& collections);
36 void createBranches(
const std::vector<std::pair<std::string, podio::CollectionBase*>>& collections);
40 Gaudi::Property<std::string> m_filename{
this,
"filename",
"output.root",
"Name of the file to create"};
42 Gaudi::Property<std::vector<std::string>> m_outputCommands{
43 this,
"outputCommands", {
"keep *"},
"A set of commands to declare which collections to keep or drop."};
44 Gaudi::Property<std::string> m_filenameRemote{
45 this,
"filenameRemote",
"",
"An optional file path to copy the outputfile to."};
51 std::unique_ptr<TFile> m_file;
53 gsl::owner<TTree*> m_datatree;
55 gsl::owner<TTree*> m_metadatatree;
56 gsl::owner<TTree*> m_runMDtree;
57 gsl::owner<TTree*> m_evtMDtree;
58 gsl::owner<TTree*> m_colMDtree;
60 std::vector<podio::CollectionBase*> m_storedCollections;