56 void endJob()
override;
74 double ptminMinus_, ptmaxMinus_, etaminMinus_, etamaxMinus_, isomax_;
76 double etamax_,
ptmin_, massMin_, massMax_, isoMax_;
82 TH1D *h_n_globalMuon_perEvent, *h_n_staOnlyMuon_perEvent, *h_n_trackerOnlyMuon_perEvent,
96 TH2D *h_DEtaGlobalGenvsEtaGen, *h_DPtGlobalGenvsPtGen, *h_DEtaGlobalStaComponentGenvsEtaGen,
110 *h_DRTrack_ZMuMuTagged;
114 *h_DRTrack_wrongStaCharge_ZMuMuTagged;
123 *h_DRSta_ZMuMuTagged;
130 *h_ptTrack_ZMuTrackTagged, *h_DRTrack_ZMuTrackTagged;
134 *h_DRTrack_wrongStaCharge_ZMuTrackTagged;
196 noCut_(pset.getParameter<
bool>(
"noCut")),
198 zMassMin_(pset.getUntrackedParameter<double>(
"zMassMin")),
199 zMassMax_(pset.getUntrackedParameter<double>(
"zMassMax")),
200 ptminPlus_(pset.getUntrackedParameter<double>(
"ptminPlus")),
201 ptmaxPlus_(pset.getUntrackedParameter<double>(
"ptmaxPlus")),
202 etaminPlus_(pset.getUntrackedParameter<double>(
"etaminPlus")),
203 etamaxPlus_(pset.getUntrackedParameter<double>(
"etamaxPlus")),
204 ptminMinus_(pset.getUntrackedParameter<double>(
"ptminMinus")),
205 ptmaxMinus_(pset.getUntrackedParameter<double>(
"ptmaxMinus")),
206 etaminMinus_(pset.getUntrackedParameter<double>(
"etaminMinus")),
207 etamaxMinus_(pset.getUntrackedParameter<double>(
"etamaxMinus")),
208 isomax_(pset.getUntrackedParameter<double>(
"isomax")) {
221 fs->
make<TH1D>(
"n_staOnlyMuon_perEvent",
"n.of standAlone Only Muons per Event", 6, -.5, 5.5);
223 fs->
make<TH1D>(
"n_trackerOnlyMuon_perEvent",
"n.of tracker Only Muons per Event", 6, -.5, 5.5);
225 fs->
make<TH1D>(
"n_trackerStaOnlyMuon_perEvent",
"n.of tracker & StandAlone Only Muons per Event", 6, -.5, 5.5);
227 fs->
make<TH1D>(
"n_globalMuon_perEvent_MCmatch",
"n.of globalMuons per Event (MCmatch)", 6, -.5, 5.5);
229 fs->
make<TH1D>(
"n_staOnlyMuon_perEvent_MCmatch",
"n.of standAlone Only Muons per Event (MCmatch)", 6, -.5, 5.5);
231 fs->
make<TH1D>(
"n_trackerOnlyMuon_perEvent_MCmatch",
"n.of tracker Only Muons per Event (MCmatch)", 6, -.5, 5.5);
233 "n_trackerStaOnlyMuon_perEvent_MCmatch",
"n.of tracker & StandAlone Only Muons per Event (MCmatch)", 6, -.5, 5.5);
235 h_n_zMuMu_perEvent = fs->
make<TH1D>(
"n_zMuMu_perEvent",
"n.of global-global muons per Event", 6, -.5, 5.5);
243 fs->
make<TH1D>(
"zMuMuMassSameSign_MCmatch",
"inv Mass ZMuMu cand SameSign (MC match)", 100, 0., 200.);
248 fs->
make<TH1D>(
"GlobalMuonChargeTimeGenCharge",
"charge global mu times charge generated mu", 3, -1.5, 1.5);
250 fs->
make<TH1D>(
"TrackerMuonChargeTimeGenCharge",
"charge Tracker mu times charge generated mu", 3, -1.5, 1.5);
253 fs->
make<TH1D>(
"GlobalMuonEtaMinusGenEta",
"global mu Eta minus generated mu Eta", 100, -.005, .005);
255 fs->
make<TH1D>(
"GlobalMuonPtMinusGenPtoverPt",
"global mu Pt minus generated mu Pt over Pt", 100, -.5, .5);
257 "GlobalMuonStaComponentEtaMinusGenEta",
"global mu Sta cmponent Eta minus generated mu Eta", 100, -.5, .5);
259 "global mu Sta component Pt minus generated mu Pt over Pt",
264 fs->
make<TH1D>(
"TrackerMuonEtaMinusGenEta",
"Tracker mu Eta minus Eta generated mu", 100, -.005, .005);
266 fs->
make<TH1D>(
"TrackerMuonPtMinusenPtoverPt",
"Tracker mu Pt minus Pt generated mu over Pt", 100, -.5, .5);
269 fs->
make<TH2D>(
"h_DEtaGlobalGenvsEtaGen",
"Eta global - Eta Gen vs Eta gen", 50, -2.5, 2.5, 100, -.005, .005);
271 "Eta Sta component of a Global - Eta Gen vs Eta gen",
279 fs->
make<TH2D>(
"h_DPtGlobalGenovePtvsPtGen",
"Pt global - Pt Gen over Pt vs Pt gen", 50, 0., 100., 100, -.5, .5);
281 "Pt Sta component of a Global - Pt Gen over Pt vs Pt gen",
291 fs->
make<TH1D>(
"GlobalMuonEtaMinusGenEta_ZMuMuTagged",
"global mu Eta minus generated mu Eta", 100, -.005, .005);
293 "GlobalMuonPtMinusGenPtoverPt_ZMuMuTagged",
"global mu Pt minus generated mu Pt over Pt", 100, -.5, .5);
295 fs->
make<TH1D>(
"GlobalMuonStaComponentEtaMinusGenEta_ZMuMuTagged",
296 "global mu Sta cmponent Eta minus generated mu Eta",
301 fs->
make<TH1D>(
"GlobalMuonStaComponentPtMinusGenPtoverPt_ZMuMuTagged",
302 "global mu Sta component Pt minus generated mu Pt over Pt",
307 "h_DEtaGlobalGenvsEtaGen_ZMuMuTagged",
"Eta global - Eta Gen vs Eta gen", 50, -2.5, 2.5, 100, -.005, .005);
309 "Eta Sta component of a Global - Eta Gen vs Eta gen",
317 "h_DPtGlobalGenOverPtvsPtGen_ZMuMuTagged",
"Pt global - Pt Gen vs Pt gen over Pt", 50, 0., 100., 100, -.5, .5);
319 fs->
make<TH2D>(
"h_DPtGlobalStaComponentGenoverPtvsPtGen_ZMuMuTagged",
320 "Pt Sta component of a Global - Pt Gen over Pt vs Pt gen",
328 "h_DPtGlobalGenOverPtvsEtaGen_ZMuMuTagged",
"Pt global - Pt Gen over Pt vs Eta gen", 50, -2.5, 2.5, 100, -.5, .5);
330 fs->
make<TH2D>(
"h_DPtGlobalStaComponentGenoverPtvsEtaGen_ZMuMuTagged",
331 "Pt Sta component of a Global - Pt Gen over Pt vs Eta gen",
339 "h_DPtTrackGenOverPtvsPtGen_ZMuMuTagged",
"Pt track - Pt Gen vs Pt gen over Pt", 50, 0., 100., 100, -.5, .5);
341 "h_DPtTrackGenOverPtvsEtaGen_ZMuMuTagged",
"Pt track - Pt Gen over Pt vs Eta gen", 50, -2.5, 2.5, 100, -.5, .5);
345 fs->
make<TH1D>(
"zMuTrackMass_ZMuMuTagged",
"inv Mass ZMuTrack cand (global-global)", 100, 0., 200.);
353 "zMuTrackMass_wrongStaCharge_ZMuMuTagged",
"inv Mass ZMuTrack cand (global-global wrongStaCharge)", 100, 0., 200.);
355 "etaTrack_wrongStaCharge_ZMuMuTagged",
"eta of Track (global-global wrongStaCharge)", 50, -2.5, 2.5);
357 "phiTrack_wrongStaCharge_ZMuMuTagged",
"phi of Track (global-global wrongStaCharge)", 50, -3.1415, 3.1415);
359 fs->
make<TH1D>(
"ptTrack_wrongStaCharge_ZMuMuTagged",
"pt of Track (global-global wrongStaCharge)", 100, 0., 100.);
361 "DRTrackSta_wrongStaCharge_ZMuMuTagged",
"DR track-sta (global-global wrongStaCharge)", 100, 0., 5.);
365 "zMuStaMass_correctStaCharge_ZMuMuTagged",
"inv Mass ZMuSta cand (global-global correctStaCharge)", 100, 0., 200.);
367 fs->
make<TH1D>(
"ptStaMinusptTrackoverPT_correctStaCharge_ZMuMuTagged",
368 "ptSta - ptTrack over Pt (global-global correctStaCharge)",
373 fs->
make<TH2D>(
"ptStaMinusptTrackoverPt_vsPtTracker_correctStaCharge_ZMuMuTagged",
374 "ptSta - ptTrack over Pt vs ptTrack (global-global correctStaCharge)",
382 fs->
make<TH2D>(
"ptStaMinusptTrackoverPt_vsEtaTracker_correctStaCharge_ZMuMuTagged",
383 "ptSta - ptTrack over Pt vs etaTrack (global-global correctStaCharge)",
393 fs->
make<TH1D>(
"zMuStaMass_ZMuMuTagged",
"inv Mass ZMuSta cand (global-global)", 100, 0., 200.);
398 fs->
make<TH1D>(
"DRTrackSta_ZMuMuTagged_staSelected",
"DR track-sta sta selected (global-global)", 100, 0., 5.);
402 "zMuStaMass_wrongTrkCharge_ZMuMuTagged",
"inv Mass ZMuSta cand (global-global wrongTrkCharge)", 100, 0., 200.);
404 fs->
make<TH1D>(
"etaSta_wrongTrkCharge_ZMuMuTagged",
"eta of Sta (global-global wrongTrkCharge)", 50, -2.5, 2.5);
406 "phiSta_wrongTrkCharge_ZMuMuTagged",
"phi of Sta (global-global wrongTrkCharge)", 50, -3.1415, 3.1415);
408 fs->
make<TH1D>(
"ptSta_wrongTrkCharge_ZMuMuTagged",
"pt of Sta (global-global wrongTrkCharge)", 100, 0., 100.);
410 "DRTrackSta_wrongTrkCharge_ZMuMuTagged",
"DR track-sta (global-global wrongTrkCharge)", 100, 0., 5.);
416 fs->
make<TH1D>(
"zMuTrackMass_ZMuTrackTagged",
"inv Mass ZMuTrack cand (global-track)", 100, 0., 200.);
419 fs->
make<TH1D>(
"phiTrack_ZMuTrackTagged",
"phi of Track (global-track)", 50, -3.1415, 3.1415);
425 fs->
make<TH1D>(
"zMuTrackMass_wrongStaCharge_ZMuTrackTagged",
426 "inv Mass ZMuTrack cand (global-track wrongUnMatcehdStaCharge)",
431 "etaTrack_wrongStaCharge_ZMuTrackTagged",
"eta of Track (global-track wrongUnMatchedStaCharge)", 50, -2.5, 2.5);
433 "phi of Track (global-track wrongUnMatchedStaCharge)",
438 "ptTrack_wrongStaCharge_ZMuTrackTagged",
"pt of Track (global-track wrongUnMatchedStaCharge)", 100, 0., 100.);
440 "DRTrackSta_wrongStaCharge_ZMuTrackTagged",
"DR track-sta (global-track wrongUnMatchedStaCharge)", 100, 0., 5.);
444 fs->
make<TH1D>(
"zMuStaMass_ZMuStaTagged",
"inv Mass ZMuSta cand (global-sta)", 100, 0., 200.);
451 "inv Mass ZMuSta cand (global-sta wrongUnMatcehdTrkCharge)",
456 "etaSta_wrongTrkCharge_ZMuStaTagged",
"eta of Sta (global-sta wrongUnMatchedTrkCharge)", 50, -2.5, 2.5);
458 "phiSta_wrongTrkCharge_ZMuStaTagged",
"phi of Sta (global-sta wrongUnMatchedTrkCharge)", 50, -3.1415, 3.1415);
460 "ptSta_wrongTrkCharge_ZMuStaTagged",
"pt of Sta (global-sta wrongUnMatchedTrkCharge)", 100, 0., 100.);
522 int n_globalMuon_perEvent = 0;
523 int n_staOnlyMuon_perEvent = 0;
524 int n_trackerOnlyMuon_perEvent = 0;
525 int n_trackerStaOnlyMuon_perEvent = 0;
526 int n_globalMuon_perEvent_MCmatch = 0;
527 int n_staOnlyMuon_perEvent_MCmatch = 0;
528 int n_trackerOnlyMuon_perEvent_MCmatch = 0;
529 int n_trackerStaOnlyMuon_perEvent_MCmatch = 0;
531 for (
unsigned int j = 0;
j < muons->
size(); ++
j) {
541 n_globalMuon_perEvent++;
543 n_staOnlyMuon_perEvent++;
545 n_trackerOnlyMuon_perEvent++;
547 n_trackerStaOnlyMuon_perEvent++;
549 if (muonMatch.isNonnull()) {
551 n_globalMuon_perEvent_MCmatch++;
553 n_staOnlyMuon_perEvent_MCmatch++;
555 n_trackerOnlyMuon_perEvent_MCmatch++;
557 n_trackerStaOnlyMuon_perEvent_MCmatch++;
558 double productCharge = muCandRef->
charge() * muonMatch->charge();
569 (muStaComponentRef->pt() - muonMatch->pt()) / muonMatch->pt());
596 if (!zMuMu->
empty()) {
600 float muGenplus_pt = 0, muGenminus_pt = 0, muGenplus_eta = 100, muGenminus_eta = 100;
601 for (
unsigned int i = 0;
i < zMuMu->
size(); ++
i) {
605 bool isMCMatched =
false;
608 if (zMuMuMatch->pdgId() == 23 && zMuMuMatch->status() == 3 && zMuMuMatch->numberOfDaughters() == 3) {
610 const Candidate *dauGen0 = zMuMuMatch->daughter(0);
611 const Candidate *dauGen1 = zMuMuMatch->daughter(1);
612 const Candidate *dauGen2 = zMuMuMatch->daughter(2);
614 muGenplus_pt =
getParticlePt(-13, dauGen0, dauGen1, dauGen2);
615 muGenminus_pt =
getParticlePt(13, dauGen0, dauGen1, dauGen2);
621 pZ = muplusp4 + muminusp4;
641 double massGlobalSta =
643 double massStaGlobal =
646 double massGlobalTracker =
647 (pg1 + ptrk2).
mass();
648 double massTrackerGlobal =
649 (ptrk1 + pg2).
mass();
650 double etaGlobal1 = a1->eta();
651 double etaGlobal2 = a2->eta();
652 double etaSta1 = as1->eta();
653 double etaSta2 = as2->eta();
654 double etaTracker1 = at1->eta();
655 double etaTracker2 = at2->eta();
658 double phiSta1 = as1->phi();
659 double phiSta2 = as2->phi();
660 double phiTracker1 = at1->phi();
661 double phiTracker2 = at2->phi();
662 double ptGlobal1 = a1->pt();
663 double ptGlobal2 = a2->pt();
664 double ptSta1 = as1->pt();
665 double ptSta2 = as2->pt();
666 double ptTracker1 = at1->pt();
667 double ptTracker2 = at2->pt();
668 double chargeGlobal1 = a1->charge();
669 double chargeGlobal2 = a2->charge();
670 double chargeSta1 = as1->charge();
671 double chargeSta2 = as2->charge();
672 double chargeTracker1 = at1->charge();
673 double chargeTracker2 = at2->charge();
674 double DR1 =
deltaR(etaSta1, phiSta1, etaTracker1, phiTracker1);
675 double DR2 =
deltaR(etaSta2, phiSta2, etaTracker2, phiTracker2);
677 if (chargeGlobal1 == chargeGlobal2) {
691 bool massCut =
false;
711 if (etaCut && ptCut && massCut) {
713 if (chargeSta1 == chargeTracker1 &&
714 chargeTracker1 != chargeTracker2) {
723 double etaGen, ptGen;
724 if (chargeGlobal1 == 1) {
725 etaGen = muGenplus_eta;
726 ptGen = muGenplus_pt;
728 etaGen = muGenminus_eta;
729 ptGen = muGenminus_pt;
746 if (chargeSta2 == chargeTracker2) {
752 (ptSta2 - ptTracker2) / ptTracker2);
754 (ptSta2 - ptTracker2) / ptTracker2);
757 if (chargeSta2 != chargeTracker2) {
788 if (etaCut && ptCut && massCut) {
790 if (chargeSta2 == chargeTracker2 &&
791 chargeTracker1 != chargeTracker2) {
801 double etaGen, ptGen;
802 if (chargeGlobal2 == 1) {
803 etaGen = muGenplus_eta;
804 ptGen = muGenplus_pt;
806 etaGen = muGenminus_eta;
807 ptGen = muGenminus_pt;
823 if (chargeSta1 == chargeTracker1) {
829 (ptSta1 - ptTracker1) / ptTracker1);
831 (ptSta1 - ptTracker1) / ptTracker1);
833 if (chargeSta1 != chargeTracker1) {
869 if (etaCut && ptCut && massCut) {
871 if (chargeSta1 == chargeTracker1 && chargeTracker1 != chargeSta2) {
879 if (chargeSta2 == chargeTracker2) {
883 if (chargeSta2 != chargeTracker2) {
915 if (etaCut && ptCut && massCut) {
917 if (chargeSta2 == chargeTracker2 && chargeTracker2 != chargeSta1) {
925 if (chargeSta1 == chargeTracker1) {
929 if (chargeSta1 != chargeTracker1) {
948 int taggedZ_index = -1;
949 int taggedMuon_index = -1;
950 int n_ZMuTrackTagged_inEvent = 0;
953 for (
unsigned int i = 0;
i < zMuTrack->
size(); ++
i) {
954 const Candidate &zMuTrackCand = (*zMuTrack)[
i];
956 GenParticleRef zMuTrackMatch = (*zMuTrackMatchMap)[zMuTrackCandRef];
962 double m = zMuTrackCand.
mass();
969 double ZtrackerDaughterCharge = ztrackerDaughter->
charge();
970 double ZtrackerDaughterPt = ztrackerDaughter->
pt();
971 double ZtrackerDaughterEta = ztrackerDaughter->
eta();
972 double ZtrackerDaughterPhi = ztrackerDaughter->
phi();
973 double ZglobalDaughterPt = zglobalDaughter->
pt();
974 double ZglobalDaughterEta = zglobalDaughter->
eta();
975 double ZglobalDaughter_StaComponentCharge = zglobalDaughter_StaComponentRef->charge();
976 double ZglobalDaughter_TrackComponentCharge = zglobalDaughter_TrackComponentRef->charge();
986 bool massCut =
false;
989 if (ZglobalDaughterPt >
ptmin_ && ZtrackerDaughterPt >
ptmin_)
999 if (etaCut && ptCut && massCut && ZglobalDaughter_StaComponentCharge == ZglobalDaughter_TrackComponentCharge &&
1000 ZglobalDaughter_TrackComponentCharge !=
1001 ZtrackerDaughterCharge) {
1002 n_ZMuTrackTagged_inEvent++;
1007 for (
unsigned int j = 0;
j < muons->
size(); ++
j) {
1014 double muEta = muCandRef->
eta();
1015 double muPhi = muCandRef->
phi();
1017 double DRmuSta_trackOfZ =
deltaR(muEta, muPhi, ZtrackerDaughterEta, ZtrackerDaughterPhi);
1018 if (DRmuSta_trackOfZ == 0) {
1020 taggedMuon_index =
j;
1030 if (n_ZMuTrackTagged_inEvent > 0) {
1032 if (taggedZ_index == -1) {
1036 const Candidate &zMuTrackCand = (*zMuTrack)[taggedZ_index];
1038 double m = zMuTrackCand.
mass();
1045 double ZtrackerDaughterCharge = ztrackerDaughter->
charge();
1046 double ZtrackerDaughterPt = ztrackerDaughter->
pt();
1047 double ZtrackerDaughterEta = ztrackerDaughter->
eta();
1048 double ZtrackerDaughterPhi = ztrackerDaughter->
phi();
1051 const Candidate &muCand = (*muons)[taggedMuon_index];
1055 double muEta = muStaComponentRef->eta();
1056 double muPhi = muStaComponentRef->phi();
1057 double muCharge = muStaComponentRef->charge();
1059 double DRmuSta_trackOfZ =
deltaR(muEta, muPhi, ZtrackerDaughterEta, ZtrackerDaughterPhi);
1069 if (muCharge != ZtrackerDaughterCharge) {
1074 ZtrackerDaughterEta);
1076 ZtrackerDaughterPhi);
1078 ZtrackerDaughterPt);
1093 bool isZMuStaMatched =
false;
1096 taggedMuon_index = -1;
1097 int n_ZMuStaTagged_inEvent = 0;
1098 if (!zMuStandAlone->
empty()) {
1100 for (
unsigned int i = 0;
i < zMuStandAlone->
size(); ++
i) {
1101 const Candidate &zMuStaCand = (*zMuStandAlone)[
i];
1104 GenParticleRef zMuStaMatch = (*zMuStandAloneMatchMap)[zMuStaCandRef];
1107 isZMuStaMatched =
true;
1110 double m = zMuStaCand.
mass();
1117 zglobalDaughter = zstandaloneDaughter;
1118 zstandaloneDaughter =
buffer;
1130 double ZglobalDaughterPt = zglobalDaughter->
pt();
1131 double ZglobalDaughterEta = zglobalDaughter->
eta();
1133 double ZstaDaughter_StaComponentCharge = zstaDaughter_StaComponentRef->charge();
1134 double ZstaDaughter_StaComponentPt = zstaDaughter_StaComponentRef->pt();
1135 double ZstaDaughter_StaComponentEta = zstaDaughter_StaComponentRef->eta();
1136 double ZstaDaughter_StaComponentPhi = zstaDaughter_StaComponentRef->phi();
1137 double ZstaDaughter_TrackComponentCharge = zstaDaughter_TrackComponentRef->charge();
1139 double ZglobalDaughter_StaComponentCharge = zglobalDaughter_StaComponentRef->charge();
1140 double ZglobalDaughter_TrackComponentCharge = zglobalDaughter_TrackComponentRef->charge();
1146 bool massCut =
false;
1149 if (ZglobalDaughterPt >
ptmin_ && ZstaDaughter_StaComponentPt >
ptmin_)
1159 if (etaCut && ptCut && massCut && ZglobalDaughter_StaComponentCharge == ZglobalDaughter_TrackComponentCharge &&
1160 ZglobalDaughter_StaComponentCharge !=
1161 ZstaDaughter_StaComponentCharge) {
1162 n_ZMuStaTagged_inEvent++;
1163 if (isZMuStaMatched)
1176 if (ZstaDaughter_StaComponentCharge != ZstaDaughter_TrackComponentCharge) {
1181 ZstaDaughter_StaComponentEta);
1183 ZstaDaughter_StaComponentPhi);
1185 ZstaDaughter_StaComponentPt);
1194 if (n_ZMuStaTagged_inEvent == 0) {
1203 int partId0 = dauGen0->
pdgId();
1204 int partId1 = dauGen1->
pdgId();
1205 int partId2 = dauGen2->
pdgId();
1206 bool muplusFound =
false;
1207 bool muminusFound =
false;
1208 bool ZFound =
false;
1209 if (partId0 == 13 || partId1 == 13 || partId2 == 13)
1210 muminusFound =
true;
1211 if (partId0 == -13 || partId1 == -13 || partId2 == -13)
1213 if (partId0 == 23 || partId1 == 23 || partId2 == 23)
1215 return (muplusFound && muminusFound && ZFound);
1222 int partId0 = dauGen0->
pdgId();
1223 int partId1 = dauGen1->
pdgId();
1224 int partId2 = dauGen2->
pdgId();
1226 if (partId0 == ipart) {
1229 if (dauMuGen->
pdgId() == ipart && dauMuGen->
status() == 1) {
1230 ptpart = dauMuGen->
pt();
1234 if (partId1 == ipart) {
1237 if (dauMuGen->
pdgId() == ipart && dauMuGen->
status() == 1) {
1238 ptpart = dauMuGen->
pt();
1242 if (partId2 == ipart) {
1245 if (
abs(dauMuGen->
pdgId()) == ipart && dauMuGen->
status() == 1) {
1246 ptpart = dauMuGen->
pt();
1257 int partId0 = dauGen0->
pdgId();
1258 int partId1 = dauGen1->
pdgId();
1259 int partId2 = dauGen2->
pdgId();
1261 if (partId0 == ipart) {
1264 if (dauMuGen->
pdgId() == ipart && dauMuGen->
status() == 1) {
1265 etapart = dauMuGen->
eta();
1269 if (partId1 == ipart) {
1272 if (dauMuGen->
pdgId() == ipart && dauMuGen->
status() == 1) {
1273 etapart = dauMuGen->
eta();
1277 if (partId2 == ipart) {
1280 if (
abs(dauMuGen->
pdgId()) == ipart && dauMuGen->
status() == 1) {
1281 etapart = dauMuGen->
eta();
1292 int partId0 = dauGen0->
pdgId();
1293 int partId1 = dauGen1->
pdgId();
1294 int partId2 = dauGen2->
pdgId();
1296 if (partId0 == ipart) {
1299 if (dauMuGen->
pdgId() == ipart && dauMuGen->
status() == 1) {
1300 phipart = dauMuGen->
phi();
1304 if (partId1 == ipart) {
1307 if (dauMuGen->
pdgId() == ipart && dauMuGen->
status() == 1) {
1308 phipart = dauMuGen->
phi();
1312 if (partId2 == ipart) {
1315 if (
abs(dauMuGen->
pdgId()) == ipart && dauMuGen->
status() == 1) {
1316 phipart = dauMuGen->
phi();
1327 int partId0 = dauGen0->
pdgId();
1328 int partId1 = dauGen1->
pdgId();
1329 int partId2 = dauGen2->
pdgId();
1331 if (partId0 == ipart) {
1334 if (dauMuGen->
pdgId() == ipart && dauMuGen->
status() == 1) {
1335 p4part = dauMuGen->
p4();
1339 if (partId1 == ipart) {
1342 if (dauMuGen->
pdgId() == ipart && dauMuGen->
status() == 1) {
1343 p4part = dauMuGen->
p4();
1347 if (partId2 == ipart) {
1350 if (
abs(dauMuGen->
pdgId()) == ipart && dauMuGen->
status() == 1) {
1351 p4part = dauMuGen->
p4();
1359 cout <<
"------------------------------------ Counters --------------------------------" << endl;
1365 cout <<
"------------------------------------ Counters for standAlone charge mis-id studies " 1366 "--------------------------------" 1375 cout <<
" number of goodTracks tagged for ZMuTrack collection unMatchedSTA (correct Sta charge) = " 1377 cout <<
" number of goodTracks tagged for ZMuTrack collection unMatchedSTA (wrong Sta charge) = " 1383 cout <<
"------------------------------------ Counters for Track charge mis-id studies " 1384 "--------------------------------" 1387 cout <<
" number of goodStandAlone tagged for ZMuMu collection (correct Trk charge) = " 1393 cout <<
" number of goodSta tagged for ZMuSta collection unMatchedTrk (correct Trk charge) = " 1395 cout <<
" number of goodSta tagged for ZMuSta collection unMatchedTrk (wrong Trk charge) = "
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
TrackRef track() const override
reference to a Track
bool isNonnull() const
Checks for non-null.
virtual bool isStandAloneMuon() const =0
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
stand alone muon component tag
T * make(const Args &...args) const
make new ROOT object
example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
RefToBase< value_type > refAt(size_type i) const
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
virtual bool isTrackerMuon() const =0
virtual int status() const =0
status word
#define DEFINE_FWK_MODULE(type)
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
virtual int pdgId() const =0
PDG identifier.
Abs< T >::type abs(const T &t)
TrackRef standAloneMuon() const override
reference to a stand-alone muon Track
virtual const CandidateBaseRef & masterClone() const =0
virtual bool isGlobalMuon() const =0
zMuMu
zMuMu vector of PSet is common to all categories except zMuTrk category
virtual double eta() const =0
momentum pseudorapidity
virtual double pt() const =0
transverse momentum
conbined muon component tag
virtual double mass() const =0
mass
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
virtual int charge() const =0
electric charge
T get() const
get a component
virtual size_type numberOfDaughters() const =0
number of daughters
virtual double phi() const =0
momentum azimuthal angle
math::PtEtaPhiELorentzVectorF LorentzVector