1 #ifndef PhysicsTools_NanoAOD_SummaryTableOutputBranches_h 2 #define PhysicsTools_NanoAOD_SummaryTableOutputBranches_h 16 if (
desc->className() !=
"nanoaod::MergeableCounterTable")
17 throw cms::Exception(
"Configuration",
"NanoAODOutputModule can only write out MergableCounterTable objects");
36 TBranch *counterBranchptr =
nullptr,
37 TBranch *valueBranchptr =
nullptr)
46 template <
typename T,
typename Col>
50 std::vector<NamedBranchPtr> &branches);
51 template <
typename Col>
55 std::vector<NamedVectorBranchPtr> &branches);
57 template <
typename Col>
58 void fillScalarBranches(
const std::vector<Col> &tabcols, std::vector<NamedBranchPtr> &branches);
59 template <
typename Col>
60 void fillVectorBranches(
const std::vector<Col> &tabcols, std::vector<NamedVectorBranchPtr> &branches);
void makeVectorBranches(const std::vector< Col > &tabcols, TTree &tree, const std::string &rootType, std::vector< NamedVectorBranchPtr > &branches)
std::vector< NamedVectorBranchPtr > m_vfloatWithNormBranches
void fillVectorBranches(const std::vector< Col > &tabcols, std::vector< NamedVectorBranchPtr > &branches)
std::vector< NamedBranchPtr > m_floatWithNormBranches
std::vector< NamedVectorBranchPtr > m_vintBranches
void updateBranches(const nanoaod::MergeableCounterTable &tab, TTree &tree)
void makeScalarBranches(const std::vector< Col > &tabcols, TTree &tree, const std::string &rootType, std::vector< NamedBranchPtr > &branches)
void fillScalarBranches(const std::vector< Col > &tabcols, std::vector< NamedBranchPtr > &branches)
std::vector< NamedVectorBranchPtr > m_vfloatBranches
SummaryTableOutputBranches(const edm::BranchDescription *desc, const edm::EDGetToken &token)
std::vector< NamedBranchPtr > m_intBranches
std::vector< NamedBranchPtr > m_floatBranches
void fill(const edm::OccurrenceForOutput &iWhatever, TTree &tree)
NamedVectorBranchPtr(const std::string &aname, TBranch *counterBranchptr=nullptr, TBranch *valueBranchptr=nullptr)
NamedBranchPtr(const std::string &aname, TBranch *branchptr=nullptr)