CMS 3D CMS Logo

BasicMuonAnalyzer.cc
Go to the documentation of this file.
4 
7  : edm::BasicAnalyzer::BasicAnalyzer(cfg, fs), muons_(cfg.getParameter<edm::InputTag>("muons")) {
8  hists_["muonPt"] = fs.make<TH1F>("muonPt", "pt", 100, 0., 300.);
9  hists_["muonEta"] = fs.make<TH1F>("muonEta", "eta", 100, -3., 3.);
10  hists_["muonPhi"] = fs.make<TH1F>("muonPhi", "phi", 100, -5., 5.);
11  hists_["mumuMass"] = fs.make<TH1F>("mumuMass", "mass", 90, 30., 120.);
12 }
15  muons_(cfg.getParameter<edm::InputTag>("muons")),
16  muonsToken_(iC.consumes<std::vector<reco::Muon> >(muons_)) {
17  hists_["muonPt"] = fs.make<TH1F>("muonPt", "pt", 100, 0., 300.);
18  hists_["muonEta"] = fs.make<TH1F>("muonEta", "eta", 100, -3., 3.);
19  hists_["muonPhi"] = fs.make<TH1F>("muonPhi", "phi", 100, -5., 5.);
20  hists_["mumuMass"] = fs.make<TH1F>("mumuMass", "mass", 90, 30., 120.);
21 }
22 
25  // define what muon you are using; this is necessary as FWLite is not
26  // capable of reading edm::Views
27  using reco::Muon;
28 
29  // Handle to the muon collection
31  event.getByLabel(muons_, muons);
32 
33  // loop muon collection and fill histograms
34  for (std::vector<Muon>::const_iterator mu1 = muons->begin(); mu1 != muons->end(); ++mu1) {
35  hists_["muonPt"]->Fill(mu1->pt());
36  hists_["muonEta"]->Fill(mu1->eta());
37  hists_["muonPhi"]->Fill(mu1->phi());
38  if (mu1->pt() > 20 && fabs(mu1->eta()) < 2.1) {
39  for (std::vector<Muon>::const_iterator mu2 = muons->begin(); mu2 != muons->end(); ++mu2) {
40  if (mu2 > mu1) { // prevent double conting
41  if (mu1->charge() * mu2->charge() < 0) { // check only muon pairs of unequal charge
42  if (mu2->pt() > 20 && fabs(mu2->eta()) < 2.1) {
43  hists_["mumuMass"]->Fill((mu1->p4() + mu2->p4()).mass());
44  }
45  }
46  }
47  }
48  }
49  }
50 }
PDWG_BPHSkim_cff.muons
muons
Definition: PDWG_BPHSkim_cff.py:47
Handle.h
BasicMuonAnalyzer::hists_
std::map< std::string, TH1 * > hists_
histograms
Definition: BasicMuonAnalyzer.h:39
TFileDirectory::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileDirectory.h:53
edm
HLT enums.
Definition: AlignableModifier.h:19
BasicMuonAnalyzer::BasicMuonAnalyzer
BasicMuonAnalyzer(const edm::ParameterSet &cfg, TFileDirectory &fs)
default constructor
Definition: BasicMuonAnalyzer.cc:6
Muon.h
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
TFileDirectory
Definition: TFileDirectory.h:24
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::Handle
Definition: AssociativeIterator.h:50
Muon
Definition: Muon.py:1
BasicAnalyzer
Abstract base class for FWLite and EDM friendly analyzers.
edm::ParameterSet
Definition: ParameterSet.h:47
dumpRecoGeometry_cfg.Muon
Muon
Definition: dumpRecoGeometry_cfg.py:190
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
BasicMuonAnalyzer.h
BasicMuonAnalyzer::analyze
void analyze(const edm::EventBase &event) override
everything that needs to be done during the event loop
Definition: BasicMuonAnalyzer.cc:24
looper.cfg
cfg
Definition: looper.py:297
std
Definition: JetResolutionObject.h:76
edm::EventBase
Definition: EventBase.h:46
EgHLTOffHistBins_cfi.mass
mass
Definition: EgHLTOffHistBins_cfi.py:34
event
Definition: event.py:1
BasicMuonAnalyzer::muons_
edm::InputTag muons_
input tag for mouns
Definition: BasicMuonAnalyzer.h:36
edm::ConsumesCollector
Definition: ConsumesCollector.h:45