|
|
Go to the documentation of this file.
46 void endJob()
override;
58 double isocut_, etacut_, ptcut_,
ptSTAcut_, minZmass_, maxZmass_;
59 TH1D *h_zMuMu_mass_, *h_zMuSingleTrack_mass_, *h_zMuSingleStandAlone_mass_, *h_zMuSingleStandAloneOverlap_mass_,
61 *h_zMuSingleStandAloneOverlapMatched_mass_;
74 isocut_(
pset.getParameter<double>(
"isocut")),
75 etacut_(
pset.getParameter<double>(
"etacut")),
76 ptcut_(
pset.getParameter<double>(
"ptcut")),
77 ptSTAcut_(
pset.getParameter<double>(
"ptSTAcut")),
79 minZmass_(
pset.getParameter<double>(
"minZmass")),
80 maxZmass_(
pset.getParameter<double>(
"maxZmass")) {
85 fs->
make<TH1D>(
"ZMuSingleStandAlonemass",
"ZMuSingleStandAlone mass(GeV)", 50, 0., 200.);
87 fs->
make<TH1D>(
"ZMuSingleStandAloneOverlapmass",
"ZMuSingleStandAloneOverlap mass(GeV)", 50, 0., 200.);
91 fs->
make<TH1D>(
"ZMuSingleTrackmassMatched",
"ZMuSingleTrackMatched mass(GeV)", 100, 0., 200.);
93 fs->
make<TH1D>(
"ZMuSingleStandAlonemassMatched",
"ZMuSingleStandAloneMatched mass(GeV)", 50, 0., 200.);
95 "ZMuSingleStandAloneOverlapmassMatched",
"ZMuSingleStandAloneMatched Overlap mass(GeV)", 50, 0., 200.);
106 unsigned int nZMuMu =
zMuMu->size();
107 unsigned int nZTrackMu = zMuTrack->
size();
108 unsigned int nZStandAloneMu = zMuStandAlone->
size();
109 static const double zMass = 91.1876;
126 if (nZStandAloneMu > 0) {
132 ProductID muIsoId = muIso->keyProduct().id();
135 ProductID trackIsoId = trackIso->keyProduct().id();
139 ProductID standAloneIsoId = standAloneIso->keyProduct().id();
142 double mass = 1000000.;
143 for (
unsigned int i = 0;
i < nZMuMu;
i++) {
149 const double iso1 = muIso->value(
lep1.key());
150 const double iso2 = muIso->value(
lep2.key());
152 double m = zmmCand.
mass();
161 if (m0 != zMuMuMap->
end()) {
169 if (nZMuMu == 0 && nZTrackMu > 0) {
170 for (
unsigned int j = 0;
j < nZTrackMu;
j++) {
182 iso1 = muIso->value(
lep1.key());
183 else if (
id1 == trackIsoId)
184 iso1 = trackIso->value(
lep1.key());
187 iso2 = muIso->value(
lep2.key());
188 else if (
id2 == trackIsoId)
189 iso2 = trackIso->value(
lep2.key());
191 double mt = ztmCand.
mass();
196 if (m0 != zMuTrackMap->
end()) {
204 if (nZMuMu == 0 && nZStandAloneMu > 0) {
206 for (
unsigned int j = 0;
j < nZStandAloneMu;
j++) {
207 const Candidate& zsmCand = (*zMuStandAlone)[
j];
218 iso1 = muIso->value(
lep1.key());
219 else if (
id1 == standAloneIsoId)
220 iso1 = standAloneIso->value(
lep1.key());
223 iso2 = muIso->value(
lep2.key());
224 else if (
id2 == standAloneIsoId)
225 iso2 = standAloneIso->value(
lep2.key());
227 double ms = zsmCand.
mass();
232 if (m0 != zMuStandAloneMap->
end()) {
236 bool noOverlap =
true;
237 for (
unsigned int j = 0;
j < zMuTrack->
size();
j++) {
250 iso1 = muIso->value(
lep1.key());
251 else if (
id1 == trackIsoId)
252 iso1 = trackIso->value(
lep1.key());
255 iso2 = muIso->value(
lep2.key());
256 else if (
id2 == trackIsoId)
257 iso2 = trackIso->value(
lep2.key());
259 double mt = ztmCand.
mass();
271 if (m1 != zMuTrackMap->
end() && m2 != zMuStandAloneMap->
end()) {
293 cout <<
"-- N SingleTrackMu = " << Nztm << endl;
294 cout <<
"-----N SinglStandAloneMu = " << Nzsm << endl;
295 cout <<
"-----N SingleStandAloneOverlapMu = " << Nzsnom << endl;
296 cout <<
"------- N MuMu = " << Nzmm << endl;
298 cout <<
"-- N SingleTrackMuMatched = " << NztmMatch << endl;
299 cout <<
"-----N SinglStandAloneMuMatched = " << NzsmMatch << endl;
300 cout <<
"-----N SingleStandAloneOverlapMuMatched = " << NzsnomMatch << endl;
301 cout <<
"------- N MuMu Matched = " << NzmmMatch << endl;
lep1
print 'MRbb(1b)',event.mr_bb
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode)
const_iterator find(const key_type &k) const
find element with specified reference key
EDGetTokenT< IsolationCollection > muIsoToken_
zMuMu
zMuMu vector of PSet is common to all categories except zMuTrk category
TH1D * h_zMuSingleStandAloneMatched_mass_
ZMuMuAnalyzer(const edm::ParameterSet &pset)
virtual double mass() const =0
mass
TH1D * h_zMuSingleStandAlone_mass_
edm::AssociationVector< reco::CandidateRefProd, std::vector< double > > IsolationCollection
EDGetTokenT< IsolationCollection > trackIsoToken_
const_iterator end() const
last iterator over the map (read only)
#define DEFINE_FWK_MODULE(type)
EDGetTokenT< IsolationCollection > standAloneIsoToken_
void analyze(const edm::Event &event, const edm::EventSetup &setup) override
TH1D * h_zMuSingleTrackMatched_mass_
EDGetTokenT< CandMatchMap > zMuMuMapToken_
EDGetTokenT< CandMatchMap > zMuStandAloneMapToken_
example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
EDGetTokenT< CandidateCollection > zMuStandAloneToken_
TH1D * h_zMuSingleStandAloneOverlap_mass_
EDGetTokenT< CandMatchMap > zMuTrackMapToken_
virtual const CandidateBaseRef & masterClone() const =0
EDGetTokenT< CandidateCollection > zMuTrackToken_
TH1D * h_zMuSingleStandAloneOverlapMatched_mass_
TH1D * h_zMuMuMatched_mass_
T * make(const Args &... args) const
make new ROOT object
TH1D * h_zMuSingleTrack_mass_
EDGetTokenT< CandidateCollection > zMuMuToken_