1 #ifndef PhysicsTools_NanoAOD_SummaryTableOutputBranches_h 2 #define PhysicsTools_NanoAOD_SummaryTableOutputBranches_h 17 if (desc->
className() !=
"nanoaod::MergeableCounterTable")
throw cms::Exception(
"Configuration",
"NanoAODOutputModule can only write out MergableCounterTable objects");
29 name(aname), branch(branchptr) {}
37 NamedBranchPtr(aname,valueBranchptr), counterBranch(counterBranchptr) {}
45 template<
typename Col>
void makeScalarBranches(
const std::vector<Col> & tabcols, TTree & tree,
const std::string & rootType, std::vector<NamedBranchPtr> & branches);
46 template<
typename Col>
void makeVectorBranches(
const std::vector<Col> & tabcols, TTree & tree,
const std::string & rootType, std::vector<NamedVectorBranchPtr> & branches );
48 template<
typename Col>
void fillScalarBranches(
const std::vector<Col> & tabcols, std::vector<NamedBranchPtr> & branches);
49 template<
typename Col>
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)
NamedVectorBranchPtr(const std::string &aname, TBranch *counterBranchptr=0, TBranch *valueBranchptr=0)
void fillVectorBranches(const std::vector< Col > &tabcols, std::vector< NamedVectorBranchPtr > &branches)
std::vector< NamedVectorBranchPtr > m_vintBranches
void makeScalarBranches(const std::vector< Col > &tabcols, TTree &tree, const std::string &rootType, std::vector< NamedBranchPtr > &branches)
std::string const & className() const
void defineBranchesFromFirstEvent(const nanoaod::MergeableCounterTable &tab, TTree &tree)
NamedBranchPtr(const std::string &aname, TBranch *branchptr=0)
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)