@@ -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[20 ] = {
312+ static constexpr std::string_view dilepton_source_types[22 ] = {
313313 " sm/Photon/" , // 0
314314 " sm/PromptPi0/" , // 1
315315 " sm/NonPromptPi0/" , // 2
@@ -329,7 +329,9 @@ struct checkMCPairTemplate {
329329 " bbbar/b2l_b2l/" , // 16
330330 " bbbar/b2c2l_b2c2l/" , // 17
331331 " bbbar/b2c2l_b2l_sameb/" , // 18
332- " bbbar/b2c2l_b2l_diffb/" // 19
332+ " bbbar/b2c2l_b2l_diffb/" , // 19
333+ " bbbar/b2cc2l_b2c2l/" , // 20
334+ " bbbar/b2cc2l_b2cc2l/" , // 21
333335 }; // unordered_map is better, but cannot be constexpr.
334336 static constexpr std::string_view unfolding_dilepton_source_types[3 ] = {" sm/" , " ccbar/" , " bbbar/" };
335337
@@ -424,6 +426,8 @@ struct checkMCPairTemplate {
424426 fRegistry .addClone (" Generated/ccbar/c2l_c2l/" , " Generated/bbbar/b2c2l_b2c2l/" );
425427 fRegistry .addClone (" Generated/ccbar/c2l_c2l/" , " Generated/bbbar/b2c2l_b2l_sameb/" );
426428 fRegistry .addClone (" Generated/ccbar/c2l_c2l/" , " Generated/bbbar/b2c2l_b2l_diffb/" ); // LS
429+ fRegistry .addClone (" Generated/ccbar/c2l_c2l/" , " Generated/bbbar/b2cc2l_b2c2l/" );
430+ fRegistry .addClone (" Generated/ccbar/c2l_c2l/" , " Generated/bbbar/b2cc2l_b2cc2l/" );
427431
428432 // for charmed hadrons // create 28 combinations
429433 static constexpr std::string_view charmed_mesons[] = {" Dplus" , " D0" , " Dsplus" }; // 411, 421, 431
@@ -562,6 +566,8 @@ struct checkMCPairTemplate {
562566 fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2c2l_b2c2l/" );
563567 fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2c2l_b2l_sameb/" );
564568 fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2c2l_b2l_diffb/" ); // LS
569+ fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2l_b2c2l/" );
570+ fRegistry .addClone (" Pair/ccbar/c2l_c2l/" , " Pair/bbbar/b2cc2l_b2cc2l/" );
565571
566572 if (cfgFillSeparateCharmHadronPairs) {
567573 for (int im = 0 ; im < nm_c; im++) {
@@ -1949,10 +1955,10 @@ struct checkMCPairTemplate {
19491955 // o2::math_utils::bringToPMPi(phiPol);
19501956 // float quadmom = (3.f * std::pow(cos_thetaPol, 2) - 1.f) / 2.f;
19511957
1952- if ((FindCommonMotherFrom2ProngsWithoutPDG (t1mc, t2mc) > 0 || IsHF (t1mc, t2mc, mcparticles) > 0 ) && is_pair_from_same_mcevent) { // for bkg study
1953- if (std::abs (t1mc.pdgCode ()) != pdg_lepton || std::abs (t2mc.pdgCode ()) != pdg_lepton) { // hh or lh correlated bkg
1954- if (std::abs (t1mc.pdgCode ()) != pdg_lepton && std::abs (t2mc.pdgCode ()) != pdg_lepton) { // hh correlated bkg
1955- if (t1.sign () * t2.sign () < 0 ) { // ULS
1958+ if ((FindCommonMotherFrom2ProngsWithoutPDG (t1mc, t2mc) > 0 || IsHF< true > (t1mc, t2mc, mcparticles) > 0 ) && is_pair_from_same_mcevent) { // for bkg study
1959+ if (std::abs (t1mc.pdgCode ()) != pdg_lepton || std::abs (t2mc.pdgCode ()) != pdg_lepton) { // hh or lh correlated bkg
1960+ if (std::abs (t1mc.pdgCode ()) != pdg_lepton && std::abs (t2mc.pdgCode ()) != pdg_lepton) { // hh correlated bkg
1961+ if (t1.sign () * t2.sign () < 0 ) { // ULS
19561962 fRegistry .fill (HIST (" Pair/corr_bkg_hh/uls/hs" ), v12.M (), v12.Pt (), pair_dca, weight);
19571963 } else if (t1.sign () > 0 && t2.sign () > 0 ) { // LS++
19581964 fRegistry .fill (HIST (" Pair/corr_bkg_hh/lspp/hs" ), v12.M (), v12.Pt (), pair_dca, weight);
@@ -1990,7 +1996,7 @@ struct checkMCPairTemplate {
19901996 return false ;
19911997 }
19921998 int mother_id = std::max ({FindSMULS (t1mc, t2mc, mcparticles), FindSMULS (t2mc, t1mc, mcparticles), FindSMLSPP (t1mc, t2mc, mcparticles), FindSMLSMM (t1mc, t2mc, mcparticles)});
1993- int hfee_type = IsHF (t1mc, t2mc, mcparticles);
1999+ int hfee_type = IsHF< true > (t1mc, t2mc, mcparticles);
19942000 if (mother_id < 0 && hfee_type < 0 ) {
19952001 return false ;
19962002 }
@@ -2159,7 +2165,7 @@ struct checkMCPairTemplate {
21592165 }
21602166
21612167 int mother_id = std::max ({FindSMULS (t1, t2, mcparticles), FindSMULS (t2, t1, mcparticles), FindSMLSPP (t1, t2, mcparticles), FindSMLSMM (t1, t2, mcparticles)});
2162- int hfee_type = IsHF (t1, t2, mcparticles);
2168+ int hfee_type = IsHF< true > (t1, t2, mcparticles);
21632169 if (mother_id < 0 && hfee_type < 0 ) {
21642170 return false ;
21652171 }
@@ -2326,6 +2332,12 @@ struct checkMCPairTemplate {
23262332 case static_cast <int >(EM_HFeeType::kBCe_Be_DiffB ):
23272333 fillGenHistograms<19 >(sign1, sign2, mp1.pdgCode (), mp2.pdgCode (), v12.M (), v12.Pt (), weight); // b2c2l_b2l_diffb
23282334 break ;
2335+ case static_cast <int >(EM_HFeeType::kBCCe_BCe ):
2336+ fillGenHistograms<20 >(sign1, sign2, mp1.pdgCode (), mp2.pdgCode (), v12.M (), v12.Pt (), weight); // b2cc2l_b2c2l
2337+ break ;
2338+ case static_cast <int >(EM_HFeeType::kBCCe_BCCe ):
2339+ fillGenHistograms<21 >(sign1, sign2, mp1.pdgCode (), mp2.pdgCode (), v12.M (), v12.Pt (), weight); // b2cc2l_b2cc2l
2340+ break ;
23292341 default :
23302342 break ;
23312343 }
@@ -2791,7 +2803,7 @@ struct checkMCPairTemplate {
27912803 return false ;
27922804 }
27932805 int mother_id = std::max ({FindSMULS (t1mc, t2mc, mcparticles), FindSMULS (t2mc, t1mc, mcparticles), FindSMLSPP (t1mc, t2mc, mcparticles), FindSMLSMM (t1mc, t2mc, mcparticles)});
2794- int hfee_type = IsHF (t1mc, t2mc, mcparticles);
2806+ int hfee_type = IsHF< true > (t1mc, t2mc, mcparticles);
27952807 if (mother_id < 0 && hfee_type < 0 ) {
27962808 return false ;
27972809 }
0 commit comments