17 #include "Math/VectorUtil.h" 26 #define SET_LABEL(NAME, PSET) (NAME = PSET.getParameter<string>(#NAME)) 31 #define CAT3(A, B, C) A##B##C 32 #define STRING_NX(A) #A 33 #define STRING(A) STRING_NX(A) 34 #define CHK_TRIG(RESULTS, NAMES, INDEX, PATH) \ 35 if (NAMES[INDEX].find(STRING(CAT3(HLT_, PATH, _v))) == 0) { \ 36 flag_##PATH = RESULTS->accept(INDEX); \ 46 TVector3 disp(svtx->
x() - pvtx->
x(), svtx->
y() - pvtx->
y(), 0);
47 TVector3 cmom(
px,
py, 0);
48 return disp.Dot(cmom) / (disp.Perp() * cmom.Perp());
51 TVector3 disp(svtx->
x() - pvtx->
x(), svtx->
y() - pvtx->
y(), 0);
52 return disp.Dot(cmom) / (disp.Perp() * cmom.Perp());
61 dist2D(pvtx, svtx,
px,
py, cAlpha(pvtx, svtx,
px,
py),
mass, ctauPV, ctauErrPV);
72 TVector3 cmom(
px,
py, 0);
76 ctauPV = distXY.
value() * cosAlpha *
mass / cmom.Perp();
80 ctauErrPV =
sqrt(ROOT::Math::Similarity(vmom, vXYe)) *
mass / cmom.Perp2();
102 const objRef* ref =
cand.userData<objRef>(
name);
117 int n =
cand.numberOfDaughters();
118 vector<const reco::Candidate*>
v;
120 for (
i = 0;
i <
n; ++
i) {
133 int cutPixelLayers = 0,
136 bool goodMuon =
true,
137 bool highPurity =
true)
138 : cutTL(cutTrackerLayers), cutPL(cutPixelLayers), maxXY(
maxDxy),
maxZ(
maxDz), gM(goodMuon), hP(highPurity) {}
146 if (
p->innerTrack()->hitPattern().trackerLayersWithMeasurement() <= cutTL)
148 if (
p->innerTrack()->hitPattern().pixelLayersWithMeasurement() <= cutPL)
155 if (fabs(
p->innerTrack()->dxy(
pos)) >= maxXY)
157 if (fabs(
p->innerTrack()->dz(
pos)) >=
maxZ)
179 : pLMin(ptMinLoose), pTMin(ptMinTight), eLMax(etaMaxLoose), eTMax(etaMaxTight), sms(softMuonselector) {}
182 return accept(
cand, pLMin, pTMin, eLMax, eTMax,
pv, sms);
193 if (dptr0 ==
nullptr)
195 if (dptr1 ==
nullptr)
197 float pt0 = dptr0->
pt();
198 float pt1 = dptr1->
pt();
199 if ((pt0 < ptMinLoose) || (
pt1 < ptMinLoose))
201 if ((pt0 < ptMinTight) && (
pt1 < ptMinTight))
203 float eta0 = fabs(dptr0->
eta());
204 float eta1 = fabs(dptr1->
eta());
205 if ((etaMaxLoose > 0) && ((eta0 > etaMaxLoose) || (
eta1 > etaMaxLoose)))
207 if ((etaMaxTight > 0) && ((eta0 > etaMaxTight) && (
eta1 > etaMaxTight)))
209 if (softMuonselector !=
nullptr) {
210 const reco::Vertex* pvtx = BPHUserData::getByRef<reco::Vertex>(
cand,
"primaryVertex");
213 if (!softMuonselector->accept(*dptr0, pvtx))
215 if (!softMuonselector->accept(*dptr1, pvtx))
236 if (((mMin > 0) && (mMax < 0)) || ((mMin < 0) && (mMax > 0)) || ((mMin > 0) && (mMax > 0) && (mMin < mMax))) {
240 if ((mMax > 0) && (
mass > mMax))
266 if (!
cand.hasUserFloat(
"fitMass"))
268 float mass =
cand.userFloat(
"fitMass");
269 if (((mMin > 0) && (mMax < 0)) || ((mMin < 0) && (mMax > 0)) || ((mMin > 0) && (mMax > 0) && (mMin < mMax))) {
272 if ((mMax > 0) && (
mass > mMax))
291 float r =
log((
e + z) / (
e - z)) / 2;
320 svtx = BPHUserData::get<reco::Vertex>(
cand,
"vertex");
326 svtx = BPHUserData::get<reco::Vertex>(
cand,
"fitVertex");
329 BPHUserData::get<Vector3DBase<float, GlobalTag>>(
cand,
"fitMomentum");
335 if (!
cand.hasUserFloat(
"fitMass"))
348 if ((cMin > -1.0) || (sMin > 0)) {
366 dTest = ctauPV / ctauErrPV;
384 useTrig = (!
SET_LABEL(trigResultsLabel, ps).empty());
385 useOnia = (!
SET_LABEL(oniaCandsLabel, ps).empty());
386 useSd = (!
SET_LABEL(sdCandsLabel, ps).empty());
387 useSs = (!
SET_LABEL(ssCandsLabel, ps).empty());
388 useBu = (!
SET_LABEL(buCandsLabel, ps).empty());
389 useBd = (!
SET_LABEL(bdCandsLabel, ps).empty());
390 useBs = (!
SET_LABEL(bsCandsLabel, ps).empty());
391 useK0 = (!
SET_LABEL(k0CandsLabel, ps).empty());
392 useL0 = (!
SET_LABEL(l0CandsLabel, ps).empty());
393 useB0 = (!
SET_LABEL(b0CandsLabel, ps).empty());
394 useLb = (!
SET_LABEL(lbCandsLabel, ps).empty());
395 useBc = (!
SET_LABEL(bcCandsLabel, ps).empty());
396 useX3872 = (!
SET_LABEL(x3872CandsLabel, ps).empty());
398 consume<edm::TriggerResults>(trigResultsToken, trigResultsLabel);
400 consume<vector<pat::CompositeCandidate>>(oniaCandsToken, oniaCandsLabel);
402 consume<vector<pat::CompositeCandidate>>(sdCandsToken, sdCandsLabel);
404 consume<vector<pat::CompositeCandidate>>(ssCandsToken, ssCandsLabel);
406 consume<vector<pat::CompositeCandidate>>(buCandsToken, buCandsLabel);
408 consume<vector<pat::CompositeCandidate>>(bdCandsToken, bdCandsLabel);
410 consume<vector<pat::CompositeCandidate>>(bsCandsToken, bsCandsLabel);
412 consume<vector<pat::CompositeCandidate>>(k0CandsToken, k0CandsLabel);
414 consume<vector<pat::CompositeCandidate>>(l0CandsToken, l0CandsLabel);
416 consume<vector<pat::CompositeCandidate>>(b0CandsToken, b0CandsLabel);
418 consume<vector<pat::CompositeCandidate>>(lbCandsToken, lbCandsLabel);
420 consume<vector<pat::CompositeCandidate>>(bcCandsToken, bcCandsLabel);
422 consume<vector<pat::CompositeCandidate>>(x3872CandsToken, x3872CandsLabel);
428 double phiIMassMin = 0.85;
429 double phiIMassMax = 1.20;
430 double phiIPtMin = 18.0;
431 double phiIEtaMax = -1.0;
432 double phiIYMax = -1.0;
433 double phiBMassMin = 0.85;
434 double phiBMassMax = 1.20;
435 double phiBPtMin = 14.0;
436 double phiBEtaMax = -1.0;
437 double phiBYMax = 1.25;
438 double jPsiIMassMin = 2.80;
439 double jPsiIMassMax = 3.40;
440 double jPsiIPtMin = 25.0;
441 double jPsiIEtaMax = -1.0;
442 double jPsiIYMax = -1.0;
443 double jPsiBMassMin = 2.80;
444 double jPsiBMassMax = 3.40;
445 double jPsiBPtMin = 20.0;
446 double jPsiBEtaMax = -1.0;
447 double jPsiBYMax = 1.25;
448 double psi2IMassMin = 3.40;
449 double psi2IMassMax = 4.00;
450 double psi2IPtMin = 18.0;
451 double psi2IEtaMax = -1.0;
452 double psi2IYMax = -1.0;
453 double psi2BMassMin = 3.40;
454 double psi2BMassMax = 4.00;
455 double psi2BPtMin = 10.0;
456 double psi2BEtaMax = -1.0;
457 double psi2BYMax = 1.25;
458 double upsIMassMin = 8.50;
459 double upsIMassMax = 11.0;
460 double upsIPtMin = 15.0;
461 double upsIEtaMax = -1.0;
462 double upsIYMax = -1.0;
463 double upsBMassMin = 8.50;
464 double upsBMassMax = 11.0;
465 double upsBPtMin = 12.0;
468 double upsBEtaMax = -1.0;
469 double upsBYMax = 1.4;
471 double oniaProbMin = 0.005;
472 double oniaCosMin = -2.0;
473 double oniaSigMin = -1.0;
475 double oniaMuPtMinLoose = 2.0;
476 double oniaMuPtMinTight = -1.0;
477 double oniaMuEtaMaxLoose = -1.0;
478 double oniaMuEtaMaxTight = -1.0;
482 jPsiIBasicSelect =
new BPHCompositeBasicSelect(jPsiIMassMin, jPsiIMassMax, jPsiIPtMin, jPsiIEtaMax, jPsiIYMax);
483 jPsiBBasicSelect =
new BPHCompositeBasicSelect(jPsiBMassMin, jPsiBMassMax, jPsiBPtMin, jPsiBEtaMax, jPsiBYMax);
484 psi2IBasicSelect =
new BPHCompositeBasicSelect(psi2IMassMin, psi2IMassMax, psi2IPtMin, psi2IEtaMax, psi2IYMax);
485 psi2BBasicSelect =
new BPHCompositeBasicSelect(psi2BMassMin, psi2BMassMax, psi2BPtMin, psi2BEtaMax, psi2BYMax);
491 new BPHDaughterSelect(oniaMuPtMinLoose, oniaMuPtMinTight, oniaMuEtaMaxLoose, oniaMuEtaMaxTight, sms);
495 double npJPsiPtMin = 8.0;
496 double npJPsiEtaMax = -1.0;
497 double npJPsiYMax = -1.0;
498 double npMuPtMinLoose = 4.0;
499 double npMuPtMinTight = -1.0;
500 double npMuEtaMaxLoose = 2.2;
501 double npMuEtaMaxTight = -1.0;
503 npJPsiBasicSelect =
new BPHCompositeBasicSelect(npJPsiMassMin, npJPsiMassMax, npJPsiPtMin, npJPsiEtaMax, npJPsiYMax);
504 npJPsiDaughterSelect =
new BPHDaughterSelect(npMuPtMinLoose, npMuPtMinTight, npMuEtaMaxLoose, npMuEtaMaxTight, sms);
508 double buIMassMin = 0.0;
509 double buIMassMax = 999999.0;
510 double buIPtMin = 27.0;
511 double buIEtaMax = -1.0;
512 double buIYMax = -1.0;
515 double buIJPsiPtMin = 25.0;
516 double buIJPsiEtaMax = -1.0;
517 double buIJPsiYMax = -1.0;
518 double buIProbMin = 0.15;
519 double buICosMin = -2.0;
520 double buISigMin = -1.0;
528 buIBasicSelect =
new BPHFittedBasicSelect(buIMassMin, buIMassMax, buIPtMin, buIEtaMax, buIYMax);
532 buIJPsiDaughterSelect =
nullptr;
537 double buDMassMin = 0.0;
538 double buDMassMax = 999999.0;
539 double buDPtMin = 10.0;
540 double buDEtaMax = -1.0;
541 double buDYMax = -1.0;
544 double buDJPsiPtMin = 8.0;
545 double buDJPsiEtaMax = -1.0;
546 double buDJPsiYMax = -1.0;
547 double buDProbMin = 0.10;
548 double buDCosMin = 0.99;
549 double buDSigMin = 3.0;
557 buDBasicSelect =
new BPHFittedBasicSelect(buDMassMin, buDMassMax, buDPtMin, buDEtaMax, buDYMax);
561 buDJPsiDaughterSelect =
nullptr;
568 double bdIMassMin = 0.0;
569 double bdIMassMax = 999999.0;
570 double bdIPtMin = 27.0;
571 double bdIEtaMax = -1.0;
572 double bdIYMax = -1.0;
575 double bdIJPsiPtMin = 25.0;
576 double bdIJPsiEtaMax = -1.0;
577 double bdIJPsiYMax = -1.0;
580 double bdIKx0PtMin = -1.0;
581 double bdIKx0EtaMax = -1.0;
582 double bdIKx0YMax = -1.0;
583 double bdIProbMin = 0.15;
584 double bdICosMin = -2.0;
585 double bdISigMin = -1.0;
591 bdIBasicSelect =
new BPHFittedBasicSelect(bdIMassMin, bdIMassMax, bdIPtMin, bdIEtaMax, bdIYMax);
594 bdIKx0BasicSelect =
new BPHCompositeBasicSelect(bdIKx0MassMin, bdIKx0MassMax, bdIKx0PtMin, bdIKx0EtaMax, bdIKx0YMax);
596 bdIJPsiDaughterSelect =
nullptr;
601 double bdDMassMin = 0.0;
602 double bdDMassMax = 999999.0;
603 double bdDPtMin = 10.0;
604 double bdDEtaMax = -1.0;
605 double bdDYMax = -1.0;
608 double bdDJPsiPtMin = 8.0;
609 double bdDJPsiEtaMax = -1.0;
610 double bdDJPsiYMax = -1.0;
613 double bdDKx0PtMin = -1.0;
614 double bdDKx0EtaMax = -1.0;
615 double bdDKx0YMax = -1.0;
616 double bdDProbMin = 0.10;
617 double bdDCosMin = 0.99;
618 double bdDSigMin = 3.0;
624 bdDBasicSelect =
new BPHFittedBasicSelect(bdDMassMin, bdDMassMax, bdDPtMin, bdDEtaMax, bdDYMax);
627 bdDKx0BasicSelect =
new BPHCompositeBasicSelect(bdDKx0MassMin, bdDKx0MassMax, bdDKx0PtMin, bdDKx0EtaMax, bdDKx0YMax);
629 bdDJPsiDaughterSelect =
nullptr;
636 double bsIMassMin = 0.0;
637 double bsIMassMax = 999999.0;
638 double bsIPtMin = 27.0;
639 double bsIEtaMax = -1.0;
640 double bsIYMax = -1.0;
643 double bsIJPsiPtMin = 25.0;
644 double bsIJPsiEtaMax = -1.0;
645 double bsIJPsiYMax = -1.0;
648 double bsIPhiPtMin = -1.0;
649 double bsIPhiEtaMax = -1.0;
650 double bsIPhiYMax = -1.0;
651 double bsIProbMin = 0.15;
652 double bsICosMin = -2.0;
653 double bsISigMin = -1.0;
659 bsIBasicSelect =
new BPHFittedBasicSelect(bsIMassMin, bsIMassMax, bsIPtMin, bsIEtaMax, bsIYMax);
662 bsIPhiBasicSelect =
new BPHCompositeBasicSelect(bsIPhiMassMin, bsIPhiMassMax, bsIPhiPtMin, bsIPhiEtaMax, bsIPhiYMax);
664 bsIJPsiDaughterSelect =
nullptr;
669 double bsDMassMin = 0.0;
670 double bsDMassMax = 999999.0;
671 double bsDPtMin = 10.0;
672 double bsDEtaMax = -1.0;
673 double bsDYMax = -1.0;
676 double bsDJPsiPtMin = 8.0;
677 double bsDJPsiEtaMax = -1.0;
678 double bsDJPsiYMax = -1.0;
681 double bsDPhiPtMin = -1.0;
682 double bsDPhiEtaMax = -1.0;
683 double bsDPhiYMax = -1.0;
684 double bsDProbMin = 0.10;
685 double bsDCosMin = 0.99;
686 double bsDSigMin = 3.0;
692 bsDBasicSelect =
new BPHFittedBasicSelect(bsDMassMin, bsDMassMax, bsDPtMin, bsDEtaMax, bsDYMax);
695 bsDPhiBasicSelect =
new BPHCompositeBasicSelect(bsDPhiMassMin, bsDPhiMassMax, bsDPhiPtMin, bsDPhiEtaMax, bsDPhiYMax);
697 bsDJPsiDaughterSelect =
nullptr;
704 double b0IMassMin = 0.0;
705 double b0IMassMax = 999999.0;
706 double b0IPtMin = 27.0;
707 double b0IEtaMax = -1.0;
708 double b0IYMax = -1.0;
711 double b0IJPsiPtMin = 25.0;
712 double b0IJPsiEtaMax = -1.0;
713 double b0IJPsiYMax = -1.0;
716 double b0IK0sPtMin = -1.0;
717 double b0IK0sEtaMax = -1.0;
718 double b0IK0sYMax = -1.0;
719 double b0IProbMin = 0.15;
720 double b0ICosMin = -2.0;
721 double b0ISigMin = -1.0;
727 b0IBasicSelect =
new BPHFittedBasicSelect(b0IMassMin, b0IMassMax, b0IPtMin, b0IEtaMax, b0IYMax);
730 b0IK0sBasicSelect =
new BPHFittedBasicSelect(b0IK0sMassMin, b0IK0sMassMax, b0IK0sPtMin, b0IK0sEtaMax, b0IK0sYMax);
732 b0IJPsiDaughterSelect =
nullptr;
737 double b0DMassMin = 0.0;
738 double b0DMassMax = 999999.0;
739 double b0DPtMin = 10.0;
740 double b0DEtaMax = -1.0;
741 double b0DYMax = -1.0;
744 double b0DJPsiPtMin = 8.0;
745 double b0DJPsiEtaMax = -1.0;
746 double b0DJPsiYMax = -1.0;
749 double b0DK0sPtMin = -1.0;
750 double b0DK0sEtaMax = -1.0;
751 double b0DK0sYMax = -1.0;
752 double b0DProbMin = 0.10;
753 double b0DCosMin = 0.99;
754 double b0DSigMin = 3.0;
760 b0DBasicSelect =
new BPHFittedBasicSelect(b0DMassMin, b0DMassMax, b0DPtMin, b0DEtaMax, b0DYMax);
763 b0DK0sBasicSelect =
new BPHFittedBasicSelect(b0DK0sMassMin, b0DK0sMassMax, b0DK0sPtMin, b0DK0sEtaMax, b0DK0sYMax);
765 b0DJPsiDaughterSelect =
nullptr;
772 double lbIMassMin = 0.0;
773 double lbIMassMax = 999999.0;
774 double lbIPtMin = 27.0;
775 double lbIEtaMax = -1.0;
776 double lbIYMax = -1.0;
779 double lbIJPsiPtMin = 25.0;
780 double lbIJPsiEtaMax = -1.0;
781 double lbIJPsiYMax = -1.0;
784 double lbILambda0PtMin = -1.0;
785 double lbILambda0EtaMax = -1.0;
786 double lbILambda0YMax = -1.0;
787 double lbIProbMin = 0.10;
788 double lbICosMin = -2.0;
789 double lbISigMin = -1.0;
795 lbIBasicSelect =
new BPHFittedBasicSelect(lbIMassMin, lbIMassMax, lbIPtMin, lbIEtaMax, lbIYMax);
798 lbILambda0BasicSelect =
799 new BPHFittedBasicSelect(lbILambda0MassMin, lbILambda0MassMax, lbILambda0PtMin, lbILambda0EtaMax, lbILambda0YMax);
801 lbIJPsiDaughterSelect =
nullptr;
806 double lbDMassMin = 0.0;
807 double lbDMassMax = 999999.0;
808 double lbDPtMin = 10.0;
809 double lbDEtaMax = -1.0;
810 double lbDYMax = -1.0;
813 double lbDJPsiPtMin = 8.0;
814 double lbDJPsiEtaMax = -1.0;
815 double lbDJPsiYMax = -1.0;
818 double lbDLambda0PtMin = -1.0;
819 double lbDLambda0EtaMax = -1.0;
820 double lbDLambda0YMax = -1.0;
821 double lbDProbMin = 0.10;
822 double lbDCosMin = 0.99;
823 double lbDSigMin = 3.0;
829 lbDBasicSelect =
new BPHFittedBasicSelect(lbDMassMin, lbDMassMax, lbDPtMin, lbDEtaMax, lbDYMax);
832 lbDLambda0BasicSelect =
833 new BPHFittedBasicSelect(lbDLambda0MassMin, lbDLambda0MassMax, lbDLambda0PtMin, lbDLambda0EtaMax, lbDLambda0YMax);
835 lbDJPsiDaughterSelect =
nullptr;
842 double bcIMassMin = 0.0;
843 double bcIMassMax = 999999.0;
844 double bcIPtMin = 27.0;
845 double bcIEtaMax = -1.0;
846 double bcIYMax = -1.0;
849 double bcIJPsiPtMin = 25.0;
850 double bcIJPsiEtaMax = -1.0;
851 double bcIJPsiYMax = -1.0;
852 double bcIJPsiProbMin = 0.005;
853 double bcIProbMin = 0.10;
854 double bcICosMin = -2.0;
855 double bcISigMin = -1.0;
856 double bcIDistMin = 0.01;
864 bcIBasicSelect =
new BPHFittedBasicSelect(bcIMassMin, bcIMassMax, bcIPtMin, bcIEtaMax, bcIYMax);
869 bcIJPsiDaughterSelect =
nullptr;
874 double bcDMassMin = 0.0;
875 double bcDMassMax = 999999.0;
876 double bcDPtMin = 8.0;
877 double bcDEtaMax = -1.0;
878 double bcDYMax = -1.0;
881 double bcDJPsiPtMin = 7.0;
882 double bcDJPsiEtaMax = -1.0;
883 double bcDJPsiYMax = -1.0;
884 double bcDJPsiProbMin = 0.005;
885 double bcDProbMin = 0.10;
886 double bcDCosMin = 0.99;
887 double bcDSigMin = 3.0;
896 bcDBasicSelect =
new BPHFittedBasicSelect(bcDMassMin, bcDMassMax, bcDPtMin, bcDEtaMax, bcDYMax);
901 bcDJPsiDaughterSelect =
nullptr;
908 double x3872IMassMin = 0.0;
909 double x3872IMassMax = 999999.0;
910 double x3872IPtMin = 27.0;
911 double x3872IEtaMax = -1.0;
912 double x3872IYMax = -1.0;
915 double x3872IJPsiPtMin = 25.0;
916 double x3872IJPsiEtaMax = -1.0;
917 double x3872IJPsiYMax = -1.0;
918 double x3872IJPsiProbMin = 0.10;
919 double x3872IProbMin = 0.10;
920 double x3872ICosMin = -2.0;
921 double x3872ISigMin = -1.0;
922 double x3872IDistMin = 0.01;
928 x3872JPsiDcaMax = 0.5;
931 x3872IBasicSelect =
new BPHFittedBasicSelect(x3872IMassMin, x3872IMassMax, x3872IPtMin, x3872IEtaMax, x3872IYMax);
933 x3872IJPsiMassMin, x3872IJPsiMassMax, x3872IJPsiPtMin, x3872IJPsiEtaMax, x3872IJPsiYMax);
935 x3872IVertexSelect =
new BPHGenericVertexSelect(
'f', x3872IProbMin, x3872ICosMin, x3872ISigMin, x3872IDistMin);
936 x3872IJPsiDaughterSelect =
nullptr;
942 double x3872DMassMin = 0.0;
943 double x3872DMassMax = 999999.0;
944 double x3872DPtMin = 8.0;
945 double x3872DEtaMax = -1.0;
946 double x3872DYMax = -1.0;
949 double x3872DJPsiPtMin = 7.0;
950 double x3872DJPsiEtaMax = -1.0;
951 double x3872DJPsiYMax = -1.0;
952 double x3872DJPsiProbMin = 0.10;
953 double x3872DProbMin = 0.10;
954 double x3872DCosMin = 0.99;
955 double x3872DSigMin = 3.0;
963 x3872DBasicSelect =
new BPHFittedBasicSelect(x3872DMassMin, x3872DMassMax, x3872DPtMin, x3872DEtaMax, x3872DYMax);
965 x3872DJPsiMassMin, x3872DJPsiMassMax, x3872DJPsiPtMin, x3872DJPsiEtaMax, x3872DJPsiYMax);
968 x3872DJPsiDaughterSelect =
nullptr;
976 delete phiIBasicSelect;
977 delete phiBBasicSelect;
978 delete jPsiIBasicSelect;
979 delete jPsiBBasicSelect;
980 delete psi2IBasicSelect;
981 delete psi2BBasicSelect;
982 delete upsIBasicSelect;
983 delete upsBBasicSelect;
984 delete oniaVertexSelect;
985 delete oniaDaughterSelect;
987 delete npJPsiBasicSelect;
988 delete npJPsiDaughterSelect;
990 delete buIBasicSelect;
991 delete buIJPsiBasicSelect;
992 delete buIVertexSelect;
993 delete buIJPsiDaughterSelect;
994 delete buDBasicSelect;
995 delete buDJPsiBasicSelect;
996 delete buDVertexSelect;
997 delete buDJPsiDaughterSelect;
999 delete bdIBasicSelect;
1000 delete bdIJPsiBasicSelect;
1001 delete bdIKx0BasicSelect;
1002 delete bdIVertexSelect;
1003 delete bdIJPsiDaughterSelect;
1004 delete bdDBasicSelect;
1005 delete bdDJPsiBasicSelect;
1006 delete bdDKx0BasicSelect;
1007 delete bdDVertexSelect;
1008 delete bdDJPsiDaughterSelect;
1010 delete bsIBasicSelect;
1011 delete bsIJPsiBasicSelect;
1012 delete bsIPhiBasicSelect;
1013 delete bsIVertexSelect;
1014 delete bsIJPsiDaughterSelect;
1015 delete bsDBasicSelect;
1016 delete bsDJPsiBasicSelect;
1017 delete bsDPhiBasicSelect;
1018 delete bsDVertexSelect;
1019 delete bsDJPsiDaughterSelect;
1021 delete b0IBasicSelect;
1022 delete b0IJPsiBasicSelect;
1023 delete b0IK0sBasicSelect;
1024 delete b0IVertexSelect;
1025 delete b0IJPsiDaughterSelect;
1026 delete b0DBasicSelect;
1027 delete b0DJPsiBasicSelect;
1028 delete b0DK0sBasicSelect;
1029 delete b0DVertexSelect;
1030 delete b0DJPsiDaughterSelect;
1032 delete lbIBasicSelect;
1033 delete lbIJPsiBasicSelect;
1034 delete lbILambda0BasicSelect;
1035 delete lbIVertexSelect;
1036 delete lbIJPsiDaughterSelect;
1037 delete lbDBasicSelect;
1038 delete lbDJPsiBasicSelect;
1039 delete lbDLambda0BasicSelect;
1040 delete lbDVertexSelect;
1041 delete lbDJPsiDaughterSelect;
1043 delete bcIBasicSelect;
1044 delete bcIJPsiBasicSelect;
1045 delete bcIJPsiVertexSelect;
1046 delete bcIVertexSelect;
1047 delete bcIJPsiDaughterSelect;
1048 delete bcDBasicSelect;
1049 delete bcDJPsiBasicSelect;
1050 delete bcDJPsiVertexSelect;
1051 delete bcDVertexSelect;
1052 delete bcDJPsiDaughterSelect;
1054 delete x3872IBasicSelect;
1055 delete x3872IJPsiBasicSelect;
1056 delete x3872IJPsiVertexSelect;
1057 delete x3872IVertexSelect;
1058 delete x3872IJPsiDaughterSelect;
1059 delete x3872DBasicSelect;
1060 delete x3872DJPsiBasicSelect;
1061 delete x3872DJPsiVertexSelect;
1062 delete x3872DVertexSelect;
1063 delete x3872DJPsiDaughterSelect;
1068 desc.add<
string>(
"trigResultsLabel",
"");
1069 desc.add<
string>(
"oniaCandsLabel",
"");
1070 desc.add<
string>(
"sdCandsLabel",
"");
1071 desc.add<
string>(
"ssCandsLabel",
"");
1072 desc.add<
string>(
"buCandsLabel",
"");
1073 desc.add<
string>(
"bdCandsLabel",
"");
1074 desc.add<
string>(
"bsCandsLabel",
"");
1075 desc.add<
string>(
"k0CandsLabel",
"");
1076 desc.add<
string>(
"l0CandsLabel",
"");
1077 desc.add<
string>(
"b0CandsLabel",
"");
1078 desc.add<
string>(
"lbCandsLabel",
"");
1079 desc.add<
string>(
"bcCandsLabel",
"");
1080 desc.add<
string>(
"x3872CandsLabel",
"");
1081 descriptions.
add(
"process.bphHistoSpecificDecay",
desc);
1086 createHisto(
"massDIPhi", 50, 0.90, 1.15);
1087 createHisto(
"massTIPhi", 50, 0.90, 1.15);
1088 createHisto(
"massDBPhi", 50, 0.90, 1.15);
1089 createHisto(
"massTBPhi", 50, 0.90, 1.15);
1090 createHisto(
"massDIJPsi", 35, 2.95, 3.30);
1091 createHisto(
"massTIJPsi", 35, 2.95, 3.30);
1092 createHisto(
"massDBJPsi", 35, 2.95, 3.30);
1093 createHisto(
"massTBJPsi", 35, 2.95, 3.30);
1094 createHisto(
"massDIPsi2", 60, 3.40, 4.00);
1095 createHisto(
"massTIPsi2", 60, 3.40, 4.00);
1096 createHisto(
"massDBPsi2", 60, 3.40, 4.00);
1097 createHisto(
"massTBPsi2", 60, 3.40, 4.00);
1098 createHisto(
"massDIUps123", 115, 8.70, 11.0);
1099 createHisto(
"massTIUps123", 115, 8.70, 11.0);
1100 createHisto(
"massDBUps123", 115, 8.70, 11.0);
1101 createHisto(
"massTBUps123", 115, 8.70, 11.0);
1102 createHisto(
"massDIBu", 100, 5.00, 6.00);
1103 createHisto(
"massTIBu", 100, 5.00, 6.00);
1104 createHisto(
"massDDBu", 100, 5.00, 6.00);
1105 createHisto(
"massTDBu", 100, 5.00, 6.00);
1106 createHisto(
"massDIBd", 100, 5.00, 6.00);
1107 createHisto(
"massTIBd", 100, 5.00, 6.00);
1108 createHisto(
"massDDBd", 100, 5.00, 6.00);
1109 createHisto(
"massTDBd", 100, 5.00, 6.00);
1110 createHisto(
"massDIBs", 100, 5.00, 6.00);
1111 createHisto(
"massTIBs", 100, 5.00, 6.00);
1112 createHisto(
"massDDBs", 100, 5.00, 6.00);
1113 createHisto(
"massTDBs", 100, 5.00, 6.00);
1114 createHisto(
"massDIBc", 100, 6.00, 7.00);
1115 createHisto(
"massTIBc", 100, 6.00, 7.00);
1116 createHisto(
"massDDBc", 100, 6.00, 7.00);
1117 createHisto(
"massTDBc", 100, 6.00, 7.00);
1118 createHisto(
"massDIX3872", 40, 3.60, 4.00);
1119 createHisto(
"massTIX3872", 40, 3.60, 4.00);
1120 createHisto(
"massDDX3872", 40, 3.60, 4.00);
1121 createHisto(
"massTDX3872", 40, 3.60, 4.00);
1122 createHisto(
"mfitDIBu", 100, 5.00, 6.00);
1123 createHisto(
"mfitTIBu", 100, 5.00, 6.00);
1124 createHisto(
"mfitDDBu", 100, 5.00, 6.00);
1125 createHisto(
"mfitTDBu", 100, 5.00, 6.00);
1126 createHisto(
"mfitDIBd", 100, 5.00, 6.00);
1127 createHisto(
"mfitTIBd", 100, 5.00, 6.00);
1128 createHisto(
"mfitDDBd", 100, 5.00, 6.00);
1129 createHisto(
"mfitTDBd", 100, 5.00, 6.00);
1130 createHisto(
"mfitDIBs", 100, 5.00, 6.00);
1131 createHisto(
"mfitTIBs", 100, 5.00, 6.00);
1132 createHisto(
"mfitDDBs", 100, 5.00, 6.00);
1133 createHisto(
"mfitTDBs", 100, 5.00, 6.00);
1134 createHisto(
"mfitDIBc", 100, 6.00, 7.00);
1135 createHisto(
"mfitTIBc", 100, 6.00, 7.00);
1136 createHisto(
"mfitDDBc", 100, 6.00, 7.00);
1137 createHisto(
"mfitTDBc", 100, 6.00, 7.00);
1138 createHisto(
"mfitDIX3872", 40, 3.60, 4.00);
1139 createHisto(
"mfitTIX3872", 40, 3.60, 4.00);
1140 createHisto(
"mfitDDX3872", 40, 3.60, 4.00);
1141 createHisto(
"mfitTDX3872", 40, 3.60, 4.00);
1142 createHisto(
"massDIBuJPsi", 35, 2.95, 3.30);
1143 createHisto(
"massTIBuJPsi", 35, 2.95, 3.30);
1144 createHisto(
"massDDBuJPsi", 35, 2.95, 3.30);
1145 createHisto(
"massTDBuJPsi", 35, 2.95, 3.30);
1146 createHisto(
"massDIBdJPsi", 35, 2.95, 3.30);
1147 createHisto(
"massTIBdJPsi", 35, 2.95, 3.30);
1148 createHisto(
"massDDBdJPsi", 35, 2.95, 3.30);
1149 createHisto(
"massTDBdJPsi", 35, 2.95, 3.30);
1150 createHisto(
"massDIBdKx0", 50, 0.80, 1.05);
1151 createHisto(
"massTIBdKx0", 50, 0.80, 1.05);
1152 createHisto(
"massDDBdKx0", 50, 0.80, 1.05);
1153 createHisto(
"massTDBdKx0", 50, 0.80, 1.05);
1154 createHisto(
"massDIBsJPsi", 35, 2.95, 3.30);
1155 createHisto(
"massTIBsJPsi", 35, 2.95, 3.30);
1156 createHisto(
"massDDBsJPsi", 35, 2.95, 3.30);
1157 createHisto(
"massTDBsJPsi", 35, 2.95, 3.30);
1158 createHisto(
"massDIBsPhi", 50, 1.01, 1.03);
1159 createHisto(
"massTIBsPhi", 50, 1.01, 1.03);
1160 createHisto(
"massDDBsPhi", 50, 1.01, 1.03);
1161 createHisto(
"massTDBsPhi", 50, 1.01, 1.03);
1162 createHisto(
"massDIBcJPsi", 35, 2.95, 3.30);
1163 createHisto(
"massTIBcJPsi", 35, 2.95, 3.30);
1164 createHisto(
"massDDBcJPsi", 35, 2.95, 3.30);
1165 createHisto(
"massTDBcJPsi", 35, 2.95, 3.30);
1166 createHisto(
"massDIX3JPsi", 35, 2.95, 3.30);
1167 createHisto(
"massTIX3JPsi", 35, 2.95, 3.30);
1168 createHisto(
"massDDX3JPsi", 35, 2.95, 3.30);
1169 createHisto(
"massTDX3JPsi", 35, 2.95, 3.30);
1170 createHisto(
"massDK0s", 50, 0.40, 0.60);
1171 createHisto(
"mfitDK0s", 50, 0.40, 0.60);
1172 createHisto(
"massDLambda0", 60, 1.00, 1.30);
1173 createHisto(
"mfitDLambda0", 60, 1.00, 1.30);
1174 createHisto(
"massDIB0", 50, 5.00, 6.00);
1175 createHisto(
"massTIB0", 50, 5.00, 6.00);
1176 createHisto(
"massDDB0", 50, 5.00, 6.00);
1177 createHisto(
"massTDB0", 50, 5.00, 6.00);
1178 createHisto(
"mfitDIB0", 50, 5.00, 6.00);
1179 createHisto(
"mfitTIB0", 50, 5.00, 6.00);
1180 createHisto(
"mfitDDB0", 50, 5.00, 6.00);
1181 createHisto(
"mfitTDB0", 50, 5.00, 6.00);
1182 createHisto(
"massDIB0JPsi", 35, 2.95, 3.30);
1183 createHisto(
"massTIB0JPsi", 35, 2.95, 3.30);
1184 createHisto(
"massDDB0JPsi", 35, 2.95, 3.30);
1185 createHisto(
"massTDB0JPsi", 35, 2.95, 3.30);
1186 createHisto(
"massDIB0K0s", 50, 0.40, 0.60);
1187 createHisto(
"massTIB0K0s", 50, 0.40, 0.60);
1188 createHisto(
"massDDB0K0s", 50, 0.40, 0.60);
1189 createHisto(
"massTDB0K0s", 50, 0.40, 0.60);
1190 createHisto(
"mfitDIB0K0s", 50, 0.40, 0.60);
1191 createHisto(
"mfitTIB0K0s", 50, 0.40, 0.60);
1192 createHisto(
"mfitDDB0K0s", 50, 0.40, 0.60);
1193 createHisto(
"mfitTDB0K0s", 50, 0.40, 0.60);
1194 createHisto(
"massDILambdab", 25, 5.00, 6.00);
1195 createHisto(
"massTILambdab", 25, 5.00, 6.00);
1196 createHisto(
"massDDLambdab", 25, 5.00, 6.00);
1197 createHisto(
"massTDLambdab", 25, 5.00, 6.00);
1198 createHisto(
"mfitDILambdab", 25, 5.00, 6.00);
1199 createHisto(
"mfitTILambdab", 25, 5.00, 6.00);
1200 createHisto(
"mfitDDLambdab", 25, 5.00, 6.00);
1201 createHisto(
"mfitTDLambdab", 25, 5.00, 6.00);
1202 createHisto(
"massDILbJPsi", 35, 2.95, 3.30);
1203 createHisto(
"massTILbJPsi", 35, 2.95, 3.30);
1204 createHisto(
"massDDLbJPsi", 35, 2.95, 3.30);
1205 createHisto(
"massTDLbJPsi", 35, 2.95, 3.30);
1206 createHisto(
"massDILbL0", 60, 1.00, 1.30);
1207 createHisto(
"massTILbL0", 60, 1.00, 1.30);
1208 createHisto(
"massDDLbL0", 60, 1.00, 1.30);
1209 createHisto(
"massTDLbL0", 60, 1.00, 1.30);
1210 createHisto(
"mfitDILbL0", 60, 1.00, 1.30);
1211 createHisto(
"mfitTILbL0", 60, 1.00, 1.30);
1212 createHisto(
"mfitDDLbL0", 60, 1.00, 1.30);
1213 createHisto(
"mfitTDLbL0", 60, 1.00, 1.30);
1215 createHisto(
"massFull", 200, 2.00, 12.0);
1217 createHisto(
"ctauDIJPsi", 60, -0.05, 0.25);
1218 createHisto(
"ctauTIJPsi", 60, -0.05, 0.25);
1219 createHisto(
"ctauDBJPsi", 60, -0.05, 0.25);
1220 createHisto(
"ctauTBJPsi", 60, -0.05, 0.25);
1221 createHisto(
"ctauDIBu", 60, -0.05, 0.25);
1222 createHisto(
"ctauTIBu", 60, -0.05, 0.25);
1223 createHisto(
"ctauDDBu", 60, -0.05, 0.25);
1224 createHisto(
"ctauTDBu", 60, -0.05, 0.25);
1225 createHisto(
"ctauDIBd", 60, -0.05, 0.25);
1226 createHisto(
"ctauTIBd", 60, -0.05, 0.25);
1227 createHisto(
"ctauDDBd", 60, -0.05, 0.25);
1228 createHisto(
"ctauTDBd", 60, -0.05, 0.25);
1229 createHisto(
"ctauDIBs", 60, -0.05, 0.25);
1230 createHisto(
"ctauTIBs", 60, -0.05, 0.25);
1231 createHisto(
"ctauDDBs", 60, -0.05, 0.25);
1232 createHisto(
"ctauTDBs", 60, -0.05, 0.25);
1233 createHisto(
"ctauDIB0", 60, -0.05, 0.25);
1234 createHisto(
"ctauTIB0", 60, -0.05, 0.25);
1235 createHisto(
"ctauDDB0", 60, -0.05, 0.25);
1236 createHisto(
"ctauTDB0", 60, -0.05, 0.25);
1237 createHisto(
"ctauDILambdab", 60, -0.05, 0.25);
1238 createHisto(
"ctauTILambdab", 60, -0.05, 0.25);
1239 createHisto(
"ctauDDLambdab", 60, -0.05, 0.25);
1240 createHisto(
"ctauTDLambdab", 60, -0.05, 0.25);
1243 tree =
fs->make<TTree>(
"BPHReco",
"BPHReco");
1244 b_runNumber =
tree->Branch(
"runNumber", &
runNumber,
"runNumber/i");
1245 b_lumiSection =
tree->Branch(
"lumiSection", &lumiSection,
"lumiSection/i");
1246 b_eventNumber =
tree->Branch(
"eventNumber", &eventNumber,
"eventNumber/i");
1247 b_recoName =
tree->Branch(
"recoName", &recoName, 8192, 99);
1248 b_recoMass =
tree->Branch(
"recoMass", &recoMass,
"recoMass/F");
1249 b_recoTime =
tree->Branch(
"recoTime", &recoTime,
"recoTime/F");
1250 b_recoErrT =
tree->Branch(
"recoErrT", &recoErrT,
"recoErrT/F");
1258 static map<string, ofstream*> ofMap;
1259 if (ofMap.empty()) {
1260 ofMap[
"BarPhi"] =
nullptr;
1261 ofMap[
"IncJPsi"] =
nullptr;
1262 ofMap[
"BarJPsi"] =
nullptr;
1263 ofMap[
"IncPsi2"] =
nullptr;
1264 ofMap[
"BarPsi2"] =
nullptr;
1265 ofMap[
"BarUpsilon123"] =
nullptr;
1266 ofMap[
"InclusiveBu"] =
nullptr;
1267 ofMap[
"DisplacedBu"] =
nullptr;
1268 ofMap[
"InclusiveBd"] =
nullptr;
1269 ofMap[
"DisplacedBd"] =
nullptr;
1270 ofMap[
"InclusiveBs"] =
nullptr;
1271 ofMap[
"DisplacedBs"] =
nullptr;
1272 ofMap[
"K0s"] =
nullptr;
1273 ofMap[
"Lambda0"] =
nullptr;
1274 ofMap[
"InclusiveB0"] =
nullptr;
1275 ofMap[
"DisplacedB0"] =
nullptr;
1276 ofMap[
"InclusiveLambdab"] =
nullptr;
1277 ofMap[
"DisplacedLambdab"] =
nullptr;
1278 ofMap[
"InclusiveBc"] =
nullptr;
1279 ofMap[
"DisplacedBc"] =
nullptr;
1280 ofMap[
"InclusiveX3872"] =
nullptr;
1281 ofMap[
"DisplacedX3872"] =
nullptr;
1282 map<string, ofstream*>::iterator iter = ofMap.begin();
1283 map<string, ofstream*>::iterator iend = ofMap.end();
1284 string name =
"list";
1285 while (iter != iend) {
1286 iter->second =
new ofstream(
name + iter->first);
1293 lumiSection =
ev.id().luminosityBlock();
1294 eventNumber =
ev.id().event();
1305 trigResultsToken.get(
ev, trigResults);
1310 bool flag_Dimuon25_Jpsi =
false;
1311 bool flag_Dimuon20_Jpsi_Barrel_Seagulls =
false;
1312 bool flag_Dimuon14_Phi_Barrel_Seagulls =
false;
1313 bool flag_Dimuon18_PsiPrime =
false;
1314 bool flag_Dimuon10_PsiPrime_Barrel_Seagulls =
false;
1315 bool flag_Dimuon12_Upsilon_eta1p5 =
false;
1316 bool flag_Dimuon12_Upsilon_y1p4 =
false;
1317 bool flag_DoubleMu4_JpsiTrk_Displaced =
false;
1321 int nObj =
names.size();
1322 for (iObj = 0; iObj < nObj; ++iObj) {
1325 CHK_TRIG(trigResults,
names, iObj, Dimuon20_Jpsi_Barrel_Seagulls)
1326 CHK_TRIG(trigResults,
names, iObj, Dimuon14_Phi_Barrel_Seagulls)
1328 CHK_TRIG(trigResults,
names, iObj, Dimuon10_PsiPrime_Barrel_Seagulls)
1331 CHK_TRIG(trigResults,
names, iObj, DoubleMu4_JpsiTrk_Displaced)
1356 oniaCandsToken.get(
ev, oniaCands);
1357 nqo = oniaCands->size();
1360 for (iqo = 0; iqo < nqo; ++iqo) {
1361 LogTrace(
"DataDump") <<
"*********** quarkonium " << iqo <<
"/" << nqo <<
" ***********";
1363 if (!oniaVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(
cand,
"primaryVertex")))
1365 if (!oniaDaughterSelect->accept(
cand))
1367 fillHisto(
"Full",
cand,
'c');
1368 if (phiBBasicSelect->accept(
cand)) {
1369 fillHisto(
"DBPhi",
cand,
'c');
1370 if (flag_Dimuon14_Phi_Barrel_Seagulls)
1371 fillHisto(
"TBPhi",
cand,
'c');
1372 if (flag_Dimuon14_Phi_Barrel_Seagulls)
1373 *ofMap[
"BarPhi"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1374 <<
cand.mass() << endl;
1376 if (jPsiIBasicSelect->accept(
cand)) {
1377 fillHisto(
"DIJPsi",
cand,
'c');
1378 if (flag_Dimuon25_Jpsi)
1379 fillHisto(
"TIJPsi",
cand,
'c');
1380 if (flag_Dimuon25_Jpsi)
1381 *ofMap[
"IncJPsi"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1382 <<
cand.mass() << endl;
1384 if (jPsiBBasicSelect->accept(
cand)) {
1385 fillHisto(
"DBJPsi",
cand,
'c');
1386 if (flag_Dimuon20_Jpsi_Barrel_Seagulls)
1387 fillHisto(
"TBJPsi",
cand,
'c');
1388 if (flag_Dimuon20_Jpsi_Barrel_Seagulls)
1389 *ofMap[
"BarJPsi"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1390 <<
cand.mass() << endl;
1392 if (psi2IBasicSelect->accept(
cand)) {
1393 fillHisto(
"DIPsi2",
cand,
'c');
1394 if (flag_Dimuon18_PsiPrime)
1395 fillHisto(
"TIPsi2",
cand,
'c');
1396 if (flag_Dimuon18_PsiPrime)
1397 *ofMap[
"IncPsi2"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1398 <<
cand.mass() << endl;
1400 if (psi2BBasicSelect->accept(
cand)) {
1401 fillHisto(
"DBPsi2",
cand,
'c');
1402 if (flag_Dimuon10_PsiPrime_Barrel_Seagulls)
1403 fillHisto(
"TBPsi2",
cand,
'c');
1404 if (flag_Dimuon10_PsiPrime_Barrel_Seagulls)
1405 *ofMap[
"BarPsi2"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1406 <<
cand.mass() << endl;
1408 if (upsBBasicSelect->accept(
cand)) {
1409 fillHisto(
"DBUps123",
cand,
'c');
1410 if (flag_Dimuon12_Upsilon_eta1p5 || flag_Dimuon12_Upsilon_y1p4)
1411 fillHisto(
"TBUps123",
cand,
'c');
1412 if (flag_Dimuon12_Upsilon_eta1p5 || flag_Dimuon12_Upsilon_y1p4)
1413 *ofMap[
"BarUpsilon123"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1414 <<
cand.mass() << endl;
1424 buCandsToken.get(
ev, buCands);
1425 nbu = buCands->size();
1428 for (ibu = 0; ibu < nbu; ++ibu) {
1429 LogTrace(
"DataDump") <<
"*********** Bu " << ibu <<
"/" << nbu <<
" ***********";
1432 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1433 if (jPsi ==
nullptr)
1435 if (!npJPsiBasicSelect->accept(*jPsi))
1437 if (!npJPsiDaughterSelect->accept(*jPsi))
1440 if (kptr ==
nullptr)
1442 if (buIBasicSelect->accept(
cand) && buIJPsiBasicSelect->accept(*jPsi) &&
1444 buIVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1445 (kptr->
pt() > buIKPtMin)) {
1446 fillHisto(
"DIBu",
cand,
'f');
1447 fillHisto(
"DIBuJPsi", *jPsi,
'c');
1448 if (flag_Dimuon25_Jpsi) {
1449 fillHisto(
"TIBu",
cand,
'f');
1450 fillHisto(
"TIBuJPsi", *jPsi,
'c');
1451 *ofMap[
"InclusiveBu"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1452 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1455 if (buDBasicSelect->accept(
cand) && buDJPsiBasicSelect->accept(*jPsi) &&
1457 buDVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1458 (kptr->
pt() > buDKPtMin)) {
1459 fillHisto(
"DDBu",
cand,
'f');
1460 fillHisto(
"DDBuJPsi", *jPsi,
'c');
1461 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1462 fillHisto(
"TDBu",
cand,
'f');
1463 fillHisto(
"TDBuJPsi", *jPsi,
'c');
1464 *ofMap[
"DisplacedBu"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1465 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1476 bdCandsToken.get(
ev, bdCands);
1477 nbd = bdCands->size();
1480 for (ibd = 0; ibd < nbd; ++ibd) {
1481 LogTrace(
"DataDump") <<
"*********** Bd " << ibd <<
"/" << nbd <<
" ***********";
1484 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1485 if (jPsi ==
nullptr)
1487 if (!npJPsiBasicSelect->accept(*jPsi))
1489 if (!npJPsiDaughterSelect->accept(*jPsi))
1492 LogTrace(
"DataDump") <<
"Kx0: " << kx0;
1495 if (bdIBasicSelect->accept(
cand) && bdIJPsiBasicSelect->accept(*jPsi) && bdIKx0BasicSelect->accept(*kx0) &&
1497 bdIVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1498 fillHisto(
"DIBd",
cand,
'f');
1499 fillHisto(
"DIBdJPsi", *jPsi,
'c');
1500 fillHisto(
"DIBdKx0", *kx0,
'c');
1501 if (flag_Dimuon25_Jpsi) {
1502 fillHisto(
"TIBd",
cand,
'f');
1503 fillHisto(
"TIBdJPsi", *jPsi,
'c');
1504 fillHisto(
"TIBdKx0", *kx0,
'c');
1505 *ofMap[
"InclusiveBd"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1506 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1509 if (bdDBasicSelect->accept(
cand) && bdDJPsiBasicSelect->accept(*jPsi) && bdDKx0BasicSelect->accept(*kx0) &&
1511 bdDVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1512 fillHisto(
"DDBd",
cand,
'f');
1513 fillHisto(
"DDBdJPsi", *jPsi,
'c');
1514 fillHisto(
"DDBdKx0", *kx0,
'c');
1515 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1516 fillHisto(
"TDBd",
cand,
'f');
1517 fillHisto(
"TDBdJPsi", *jPsi,
'c');
1518 fillHisto(
"TDBdKx0", *kx0,
'c');
1519 *ofMap[
"DisplacedBd"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1520 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1531 bsCandsToken.get(
ev, bsCands);
1532 nbs = bsCands->size();
1535 for (ibs = 0; ibs < nbs; ++ibs) {
1536 LogTrace(
"DataDump") <<
"*********** Bs " << ibs <<
"/" << nbs <<
" ***********";
1539 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1540 if (jPsi ==
nullptr)
1542 if (!npJPsiBasicSelect->accept(*jPsi))
1544 if (!npJPsiDaughterSelect->accept(*jPsi))
1547 LogTrace(
"DataDump") <<
"Phi: " << phi;
1550 if (bsIBasicSelect->accept(
cand) && bsIJPsiBasicSelect->accept(*jPsi) && bsIPhiBasicSelect->accept(*phi) &&
1552 bsIVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1553 fillHisto(
"DIBs",
cand,
'f');
1554 fillHisto(
"DIBsJPsi", *jPsi,
'c');
1555 fillHisto(
"DIBsPhi", *phi,
'c');
1556 if (flag_Dimuon25_Jpsi) {
1557 fillHisto(
"TIBs",
cand,
'f');
1558 fillHisto(
"TIBsJPsi", *jPsi,
'c');
1559 fillHisto(
"TIBsPhi", *phi,
'c');
1560 *ofMap[
"InclusiveBs"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1561 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1564 if (bsDBasicSelect->accept(
cand) && bsDJPsiBasicSelect->accept(*jPsi) && bsDPhiBasicSelect->accept(*phi) &&
1566 bsDVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1567 fillHisto(
"DDBs",
cand,
'f');
1568 fillHisto(
"DDBsJPsi", *jPsi,
'c');
1569 fillHisto(
"DDBsPhi", *phi,
'c');
1570 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1571 fillHisto(
"TDBs",
cand,
'f');
1572 fillHisto(
"TDBsJPsi", *jPsi,
'c');
1573 fillHisto(
"TDBsPhi", *phi,
'c');
1574 *ofMap[
"DisplacedBs"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1575 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1586 k0CandsToken.get(
ev, k0Cands);
1587 nk0 = k0Cands->size();
1590 for (ik0 = 0; ik0 < nk0; ++ik0) {
1591 LogTrace(
"DataDump") <<
"*********** K0 " << ik0 <<
"/" << nk0 <<
" ***********";
1593 fillHisto(
"DK0s",
cand,
'f');
1594 *ofMap[
"K0s"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1595 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1604 l0CandsToken.get(
ev, l0Cands);
1605 nl0 = l0Cands->size();
1608 for (il0 = 0; il0 < nl0; ++il0) {
1609 LogTrace(
"DataDump") <<
"*********** Lambda0 " << il0 <<
"/" << nl0 <<
" ***********";
1611 fillHisto(
"DLambda0",
cand,
'f');
1612 *ofMap[
"Lambda0"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1613 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1622 b0CandsToken.get(
ev, b0Cands);
1623 nb0 = b0Cands->size();
1630 for (ib0 = 0; ib0 < nb0; ++ib0) {
1631 LogTrace(
"DataDump") <<
"*********** B0 " << ib0 <<
"/" << nb0 <<
" ***********";
1634 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1635 if (jPsi ==
nullptr)
1637 if (!npJPsiBasicSelect->accept(*jPsi))
1639 if (!npJPsiDaughterSelect->accept(*jPsi))
1642 LogTrace(
"DataDump") <<
"K0s: " << k0s;
1645 if (b0IBasicSelect->accept(
cand) && b0IJPsiBasicSelect->accept(*jPsi) && b0IK0sBasicSelect->accept(*k0s) &&
1647 b0IVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1648 fillHisto(
"DIB0",
cand,
'f');
1649 fillHisto(
"DIB0JPsi", *jPsi,
'c');
1650 fillHisto(
"DIB0K0s", *k0s,
'c');
1651 if (flag_Dimuon25_Jpsi) {
1652 fillHisto(
"TIB0",
cand,
'f');
1653 fillHisto(
"TIB0JPsi", *jPsi,
'c');
1654 fillHisto(
"TIB0K0s", *k0s,
'c');
1655 *ofMap[
"InclusiveB0"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1656 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1659 if (b0DBasicSelect->accept(
cand) && b0DJPsiBasicSelect->accept(*jPsi) && b0DK0sBasicSelect->accept(*k0s) &&
1661 b0DVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1662 fillHisto(
"DDB0",
cand,
'f');
1663 fillHisto(
"DDB0JPsi", *jPsi,
'c');
1664 fillHisto(
"DDB0K0s", *k0s,
'c');
1665 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1666 fillHisto(
"TDB0",
cand,
'f');
1667 fillHisto(
"TDB0JPsi", *jPsi,
'c');
1668 fillHisto(
"TDB0K0s", *k0s,
'c');
1669 *ofMap[
"DisplacedB0"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1670 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1681 lbCandsToken.get(
ev, lbCands);
1682 nlb = lbCands->size();
1685 for (ilb = 0; ilb < nlb; ++ilb) {
1686 LogTrace(
"DataDump") <<
"*********** Lambdab " << ilb <<
"/" << nlb <<
" ***********";
1689 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1690 if (jPsi ==
nullptr)
1692 if (!npJPsiBasicSelect->accept(*jPsi))
1694 if (!npJPsiDaughterSelect->accept(*jPsi))
1697 LogTrace(
"DataDump") <<
"Lambda0: " << l0;
1700 if (lbIBasicSelect->accept(
cand) && lbIJPsiBasicSelect->accept(*jPsi) && lbILambda0BasicSelect->accept(*l0) &&
1702 lbIVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1703 fillHisto(
"DILambdab",
cand,
'f');
1704 fillHisto(
"DILbJPsi", *jPsi,
'c');
1705 fillHisto(
"DILbL0", *l0,
'c');
1706 if (flag_Dimuon25_Jpsi) {
1707 fillHisto(
"TILambdab",
cand,
'f');
1708 fillHisto(
"TILbJPsi", *jPsi,
'c');
1709 fillHisto(
"TILbL0", *l0,
'c');
1710 *ofMap[
"InclusiveLambdab"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1711 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1714 if (lbDBasicSelect->accept(
cand) && lbDJPsiBasicSelect->accept(*jPsi) && lbDLambda0BasicSelect->accept(*l0) &&
1716 lbDVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1717 fillHisto(
"DDLambdab",
cand,
'f');
1718 fillHisto(
"DDLbJPsi", *jPsi,
'c');
1719 fillHisto(
"DDLbL0", *l0,
'c');
1720 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1721 fillHisto(
"TDLambdab",
cand,
'f');
1722 fillHisto(
"TDLbJPsi", *jPsi,
'c');
1723 fillHisto(
"TDLbL0", *l0,
'c');
1724 *ofMap[
"DisplacedLambdab"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1725 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1736 bcCandsToken.get(
ev, bcCands);
1737 nbc = bcCands->size();
1740 for (ibc = 0; ibc < nbc; ++ibc) {
1741 LogTrace(
"DataDump") <<
"*********** Bc " << ibc <<
"/" << nbc <<
" ***********";
1744 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1745 if (jPsi ==
nullptr)
1748 if (!npJPsiBasicSelect->accept(*jPsi))
1750 if (!npJPsiDaughterSelect->accept(*jPsi))
1753 if (pptr ==
nullptr)
1756 if (bcIBasicSelect->accept(
cand) && bcIJPsiBasicSelect->accept(*jPsi) &&
1758 bcIJPsiVertexSelect->accept(*jPsi, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1759 bcIVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1760 (pptr->
pt() > bcIPiPtMin)) {
1761 fillHisto(
"DIBc",
cand,
'f');
1762 fillHisto(
"DIBcJPsi", *jPsi,
'c');
1763 if (flag_Dimuon25_Jpsi) {
1764 fillHisto(
"TIBc",
cand,
'f');
1765 fillHisto(
"TIBcJPsi", *jPsi,
'c');
1766 *ofMap[
"InclusiveBc"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1767 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1770 if (bcDBasicSelect->accept(
cand) && bcDJPsiBasicSelect->accept(*jPsi) &&
1772 bcDVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1773 bcDVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1774 (pptr->
pt() > bcDPiPtMin)) {
1775 fillHisto(
"DDBc",
cand,
'f');
1776 fillHisto(
"DDBcJPsi", *jPsi,
'c');
1777 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1778 fillHisto(
"TDBc",
cand,
'f');
1779 fillHisto(
"TDBcJPsi", *jPsi,
'c');
1780 *ofMap[
"DisplacedBc"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1781 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1792 x3872CandsToken.get(
ev, x3872Cands);
1793 nx3872 = x3872Cands->size();
1796 for (ix3872 = 0; ix3872 < nx3872; ++ix3872) {
1797 LogTrace(
"DataDump") <<
"*********** X3872 " << ix3872 <<
"/" << nx3872 <<
" ***********";
1800 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1801 if (jPsi ==
nullptr)
1804 if (!npJPsiBasicSelect->accept(*jPsi))
1806 if (!npJPsiDaughterSelect->accept(*jPsi))
1810 if (ppt1 ==
nullptr)
1812 if (ppt2 ==
nullptr)
1814 if (x3872IBasicSelect->accept(
cand) && x3872IJPsiBasicSelect->accept(*jPsi) &&
1816 x3872IJPsiVertexSelect->accept(*jPsi, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1817 x3872IVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1818 (ppt1->
pt() > x3872IPiPtMin) && (ppt2->
pt() > x3872IPiPtMin)) {
1819 fillHisto(
"DIX3872",
cand,
'f');
1820 fillHisto(
"DIX3872JPsi", *jPsi,
'c');
1821 if (flag_Dimuon25_Jpsi) {
1822 fillHisto(
"TIX3872",
cand,
'f');
1823 fillHisto(
"TIX3872JPsi", *jPsi,
'c');
1824 *ofMap[
"InclusiveX3872"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1825 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1828 if (x3872DBasicSelect->accept(
cand) && x3872DJPsiBasicSelect->accept(*jPsi) &&
1830 x3872DVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1831 x3872DVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1832 (ppt1->
pt() > x3872DPiPtMin) && (ppt2->
pt() > x3872DPiPtMin)) {
1833 fillHisto(
"DDX3872",
cand,
'f');
1834 fillHisto(
"DDX3872JPsi", *jPsi,
'c');
1835 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1836 fillHisto(
"TDX3872",
cand,
'f');
1837 fillHisto(
"TDX3872JPsi", *jPsi,
'c');
1838 *ofMap[
"DisplacedX3872"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1839 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1854 float mass = (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1);
1855 fillHisto(
"mass" +
name,
cand.mass());
1858 recoTime = -999999.0;
1859 recoErrT = -999999.0;
1861 const reco::Vertex* pvtx = BPHUserData::getByRef<reco::Vertex>(
cand,
"primaryVertex");
1862 if (pvtx ==
nullptr) {
1864 if (jPsi ==
nullptr)
1866 pvtx = BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex");
1870 if (pvtx !=
nullptr) {
1873 svtx = BPHUserData::get<reco::Vertex>(
cand,
"fitVertex");
1874 if (svtx ==
nullptr)
1875 svtx = BPHUserData::get<reco::Vertex>(
cand,
"vertex");
1877 if (svtx !=
nullptr) {
1881 BPHUserData::get<Vector3DBase<float, GlobalTag>>(
cand,
"fitMomentum");
1882 if (fmom !=
nullptr) {
1893 recoErrT = ctauErrPV2;
1894 fillHisto(
"ctau" +
name, ctauPV2);
1902 map<string, TH1F*>::iterator iter = histoMap.find(
name);
1903 map<string, TH1F*>::iterator iend = histoMap.end();
1906 iter->second->Fill(x);
1911 histoMap[
name] =
fs->make<TH1F>(
name.c_str(),
name.c_str(), nbin, hmin, hmax);
Analysis-level particle class.
BPHDaughterSelect(float ptMinLoose, float ptMinTight, float etaMaxLoose, float etaMaxTight, const BPHSoftMuonSelect *softMuonselector=nullptr)
#define CHK_TRIG(RESULTS, NAMES, INDEX, PATH)
static bool accept(const pat::CompositeCandidate &cand, float ptMinLoose, float ptMinTight, float etaMaxLoose, float etaMaxTight, const reco::Vertex *pv=nullptr, const BPHSoftMuonSelect *softMuonselector=nullptr)
~BPHFittedBasicSelect() override
static void dist2D(const reco::Vertex *pvtx, const reco::Vertex *svtx, float px, float py, float mass, double &ctauPV, double &ctauErrPV)
BPHHistoSpecificDecay(const edm::ParameterSet &ps)
BPHCompositeBasicSelect(float massMin, float massMax, float ptMin=-1.0, float etaMax=-1.0, float rapidityMax=-1.0)
Measurement1D distance(const GlobalPoint &vtx1Position, const GlobalError &vtx1PositionError, const GlobalPoint &vtx2Position, const GlobalError &vtx2PositionError) const override
static const T * getByRef(const pat::CompositeCandidate &cand, const string &name)
std::vector< std::string > Strings
virtual double pt() const =0
transverse momentum
#define DEFINE_FWK_MODULE(type)
virtual double mass() const =0
mass
static void dist2D(const reco::Vertex *pvtx, const reco::Vertex *svtx, float px, float py, double cosAlpha, float mass, double &ctauPV, double &ctauErrPV)
bool accept(const pat::CompositeCandidate &cand, const reco::Vertex *pv=nullptr) const override
static const double jPsiMass
static const double k0sMass
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
const std::string names[nVars_]
~BPHGenericVertexSelect() override
Error error() const
return SMatrix
void analyze(const edm::Event &ev, const edm::EventSetup &es) override
static const double kx0Mass
bool accept(const pat::CompositeCandidate &cand, const reco::Vertex *pv=nullptr) const override
void createHisto(const std::string &name, int nbin, float hmin, float hmax)
math::XYZPoint Point
point in the space
float ChiSquaredProbability(double chiSquared, double nrDOF)
const AlgebraicSymMatrix33 matrix() const
BPHFittedBasicSelect(float massMin, float massMax, float ptMin=-1.0, float etaMax=-1.0, float rapidityMax=-1.0)
void fillHisto(const std::string &name, const pat::CompositeCandidate &cand, char svType)
double x() const
x coordinate
double y() const
y coordinate
bool isGoodMuon(const reco::Muon &muon, SelectionType type, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
main GoodMuon wrapper call
~BPHCompositeBasicSelect() override
static const double lambda0Mass
static const double phiMass
static double cAlpha(const reco::Vertex *pvtx, const reco::Vertex *svtx, float px, float py)
static const char *const trigNames[]
bool accept(const pat::CompositeCandidate &cand, const reco::Vertex *pvtx) const override
BPHGenericVertexSelect(char vType, float probMin, float cosMin=-2.0, float sigMin=-1.0, char dMode='r')
void add(std::string const &label, ParameterSetDescription const &psetDescription)
~BPHDaughterSelect() override
double chi2() const
chi-squares
ROOT::Math::SVector< double, 3 > AlgebraicVector3
BPHSoftMuonSelect(int cutTrackerLayers=5, int cutPixelLayers=0, float maxDxy=0.3, float maxDz=20.0, bool goodMuon=true, bool highPurity=true)
static vector< const reco::Candidate * > get(const pat::CompositeCandidate &cand, float massMin, float massMax)
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
bool accept(const reco::Candidate &cand, const reco::Vertex *pv) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const BPHSoftMuonSelect * sms
Analysis-level muon class.
static double cAlpha(const reco::Vertex *pvtx, const reco::Vertex *svtx, const TVector3 &cmom)
#define SET_LABEL(NAME, PSET)
bool accept(const pat::CompositeCandidate &cand, const reco::Vertex *pv=nullptr) const override
virtual double eta() const =0
momentum pseudorapidity
~BPHHistoSpecificDecay() override