9 muons_(cfg.getParameter<
edm::InputTag>(
"muons"))
11 hists_[
"muonPt" ] = fs.
make<TH1F>(
"muonPt" ,
"pt" , 100, 0., 300.);
12 hists_[
"muonEta" ] = fs.
make<TH1F>(
"muonEta" ,
"eta" , 100, -3., 3.);
13 hists_[
"muonPhi" ] = fs.
make<TH1F>(
"muonPhi" ,
"phi" , 100, -5., 5.);
14 hists_[
"mumuMass"] = fs.
make<TH1F>(
"mumuMass",
"mass", 90, 30., 120.);
18 muons_(cfg.getParameter<
edm::InputTag>(
"muons")) ,
21 hists_[
"muonPt" ] = fs.
make<TH1F>(
"muonPt" ,
"pt" , 100, 0., 300.);
22 hists_[
"muonEta" ] = fs.
make<TH1F>(
"muonEta" ,
"eta" , 100, -3., 3.);
23 hists_[
"muonPhi" ] = fs.
make<TH1F>(
"muonPhi" ,
"phi" , 100, -5., 5.);
24 hists_[
"mumuMass"] = fs.
make<TH1F>(
"mumuMass",
"mass", 90, 30., 120.);
37 event.getByLabel(
muons_, muons);
40 for(std::vector<Muon>::const_iterator mu1=muons->begin(); mu1!=muons->end(); ++mu1){
41 hists_[
"muonPt" ]->Fill( mu1->pt () );
42 hists_[
"muonEta"]->Fill( mu1->eta() );
43 hists_[
"muonPhi"]->Fill( mu1->phi() );
44 if( mu1->pt()>20 && fabs(mu1->eta())<2.1 ){
45 for(std::vector<Muon>::const_iterator mu2=muons->begin(); mu2!=muons->end(); ++mu2){
47 if( mu1->charge()*mu2->charge()<0 ){
48 if( mu2->pt()>20 && fabs(mu2->eta())<2.1 ){
49 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::EDGetTokenT< std::vector< reco::Muon > > muonsToken_
edm::InputTag muons_
input tag for mouns