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) {
534 const reco::Muon &
muon = dynamic_cast<const reco::Muon &>(muCand);
541 n_globalMuon_perEvent++;
543 n_staOnlyMuon_perEvent++;
545 n_trackerOnlyMuon_perEvent++;
547 n_trackerStaOnlyMuon_perEvent++;
551 n_globalMuon_perEvent_MCmatch++;
553 n_staOnlyMuon_perEvent_MCmatch++;
555 n_trackerOnlyMuon_perEvent_MCmatch++;
557 n_trackerStaOnlyMuon_perEvent_MCmatch++;
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;
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) {
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) {
871 if (chargeSta1 == chargeTracker1 && chargeTracker1 != chargeSta2) {
879 if (chargeSta2 == chargeTracker2) {
883 if (chargeSta2 != chargeTracker2) {
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) = "