18 #include "Math/VectorUtil.h" 33 #define SET_LABEL(NAME, PSET) (NAME = PSET.getParameter<string>(#NAME)) 38 #define CAT3(A, B, C) A##B##C 39 #define STRING_NX(A) #A 40 #define STRING(A) STRING_NX(A) 41 #define CHK_TRIG(RESULTS, NAMES, INDEX, PATH) \ 42 if (NAMES[INDEX].find(STRING(CAT3(HLT_, PATH, _v))) == 0) { \ 43 flag_##PATH = RESULTS->accept(INDEX); \ 53 TVector3 disp(svtx->
x() - pvtx->
x(), svtx->
y() - pvtx->
y(), 0);
54 TVector3 cmom(
px,
py, 0);
55 return disp.Dot(cmom) / (disp.Perp() * cmom.Perp());
58 TVector3 disp(svtx->
x() - pvtx->
x(), svtx->
y() - pvtx->
y(), 0);
59 return disp.Dot(cmom) / (disp.Perp() * cmom.Perp());
68 dist2D(pvtx, svtx,
px,
py, cAlpha(pvtx, svtx,
px,
py),
mass, ctauPV, ctauErrPV);
79 TVector3 cmom(
px,
py, 0);
83 ctauPV = distXY.
value() * cosAlpha *
mass / cmom.Perp();
87 ctauErrPV =
sqrt(ROOT::Math::Similarity(vmom, vXYe)) *
mass / cmom.Perp2();
109 const objRef* ref =
cand.userData<objRef>(
name);
124 int n =
cand.numberOfDaughters();
125 vector<const reco::Candidate*>
v;
127 for (
i = 0;
i <
n; ++
i) {
140 int cutPixelLayers = 0,
143 bool goodMuon =
true,
144 bool highPurity =
true)
145 : cutTL(cutTrackerLayers), cutPL(cutPixelLayers), maxXY(
maxDxy),
maxZ(
maxDz), gM(goodMuon), hP(highPurity) {}
153 if (
p->innerTrack()->hitPattern().trackerLayersWithMeasurement() <= cutTL)
155 if (
p->innerTrack()->hitPattern().pixelLayersWithMeasurement() <= cutPL)
162 if (fabs(
p->innerTrack()->dxy(
pos)) >= maxXY)
164 if (fabs(
p->innerTrack()->dz(
pos)) >=
maxZ)
186 : pLMin(ptMinLoose), pTMin(ptMinTight), eLMax(etaMaxLoose), eTMax(etaMaxTight), sms(softMuonselector) {}
189 return accept(
cand, pLMin, pTMin, eLMax, eTMax,
pv, sms);
200 if (dptr0 ==
nullptr)
202 if (dptr1 ==
nullptr)
204 float pt0 = dptr0->
pt();
205 float pt1 = dptr1->
pt();
206 if ((pt0 < ptMinLoose) || (
pt1 < ptMinLoose))
208 if ((pt0 < ptMinTight) && (
pt1 < ptMinTight))
210 float eta0 = fabs(dptr0->
eta());
211 float eta1 = fabs(dptr1->
eta());
212 if ((etaMaxLoose > 0) && ((eta0 > etaMaxLoose) || (
eta1 > etaMaxLoose)))
214 if ((etaMaxTight > 0) && ((eta0 > etaMaxTight) && (
eta1 > etaMaxTight)))
216 if (softMuonselector !=
nullptr) {
217 const reco::Vertex* pvtx = BPHUserData::getByRef<reco::Vertex>(
cand,
"primaryVertex");
220 if (!softMuonselector->accept(*dptr0, pvtx))
222 if (!softMuonselector->accept(*dptr1, pvtx))
243 if (((mMin > 0) && (mMax < 0)) || ((mMin < 0) && (mMax > 0)) || ((mMin > 0) && (mMax > 0) && (mMin < mMax))) {
247 if ((mMax > 0) && (
mass > mMax))
273 if (!
cand.hasUserFloat(
"fitMass"))
275 float mass =
cand.userFloat(
"fitMass");
276 if (((mMin > 0) && (mMax < 0)) || ((mMin < 0) && (mMax > 0)) || ((mMin > 0) && (mMax > 0) && (mMin < mMax))) {
279 if ((mMax > 0) && (
mass > mMax))
298 float r =
log((
e + z) / (
e - z)) / 2;
327 svtx = BPHUserData::get<reco::Vertex>(
cand,
"vertex");
333 svtx = BPHUserData::get<reco::Vertex>(
cand,
"fitVertex");
336 BPHUserData::get<Vector3DBase<float, GlobalTag> >(
cand,
"fitMomentum");
342 if (!
cand.hasUserFloat(
"fitMass"))
355 if ((cMin > -1.0) || (sMin > 0)) {
373 dTest = ctauPV / ctauErrPV;
391 useTrig = (!
SET_LABEL(trigResultsLabel, ps).empty());
392 useOnia = (!
SET_LABEL(oniaCandsLabel, ps).empty());
393 useSd = (!
SET_LABEL(sdCandsLabel, ps).empty());
394 useSs = (!
SET_LABEL(ssCandsLabel, ps).empty());
395 useBu = (!
SET_LABEL(buCandsLabel, ps).empty());
396 useBd = (!
SET_LABEL(bdCandsLabel, ps).empty());
397 useBs = (!
SET_LABEL(bsCandsLabel, ps).empty());
400 useB0 = (!
SET_LABEL(b0CandsLabel, ps).empty());
401 useLb = (!
SET_LABEL(lbCandsLabel, ps).empty());
402 useBc = (!
SET_LABEL(bcCandsLabel, ps).empty());
403 useX3872 = (!
SET_LABEL(x3872CandsLabel, ps).empty());
405 consume<edm::TriggerResults>(trigResultsToken, trigResultsLabel);
407 consume<vector<pat::CompositeCandidate> >(oniaCandsToken, oniaCandsLabel);
409 consume<vector<pat::CompositeCandidate> >(sdCandsToken, sdCandsLabel);
411 consume<vector<pat::CompositeCandidate> >(ssCandsToken, ssCandsLabel);
413 consume<vector<pat::CompositeCandidate> >(buCandsToken, buCandsLabel);
415 consume<vector<pat::CompositeCandidate> >(bdCandsToken, bdCandsLabel);
417 consume<vector<pat::CompositeCandidate> >(bsCandsToken, bsCandsLabel);
419 consume<vector<pat::CompositeCandidate> >(k0CandsToken,
k0CandsLabel);
421 consume<vector<pat::CompositeCandidate> >(l0CandsToken,
l0CandsLabel);
423 consume<vector<pat::CompositeCandidate> >(b0CandsToken, b0CandsLabel);
425 consume<vector<pat::CompositeCandidate> >(lbCandsToken, lbCandsLabel);
427 consume<vector<pat::CompositeCandidate> >(bcCandsToken, bcCandsLabel);
429 consume<vector<pat::CompositeCandidate> >(x3872CandsToken, x3872CandsLabel);
435 double phiIMassMin = 0.85;
436 double phiIMassMax = 1.20;
437 double phiIPtMin = 18.0;
438 double phiIEtaMax = -1.0;
439 double phiIYMax = -1.0;
440 double phiBMassMin = 0.85;
441 double phiBMassMax = 1.20;
442 double phiBPtMin = 14.0;
443 double phiBEtaMax = -1.0;
444 double phiBYMax = 1.25;
445 double jPsiIMassMin = 2.80;
446 double jPsiIMassMax = 3.40;
447 double jPsiIPtMin = 25.0;
448 double jPsiIEtaMax = -1.0;
449 double jPsiIYMax = -1.0;
450 double jPsiBMassMin = 2.80;
451 double jPsiBMassMax = 3.40;
452 double jPsiBPtMin = 20.0;
453 double jPsiBEtaMax = -1.0;
454 double jPsiBYMax = 1.25;
455 double psi2IMassMin = 3.40;
456 double psi2IMassMax = 4.00;
457 double psi2IPtMin = 18.0;
458 double psi2IEtaMax = -1.0;
459 double psi2IYMax = -1.0;
460 double psi2BMassMin = 3.40;
461 double psi2BMassMax = 4.00;
462 double psi2BPtMin = 10.0;
463 double psi2BEtaMax = -1.0;
464 double psi2BYMax = 1.25;
465 double upsIMassMin = 8.50;
466 double upsIMassMax = 11.0;
467 double upsIPtMin = 15.0;
468 double upsIEtaMax = -1.0;
469 double upsIYMax = -1.0;
470 double upsBMassMin = 8.50;
471 double upsBMassMax = 11.0;
472 double upsBPtMin = 12.0;
475 double upsBEtaMax = -1.0;
476 double upsBYMax = 1.4;
478 double oniaProbMin = 0.005;
479 double oniaCosMin = -2.0;
480 double oniaSigMin = -1.0;
482 double oniaMuPtMinLoose = 2.0;
483 double oniaMuPtMinTight = -1.0;
484 double oniaMuEtaMaxLoose = -1.0;
485 double oniaMuEtaMaxTight = -1.0;
489 jPsiIBasicSelect =
new BPHCompositeBasicSelect(jPsiIMassMin, jPsiIMassMax, jPsiIPtMin, jPsiIEtaMax, jPsiIYMax);
490 jPsiBBasicSelect =
new BPHCompositeBasicSelect(jPsiBMassMin, jPsiBMassMax, jPsiBPtMin, jPsiBEtaMax, jPsiBYMax);
491 psi2IBasicSelect =
new BPHCompositeBasicSelect(psi2IMassMin, psi2IMassMax, psi2IPtMin, psi2IEtaMax, psi2IYMax);
492 psi2BBasicSelect =
new BPHCompositeBasicSelect(psi2BMassMin, psi2BMassMax, psi2BPtMin, psi2BEtaMax, psi2BYMax);
497 new BPHDaughterSelect(oniaMuPtMinLoose, oniaMuPtMinTight, oniaMuEtaMaxLoose, oniaMuEtaMaxTight, sms);
501 double npJPsiPtMin = 8.0;
502 double npJPsiEtaMax = -1.0;
503 double npJPsiYMax = -1.0;
504 double npMuPtMinLoose = 4.0;
505 double npMuPtMinTight = -1.0;
506 double npMuEtaMaxLoose = 2.2;
507 double npMuEtaMaxTight = -1.0;
509 npJPsiBasicSelect =
new BPHCompositeBasicSelect(npJPsiMassMin, npJPsiMassMax, npJPsiPtMin, npJPsiEtaMax, npJPsiYMax);
510 npJPsiDaughterSelect =
new BPHDaughterSelect(npMuPtMinLoose, npMuPtMinTight, npMuEtaMaxLoose, npMuEtaMaxTight, sms);
514 double buIMassMin = 0.0;
515 double buIMassMax = 999999.0;
516 double buIPtMin = 27.0;
517 double buIEtaMax = -1.0;
518 double buIYMax = -1.0;
521 double buIJPsiPtMin = 25.0;
522 double buIJPsiEtaMax = -1.0;
523 double buIJPsiYMax = -1.0;
524 double buIProbMin = 0.15;
525 double buICosMin = -2.0;
526 double buISigMin = -1.0;
535 buIBasicSelect =
new BPHFittedBasicSelect(buIMassMin, buIMassMax, buIPtMin, buIEtaMax, buIYMax);
539 buIJPsiDaughterSelect =
nullptr;
545 double buDMassMin = 0.0;
546 double buDMassMax = 999999.0;
547 double buDPtMin = 10.0;
548 double buDEtaMax = -1.0;
549 double buDYMax = -1.0;
552 double buDJPsiPtMin = 8.0;
553 double buDJPsiEtaMax = -1.0;
554 double buDJPsiYMax = -1.0;
555 double buDProbMin = 0.10;
556 double buDCosMin = 0.99;
557 double buDSigMin = 3.0;
566 buDBasicSelect =
new BPHFittedBasicSelect(buDMassMin, buDMassMax, buDPtMin, buDEtaMax, buDYMax);
570 buDJPsiDaughterSelect =
nullptr;
578 double bdIMassMin = 0.0;
579 double bdIMassMax = 999999.0;
580 double bdIPtMin = 27.0;
581 double bdIEtaMax = -1.0;
582 double bdIYMax = -1.0;
585 double bdIJPsiPtMin = 25.0;
586 double bdIJPsiEtaMax = -1.0;
587 double bdIJPsiYMax = -1.0;
590 double bdIKx0PtMin = -1.0;
591 double bdIKx0EtaMax = -1.0;
592 double bdIKx0YMax = -1.0;
593 double bdIProbMin = 0.15;
594 double bdICosMin = -2.0;
595 double bdISigMin = -1.0;
602 bdIBasicSelect =
new BPHFittedBasicSelect(bdIMassMin, bdIMassMax, bdIPtMin, bdIEtaMax, bdIYMax);
605 bdIKx0BasicSelect =
new BPHCompositeBasicSelect(bdIKx0MassMin, bdIKx0MassMax, bdIKx0PtMin, bdIKx0EtaMax, bdIKx0YMax);
607 bdIJPsiDaughterSelect =
nullptr;
613 double bdDMassMin = 0.0;
614 double bdDMassMax = 999999.0;
615 double bdDPtMin = 10.0;
616 double bdDEtaMax = -1.0;
617 double bdDYMax = -1.0;
620 double bdDJPsiPtMin = 8.0;
621 double bdDJPsiEtaMax = -1.0;
622 double bdDJPsiYMax = -1.0;
625 double bdDKx0PtMin = -1.0;
626 double bdDKx0EtaMax = -1.0;
627 double bdDKx0YMax = -1.0;
628 double bdDProbMin = 0.10;
629 double bdDCosMin = 0.99;
630 double bdDSigMin = 3.0;
637 bdDBasicSelect =
new BPHFittedBasicSelect(bdDMassMin, bdDMassMax, bdDPtMin, bdDEtaMax, bdDYMax);
640 bdDKx0BasicSelect =
new BPHCompositeBasicSelect(bdDKx0MassMin, bdDKx0MassMax, bdDKx0PtMin, bdDKx0EtaMax, bdDKx0YMax);
642 bdDJPsiDaughterSelect =
nullptr;
650 double bsIMassMin = 0.0;
651 double bsIMassMax = 999999.0;
652 double bsIPtMin = 27.0;
653 double bsIEtaMax = -1.0;
654 double bsIYMax = -1.0;
657 double bsIJPsiPtMin = 25.0;
658 double bsIJPsiEtaMax = -1.0;
659 double bsIJPsiYMax = -1.0;
662 double bsIPhiPtMin = -1.0;
663 double bsIPhiEtaMax = -1.0;
664 double bsIPhiYMax = -1.0;
665 double bsIProbMin = 0.15;
666 double bsICosMin = -2.0;
667 double bsISigMin = -1.0;
674 bsIBasicSelect =
new BPHFittedBasicSelect(bsIMassMin, bsIMassMax, bsIPtMin, bsIEtaMax, bsIYMax);
677 bsIPhiBasicSelect =
new BPHCompositeBasicSelect(bsIPhiMassMin, bsIPhiMassMax, bsIPhiPtMin, bsIPhiEtaMax, bsIPhiYMax);
679 bsIJPsiDaughterSelect =
nullptr;
685 double bsDMassMin = 0.0;
686 double bsDMassMax = 999999.0;
687 double bsDPtMin = 10.0;
688 double bsDEtaMax = -1.0;
689 double bsDYMax = -1.0;
692 double bsDJPsiPtMin = 8.0;
693 double bsDJPsiEtaMax = -1.0;
694 double bsDJPsiYMax = -1.0;
697 double bsDPhiPtMin = -1.0;
698 double bsDPhiEtaMax = -1.0;
699 double bsDPhiYMax = -1.0;
700 double bsDProbMin = 0.10;
701 double bsDCosMin = 0.99;
702 double bsDSigMin = 3.0;
709 bsDBasicSelect =
new BPHFittedBasicSelect(bsDMassMin, bsDMassMax, bsDPtMin, bsDEtaMax, bsDYMax);
712 bsDPhiBasicSelect =
new BPHCompositeBasicSelect(bsDPhiMassMin, bsDPhiMassMax, bsDPhiPtMin, bsDPhiEtaMax, bsDPhiYMax);
714 bsDJPsiDaughterSelect =
nullptr;
722 double b0IMassMin = 0.0;
723 double b0IMassMax = 999999.0;
724 double b0IPtMin = 27.0;
725 double b0IEtaMax = -1.0;
726 double b0IYMax = -1.0;
729 double b0IJPsiPtMin = 25.0;
730 double b0IJPsiEtaMax = -1.0;
731 double b0IJPsiYMax = -1.0;
734 double b0IK0sPtMin = -1.0;
735 double b0IK0sEtaMax = -1.0;
736 double b0IK0sYMax = -1.0;
737 double b0IProbMin = 0.15;
738 double b0ICosMin = -2.0;
739 double b0ISigMin = -1.0;
746 b0IBasicSelect =
new BPHFittedBasicSelect(b0IMassMin, b0IMassMax, b0IPtMin, b0IEtaMax, b0IYMax);
749 b0IK0sBasicSelect =
new BPHFittedBasicSelect(b0IK0sMassMin, b0IK0sMassMax, b0IK0sPtMin, b0IK0sEtaMax, b0IK0sYMax);
751 b0IJPsiDaughterSelect =
nullptr;
757 double b0DMassMin = 0.0;
758 double b0DMassMax = 999999.0;
759 double b0DPtMin = 10.0;
760 double b0DEtaMax = -1.0;
761 double b0DYMax = -1.0;
764 double b0DJPsiPtMin = 8.0;
765 double b0DJPsiEtaMax = -1.0;
766 double b0DJPsiYMax = -1.0;
769 double b0DK0sPtMin = -1.0;
770 double b0DK0sEtaMax = -1.0;
771 double b0DK0sYMax = -1.0;
772 double b0DProbMin = 0.10;
773 double b0DCosMin = 0.99;
774 double b0DSigMin = 3.0;
781 b0DBasicSelect =
new BPHFittedBasicSelect(b0DMassMin, b0DMassMax, b0DPtMin, b0DEtaMax, b0DYMax);
784 b0DK0sBasicSelect =
new BPHFittedBasicSelect(b0DK0sMassMin, b0DK0sMassMax, b0DK0sPtMin, b0DK0sEtaMax, b0DK0sYMax);
786 b0DJPsiDaughterSelect =
nullptr;
794 double lbIMassMin = 0.0;
795 double lbIMassMax = 999999.0;
796 double lbIPtMin = 27.0;
797 double lbIEtaMax = -1.0;
798 double lbIYMax = -1.0;
801 double lbIJPsiPtMin = 25.0;
802 double lbIJPsiEtaMax = -1.0;
803 double lbIJPsiYMax = -1.0;
806 double lbILambda0PtMin = -1.0;
807 double lbILambda0EtaMax = -1.0;
808 double lbILambda0YMax = -1.0;
809 double lbIProbMin = 0.10;
810 double lbICosMin = -2.0;
811 double lbISigMin = -1.0;
818 lbIBasicSelect =
new BPHFittedBasicSelect(lbIMassMin, lbIMassMax, lbIPtMin, lbIEtaMax, lbIYMax);
821 lbILambda0BasicSelect =
822 new BPHFittedBasicSelect(lbILambda0MassMin, lbILambda0MassMax, lbILambda0PtMin, lbILambda0EtaMax, lbILambda0YMax);
824 lbIJPsiDaughterSelect =
nullptr;
830 double lbDMassMin = 0.0;
831 double lbDMassMax = 999999.0;
832 double lbDPtMin = 10.0;
833 double lbDEtaMax = -1.0;
834 double lbDYMax = -1.0;
837 double lbDJPsiPtMin = 8.0;
838 double lbDJPsiEtaMax = -1.0;
839 double lbDJPsiYMax = -1.0;
842 double lbDLambda0PtMin = -1.0;
843 double lbDLambda0EtaMax = -1.0;
844 double lbDLambda0YMax = -1.0;
845 double lbDProbMin = 0.10;
846 double lbDCosMin = 0.99;
847 double lbDSigMin = 3.0;
854 lbDBasicSelect =
new BPHFittedBasicSelect(lbDMassMin, lbDMassMax, lbDPtMin, lbDEtaMax, lbDYMax);
857 lbDLambda0BasicSelect =
858 new BPHFittedBasicSelect(lbDLambda0MassMin, lbDLambda0MassMax, lbDLambda0PtMin, lbDLambda0EtaMax, lbDLambda0YMax);
860 lbDJPsiDaughterSelect =
nullptr;
868 double bcIMassMin = 0.0;
869 double bcIMassMax = 999999.0;
870 double bcIPtMin = 27.0;
871 double bcIEtaMax = -1.0;
872 double bcIYMax = -1.0;
875 double bcIJPsiPtMin = 25.0;
876 double bcIJPsiEtaMax = -1.0;
877 double bcIJPsiYMax = -1.0;
878 double bcIJPsiProbMin = 0.005;
879 double bcIProbMin = 0.10;
880 double bcICosMin = -2.0;
881 double bcISigMin = -1.0;
882 double bcIDistMin = 0.01;
891 bcIBasicSelect =
new BPHFittedBasicSelect(bcIMassMin, bcIMassMax, bcIPtMin, bcIEtaMax, bcIYMax);
896 bcIJPsiDaughterSelect =
nullptr;
902 double bcDMassMin = 0.0;
903 double bcDMassMax = 999999.0;
904 double bcDPtMin = 8.0;
905 double bcDEtaMax = -1.0;
906 double bcDYMax = -1.0;
909 double bcDJPsiPtMin = 7.0;
910 double bcDJPsiEtaMax = -1.0;
911 double bcDJPsiYMax = -1.0;
912 double bcDJPsiProbMin = 0.005;
913 double bcDProbMin = 0.10;
914 double bcDCosMin = 0.99;
915 double bcDSigMin = 3.0;
925 bcDBasicSelect =
new BPHFittedBasicSelect(bcDMassMin, bcDMassMax, bcDPtMin, bcDEtaMax, bcDYMax);
930 bcDJPsiDaughterSelect =
nullptr;
938 double x3872IMassMin = 0.0;
939 double x3872IMassMax = 999999.0;
940 double x3872IPtMin = 27.0;
941 double x3872IEtaMax = -1.0;
942 double x3872IYMax = -1.0;
945 double x3872IJPsiPtMin = 25.0;
946 double x3872IJPsiEtaMax = -1.0;
947 double x3872IJPsiYMax = -1.0;
948 double x3872IJPsiProbMin = 0.10;
949 double x3872IProbMin = 0.10;
950 double x3872ICosMin = -2.0;
951 double x3872ISigMin = -1.0;
952 double x3872IDistMin = 0.01;
959 x3872JPsiDcaMax = 0.5;
962 x3872IBasicSelect =
new BPHFittedBasicSelect(x3872IMassMin, x3872IMassMax, x3872IPtMin, x3872IEtaMax, x3872IYMax);
964 x3872IJPsiMassMin, x3872IJPsiMassMax, x3872IJPsiPtMin, x3872IJPsiEtaMax, x3872IJPsiYMax);
966 x3872IVertexSelect =
new BPHGenericVertexSelect(
'f', x3872IProbMin, x3872ICosMin, x3872ISigMin, x3872IDistMin);
967 x3872IJPsiDaughterSelect =
nullptr;
974 double x3872DMassMin = 0.0;
975 double x3872DMassMax = 999999.0;
976 double x3872DPtMin = 8.0;
977 double x3872DEtaMax = -1.0;
978 double x3872DYMax = -1.0;
981 double x3872DJPsiPtMin = 7.0;
982 double x3872DJPsiEtaMax = -1.0;
983 double x3872DJPsiYMax = -1.0;
984 double x3872DJPsiProbMin = 0.10;
985 double x3872DProbMin = 0.10;
986 double x3872DCosMin = 0.99;
987 double x3872DSigMin = 3.0;
996 x3872DBasicSelect =
new BPHFittedBasicSelect(x3872DMassMin, x3872DMassMax, x3872DPtMin, x3872DEtaMax, x3872DYMax);
998 x3872DJPsiMassMin, x3872DJPsiMassMax, x3872DJPsiPtMin, x3872DJPsiEtaMax, x3872DJPsiYMax);
1001 x3872DJPsiDaughterSelect =
nullptr;
1010 delete phiIBasicSelect;
1011 delete phiBBasicSelect;
1012 delete jPsiIBasicSelect;
1013 delete jPsiBBasicSelect;
1014 delete psi2IBasicSelect;
1015 delete psi2BBasicSelect;
1016 delete upsIBasicSelect;
1017 delete upsBBasicSelect;
1018 delete oniaVertexSelect;
1019 delete oniaDaughterSelect;
1021 delete npJPsiBasicSelect;
1022 delete npJPsiDaughterSelect;
1024 delete buIBasicSelect;
1025 delete buIJPsiBasicSelect;
1026 delete buIVertexSelect;
1027 delete buIJPsiDaughterSelect;
1028 delete buDBasicSelect;
1029 delete buDJPsiBasicSelect;
1030 delete buDVertexSelect;
1031 delete buDJPsiDaughterSelect;
1033 delete bdIBasicSelect;
1034 delete bdIJPsiBasicSelect;
1035 delete bdIKx0BasicSelect;
1036 delete bdIVertexSelect;
1037 delete bdIJPsiDaughterSelect;
1038 delete bdDBasicSelect;
1039 delete bdDJPsiBasicSelect;
1040 delete bdDKx0BasicSelect;
1041 delete bdDVertexSelect;
1042 delete bdDJPsiDaughterSelect;
1044 delete bsIBasicSelect;
1045 delete bsIJPsiBasicSelect;
1046 delete bsIPhiBasicSelect;
1047 delete bsIVertexSelect;
1048 delete bsIJPsiDaughterSelect;
1049 delete bsDBasicSelect;
1050 delete bsDJPsiBasicSelect;
1051 delete bsDPhiBasicSelect;
1052 delete bsDVertexSelect;
1053 delete bsDJPsiDaughterSelect;
1055 delete b0IBasicSelect;
1056 delete b0IJPsiBasicSelect;
1057 delete b0IK0sBasicSelect;
1058 delete b0IVertexSelect;
1059 delete b0IJPsiDaughterSelect;
1060 delete b0DBasicSelect;
1061 delete b0DJPsiBasicSelect;
1062 delete b0DK0sBasicSelect;
1063 delete b0DVertexSelect;
1064 delete b0DJPsiDaughterSelect;
1066 delete lbIBasicSelect;
1067 delete lbIJPsiBasicSelect;
1068 delete lbILambda0BasicSelect;
1069 delete lbIVertexSelect;
1070 delete lbIJPsiDaughterSelect;
1071 delete lbDBasicSelect;
1072 delete lbDJPsiBasicSelect;
1073 delete lbDLambda0BasicSelect;
1074 delete lbDVertexSelect;
1075 delete lbDJPsiDaughterSelect;
1077 delete bcIBasicSelect;
1078 delete bcIJPsiBasicSelect;
1079 delete bcIJPsiVertexSelect;
1080 delete bcIVertexSelect;
1081 delete bcIJPsiDaughterSelect;
1082 delete bcDBasicSelect;
1083 delete bcDJPsiBasicSelect;
1084 delete bcDJPsiVertexSelect;
1085 delete bcDVertexSelect;
1086 delete bcDJPsiDaughterSelect;
1088 delete x3872IBasicSelect;
1089 delete x3872IJPsiBasicSelect;
1090 delete x3872IJPsiVertexSelect;
1091 delete x3872IVertexSelect;
1092 delete x3872IJPsiDaughterSelect;
1093 delete x3872DBasicSelect;
1094 delete x3872DJPsiBasicSelect;
1095 delete x3872DJPsiVertexSelect;
1096 delete x3872DVertexSelect;
1097 delete x3872DJPsiDaughterSelect;
1102 desc.add<
string>(
"trigResultsLabel",
"");
1103 desc.add<
string>(
"oniaCandsLabel",
"");
1104 desc.add<
string>(
"sdCandsLabel",
"");
1105 desc.add<
string>(
"ssCandsLabel",
"");
1106 desc.add<
string>(
"buCandsLabel",
"");
1107 desc.add<
string>(
"bdCandsLabel",
"");
1108 desc.add<
string>(
"bsCandsLabel",
"");
1109 desc.add<
string>(
"k0CandsLabel",
"");
1110 desc.add<
string>(
"l0CandsLabel",
"");
1111 desc.add<
string>(
"b0CandsLabel",
"");
1112 desc.add<
string>(
"lbCandsLabel",
"");
1113 desc.add<
string>(
"bcCandsLabel",
"");
1114 desc.add<
string>(
"x3872CandsLabel",
"");
1115 descriptions.
add(
"process.bphHistoSpecificDecay",
desc);
1120 createHisto(
"massDIPhi", 50, 0.90, 1.15);
1121 createHisto(
"massTIPhi", 50, 0.90, 1.15);
1122 createHisto(
"massDBPhi", 50, 0.90, 1.15);
1123 createHisto(
"massTBPhi", 50, 0.90, 1.15);
1124 createHisto(
"massDIJPsi", 35, 2.95, 3.30);
1125 createHisto(
"massTIJPsi", 35, 2.95, 3.30);
1126 createHisto(
"massDBJPsi", 35, 2.95, 3.30);
1127 createHisto(
"massTBJPsi", 35, 2.95, 3.30);
1128 createHisto(
"massDIPsi2", 60, 3.40, 4.00);
1129 createHisto(
"massTIPsi2", 60, 3.40, 4.00);
1130 createHisto(
"massDBPsi2", 60, 3.40, 4.00);
1131 createHisto(
"massTBPsi2", 60, 3.40, 4.00);
1132 createHisto(
"massDIUps123", 115, 8.70, 11.0);
1133 createHisto(
"massTIUps123", 115, 8.70, 11.0);
1134 createHisto(
"massDBUps123", 115, 8.70, 11.0);
1135 createHisto(
"massTBUps123", 115, 8.70, 11.0);
1136 createHisto(
"massDIBu", 100, 5.00, 6.00);
1137 createHisto(
"massTIBu", 100, 5.00, 6.00);
1138 createHisto(
"massDDBu", 100, 5.00, 6.00);
1139 createHisto(
"massTDBu", 100, 5.00, 6.00);
1140 createHisto(
"massDIBd", 100, 5.00, 6.00);
1141 createHisto(
"massTIBd", 100, 5.00, 6.00);
1142 createHisto(
"massDDBd", 100, 5.00, 6.00);
1143 createHisto(
"massTDBd", 100, 5.00, 6.00);
1144 createHisto(
"massDIBs", 100, 5.00, 6.00);
1145 createHisto(
"massTIBs", 100, 5.00, 6.00);
1146 createHisto(
"massDDBs", 100, 5.00, 6.00);
1147 createHisto(
"massTDBs", 100, 5.00, 6.00);
1148 createHisto(
"massDIBc", 100, 6.00, 7.00);
1149 createHisto(
"massTIBc", 100, 6.00, 7.00);
1150 createHisto(
"massDDBc", 100, 6.00, 7.00);
1151 createHisto(
"massTDBc", 100, 6.00, 7.00);
1152 createHisto(
"massDIX3872", 40, 3.60, 4.00);
1153 createHisto(
"massTIX3872", 40, 3.60, 4.00);
1154 createHisto(
"massDDX3872", 40, 3.60, 4.00);
1155 createHisto(
"massTDX3872", 40, 3.60, 4.00);
1156 createHisto(
"mfitDIBu", 100, 5.00, 6.00);
1157 createHisto(
"mfitTIBu", 100, 5.00, 6.00);
1158 createHisto(
"mfitDDBu", 100, 5.00, 6.00);
1159 createHisto(
"mfitTDBu", 100, 5.00, 6.00);
1160 createHisto(
"mfitDIBd", 100, 5.00, 6.00);
1161 createHisto(
"mfitTIBd", 100, 5.00, 6.00);
1162 createHisto(
"mfitDDBd", 100, 5.00, 6.00);
1163 createHisto(
"mfitTDBd", 100, 5.00, 6.00);
1164 createHisto(
"mfitDIBs", 100, 5.00, 6.00);
1165 createHisto(
"mfitTIBs", 100, 5.00, 6.00);
1166 createHisto(
"mfitDDBs", 100, 5.00, 6.00);
1167 createHisto(
"mfitTDBs", 100, 5.00, 6.00);
1168 createHisto(
"mfitDIBc", 100, 6.00, 7.00);
1169 createHisto(
"mfitTIBc", 100, 6.00, 7.00);
1170 createHisto(
"mfitDDBc", 100, 6.00, 7.00);
1171 createHisto(
"mfitTDBc", 100, 6.00, 7.00);
1172 createHisto(
"mfitDIX3872", 40, 3.60, 4.00);
1173 createHisto(
"mfitTIX3872", 40, 3.60, 4.00);
1174 createHisto(
"mfitDDX3872", 40, 3.60, 4.00);
1175 createHisto(
"mfitTDX3872", 40, 3.60, 4.00);
1176 createHisto(
"massDIBuJPsi", 35, 2.95, 3.30);
1177 createHisto(
"massTIBuJPsi", 35, 2.95, 3.30);
1178 createHisto(
"massDDBuJPsi", 35, 2.95, 3.30);
1179 createHisto(
"massTDBuJPsi", 35, 2.95, 3.30);
1180 createHisto(
"massDIBdJPsi", 35, 2.95, 3.30);
1181 createHisto(
"massTIBdJPsi", 35, 2.95, 3.30);
1182 createHisto(
"massDDBdJPsi", 35, 2.95, 3.30);
1183 createHisto(
"massTDBdJPsi", 35, 2.95, 3.30);
1184 createHisto(
"massDIBdKx0", 50, 0.80, 1.05);
1185 createHisto(
"massTIBdKx0", 50, 0.80, 1.05);
1186 createHisto(
"massDDBdKx0", 50, 0.80, 1.05);
1187 createHisto(
"massTDBdKx0", 50, 0.80, 1.05);
1188 createHisto(
"massDIBsJPsi", 35, 2.95, 3.30);
1189 createHisto(
"massTIBsJPsi", 35, 2.95, 3.30);
1190 createHisto(
"massDDBsJPsi", 35, 2.95, 3.30);
1191 createHisto(
"massTDBsJPsi", 35, 2.95, 3.30);
1192 createHisto(
"massDIBsPhi", 50, 1.01, 1.03);
1193 createHisto(
"massTIBsPhi", 50, 1.01, 1.03);
1194 createHisto(
"massDDBsPhi", 50, 1.01, 1.03);
1195 createHisto(
"massTDBsPhi", 50, 1.01, 1.03);
1196 createHisto(
"massDIBcJPsi", 35, 2.95, 3.30);
1197 createHisto(
"massTIBcJPsi", 35, 2.95, 3.30);
1198 createHisto(
"massDDBcJPsi", 35, 2.95, 3.30);
1199 createHisto(
"massTDBcJPsi", 35, 2.95, 3.30);
1200 createHisto(
"massDIX3JPsi", 35, 2.95, 3.30);
1201 createHisto(
"massTIX3JPsi", 35, 2.95, 3.30);
1202 createHisto(
"massDDX3JPsi", 35, 2.95, 3.30);
1203 createHisto(
"massTDX3JPsi", 35, 2.95, 3.30);
1204 createHisto(
"massDK0s", 50, 0.40, 0.60);
1205 createHisto(
"mfitDK0s", 50, 0.40, 0.60);
1206 createHisto(
"massDLambda0", 60, 1.00, 1.30);
1207 createHisto(
"mfitDLambda0", 60, 1.00, 1.30);
1208 createHisto(
"massDIB0", 50, 5.00, 6.00);
1209 createHisto(
"massTIB0", 50, 5.00, 6.00);
1210 createHisto(
"massDDB0", 50, 5.00, 6.00);
1211 createHisto(
"massTDB0", 50, 5.00, 6.00);
1212 createHisto(
"mfitDIB0", 50, 5.00, 6.00);
1213 createHisto(
"mfitTIB0", 50, 5.00, 6.00);
1214 createHisto(
"mfitDDB0", 50, 5.00, 6.00);
1215 createHisto(
"mfitTDB0", 50, 5.00, 6.00);
1216 createHisto(
"massDIB0JPsi", 35, 2.95, 3.30);
1217 createHisto(
"massTIB0JPsi", 35, 2.95, 3.30);
1218 createHisto(
"massDDB0JPsi", 35, 2.95, 3.30);
1219 createHisto(
"massTDB0JPsi", 35, 2.95, 3.30);
1220 createHisto(
"massDIB0K0s", 50, 0.40, 0.60);
1221 createHisto(
"massTIB0K0s", 50, 0.40, 0.60);
1222 createHisto(
"massDDB0K0s", 50, 0.40, 0.60);
1223 createHisto(
"massTDB0K0s", 50, 0.40, 0.60);
1224 createHisto(
"mfitDIB0K0s", 50, 0.40, 0.60);
1225 createHisto(
"mfitTIB0K0s", 50, 0.40, 0.60);
1226 createHisto(
"mfitDDB0K0s", 50, 0.40, 0.60);
1227 createHisto(
"mfitTDB0K0s", 50, 0.40, 0.60);
1228 createHisto(
"massDILambdab", 25, 5.00, 6.00);
1229 createHisto(
"massTILambdab", 25, 5.00, 6.00);
1230 createHisto(
"massDDLambdab", 25, 5.00, 6.00);
1231 createHisto(
"massTDLambdab", 25, 5.00, 6.00);
1232 createHisto(
"mfitDILambdab", 25, 5.00, 6.00);
1233 createHisto(
"mfitTILambdab", 25, 5.00, 6.00);
1234 createHisto(
"mfitDDLambdab", 25, 5.00, 6.00);
1235 createHisto(
"mfitTDLambdab", 25, 5.00, 6.00);
1236 createHisto(
"massDILbJPsi", 35, 2.95, 3.30);
1237 createHisto(
"massTILbJPsi", 35, 2.95, 3.30);
1238 createHisto(
"massDDLbJPsi", 35, 2.95, 3.30);
1239 createHisto(
"massTDLbJPsi", 35, 2.95, 3.30);
1240 createHisto(
"massDILbL0", 60, 1.00, 1.30);
1241 createHisto(
"massTILbL0", 60, 1.00, 1.30);
1242 createHisto(
"massDDLbL0", 60, 1.00, 1.30);
1243 createHisto(
"massTDLbL0", 60, 1.00, 1.30);
1244 createHisto(
"mfitDILbL0", 60, 1.00, 1.30);
1245 createHisto(
"mfitTILbL0", 60, 1.00, 1.30);
1246 createHisto(
"mfitDDLbL0", 60, 1.00, 1.30);
1247 createHisto(
"mfitTDLbL0", 60, 1.00, 1.30);
1249 createHisto(
"massFull", 200, 2.00, 12.0);
1251 createHisto(
"ctauDIJPsi", 60, -0.05, 0.25);
1252 createHisto(
"ctauTIJPsi", 60, -0.05, 0.25);
1253 createHisto(
"ctauDBJPsi", 60, -0.05, 0.25);
1254 createHisto(
"ctauTBJPsi", 60, -0.05, 0.25);
1255 createHisto(
"ctauDIBu", 60, -0.05, 0.25);
1256 createHisto(
"ctauTIBu", 60, -0.05, 0.25);
1257 createHisto(
"ctauDDBu", 60, -0.05, 0.25);
1258 createHisto(
"ctauTDBu", 60, -0.05, 0.25);
1259 createHisto(
"ctauDIBd", 60, -0.05, 0.25);
1260 createHisto(
"ctauTIBd", 60, -0.05, 0.25);
1261 createHisto(
"ctauDDBd", 60, -0.05, 0.25);
1262 createHisto(
"ctauTDBd", 60, -0.05, 0.25);
1263 createHisto(
"ctauDIBs", 60, -0.05, 0.25);
1264 createHisto(
"ctauTIBs", 60, -0.05, 0.25);
1265 createHisto(
"ctauDDBs", 60, -0.05, 0.25);
1266 createHisto(
"ctauTDBs", 60, -0.05, 0.25);
1267 createHisto(
"ctauDIB0", 60, -0.05, 0.25);
1268 createHisto(
"ctauTIB0", 60, -0.05, 0.25);
1269 createHisto(
"ctauDDB0", 60, -0.05, 0.25);
1270 createHisto(
"ctauTDB0", 60, -0.05, 0.25);
1271 createHisto(
"ctauDILambdab", 60, -0.05, 0.25);
1272 createHisto(
"ctauTILambdab", 60, -0.05, 0.25);
1273 createHisto(
"ctauDDLambdab", 60, -0.05, 0.25);
1274 createHisto(
"ctauTDLambdab", 60, -0.05, 0.25);
1277 tree =
fs->make<TTree>(
"BPHReco",
"BPHReco");
1278 b_runNumber =
tree->Branch(
"runNumber", &
runNumber,
"runNumber/i");
1279 b_lumiSection =
tree->Branch(
"lumiSection", &lumiSection,
"lumiSection/i");
1280 b_eventNumber =
tree->Branch(
"eventNumber", &eventNumber,
"eventNumber/i");
1281 b_recoName =
tree->Branch(
"recoName", &recoName, 8192, 99);
1282 b_recoMass =
tree->Branch(
"recoMass", &recoMass,
"recoMass/F");
1283 b_recoTime =
tree->Branch(
"recoTime", &recoTime,
"recoTime/F");
1284 b_recoErrT =
tree->Branch(
"recoErrT", &recoErrT,
"recoErrT/F");
1290 static map<string, ofstream*> ofMap;
1291 if (ofMap.empty()) {
1292 ofMap[
"BarPhi"] =
nullptr;
1293 ofMap[
"IncJPsi"] =
nullptr;
1294 ofMap[
"BarJPsi"] =
nullptr;
1295 ofMap[
"IncPsi2"] =
nullptr;
1296 ofMap[
"BarPsi2"] =
nullptr;
1297 ofMap[
"BarUpsilon123"] =
nullptr;
1298 ofMap[
"InclusiveBu"] =
nullptr;
1299 ofMap[
"DisplacedBu"] =
nullptr;
1300 ofMap[
"InclusiveBd"] =
nullptr;
1301 ofMap[
"DisplacedBd"] =
nullptr;
1302 ofMap[
"InclusiveBs"] =
nullptr;
1303 ofMap[
"DisplacedBs"] =
nullptr;
1304 ofMap[
"K0s"] =
nullptr;
1305 ofMap[
"Lambda0"] =
nullptr;
1306 ofMap[
"InclusiveB0"] =
nullptr;
1307 ofMap[
"DisplacedB0"] =
nullptr;
1308 ofMap[
"InclusiveLambdab"] =
nullptr;
1309 ofMap[
"DisplacedLambdab"] =
nullptr;
1310 ofMap[
"InclusiveBc"] =
nullptr;
1311 ofMap[
"DisplacedBc"] =
nullptr;
1312 ofMap[
"InclusiveX3872"] =
nullptr;
1313 ofMap[
"DisplacedX3872"] =
nullptr;
1314 map<string, ofstream*>::iterator iter = ofMap.begin();
1315 map<string, ofstream*>::iterator iend = ofMap.end();
1316 string name =
"list";
1317 while (iter != iend) {
1318 iter->second =
new ofstream(
name + iter->first);
1325 lumiSection =
ev.id().luminosityBlock();
1326 eventNumber =
ev.id().event();
1337 trigResultsToken.get(
ev, trigResults);
1342 bool flag_Dimuon25_Jpsi =
false;
1343 bool flag_Dimuon20_Jpsi_Barrel_Seagulls =
false;
1344 bool flag_Dimuon14_Phi_Barrel_Seagulls =
false;
1345 bool flag_Dimuon18_PsiPrime =
false;
1346 bool flag_Dimuon10_PsiPrime_Barrel_Seagulls =
false;
1347 bool flag_Dimuon12_Upsilon_eta1p5 =
false;
1348 bool flag_Dimuon12_Upsilon_y1p4 =
false;
1349 bool flag_DoubleMu4_JpsiTrk_Displaced =
false;
1353 int nObj =
names.size();
1354 for (iObj = 0; iObj < nObj; ++iObj) {
1357 CHK_TRIG(trigResults,
names, iObj, Dimuon20_Jpsi_Barrel_Seagulls)
1358 CHK_TRIG(trigResults,
names, iObj, Dimuon14_Phi_Barrel_Seagulls)
1360 CHK_TRIG(trigResults,
names, iObj, Dimuon10_PsiPrime_Barrel_Seagulls)
1363 CHK_TRIG(trigResults,
names, iObj, DoubleMu4_JpsiTrk_Displaced)
1373 oniaCandsToken.get(
ev, oniaCands);
1374 nqo = oniaCands->size();
1377 for (iqo = 0; iqo < nqo; ++iqo) {
1378 LogTrace(
"DataDump") <<
"*********** quarkonium " << iqo <<
"/" << nqo <<
" ***********";
1380 if (!oniaVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(
cand,
"primaryVertex")))
1382 if (!oniaDaughterSelect->accept(
cand))
1384 fillHisto(
"Full",
cand,
'c');
1385 if (phiBBasicSelect->accept(
cand)) {
1386 fillHisto(
"DBPhi",
cand,
'c');
1387 if (flag_Dimuon14_Phi_Barrel_Seagulls)
1388 fillHisto(
"TBPhi",
cand,
'c');
1389 if (flag_Dimuon14_Phi_Barrel_Seagulls)
1390 *ofMap[
"BarPhi"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1391 <<
cand.mass() << endl;
1393 if (jPsiIBasicSelect->accept(
cand)) {
1394 fillHisto(
"DIJPsi",
cand,
'c');
1395 if (flag_Dimuon25_Jpsi)
1396 fillHisto(
"TIJPsi",
cand,
'c');
1397 if (flag_Dimuon25_Jpsi)
1398 *ofMap[
"IncJPsi"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1399 <<
cand.mass() << endl;
1401 if (jPsiBBasicSelect->accept(
cand)) {
1402 fillHisto(
"DBJPsi",
cand,
'c');
1403 if (flag_Dimuon20_Jpsi_Barrel_Seagulls)
1404 fillHisto(
"TBJPsi",
cand,
'c');
1405 if (flag_Dimuon20_Jpsi_Barrel_Seagulls)
1406 *ofMap[
"BarJPsi"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1407 <<
cand.mass() << endl;
1409 if (psi2IBasicSelect->accept(
cand)) {
1410 fillHisto(
"DIPsi2",
cand,
'c');
1411 if (flag_Dimuon18_PsiPrime)
1412 fillHisto(
"TIPsi2",
cand,
'c');
1413 if (flag_Dimuon18_PsiPrime)
1414 *ofMap[
"IncPsi2"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1415 <<
cand.mass() << endl;
1417 if (psi2BBasicSelect->accept(
cand)) {
1418 fillHisto(
"DBPsi2",
cand,
'c');
1419 if (flag_Dimuon10_PsiPrime_Barrel_Seagulls)
1420 fillHisto(
"TBPsi2",
cand,
'c');
1421 if (flag_Dimuon10_PsiPrime_Barrel_Seagulls)
1422 *ofMap[
"BarPsi2"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1423 <<
cand.mass() << endl;
1425 if (upsBBasicSelect->accept(
cand)) {
1426 fillHisto(
"DBUps123",
cand,
'c');
1427 if (flag_Dimuon12_Upsilon_eta1p5 || flag_Dimuon12_Upsilon_y1p4)
1428 fillHisto(
"TBUps123",
cand,
'c');
1429 if (flag_Dimuon12_Upsilon_eta1p5 || flag_Dimuon12_Upsilon_y1p4)
1430 *ofMap[
"BarUpsilon123"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1431 <<
cand.mass() << endl;
1441 buCandsToken.get(
ev, buCands);
1442 nbu = buCands->size();
1445 for (ibu = 0; ibu < nbu; ++ibu) {
1446 LogTrace(
"DataDump") <<
"*********** Bu " << ibu <<
"/" << nbu <<
" ***********";
1449 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1450 if (jPsi ==
nullptr)
1452 if (!npJPsiBasicSelect->accept(*jPsi))
1454 if (!npJPsiDaughterSelect->accept(*jPsi))
1457 if (kptr ==
nullptr)
1459 if (buIBasicSelect->accept(
cand) && buIJPsiBasicSelect->accept(*jPsi) &&
1462 buIVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1463 (kptr->
pt() > buIKPtMin)) {
1464 fillHisto(
"DIBu",
cand,
'f');
1465 fillHisto(
"DIBuJPsi", *jPsi,
'c');
1466 if (flag_Dimuon25_Jpsi) {
1467 fillHisto(
"TIBu",
cand,
'f');
1468 fillHisto(
"TIBuJPsi", *jPsi,
'c');
1469 *ofMap[
"InclusiveBu"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1470 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1473 if (buDBasicSelect->accept(
cand) && buDJPsiBasicSelect->accept(*jPsi) &&
1476 buDVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1477 (kptr->
pt() > buDKPtMin)) {
1478 fillHisto(
"DDBu",
cand,
'f');
1479 fillHisto(
"DDBuJPsi", *jPsi,
'c');
1480 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1481 fillHisto(
"TDBu",
cand,
'f');
1482 fillHisto(
"TDBuJPsi", *jPsi,
'c');
1483 *ofMap[
"DisplacedBu"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1484 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1495 bdCandsToken.get(
ev, bdCands);
1496 nbd = bdCands->size();
1499 for (ibd = 0; ibd < nbd; ++ibd) {
1500 LogTrace(
"DataDump") <<
"*********** Bd " << ibd <<
"/" << nbd <<
" ***********";
1503 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1504 if (jPsi ==
nullptr)
1506 if (!npJPsiBasicSelect->accept(*jPsi))
1508 if (!npJPsiDaughterSelect->accept(*jPsi))
1511 LogTrace(
"DataDump") <<
"Kx0: " << kx0;
1514 if (bdIBasicSelect->accept(
cand) && bdIJPsiBasicSelect->accept(*jPsi) && bdIKx0BasicSelect->accept(*kx0) &&
1517 bdIVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1518 fillHisto(
"DIBd",
cand,
'f');
1519 fillHisto(
"DIBdJPsi", *jPsi,
'c');
1520 fillHisto(
"DIBdKx0", *kx0,
'c');
1521 if (flag_Dimuon25_Jpsi) {
1522 fillHisto(
"TIBd",
cand,
'f');
1523 fillHisto(
"TIBdJPsi", *jPsi,
'c');
1524 fillHisto(
"TIBdKx0", *kx0,
'c');
1525 *ofMap[
"InclusiveBd"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1526 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1529 if (bdDBasicSelect->accept(
cand) && bdDJPsiBasicSelect->accept(*jPsi) && bdDKx0BasicSelect->accept(*kx0) &&
1532 bdDVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1533 fillHisto(
"DDBd",
cand,
'f');
1534 fillHisto(
"DDBdJPsi", *jPsi,
'c');
1535 fillHisto(
"DDBdKx0", *kx0,
'c');
1536 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1537 fillHisto(
"TDBd",
cand,
'f');
1538 fillHisto(
"TDBdJPsi", *jPsi,
'c');
1539 fillHisto(
"TDBdKx0", *kx0,
'c');
1540 *ofMap[
"DisplacedBd"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1541 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1552 bsCandsToken.get(
ev, bsCands);
1553 nbs = bsCands->size();
1556 for (ibs = 0; ibs < nbs; ++ibs) {
1557 LogTrace(
"DataDump") <<
"*********** Bs " << ibs <<
"/" << nbs <<
" ***********";
1560 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1561 if (jPsi ==
nullptr)
1563 if (!npJPsiBasicSelect->accept(*jPsi))
1565 if (!npJPsiDaughterSelect->accept(*jPsi))
1568 LogTrace(
"DataDump") <<
"Phi: " << phi;
1571 if (bsIBasicSelect->accept(
cand) && bsIJPsiBasicSelect->accept(*jPsi) && bsIPhiBasicSelect->accept(*phi) &&
1574 bsIVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1575 fillHisto(
"DIBs",
cand,
'f');
1576 fillHisto(
"DIBsJPsi", *jPsi,
'c');
1577 fillHisto(
"DIBsPhi", *phi,
'c');
1578 if (flag_Dimuon25_Jpsi) {
1579 fillHisto(
"TIBs",
cand,
'f');
1580 fillHisto(
"TIBsJPsi", *jPsi,
'c');
1581 fillHisto(
"TIBsPhi", *phi,
'c');
1582 *ofMap[
"InclusiveBs"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1583 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1586 if (bsDBasicSelect->accept(
cand) && bsDJPsiBasicSelect->accept(*jPsi) && bsDPhiBasicSelect->accept(*phi) &&
1589 bsDVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1590 fillHisto(
"DDBs",
cand,
'f');
1591 fillHisto(
"DDBsJPsi", *jPsi,
'c');
1592 fillHisto(
"DDBsPhi", *phi,
'c');
1593 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1594 fillHisto(
"TDBs",
cand,
'f');
1595 fillHisto(
"TDBsJPsi", *jPsi,
'c');
1596 fillHisto(
"TDBsPhi", *phi,
'c');
1597 *ofMap[
"DisplacedBs"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1598 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1609 k0CandsToken.get(
ev, k0Cands);
1610 nk0 = k0Cands->size();
1613 for (ik0 = 0; ik0 < nk0; ++ik0) {
1614 LogTrace(
"DataDump") <<
"*********** K0 " << ik0 <<
"/" << nk0 <<
" ***********";
1616 fillHisto(
"DK0s",
cand,
'f');
1617 *ofMap[
"K0s"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1618 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1627 l0CandsToken.get(
ev, l0Cands);
1628 nl0 = l0Cands->size();
1631 for (il0 = 0; il0 < nl0; ++il0) {
1632 LogTrace(
"DataDump") <<
"*********** Lambda0 " << il0 <<
"/" << nl0 <<
" ***********";
1634 fillHisto(
"DLambda0",
cand,
'f');
1635 *ofMap[
"Lambda0"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1636 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1645 b0CandsToken.get(
ev, b0Cands);
1646 nb0 = b0Cands->size();
1649 for (ib0 = 0; ib0 < nb0; ++ib0) {
1650 LogTrace(
"DataDump") <<
"*********** B0 " << ib0 <<
"/" << nb0 <<
" ***********";
1653 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1654 if (jPsi ==
nullptr)
1656 if (!npJPsiBasicSelect->accept(*jPsi))
1658 if (!npJPsiDaughterSelect->accept(*jPsi))
1661 LogTrace(
"DataDump") <<
"K0s: " << k0s;
1664 if (b0IBasicSelect->accept(
cand) && b0IJPsiBasicSelect->accept(*jPsi) && b0IK0sBasicSelect->accept(*k0s) &&
1667 b0IVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1668 fillHisto(
"DIB0",
cand,
'f');
1669 fillHisto(
"DIB0JPsi", *jPsi,
'c');
1670 fillHisto(
"DIB0K0s", *k0s,
'c');
1671 if (flag_Dimuon25_Jpsi) {
1672 fillHisto(
"TIB0",
cand,
'f');
1673 fillHisto(
"TIB0JPsi", *jPsi,
'c');
1674 fillHisto(
"TIB0K0s", *k0s,
'c');
1675 *ofMap[
"InclusiveB0"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1676 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1679 if (b0DBasicSelect->accept(
cand) && b0DJPsiBasicSelect->accept(*jPsi) && b0DK0sBasicSelect->accept(*k0s) &&
1682 b0DVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1683 fillHisto(
"DDB0",
cand,
'f');
1684 fillHisto(
"DDB0JPsi", *jPsi,
'c');
1685 fillHisto(
"DDB0K0s", *k0s,
'c');
1686 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1687 fillHisto(
"TDB0",
cand,
'f');
1688 fillHisto(
"TDB0JPsi", *jPsi,
'c');
1689 fillHisto(
"TDB0K0s", *k0s,
'c');
1690 *ofMap[
"DisplacedB0"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1691 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1702 lbCandsToken.get(
ev, lbCands);
1703 nlb = lbCands->size();
1706 for (ilb = 0; ilb < nlb; ++ilb) {
1707 LogTrace(
"DataDump") <<
"*********** Lambdab " << ilb <<
"/" << nlb <<
" ***********";
1710 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1711 if (jPsi ==
nullptr)
1713 if (!npJPsiBasicSelect->accept(*jPsi))
1715 if (!npJPsiDaughterSelect->accept(*jPsi))
1718 LogTrace(
"DataDump") <<
"Lambda0: " << l0;
1721 if (lbIBasicSelect->accept(
cand) && lbIJPsiBasicSelect->accept(*jPsi) && lbILambda0BasicSelect->accept(*l0) &&
1724 lbIVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1725 fillHisto(
"DILambdab",
cand,
'f');
1726 fillHisto(
"DILbJPsi", *jPsi,
'c');
1727 fillHisto(
"DILbL0", *l0,
'c');
1728 if (flag_Dimuon25_Jpsi) {
1729 fillHisto(
"TILambdab",
cand,
'f');
1730 fillHisto(
"TILbJPsi", *jPsi,
'c');
1731 fillHisto(
"TILbL0", *l0,
'c');
1732 *ofMap[
"InclusiveLambdab"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1733 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1736 if (lbDBasicSelect->accept(
cand) && lbDJPsiBasicSelect->accept(*jPsi) && lbDLambda0BasicSelect->accept(*l0) &&
1739 lbDVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex"))) {
1740 fillHisto(
"DDLambdab",
cand,
'f');
1741 fillHisto(
"DDLbJPsi", *jPsi,
'c');
1742 fillHisto(
"DDLbL0", *l0,
'c');
1743 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1744 fillHisto(
"TDLambdab",
cand,
'f');
1745 fillHisto(
"TDLbJPsi", *jPsi,
'c');
1746 fillHisto(
"TDLbL0", *l0,
'c');
1747 *ofMap[
"DisplacedLambdab"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1748 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1759 bcCandsToken.get(
ev, bcCands);
1760 nbc = bcCands->size();
1763 for (ibc = 0; ibc < nbc; ++ibc) {
1764 LogTrace(
"DataDump") <<
"*********** Bc " << ibc <<
"/" << nbc <<
" ***********";
1767 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1768 if (jPsi ==
nullptr)
1772 if (!npJPsiBasicSelect->accept(*jPsi))
1774 if (!npJPsiDaughterSelect->accept(*jPsi))
1777 if (pptr ==
nullptr)
1780 if (bcIBasicSelect->accept(
cand) && bcIJPsiBasicSelect->accept(*jPsi) &&
1783 bcIJPsiVertexSelect->accept(*jPsi, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1784 bcIVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1785 (pptr->
pt() > bcIPiPtMin)) {
1786 fillHisto(
"DIBc",
cand,
'f');
1787 fillHisto(
"DIBcJPsi", *jPsi,
'c');
1788 if (flag_Dimuon25_Jpsi) {
1789 fillHisto(
"TIBc",
cand,
'f');
1790 fillHisto(
"TIBcJPsi", *jPsi,
'c');
1791 *ofMap[
"InclusiveBc"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1792 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1795 if (bcDBasicSelect->accept(
cand) && bcDJPsiBasicSelect->accept(*jPsi) &&
1798 bcDVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1799 bcDVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1800 (pptr->
pt() > bcDPiPtMin)) {
1801 fillHisto(
"DDBc",
cand,
'f');
1802 fillHisto(
"DDBcJPsi", *jPsi,
'c');
1803 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1804 fillHisto(
"TDBc",
cand,
'f');
1805 fillHisto(
"TDBcJPsi", *jPsi,
'c');
1806 *ofMap[
"DisplacedBc"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1807 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1818 x3872CandsToken.get(
ev, x3872Cands);
1819 nx3872 = x3872Cands->size();
1822 for (ix3872 = 0; ix3872 < nx3872; ++ix3872) {
1823 LogTrace(
"DataDump") <<
"*********** X3872 " << ix3872 <<
"/" << nx3872 <<
" ***********";
1826 LogTrace(
"DataDump") <<
"JPsi: " << jPsi;
1827 if (jPsi ==
nullptr)
1831 if (!npJPsiBasicSelect->accept(*jPsi))
1833 if (!npJPsiDaughterSelect->accept(*jPsi))
1837 if (ppt1 ==
nullptr)
1839 if (ppt2 ==
nullptr)
1841 if (x3872IBasicSelect->accept(
cand) && x3872IJPsiBasicSelect->accept(*jPsi) &&
1844 x3872IJPsiVertexSelect->accept(*jPsi, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1845 x3872IVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1846 (ppt1->
pt() > x3872IPiPtMin) && (ppt2->
pt() > x3872IPiPtMin)) {
1847 fillHisto(
"DIX3872",
cand,
'f');
1848 fillHisto(
"DIX3872JPsi", *jPsi,
'c');
1849 if (flag_Dimuon25_Jpsi) {
1850 fillHisto(
"TIX3872",
cand,
'f');
1851 fillHisto(
"TIX3872JPsi", *jPsi,
'c');
1852 *ofMap[
"InclusiveX3872"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1853 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1856 if (x3872DBasicSelect->accept(
cand) && x3872DJPsiBasicSelect->accept(*jPsi) &&
1859 x3872DVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1860 x3872DVertexSelect->accept(
cand, BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex")) &&
1861 (ppt1->
pt() > x3872DPiPtMin) && (ppt2->
pt() > x3872DPiPtMin)) {
1862 fillHisto(
"DDX3872",
cand,
'f');
1863 fillHisto(
"DDX3872JPsi", *jPsi,
'c');
1864 if (flag_DoubleMu4_JpsiTrk_Displaced) {
1865 fillHisto(
"TDX3872",
cand,
'f');
1866 fillHisto(
"TDX3872JPsi", *jPsi,
'c');
1867 *ofMap[
"DisplacedX3872"] <<
ev.id().run() <<
' ' <<
ev.id().luminosityBlock() <<
' ' <<
ev.id().event() <<
' ' 1868 << (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1) << endl;
1880 float mass = (
cand.hasUserFloat(
"fitMass") ?
cand.userFloat(
"fitMass") : -1);
1881 fillHisto(
"mass" +
name,
cand.mass());
1884 recoTime = -999999.0;
1885 recoErrT = -999999.0;
1887 const reco::Vertex* pvtx = BPHUserData::getByRef<reco::Vertex>(
cand,
"primaryVertex");
1888 if (pvtx ==
nullptr) {
1890 if (jPsi ==
nullptr)
1892 pvtx = BPHUserData::getByRef<reco::Vertex>(*jPsi,
"primaryVertex");
1895 if (pvtx !=
nullptr) {
1898 svtx = BPHUserData::get<reco::Vertex>(
cand,
"fitVertex");
1899 if (svtx ==
nullptr)
1900 svtx = BPHUserData::get<reco::Vertex>(
cand,
"vertex");
1901 if (svtx !=
nullptr) {
1905 BPHUserData::get<Vector3DBase<float, GlobalTag> >(
cand,
"fitMomentum");
1906 if (fmom !=
nullptr) {
1917 recoErrT = ctauErrPV2;
1918 fillHisto(
"ctau" +
name, ctauPV2);
1926 map<string, TH1F*>::iterator iter = histoMap.find(
name);
1927 map<string, TH1F*>::iterator iend = histoMap.end();
1930 iter->second->Fill(x);
1935 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)
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
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_]
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)
#define DEFINE_FWK_MODULE(type)
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
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)
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