42 std::map<std::string, TH1F*>
hists_;
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->empty() )
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.);
void endJob() override
everything that needs to be done after the event loop
bool getByToken(EDGetToken token, Handle< PROD > &result) const
T * make(const Args &...args) const
make new ROOT object
void analyze(const edm::Event &, const edm::EventSetup &) override
everything that needs to be done during the event loop
PatTopSelectionAnalyzer(const edm::ParameterSet &)
default constructor
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
void beginJob() override
everything that needs to be done before the event loop
#define DEFINE_FWK_MODULE(type)
edm::EDGetTokenT< edm::View< pat::MET > > metToken_
edm::EDGetTokenT< edm::View< pat::Jet > > jetsToken_
edm::EDGetTokenT< edm::View< pat::Electron > > elecsToken_
void fill(const std::string histName, double value) const
fill histogram if it had been booked before
edm::EDGetTokenT< edm::View< pat::Muon > > muonsToken_
std::map< std::string, TH1F * > hists_
bool booked(const std::string histName) const
check if histogram was booked
~PatTopSelectionAnalyzer() override
default destructor