30 bool booked(
const std::string histName)
const {
return hists_.find(histName.c_str())!=
hists_.end(); };
32 void fill(
const std::string histName,
double value)
const {
if(
booked(histName.c_str()))
hists_.find(histName.c_str())->
second->Fill(value); };
37 std::map<std::string, TH1F*>
hists_;
53 elecs_(iConfig.getUntrackedParameter<edm::InputTag>(
"elecs")),
54 muons_(iConfig.getUntrackedParameter<edm::InputTag>(
"muons")),
55 jets_ (iConfig.getUntrackedParameter<edm::InputTag>(
"jets" )),
56 met_ (iConfig.getUntrackedParameter<edm::InputTag>(
"met" ))
87 fill(
"elecMult", elecs->size());
88 if(elecs->begin()!=elecs->end()){
89 fill(
"elecIso", (elecs->begin()->trackIso()+elecs->begin()->caloIso())/elecs->begin()->pt());
90 fill(
"elecPt", elecs->begin()->pt());
94 fill(
"muonMult", muons->size());
95 if(muons->begin()!=muons->end()){
96 fill(
"muonIso", (muons->begin()->trackIso()+muons->begin()->caloIso())/muons->begin()->pt());
97 fill(
"muonPt", muons->begin()->pt());
102 fill(
"jetMult", jets->size());
103 if( jets->size()>0 )
fill(
"jet0Pt", (*jets)[0].pt());
104 if( jets->size()>1 )
fill(
"jet1Pt", (*jets)[1].pt());
105 if( jets->size()>2 )
fill(
"jet2Pt", (*jets)[2].pt());
106 if( jets->size()>3 )
fill(
"jet3Pt", (*jets)[3].pt());
109 fill(
"met", met->empty()?0:(*met)[0].et());
119 hists_[
"yield" ]=fs->
make<TH1F>(
"yield" ,
"electron multiplicity", 1, 0., 1.);
120 hists_[
"elecMult"]=fs->
make<TH1F>(
"elecMult",
"electron multiplicity", 10, 0., 10.);
121 hists_[
"elecIso" ]=fs->
make<TH1F>(
"elecIso" ,
"electron isolation" , 20, 0., 1.);
122 hists_[
"elecPt" ]=fs->
make<TH1F>(
"elecPt" ,
"electron pt" , 30, 0., 150.);
123 hists_[
"muonMult"]=fs->
make<TH1F>(
"muonMult",
"muon multiplicity" , 10, 0., 10.);
124 hists_[
"muonIso" ]=fs->
make<TH1F>(
"muonIso" ,
"muon isolation" , 20, 0., 1.);
125 hists_[
"muonPt" ]=fs->
make<TH1F>(
"muonPt" ,
"muon pt" , 30, 0., 150.);
126 hists_[
"jetMult" ]=fs->
make<TH1F>(
"jetMult" ,
"jet multiplicity" , 15, 0., 15.);
127 hists_[
"jet0Pt" ]=fs->
make<TH1F>(
"jet0Pt" ,
"1. leading jet pt" , 50, 0., 250.);
128 hists_[
"jet1Pt" ]=fs->
make<TH1F>(
"jet1Pt" ,
"1. leading jet pt" , 50, 0., 250.);
129 hists_[
"jet2Pt" ]=fs->
make<TH1F>(
"jet2Pt" ,
"1. leading jet pt" , 50, 0., 200.);
130 hists_[
"jet3Pt" ]=fs->
make<TH1F>(
"jet3Pt" ,
"1. leading jet pt" , 50, 0., 200.);
131 hists_[
"met" ]=fs->
make<TH1F>(
"met" ,
"missing E_{T}" , 25, 0., 200.);
virtual void beginJob()
everything that needs to be done before the event loop
#define DEFINE_FWK_MODULE(type)
PatTopSelectionAnalyzer(const edm::ParameterSet &)
default constructor
U second(std::pair< T, U > const &p)
void fill(const std::string histName, double value) const
fill histogram if it had been booked before
virtual void endJob()
everything that needs to be done after the event loop
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
std::map< std::string, TH1F * > hists_
bool booked(const std::string histName) const
check if histogram was booked
T * make() const
make new ROOT object
~PatTopSelectionAnalyzer()
default destructor
virtual void analyze(const edm::Event &, const edm::EventSetup &)
everything that needs to be done during the event loop