CMS 3D CMS Logo

ZMuMuSaMassHistogram.cc
Go to the documentation of this file.
23 #include "TH1.h"
24 #include "TH2.h"
25 #include <vector>
26 #include <string>
27 #include <iostream>
28 #include <sstream>
29 
30 using namespace edm;
31 using namespace std;
32 using namespace reco;
33 using namespace isodeposit;
34 
36 public:
39 
40 private:
41  void analyze(const edm::Event& event, const edm::EventSetup& setup) override;
42  void endJob() override;
44  int counter;
45  double min, max;
46  int Nbin;
47  TH1F* ZMassSa;
48  void histo(TH1F* hist, char* cx, char* cy) const;
49 };
50 
51 void ZMuMuSaMassHistogram::histo(TH1F* hist, char* cx, char* cy) const {
52  hist->GetXaxis()->SetTitle(cx);
53  hist->GetYaxis()->SetTitle(cy);
54  hist->GetXaxis()->SetTitleOffset(1);
55  hist->GetYaxis()->SetTitleOffset(1.2);
56  hist->GetXaxis()->SetTitleSize(0.04);
57  hist->GetYaxis()->SetTitleSize(0.04);
58  hist->GetXaxis()->SetLabelSize(0.03);
59  hist->GetYaxis()->SetLabelSize(0.03);
60 }
61 
63  : srcToken_(consumes<CandidateView>(pset.getParameter<InputTag>("src_m"))),
64  counter(0),
65  min(pset.getUntrackedParameter<double>("min")),
66  max(pset.getUntrackedParameter<double>("max")),
67  Nbin(pset.getUntrackedParameter<int>("nbin")) {
69  ZMassSa = fs->make<TH1F>("zMass", "ZMass OneStandAlone (GeV/c^{2})", Nbin, min, max);
70 }
71 
74  event.getByToken(srcToken_, dimuons);
75  for (unsigned int i = 0; i < dimuons->size(); ++i) {
76  const Candidate& zmm = (*dimuons)[i];
77  const Candidate* dau0 = zmm.daughter(0);
78  const Candidate* dau1 = zmm.daughter(1);
79  TrackRef stAloneTrack;
81  double mu_mass;
82  if (counter % 2 == 0) {
83  stAloneTrack = dau0->get<TrackRef, reco::StandAloneMuonTag>();
84  p4_0 = dau1->polarP4();
85  mu_mass = dau0->mass();
86  } else {
87  stAloneTrack = dau1->get<TrackRef, reco::StandAloneMuonTag>();
88  p4_0 = dau0->polarP4();
89  mu_mass = dau1->mass();
90  }
91 
92  Vector momentum = stAloneTrack->momentum();
93  Candidate::PolarLorentzVector p4_1(momentum.rho(), momentum.eta(), momentum.phi(), mu_mass);
94  double mass = (p4_0 + p4_1).mass();
95  ZMassSa->Fill(mass);
96  ++counter;
97  }
98 }
99 
101 
103 
ZMuMuSaMassHistogram::endJob
void endJob() override
Definition: ZMuMuSaMassHistogram.cc:100
reco::Candidate::daughter
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode)
counter
Definition: counter.py:1
mps_fire.i
i
Definition: mps_fire.py:355
ZMuMuSaMassHistogram::histo
void histo(TH1F *hist, char *cx, char *cy) const
Definition: ZMuMuSaMassHistogram.cc:51
IsoDepositVetos.h
reco::Candidate::mass
virtual double mass() const =0
mass
ZMuMuSaMassHistogram::Nbin
int Nbin
Definition: ZMuMuSaMassHistogram.cc:46
edm::EDGetTokenT< CandidateView >
edm
HLT enums.
Definition: AlignableModifier.h:19
Muon.h
edm::max
EventID const & max(EventID const &lh, EventID const &rh)
Definition: EventID.h:118
edm::min
EventID const & min(EventID const &lh, EventID const &rh)
Definition: EventID.h:116
reco::Candidate::PolarLorentzVector
math::PtEtaPhiMLorentzVector PolarLorentzVector
Lorentz vector.
Definition: Candidate.h:38
GenericParticle.h
timingPdfMaker.histo
histo
Definition: timingPdfMaker.py:279
reco::Candidate::get
T get() const
get a component
Definition: Candidate.h:221
EDAnalyzer.h
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
ZMuMuSaMassHistogram::counter
int counter
Definition: ZMuMuSaMassHistogram.cc:44
edm::Handle
Definition: AssociativeIterator.h:50
IsoDepositDirection.h
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
ZMuMuSaMassHistogram::max
double max
Definition: ZMuMuSaMassHistogram.cc:45
edm::Ref< TrackCollection >
edm::EDAnalyzer
Definition: EDAnalyzer.h:29
GenParticle.h
CandidateFwd.h
deltaR.h
WZMuSkim_cff.dimuons
dimuons
Definition: WZMuSkim_cff.py:26
MakerMacros.h
reco::StandAloneMuonTag
stand alone muon component tag
Definition: RecoCandidate.h:77
Track.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
compare.hist
hist
Definition: compare.py:376
ZMuMuSaMassHistogram::analyze
void analyze(const edm::Event &event, const edm::EventSetup &setup) override
Definition: ZMuMuSaMassHistogram.cc:72
Service.h
Particle.h
ZMuMuSaMassHistogram::min
double min
Definition: ZMuMuSaMassHistogram.cc:45
reco::Candidate::polarP4
virtual const PolarLorentzVector & polarP4() const =0
four-momentum Lorentz vector
Isolation.h
ZMuMuSaMassHistogram::srcToken_
EDGetTokenT< CandidateView > srcToken_
Definition: ZMuMuSaMassHistogram.cc:43
IsoDeposit.h
reco::TrackRef
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
TFileService.h
edm::View
Definition: CaloClusterFwd.h:14
edm::ParameterSet
Definition: ParameterSet.h:36
Event.h
math::XYZVector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
edm::Service< TFileService >
createfilelist.int
int
Definition: createfilelist.py:10
ZMuMuSaMassHistogram
Definition: ZMuMuSaMassHistogram.cc:35
analyze
example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
edm::EventSetup
Definition: EventSetup.h:57
InputTag.h
reco::Candidate
Definition: Candidate.h:27
ValueMap.h
mu_mass
static constexpr float mu_mass
Definition: L1TkMuonProducer.cc:30
ZMuMuSaMassHistogram::ZMuMuSaMassHistogram
ZMuMuSaMassHistogram(const edm::ParameterSet &pset)
Definition: ZMuMuSaMassHistogram.cc:62
std
Definition: JetResolutionObject.h:76
ZMuMuSaMassHistogram::ZMassSa
TH1F * ZMassSa
Definition: ZMuMuSaMassHistogram.cc:47
EgHLTOffHistBins_cfi.mass
mass
Definition: EgHLTOffHistBins_cfi.py:34
EventSetup.h
AssociationVector.h
Candidate.h
IsoDepositFwd.h
ParameterSet.h
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
edm::InputTag
Definition: InputTag.h:15
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileService.h:64
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
ZMuMuSaMassHistogram::Vector
math::XYZVector Vector
Definition: ZMuMuSaMassHistogram.cc:37