DESY Hbb Analysis Framework
Public Member Functions | Private Attributes | List of all members
analysis::ntuple::Metadata Class Reference

#include <Metadata.h>

Public Member Functions

void AddDefinitions (const std::vector< std::string > &, const std::vector< std::string > &)
 
void AddDefinitions (const std::vector< std::string > &, const std::vector< std::string > &, const std::string &)
 
void AddDefinitions (const std::vector< TitleAlias > &, const std::string &)
 
void Fill ()
 
EvtFilterGetEventFilter ()
 
GenFilterGetGeneratorFilter ()
 
void IncrementEventFilters (edm::LuminosityBlock const &)
 
 Metadata ()
 
 Metadata (edm::Service< TFileService > &, const bool &is_mc=false, const std::string &dir="Metadata")
 
 Metadata (TFileDirectory &)
 
void SetCrossSections (const edm::Run &, const edm::InputTag &, const double &myxs=-1.)
 
void SetEventFilter (const std::vector< edm::InputTag > &)
 
void SetGeneratorFilter (const edm::InputTag &)
 
void SetMHatEventFilter (const std::vector< edm::InputTag > &)
 
TTree * Tree ()
 
TFileDirectory TreeDir ()
 
 ~Metadata ()
 

Private Attributes

pEvtFilter evtfilter_
 
double externalXSecLO_
 
double externalXSecNLO_
 
pGenFilter genfilter_
 
double internalXSec_
 
bool is_mc_
 
bool isEvtFilter_
 
bool isGenFilter_
 
bool isMHatEvtFilter_
 
TFileDirectory mainDir_
 
TFileDirectory mHatDir_
 
pEvtFilter mHatEvtFilter_
 
double myXSec_
 
pTFileService pfs_
 
unsigned int runXS_
 
TTree * treeDS_
 
TTree * treeXS_
 
std::vector< pDefinitionsvdefinitions_
 
double XSec_
 

Detailed Description

Definition at line 69 of file Metadata.h.

Constructor & Destructor Documentation

Metadata::Metadata ( )

Definition at line 37 of file Metadata.cc.

38 {
39  // default constructor
40 }
Metadata::Metadata ( edm::Service< TFileService > &  fs,
const bool &  is_mc = false,
const std::string &  dir = "Metadata" 
)

Definition at line 42 of file Metadata.cc.

References externalXSecLO_, externalXSecNLO_, internalXSec_, is_mc_, isEvtFilter_, isGenFilter_, isMHatEvtFilter_, mainDir_, mHatDir_, myXSec_, runXS_, treeDS_, treeXS_, vdefinitions_, and XSec_.

43 {
44  is_mc_ = is_mc;
45 
46  vdefinitions_.clear();
47  mainDir_ = fs->mkdir(dir);
48  mHatDir_ = fs->mkdir("mHatFilter");
49 
50 // fs_ = &fs;
51 
52  isGenFilter_ = false;
53  isEvtFilter_ = false;
54  isMHatEvtFilter_ = false;
55 
56  if ( is_mc_ )
57  {
58  // Cross sections tree
59  treeXS_ = mainDir_.make<TTree>("CrossSections","Cross Sections");
60  // cross section branches
61  treeXS_ -> Branch("run" , &runXS_ , "run/i");
62  treeXS_ -> Branch("myCrossSection" , &myXSec_ , "myCrossSection/D");
63  treeXS_ -> Branch("crossSection" , &XSec_ , "crossSection_generator/D");
64  treeXS_ -> Branch("internalXSec" , &internalXSec_ , "internalXSec_generator/D");
65  treeXS_ -> Branch("externalXSecLO" , &externalXSecLO_ , "externalXSecLO_generator/D");
66  treeXS_ -> Branch("externalXSecNLO", &externalXSecNLO_ , "externalXSecNLO_generator/D");
67  }
68 
69  // Dataset
70  treeDS_ = mainDir_.make<TTree>("Dataset","Dataset info");
71  treeDS_ -> Branch("isMC" , &is_mc_ , "isMC/O");
72 
73 }
std::vector< pDefinitions > vdefinitions_
Definition: Metadata.h:100
TFileDirectory mainDir_
Definition: Metadata.h:97
TFileDirectory mHatDir_
Definition: Metadata.h:98
analysis::ntuple::Metadata::Metadata ( TFileDirectory &  )
Metadata::~Metadata ( )

Definition at line 75 of file Metadata.cc.

76 {
77  // do anything here that needs to be done at desctruction time
78  // (e.g. close files, deallocate resources etc.)
79 }

Member Function Documentation

void Metadata::AddDefinitions ( const std::vector< std::string > &  names,
const std::vector< std::string > &  aliases 
)

Definition at line 101 of file Metadata.cc.

References mainDir_, and vdefinitions_.

102 {
103  vdefinitions_.push_back(pDefinitions ( new Definitions(mainDir_) ));
104  vdefinitions_.back() -> Add(names,aliases);
105 }
std::vector< pDefinitions > vdefinitions_
Definition: Metadata.h:100
TFileDirectory mainDir_
Definition: Metadata.h:97
std::unique_ptr< Definitions > pDefinitions
Definition: Metadata.h:50
analysis::ntuple::Definitions Definitions
Definition: Metadata.h:49
void Metadata::AddDefinitions ( const std::vector< std::string > &  names,
const std::vector< std::string > &  aliases,
const std::string &  category 
)

Definition at line 107 of file Metadata.cc.

References mainDir_, and vdefinitions_.

108 {
109  vdefinitions_.push_back(pDefinitions ( new Definitions(mainDir_, category) ));
110  vdefinitions_.back() -> Add(names,aliases);
111 }
std::vector< pDefinitions > vdefinitions_
Definition: Metadata.h:100
TFileDirectory mainDir_
Definition: Metadata.h:97
std::unique_ptr< Definitions > pDefinitions
Definition: Metadata.h:50
analysis::ntuple::Definitions Definitions
Definition: Metadata.h:49
void Metadata::AddDefinitions ( const std::vector< TitleAlias > &  tas,
const std::string &  category 
)

Definition at line 113 of file Metadata.cc.

References mainDir_, and vdefinitions_.

114 {
115  std::vector<std::string> names;
116  std::vector<std::string> aliases;
117  for ( auto & ta : tas )
118  {
119  names.push_back(ta.title);
120  aliases.push_back(ta.alias);
121  }
122  vdefinitions_.push_back(pDefinitions ( new Definitions(mainDir_, category) ));
123  vdefinitions_.back() -> Add(names,aliases);
124 }
std::vector< pDefinitions > vdefinitions_
Definition: Metadata.h:100
TFileDirectory mainDir_
Definition: Metadata.h:97
std::unique_ptr< Definitions > pDefinitions
Definition: Metadata.h:50
analysis::ntuple::Definitions Definitions
Definition: Metadata.h:49
void Metadata::Fill ( )

Definition at line 87 of file Metadata.cc.

References evtfilter_, genfilter_, isEvtFilter_, isGenFilter_, isMHatEvtFilter_, mHatEvtFilter_, treeDS_, and vdefinitions_.

Referenced by SetCrossSections().

88 {
89  for ( auto & definitions : vdefinitions_ )
90  definitions -> Fill();
91 
92  if ( isGenFilter_ ) genfilter_ -> Fill();
93  if ( isEvtFilter_ ) evtfilter_ -> Fill();
95 
96  treeDS_ -> Fill();
97 
98 }
std::vector< pDefinitions > vdefinitions_
Definition: Metadata.h:100
EvtFilter & Metadata::GetEventFilter ( )

Definition at line 157 of file Metadata.cc.

References evtfilter_.

158 {
159  return *evtfilter_;
160 }
GenFilter & Metadata::GetGeneratorFilter ( )

Definition at line 152 of file Metadata.cc.

References genfilter_.

153 {
154  // genfilter_ should not go out of scope after returning the reference, should be safe(?)
155  return *genfilter_;
156 }
void Metadata::IncrementEventFilters ( edm::LuminosityBlock const &  lumi)

Definition at line 145 of file Metadata.cc.

References evtfilter_, genfilter_, isEvtFilter_, isGenFilter_, isMHatEvtFilter_, and mHatEvtFilter_.

146 {
147  if ( isGenFilter_ ) genfilter_ -> Increment(lumi);
148  if ( isEvtFilter_ ) evtfilter_ -> Increment(lumi);
149  if ( isMHatEvtFilter_) mHatEvtFilter_ -> Increment(lumi);
150 }
void Metadata::SetCrossSections ( const edm::Run &  run,
const edm::InputTag &  inputTag,
const double &  myxs = -1. 
)

Definition at line 162 of file Metadata.cc.

References externalXSecLO_, externalXSecNLO_, Fill(), internalXSec_, is_mc_, myXSec_, runXS_, treeXS_, and XSec_.

163 {
164  if ( is_mc_ )
165  {
166  runXS_ = run.run();
167 
168  edm::Handle<GenRunInfoProduct> genRunInfo;
169  run.getByLabel( inputTag, genRunInfo );
170  myXSec_ = myxs;
171  XSec_ = genRunInfo -> crossSection();
172  internalXSec_ = genRunInfo -> internalXSec().value();
173  externalXSecLO_ = genRunInfo -> externalXSecLO().value();
174  externalXSecNLO_ = genRunInfo -> externalXSecNLO().value();
175 
176  treeXS_ -> Fill();
177  }
178 
179 }
void Metadata::SetEventFilter ( const std::vector< edm::InputTag > &  filterInfos)

Definition at line 132 of file Metadata.cc.

References evtfilter_, isEvtFilter_, and mainDir_.

133 {
134  evtfilter_ = pEvtFilter( new EvtFilter(mainDir_, filterInfos ));
135  isEvtFilter_ = true;
136 }
TFileDirectory mainDir_
Definition: Metadata.h:97
std::unique_ptr< EvtFilter > pEvtFilter
Definition: Metadata.h:56
analysis::ntuple::EventFilter< edm::MergeableCounter > EvtFilter
Definition: Metadata.h:53
void Metadata::SetGeneratorFilter ( const edm::InputTag &  genFilterInfo)

Definition at line 126 of file Metadata.cc.

References genfilter_, isGenFilter_, and mainDir_.

127 {
128  genfilter_ = pGenFilter( new GenFilter(mainDir_, {genFilterInfo} ));
129  isGenFilter_ = true;
130 }
TFileDirectory mainDir_
Definition: Metadata.h:97
std::unique_ptr< GenFilter > pGenFilter
Definition: Metadata.h:55
analysis::ntuple::EventFilter< GenFilterInfo > GenFilter
Definition: Metadata.h:52
void Metadata::SetMHatEventFilter ( const std::vector< edm::InputTag > &  filterInfos)

Definition at line 138 of file Metadata.cc.

References isMHatEvtFilter_, mHatDir_, and mHatEvtFilter_.

139 {
140  mHatEvtFilter_ = pEvtFilter( new EvtFilter(mHatDir_, filterInfos ));
141  isMHatEvtFilter_ = true;
142 }
TFileDirectory mHatDir_
Definition: Metadata.h:98
std::unique_ptr< EvtFilter > pEvtFilter
Definition: Metadata.h:56
analysis::ntuple::EventFilter< edm::MergeableCounter > EvtFilter
Definition: Metadata.h:53
TTree* analysis::ntuple::Metadata::Tree ( )
TFileDirectory analysis::ntuple::Metadata::TreeDir ( )

Member Data Documentation

pEvtFilter analysis::ntuple::Metadata::evtfilter_
private

Definition at line 106 of file Metadata.h.

Referenced by Fill(), GetEventFilter(), IncrementEventFilters(), and SetEventFilter().

double analysis::ntuple::Metadata::externalXSecLO_
private

Definition at line 117 of file Metadata.h.

Referenced by Metadata(), and SetCrossSections().

double analysis::ntuple::Metadata::externalXSecNLO_
private

Definition at line 118 of file Metadata.h.

Referenced by Metadata(), and SetCrossSections().

pGenFilter analysis::ntuple::Metadata::genfilter_
private

Definition at line 105 of file Metadata.h.

Referenced by Fill(), GetGeneratorFilter(), IncrementEventFilters(), and SetGeneratorFilter().

double analysis::ntuple::Metadata::internalXSec_
private

Definition at line 116 of file Metadata.h.

Referenced by Metadata(), and SetCrossSections().

bool analysis::ntuple::Metadata::is_mc_
private

Definition at line 123 of file Metadata.h.

Referenced by Metadata(), and SetCrossSections().

bool analysis::ntuple::Metadata::isEvtFilter_
private

Definition at line 103 of file Metadata.h.

Referenced by Fill(), IncrementEventFilters(), Metadata(), and SetEventFilter().

bool analysis::ntuple::Metadata::isGenFilter_
private

Definition at line 102 of file Metadata.h.

Referenced by Fill(), IncrementEventFilters(), Metadata(), and SetGeneratorFilter().

bool analysis::ntuple::Metadata::isMHatEvtFilter_
private

Definition at line 104 of file Metadata.h.

Referenced by Fill(), IncrementEventFilters(), Metadata(), and SetMHatEventFilter().

TFileDirectory analysis::ntuple::Metadata::mainDir_
private

Definition at line 97 of file Metadata.h.

Referenced by AddDefinitions(), Metadata(), SetEventFilter(), and SetGeneratorFilter().

TFileDirectory analysis::ntuple::Metadata::mHatDir_
private

Definition at line 98 of file Metadata.h.

Referenced by Metadata(), and SetMHatEventFilter().

pEvtFilter analysis::ntuple::Metadata::mHatEvtFilter_
private

Definition at line 107 of file Metadata.h.

Referenced by Fill(), IncrementEventFilters(), and SetMHatEventFilter().

double analysis::ntuple::Metadata::myXSec_
private

Definition at line 114 of file Metadata.h.

Referenced by Metadata(), and SetCrossSections().

pTFileService analysis::ntuple::Metadata::pfs_
private

Definition at line 110 of file Metadata.h.

unsigned int analysis::ntuple::Metadata::runXS_
private

Definition at line 119 of file Metadata.h.

Referenced by Metadata(), and SetCrossSections().

TTree* analysis::ntuple::Metadata::treeDS_
private

Definition at line 122 of file Metadata.h.

Referenced by Fill(), and Metadata().

TTree* analysis::ntuple::Metadata::treeXS_
private

Definition at line 113 of file Metadata.h.

Referenced by Metadata(), and SetCrossSections().

std::vector<pDefinitions> analysis::ntuple::Metadata::vdefinitions_
private

Definition at line 100 of file Metadata.h.

Referenced by AddDefinitions(), Fill(), and Metadata().

double analysis::ntuple::Metadata::XSec_
private

Definition at line 115 of file Metadata.h.

Referenced by Metadata(), and SetCrossSections().


The documentation for this class was generated from the following files: