@@ -309,7 +309,7 @@ struct checkMCPairTemplate {
309309 HistogramRegistry fRegistry {" output" , {}, OutputObjHandlingPolicy::AnalysisObject, false , false };
310310 static constexpr std::string_view event_cut_types[2 ] = {" before/" , " after/" };
311311 static constexpr std::string_view pair_sign_types[3 ] = {" uls/" , " lspp/" , " lsmm/" };
312- static constexpr std::string_view dilepton_source_types[22 ] = {
312+ static constexpr std::string_view dilepton_source_types[23 ] = {
313313 " sm/Photon/" , // 0
314314 " sm/PromptPi0/" , // 1
315315 " sm/NonPromptPi0/" , // 2
@@ -332,6 +332,7 @@ struct checkMCPairTemplate {
332332 " bbbar/b2c2l_b2l_diffb/" , // 19
333333 " bbbar/b2cc2l_b2c2l/" , // 20
334334 " bbbar/b2cc2l_b2cc2l/" , // 21
335+ " bbbar/b2cc2ll/" , // 22
335336 }; // unordered_map is better, but cannot be constexpr.
336337 static constexpr std::string_view unfolding_dilepton_source_types[3 ] = {" sm/" , " ccbar/" , " bbbar/" };
337338
@@ -568,6 +569,7 @@ struct checkMCPairTemplate {
568569 fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2c2l_b2l_diffb/" ); // LS
569570 fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2l_b2c2l/" );
570571 fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2l_b2cc2l/" );
572+ fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2ll/" );
571573
572574 if (cfgFillSeparateCharmHadronPairs) {
573575 for (int im = 0 ; im < nm_c; im++) {
@@ -641,6 +643,12 @@ struct checkMCPairTemplate {
641643 fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2l_b2cc2l/Hc_ctau50_ctau130/" );
642644 fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2l_b2cc2l/Hc_ctau50_ctau300/" );
643645 fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2l_b2cc2l/Hc_ctau130_ctau300/" );
646+ fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2ll/Hc_ctau50/" );
647+ fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2ll/Hc_ctau130/" );
648+ fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2ll/Hc_ctau300/" );
649+ fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2ll/Hc_ctau50_ctau130/" );
650+ fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2ll/Hc_ctau50_ctau300/" );
651+ fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2ll/Hc_ctau130_ctau300/" );
644652 }
645653
646654 // for correlated bkg due to mis-identified hadrons, and true combinatorial bkg
@@ -1908,6 +1916,56 @@ struct checkMCPairTemplate {
19081916 fRegistry .fill (HIST (" Pair/bbbar/b2cc2l_b2cc2l/Hc_ctau130_ctau300/lsmm/hs" ), mass, pt, pair_dca, weight);
19091917 }
19101918 }
1919+ } else if (sourceId == 22 ) { // (Hb->Hc+Hc->l) (Hb->Hc+Hc->l) combinations categorized by Hc lifetime
1920+ if ((std::abs (pdgMotherC1) == kLambdaCPlus || std::abs (pdgMotherC1) == kXiC0 ) && (std::abs (pdgMotherC2) == kLambdaCPlus || std::abs (pdgMotherC2) == kXiC0 )) {
1921+ if (sign1 * sign2 < 0 ) { // ULS
1922+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau50/uls/hs" ), mass, pt, pair_dca, weight);
1923+ } else if (sign1 > 0 && sign2 > 0 ) { // LS++
1924+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau50/lspp/hs" ), mass, pt, pair_dca, weight);
1925+ } else if (sign1 < 0 && sign2 < 0 ) { // LS--
1926+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau50/lsmm/hs" ), mass, pt, pair_dca, weight);
1927+ }
1928+ } else if ((std::abs (pdgMotherC1) == kD0 || std::abs (pdgMotherC1) == kDS || std::abs (pdgMotherC1) == kXiCPlus ) && (std::abs (pdgMotherC2) == kD0 || std::abs (pdgMotherC2) == kDS || std::abs (pdgMotherC2) == kXiCPlus )) {
1929+ if (sign1 * sign2 < 0 ) { // ULS
1930+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau130/uls/hs" ), mass, pt, pair_dca, weight);
1931+ } else if (sign1 > 0 && sign2 > 0 ) { // LS++
1932+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau130/lspp/hs" ), mass, pt, pair_dca, weight);
1933+ } else if (sign1 < 0 && sign2 < 0 ) { // LS--
1934+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau130/lsmm/hs" ), mass, pt, pair_dca, weight);
1935+ }
1936+ } else if (std::abs (pdgMotherC1) == kDPlus && std::abs (pdgMotherC2) == kDPlus ) {
1937+ if (sign1 * sign2 < 0 ) { // ULS
1938+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau300/uls/hs" ), mass, pt, pair_dca, weight);
1939+ } else if (sign1 > 0 && sign2 > 0 ) { // LS++
1940+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau300/lspp/hs" ), mass, pt, pair_dca, weight);
1941+ } else if (sign1 < 0 && sign2 < 0 ) { // LS--
1942+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau300/lsmm/hs" ), mass, pt, pair_dca, weight);
1943+ }
1944+ } else if (((std::abs (pdgMotherC1) == kLambdaCPlus || std::abs (pdgMotherC1) == kXiC0 ) && (std::abs (pdgMotherC2) == kD0 || std::abs (pdgMotherC2) == kDS || std::abs (pdgMotherC2) == kXiCPlus )) || ((std::abs (pdgMotherC2) == kLambdaCPlus || std::abs (pdgMotherC2) == kXiC0 ) && (std::abs (pdgMotherC1) == kD0 || std::abs (pdgMotherC1) == kDS || std::abs (pdgMotherC1) == kXiCPlus ))) {
1945+ if (sign1 * sign2 < 0 ) { // ULS
1946+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau50_ctau130/uls/hs" ), mass, pt, pair_dca, weight);
1947+ } else if (sign1 > 0 && sign2 > 0 ) { // LS++
1948+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau50_ctau130/lspp/hs" ), mass, pt, pair_dca, weight);
1949+ } else if (sign1 < 0 && sign2 < 0 ) { // LS--
1950+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau50_ctau130/lsmm/hs" ), mass, pt, pair_dca, weight);
1951+ }
1952+ } else if (((std::abs (pdgMotherC1) == kLambdaCPlus || std::abs (pdgMotherC1) == kXiC0 ) && (std::abs (pdgMotherC2) == kDPlus )) || ((std::abs (pdgMotherC2) == kLambdaCPlus || std::abs (pdgMotherC2) == kXiC0 ) && (std::abs (pdgMotherC1) == kDPlus ))) {
1953+ if (sign1 * sign2 < 0 ) { // ULS
1954+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau50_ctau300/uls/hs" ), mass, pt, pair_dca, weight);
1955+ } else if (sign1 > 0 && sign2 > 0 ) { // LS++
1956+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau50_ctau300/lspp/hs" ), mass, pt, pair_dca, weight);
1957+ } else if (sign1 < 0 && sign2 < 0 ) { // LS--
1958+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau50_ctau300/lsmm/hs" ), mass, pt, pair_dca, weight);
1959+ }
1960+ } else if (((std::abs (pdgMotherC1) == kD0 || std::abs (pdgMotherC1) == kDS || std::abs (pdgMotherC1) == kXiCPlus ) && (std::abs (pdgMotherC2) == kDPlus )) || ((std::abs (pdgMotherC2) == kD0 || std::abs (pdgMotherC2) == kDS || std::abs (pdgMotherC2) == kXiCPlus ) && (std::abs (pdgMotherC1) == kDPlus ))) {
1961+ if (sign1 * sign2 < 0 ) { // ULS
1962+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau130_ctau300/uls/hs" ), mass, pt, pair_dca, weight);
1963+ } else if (sign1 > 0 && sign2 > 0 ) { // LS++
1964+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau130_ctau300/lspp/hs" ), mass, pt, pair_dca, weight);
1965+ } else if (sign1 < 0 && sign2 < 0 ) { // LS--
1966+ fRegistry .fill (HIST (" Pair/bbbar/b2cc2ll/Hc_ctau130_ctau300/lsmm/hs" ), mass, pt, pair_dca, weight);
1967+ }
1968+ }
19111969 }
19121970 }
19131971 }
@@ -2266,6 +2324,9 @@ struct checkMCPairTemplate {
22662324 case static_cast <int >(EM_HFeeType::kBCCe_BCCe ):
22672325 fillRecHistograms<21 >(t1.sign (), t2.sign (), mp1.pdgCode (), mp2.pdgCode (), v12.M (), v12.Pt (), pair_dca, weight); // b2cc2l_b2cc2l
22682326 break ;
2327+ case static_cast <int >(EM_HFeeType::kBCCee ):
2328+ fillRecHistograms<22 >(t1.sign (), t2.sign (), mp1.pdgCode (), mp2.pdgCode (), v12.M (), v12.Pt (), pair_dca, weight); // b2cc2ll
2329+ break ;
22692330 default :
22702331 break ;
22712332 }
0 commit comments