CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PatBasicAnalyzer.cc
Go to the documentation of this file.
1 #include <map>
2 #include <string>
3 
4 #include "TH1.h"
5 
12 
14 
15 public:
17  explicit PatBasicAnalyzer(const edm::ParameterSet&);
20 
21 private:
23  virtual void beginJob() ;
25  virtual void analyze(const edm::Event&, const edm::EventSetup&);
27  virtual void endJob() ;
28 
29  // simple map to contain all histograms;
30  // histograms are booked in the beginJob()
31  // method
32  std::map<std::string,TH1F*> histContainer_;
33  // plot number of towers per jet
34  TH1F* jetTowers_;
35 
36  // input tags
43 };
44 
51 
53  histContainer_(),
54  photonSrc_(iConfig.getUntrackedParameter<edm::InputTag>("photonSrc")),
55  elecSrc_(iConfig.getUntrackedParameter<edm::InputTag>("electronSrc")),
56  muonSrc_(iConfig.getUntrackedParameter<edm::InputTag>("muonSrc")),
57  tauSrc_(iConfig.getUntrackedParameter<edm::InputTag>("tauSrc" )),
58  jetSrc_(iConfig.getUntrackedParameter<edm::InputTag>("jetSrc" )),
59  metSrc_(iConfig.getUntrackedParameter<edm::InputTag>("metSrc" ))
60 {
61 }
62 
64 {
65 }
66 
67 void
69 {
70  // get electron collection
72  iEvent.getByLabel(elecSrc_,electrons);
73 
74  // get muon collection
76  iEvent.getByLabel(muonSrc_,muons);
77 
78  // get tau collection
80  iEvent.getByLabel(tauSrc_,taus);
81 
82  // get jet collection
84  iEvent.getByLabel(jetSrc_,jets);
85 
86  // get met collection
88  iEvent.getByLabel(metSrc_,mets);
89 
90  // get photon collection
92  iEvent.getByLabel(photonSrc_,photons);
93 
94  // loop over jets
95  size_t nJets=0;
96  for(edm::View<pat::Jet>::const_iterator jet=jets->begin(); jet!=jets->end(); ++jet){
97  if(jet->pt()>50){
98  ++nJets;
99  }
100  // uncomment the following line to fill the
101  // jetTowers_ histogram
102  // jetTowers_->Fill(jet->getCaloConstituents().size());
103  }
104  histContainer_["jets"]->Fill(nJets);
105 
106  // do something similar for the other candidates
107  histContainer_["photons"]->Fill(photons->size() );
108  histContainer_["elecs" ]->Fill(electrons->size());
109  histContainer_["muons"]->Fill(muons->size() );
110  histContainer_["taus" ]->Fill(taus->size() );
111  histContainer_["met" ]->Fill(mets->empty() ? 0 : (*mets)[0].et());
112 }
113 
114 void
116 {
117  // register to the TFileService
119 
120  // book histograms:
121  // uncomment the following line to book the jetTowers_ histogram
122  //jetTowers_= fs->make<TH1F>("jetTowers", "towers per jet", 90, 0, 90);
123  histContainer_["photons"]=fs->make<TH1F>("photons", "photon multiplicity", 10, 0, 10);
124  histContainer_["elecs" ]=fs->make<TH1F>("elecs", "electron multiplicity", 10, 0, 10);
125  histContainer_["muons" ]=fs->make<TH1F>("muons", "muon multiplicity", 10, 0, 10);
126  histContainer_["taus" ]=fs->make<TH1F>("taus", "tau multiplicity", 10, 0, 10);
127  histContainer_["jets" ]=fs->make<TH1F>("jets", "jet multiplicity", 10, 0, 10);
128  histContainer_["met" ]=fs->make<TH1F>("met", "missing E_{T}", 20, 0, 100);
129 }
130 
131 void
133 {
134 }
135 
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
edm::InputTag tauSrc_
virtual void beginJob()
everything that needs to be done before the event loop
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
PatBasicAnalyzer(const edm::ParameterSet &)
default constructor
int iEvent
Definition: GenABIO.cc:243
~PatBasicAnalyzer()
default destructor
std::map< std::string, TH1F * > histContainer_
edm::InputTag photonSrc_
edm::InputTag elecSrc_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
edm::InputTag muonSrc_
edm::InputTag jetSrc_
virtual void endJob()
everything that needs to be done after the event loop
tuple muons
Definition: patZpeak.py:38
T * make() const
make new ROOT object
edm::InputTag metSrc_
virtual void analyze(const edm::Event &, const edm::EventSetup &)
everything that needs to be done during the event loop