CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
PatBasicAnalyzer.cc
Go to the documentation of this file.
1 #include <map>
2 #include <string>
3 
4 #include "TH1.h"
5 
12 
19 
20 class PatBasicAnalyzer : public edm::one::EDAnalyzer<edm::one::SharedResources> {
21 public:
23  explicit PatBasicAnalyzer(const edm::ParameterSet&);
25  ~PatBasicAnalyzer() override;
26 
27 private:
29  void beginJob() override;
31  void analyze(const edm::Event&, const edm::EventSetup&) override;
33  void endJob() override;
34 
35  // simple map to contain all histograms;
36  // histograms are booked in the beginJob()
37  // method
38  std::map<std::string, TH1F*> histContainer_;
39  // plot number of towers per jet
40  TH1F* jetTowers_;
41 
42  // input tokens
49 };
50 
52  : histContainer_(),
53  photonSrcToken_(consumes<edm::View<pat::Photon>>(iConfig.getUntrackedParameter<edm::InputTag>("photonSrc"))),
54  elecSrcToken_(consumes<edm::View<pat::Electron>>(iConfig.getUntrackedParameter<edm::InputTag>("electronSrc"))),
55  muonSrcToken_(consumes<edm::View<pat::Muon>>(iConfig.getUntrackedParameter<edm::InputTag>("muonSrc"))),
56  tauSrcToken_(consumes<edm::View<pat::Tau>>(iConfig.getUntrackedParameter<edm::InputTag>("tauSrc"))),
57  jetSrcToken_(consumes<edm::View<pat::Jet>>(iConfig.getUntrackedParameter<edm::InputTag>("jetSrc"))),
58  metSrcToken_(consumes<edm::View<pat::MET>>(iConfig.getUntrackedParameter<edm::InputTag>("metSrc"))) {
59  usesResource(TFileService::kSharedResource);
60 }
61 
63 
65  // get electron collection
67  iEvent.getByToken(elecSrcToken_, electrons);
68 
69  // get muon collection
71  iEvent.getByToken(muonSrcToken_, muons);
72 
73  // get tau collection
75  iEvent.getByToken(tauSrcToken_, taus);
76 
77  // get jet collection
79  iEvent.getByToken(jetSrcToken_, jets);
80 
81  // get met collection
83  iEvent.getByToken(metSrcToken_, mets);
84 
85  // get photon collection
87  iEvent.getByToken(photonSrcToken_, photons);
88 
89  // loop over jets
90  size_t nJets = 0;
91  for (edm::View<pat::Jet>::const_iterator jet = jets->begin(); jet != jets->end(); ++jet) {
92  if (jet->pt() > 50) {
93  ++nJets;
94  }
95  // uncomment the following line to fill the
96  // jetTowers_ histogram
97  // jetTowers_->Fill(jet->getCaloConstituents().size());
98  }
99  histContainer_["jets"]->Fill(nJets);
100 
101  // do something similar for the other candidates
102  histContainer_["photons"]->Fill(photons->size());
103  histContainer_["elecs"]->Fill(electrons->size());
104  histContainer_["muons"]->Fill(muons->size());
105  histContainer_["taus"]->Fill(taus->size());
106  histContainer_["met"]->Fill(mets->empty() ? 0 : (*mets)[0].et());
107 }
108 
110  // register to the TFileService
112 
113  // book histograms:
114  // uncomment the following line to book the jetTowers_ histogram
115  //jetTowers_= fs->make<TH1F>("jetTowers", "towers per jet", 90, 0, 90);
116  histContainer_["photons"] = fs->make<TH1F>("photons", "photon multiplicity", 10, 0, 10);
117  histContainer_["elecs"] = fs->make<TH1F>("elecs", "electron multiplicity", 10, 0, 10);
118  histContainer_["muons"] = fs->make<TH1F>("muons", "muon multiplicity", 10, 0, 10);
119  histContainer_["taus"] = fs->make<TH1F>("taus", "tau multiplicity", 10, 0, 10);
120  histContainer_["jets"] = fs->make<TH1F>("jets", "jet multiplicity", 10, 0, 10);
121  histContainer_["met"] = fs->make<TH1F>("met", "missing E_{T}", 20, 0, 100);
122 }
123 
125 
static const std::string kSharedResource
Definition: TFileService.h:76
edm::EDGetTokenT< edm::View< pat::Tau > > tauSrcToken_
constexpr char Photon[]
Definition: modules.cc:14
edm::EDGetTokenT< edm::View< pat::Jet > > jetSrcToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
void analyze(const edm::Event &, const edm::EventSetup &) override
everything that needs to be done during the event loop
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
std::map< std::string, TH1F * > histContainer_
PatBasicAnalyzer(const edm::ParameterSet &)
default constructor
edm::EDGetTokenT< edm::View< pat::Muon > > muonSrcToken_
int iEvent
Definition: GenABIO.cc:224
edm::EDGetTokenT< edm::View< pat::MET > > metSrcToken_
vector< PseudoJet > jets
edm::EDGetTokenT< edm::View< pat::Electron > > elecSrcToken_
constexpr char Jet[]
Definition: modules.cc:9
tuple muons
Definition: patZpeak.py:41
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
~PatBasicAnalyzer() override
default destructor
void beginJob() override
everything that needs to be done before the event loop
void endJob() override
everything that needs to be done after the event loop
constexpr char Electron[]
Definition: modules.cc:12
edm::EDGetTokenT< edm::View< pat::Photon > > photonSrcToken_