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.);
15 muons_(cfg.getParameter<edm::
InputTag>(
"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.);
31 event.getByLabel(
muons_, muons);
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) {
41 if (mu1->charge() * mu2->charge() < 0) {
42 if (mu2->pt() > 20 && fabs(mu2->eta()) < 2.1) {
43 hists_[
"mumuMass"]->Fill((mu1->p4() + mu2->p4()).
mass());
std::map< std::string, TH1 * > hists_
histograms
BasicMuonAnalyzer(const edm::ParameterSet &cfg, TFileDirectory &fs)
default constructor
Abstract base class for FWLite and EDM friendly analyzers.
void analyze(const edm::EventBase &event) override
everything that needs to be done during the event loop
T * make(const Args &...args) const
make new ROOT object
edm::InputTag muons_
input tag for mouns