@ -45,39 +45,26 @@
int new_analysis_b02hphmmumu ( )
int new_analysis_b02hphmmumu ( )
{
{
const char * analysis_name = " B0ToHpHmMuMu " ;
const char * analysis_name = " B0ToHpHmMuMu " ;
const char * data_tree_name = " B0ToHpHmMuMu " ;
const char * sim_tree_name = " B0ToHpHmMuMu_noPID " ;
const char * data_tree_name = " SpruceRD_ B0ToHpHmMuMu" ;
const char * sim_tree_name = " B0ToHpHmMuMu_noPID_mapped " ;
const char * end_state_mass_literal = " m(#pi^{+}#pi^{-}_{(#rightarrow K^{-})}#mu^{+}#mu^{-} & #pi^{+}_{(#rightarrow K^{+})}#pi^{-}#mu^{+}#mu^{-}) " ;
const char * end_state_mass_literal = " m(#pi^{+}#pi^{-}_{(#rightarrow K^{-})}#mu^{+}#mu^{-} & #pi^{+}_{(#rightarrow K^{+})}#pi^{-}#mu^{+}#mu^{-}) " ;
const bool retrain_bdt = false ;
const bool retrain_bdt = false ;
TChain * data_chain = new TChain ( TString : : Format ( " %s/DecayTree " , data_tree_name ) ) ;
TChain * data_chain = new TChain ( TString : : Format ( " %s/DecayTree " , data_tree_name ) ) ;
// data_chain->Add("/auto/data/pfeiffer/inclusive_detached_dilepton/data_samples/spruce_magdown_2023_v0_tuple_90000000_v0r0p6288631.root");
data_chain - > Add ( " /auto/data/pfeiffer/inclusive_detached_dilepton/data_samples/spruce_magdown_2023_v0r1_tuple_90000000_2023_v0r0p6288631.root " ) ;
data_chain - > Add ( " /auto/data/pfeiffer/inclusive_detached_dilepton/data_samples/Collision23_Beam6800GeV-VeloClosed-MagDown-Excl-UT_RealData_Sprucing23r1_90000000_RD.root " ) ;
Double_t Hp_PID_K , Hm_PID_K ;
data_chain - > SetBranchAddress ( " Hp_PID_K " , & Hp_PID_K ) ;
data_chain - > SetBranchAddress ( " Hm_PID_K " , & Hm_PID_K ) ;
FourVect * l14v_data = FourVect : : Init ( data_chain , " L1 " ) ;
FourVect * l24v_data = FourVect : : Init ( data_chain , " L2 " ) ;
FourVect * hp4v_data = FourVect : : Init ( data_chain , " Hp " ) ;
FourVect * hm4v_data = FourVect : : Init ( data_chain , " Hm " ) ;
FourVect * l14v_data = FourVect : : Init ( data_chain , " muminus " ) ;
FourVect * l24v_data = FourVect : : Init ( data_chain , " muplus " ) ;
FourVect * hp4v_data = FourVect : : Init ( data_chain , " Kplus " ) ;
FourVect * hm4v_data = FourVect : : Init ( data_chain , " piminus " ) ;
TChain * sim_chain = new TChain ( TString : : Format ( " %s/DecayTree " , sim_tree_name ) ) ;
TChain * sim_chain = new TChain ( TString : : Format ( " %s/DecayTree " , sim_tree_name ) ) ;
sim_chain - > Add ( " /auto/data/pfeiffer/inclusive_detached_dilepton/MC/rd_btoxll_simulation_fullstream_v0r0p6671378_B0ToKpPimMuMu_11144002_magdown.root " ) ;
FourVect * l14v_sim = FourVect : : Init ( sim_chain , " L1 " ) ;
FourVect * l24v_sim = FourVect : : Init ( sim_chain , " L2 " ) ;
FourVect * hp4v_sim = FourVect : : Init ( sim_chain , " Hp " ) ;
FourVect * hm4v_sim = FourVect : : Init ( sim_chain , " Hm " ) ;
Int_t B_BKGCAT , L1_TRUEID , L2_TRUEID , Hp_TRUEID , Hm_TRUEID ;
sim_chain - > Add ( " /auto/data/pfeiffer/inclusive_detached_dilepton/MC/B0ToHpHmMuMu_mapped_mc.root " ) ;
sim_chain - > SetBranchAddress ( " L1_TRUEID " , & L1_TRUEID ) ;
sim_chain - > SetBranchAddress ( " L2_TRUEID " , & L2_TRUEID ) ;
sim_chain - > SetBranchAddress ( " Hp_TRUEID " , & Hp_TRUEID ) ;
sim_chain - > SetBranchAddress ( " Hm_TRUEID " , & Hm_TRUEID ) ;
sim_chain - > SetBranchAddress ( " B0_BKGCAT " , & B_BKGCAT ) ;
FourVect * l14v_sim = FourVect : : Init ( sim_chain , " muminus " ) ;
FourVect * l24v_sim = FourVect : : Init ( sim_chain , " muplus " ) ;
FourVect * hp4v_sim = FourVect : : Init ( sim_chain , " Kplus " ) ;
FourVect * hm4v_sim = FourVect : : Init ( sim_chain , " piminus " ) ;
Double_t B_Mass_jpsi_var , B_Mass_psi2s_var , B_Mass_sim_var ;
Double_t B_Mass_jpsi_var , B_Mass_psi2s_var , B_Mass_sim_var ;
TString B_Mass_jpsi_var_name = " B_Mass_jpsi_var " ;
TString B_Mass_jpsi_var_name = " B_Mass_jpsi_var " ;
@ -94,14 +81,12 @@ int new_analysis_b02hphmmumu()
TH1D * h1_B_Mass_unf = new TH1D ( " h1_B_Mass_unf " , TString : : Format ( " B Mass (%s), Unfiltered " , data_tree_name ) , B_MASS_HIST_BINS , B_MASS_VAR_MIN , B_MASS_VAR_MAX ) ;
TH1D * h1_B_Mass_unf = new TH1D ( " h1_B_Mass_unf " , TString : : Format ( " B Mass (%s), Unfiltered " , data_tree_name ) , B_MASS_HIST_BINS , B_MASS_VAR_MIN , B_MASS_VAR_MAX ) ;
TH1D * h1_B_Mass_bdtf = new TH1D ( " h1_B_Mass_bdtf " , TString : : Format ( " B Mass (%s), BDT Filter " , data_tree_name ) , B_MASS_HIST_BINS , B_MASS_VAR_MIN , B_MASS_VAR_MAX ) ;
TH1D * h1_B_Mass_bdtf = new TH1D ( " h1_B_Mass_bdtf " , TString : : Format ( " B Mass (%s), BDT Filter " , data_tree_name ) , B_MASS_HIST_BINS , B_MASS_VAR_MIN , B_MASS_VAR_MAX ) ;
TH1D * h1_B_Mass_sim_unf = new TH1D ( " h1_B_Mass_sim_unf " , TString : : Format ( " B Mass, Simualted (%s), Unfiltered " , sim_tree_name ) , B_MASS_HIST_BINS , B_MASS_VAR_MIN , B_MASS_VAR_MAX ) ;
TH2D * h2_Hlt1_flags_B_Mass = new TH2D ( " h2_Hlt1_flags_B_Mass " , " Hlt1 Decision vs B Mass " , 50 , 5100 , 5400 , 13 , 1. , 14. ) ;
TH2D * h2_Hlt1_flags_B_Mass = new TH2D ( " h2_Hlt1_flags_B_Mass " , " Hlt1 Decision vs B Mass " , 50 , 5100 , 5400 , 13 , 1. , 14. ) ;
TH2D * h2_Hlt1_flags_excl_B_Mass = new TH2D ( " h2_Hlt1_flags_excl_B_Mass " , " Excl Hlt1 Decision vs B Mass " , 50 , 5100 , 5400 , 13 , 1. , 14. ) ;
TH2D * h2_Hlt1_flags_excl_B_Mass = new TH2D ( " h2_Hlt1_flags_excl_B_Mass " , " Excl Hlt1 Decision vs B Mass " , 50 , 5100 , 5400 , 13 , 1. , 14. ) ;
TH1D * h1_bdt_probs = new TH1D ( " h1_bdt_probs " , " BDT Probabilities " , 100 , - 1 , 1 ) ;
TH1D * h1_bdt_probs = new TH1D ( " h1_bdt_probs " , " BDT Probabilities " , 100 , - 1 , 1 ) ;
h1_B_Mass_unf - > GetXaxis ( ) - > SetTitle ( end_state_mass_literal ) ;
h1_B_Mass_unf - > GetXaxis ( ) - > SetTitle ( end_state_mass_literal ) ;
h1_B_Mass_sim_unf - > GetXaxis ( ) - > SetTitle ( end_state_mass_literal ) ;
h1_B_Mass_bdtf - > GetXaxis ( ) - > SetTitle ( end_state_mass_literal ) ;
h1_B_Mass_bdtf - > GetXaxis ( ) - > SetTitle ( end_state_mass_literal ) ;
h2_Hlt1_flags_B_Mass - > GetXaxis ( ) - > SetTitle ( end_state_mass_literal ) ;
h2_Hlt1_flags_B_Mass - > GetXaxis ( ) - > SetTitle ( end_state_mass_literal ) ;
h2_Hlt1_flags_excl_B_Mass - > GetXaxis ( ) - > SetTitle ( end_state_mass_literal ) ;
h2_Hlt1_flags_excl_B_Mass - > GetXaxis ( ) - > SetTitle ( end_state_mass_literal ) ;
@ -115,17 +100,14 @@ int new_analysis_b02hphmmumu()
TV : : Float ( " B0_BPVFDCHI2 " , " B0_BPVFDCHI2 " ) ,
TV : : Float ( " B0_BPVFDCHI2 " , " B0_BPVFDCHI2 " ) ,
TV : : Float ( " B0_BPVDIRA " , " B0_BPVDIRA " ) ,
TV : : Float ( " B0_BPVDIRA " , " B0_BPVDIRA " ) ,
TV : : Float ( " Jpsi_BPVIPCHI2 " , " Jpsi_BPVIPCHI2 " ) ,
TV : : Float ( " Jpsi_BPVIPCHI2 " , " Jpsi_BPVIPCHI2 " ) ,
// TV::Float("Jpsi_BPVDIRA", "Jpsi_BPVDIRA"),
TV : : Float ( " Jpsi_PT " , " Jpsi_PT " ) ,
TV : : Float ( " Jpsi_PT " , " Jpsi_PT " ) ,
TV : : Float ( " Hp_BPVIPCHI2 " , " Hp_BPVIPCHI2 " ) ,
TV : : Float ( " Hp_PT " , " Hp_PT " ) ,
TV : : Float ( " Hm_BPVIPCHI2 " , " Hm_BPVIPCHI2 " ) ,
TV : : Float ( " Hm_PT " , " Hm_PT " ) ,
// TV::Double("Kplus_PID_K", "K_PID_K"),
TV : : Double ( " Hp_PROBNN_K " , " Hp_PROBNN_K " ) ,
TV : : Double ( " Hm_PROBNN_K " , " Hm_PROBNN_K " ) ,
TV : : Float ( " L1_BPVIPCHI2 " , " L1_BPVIPCHI2 " ) ,
TV : : Float ( " L2_BPVIPCHI2 " , " L2_BPVIPCHI2 " ) ,
TV : : Float ( " Kplus_BPVIPCHI2 " , " Kplus_BPVIPCHI2 " ) ,
TV : : Float ( " Kplus_PT " , " Kplus_PT " ) ,
TV : : Float ( " piminus_BPVIPCHI2 " , " piminus_BPVIPCHI2 " ) ,
TV : : Float ( " piminus_PT " , " piminus_PT " ) ,
TV : : Double ( " Kplus_PROBNN_K " , " Kplus_PROBNN_K " ) ,
TV : : Float ( " muminus_BPVIPCHI2 " , " muminus_BPVIPCHI2 " ) ,
TV : : Float ( " muplus_BPVIPCHI2 " , " muplus_BPVIPCHI2 " ) ,
} ;
} ;
TTree * sig_tree = new TTree ( " TreeS " , " tree containing signal data " ) ;
TTree * sig_tree = new TTree ( " TreeS " , " tree containing signal data " ) ;
@ -145,31 +127,17 @@ int new_analysis_b02hphmmumu()
for ( unsigned int i = 0 ; i < data_entries ; i + + )
for ( unsigned int i = 0 ; i < data_entries ; i + + )
{
{
data_chain - > GetEntry ( i ) ;
data_chain - > GetEntry ( i ) ;
TLorentzVector reconstructed_Kstar { } ;
bool found_k_star = false ;
if ( Hp_PID_K > 0 & & Hm_PID_K < 0 )
{
reconstructed_Kstar = hp4v_data - > LorentzVector ( K_MASS ) + hm4v_data - > LorentzVector ( ) ;
found_k_star = true ;
}
else if ( Hm_PID_K > 0 & & Hp_PID_K < 0 )
{
reconstructed_Kstar = hp4v_data - > LorentzVector ( ) + hm4v_data - > LorentzVector ( K_MASS ) ;
found_k_star = true ;
}
TLorentzVector reconstructed_Kstar = hp4v_data - > LorentzVector ( ) + hm4v_data - > LorentzVector ( ) ;
TLorentzVector dimuon = l14v_data - > LorentzVector ( ) + l24v_data - > LorentzVector ( ) ;
Double_t reconstructed_B_Mass = ( reconstructed_Kstar + dimuon ) . M ( ) ;
if ( found_k_star )
if ( std : : all_of ( vars . begin ( ) , vars . end ( ) , [ ] ( TV * v )
{ return v - > IsDataFinite ( ) ; } ) )
{
{
Double_t reconstructed_B_Mass = ( reconstructed_Kstar + l14v_data - > LorentzVector ( ) + l24v_data - > LorentzVector ( ) ) . M ( ) ;
if ( std : : all_of ( vars . begin ( ) , vars . end ( ) , [ ] ( TV * v )
{ return v - > IsDataFinite ( ) ; } ) )
if ( reconstructed_B_Mass > 5500. & & ( ( TMath : : Abs ( dimuon . M ( ) - JPSI_MASS ) < 100. ) | | ( TMath : : Abs ( dimuon . M ( ) - PSI2S_MASS ) < 100. ) ) )
{
{
if ( reconstructed_B_Mass > 5500. )
{
bkg_tree - > Fill ( ) ;
bkg_events + + ;
}
bkg_tree - > Fill ( ) ;
bkg_events + + ;
}
}
}
}
@ -187,50 +155,28 @@ int new_analysis_b02hphmmumu()
{
{
sim_chain - > GetEntry ( i ) ;
sim_chain - > GetEntry ( i ) ;
Double_t reco_mass_pipkp = ( hp4v_sim - > LorentzVector ( K_MASS ) + hm4v_sim - > LorentzVector ( ) + l14v_sim - > LorentzVector ( ) + l24v_sim - > LorentzVector ( ) ) . M ( ) ;
Double_t reco_mass_pimkm = ( hp4v_sim - > LorentzVector ( ) + hm4v_sim - > LorentzVector ( K_MASS ) + l14v_sim - > LorentzVector ( ) + l24v_sim - > LorentzVector ( ) ) . M ( ) ;
h1_B_Mass_sim_unf - > Fill ( reco_mass_pipkp ) ;
h1_B_Mass_sim_unf - > Fill ( reco_mass_pimkm ) ;
TLorentzVector reconstructed_Kstar = hp4v_sim - > LorentzVector ( ) + hm4v_sim - > LorentzVector ( ) ;
Double_t reconstructed_B_Mass = ( reconstructed_Kstar + l14v_sim - > LorentzVector ( ) + l24v_sim - > LorentzVector ( ) ) . M ( ) ;
if ( B_BKGCAT = = 30 & & TMath : : Abs ( L1_TRUEID ) = = PID_MUON & & L2_TRUEID = = - L1_TRUEID )
if ( sig_events < bkg_events )
{
{
TLorentzVector reconstructed_Kstar { } ;
bool found_k_star = false ;
if ( TMath : : Abs ( Hp_TRUEID ) = = PID_KAON & & TMath : : Abs ( Hm_TRUEID ) = = PID_PION )
{
reconstructed_Kstar = hp4v_sim - > LorentzVector ( K_MASS ) + hm4v_sim - > LorentzVector ( ) ;
found_k_star = true ;
}
else if ( TMath : : Abs ( Hp_TRUEID ) = = PID_PION & & TMath : : Abs ( Hm_TRUEID ) = = PID_KAON )
{
reconstructed_Kstar = hp4v_sim - > LorentzVector ( ) + hm4v_sim - > LorentzVector ( K_MASS ) ;
found_k_star = true ;
}
if ( found_k_star )
if ( retrain_bdt & & std : : all_of ( vars . begin ( ) , vars . end ( ) , [ ] ( TV * v )
{ return v - > IsMCFinite ( ) ; } ) )
{
{
Double_t reconstructed_B_Mass = ( reconstructed_Kstar + l14v_sim - > LorentzVector ( ) + l24v_sim - > LorentzVector ( ) ) . M ( ) ;
if ( sig_events < bkg_events )
{
if ( retrain_bdt & & std : : all_of ( vars . begin ( ) , vars . end ( ) , [ ] ( TV * v )
{ return v - > IsMCFinite ( ) ; } ) )
{
sig_tree - > Fill ( ) ;
sig_events + + ;
}
}
B_Mass_sim_var = reconstructed_B_Mass ;
tree_B_Mass_sim - > Fill ( ) ;
sig_tree - > Fill ( ) ;
sig_events + + ;
}
}
}
}
B_Mass_sim_var = reconstructed_B_Mass ;
tree_B_Mass_sim - > Fill ( ) ;
PrintProgress ( TString : : Format ( " %s SIG Collection " , analysis_name ) , sim_entries , 10000 , i ) ;
PrintProgress ( TString : : Format ( " %s SIG Collection " , analysis_name ) , sim_entries , 10000 , i ) ;
}
}
if ( retrain_bdt )
if ( retrain_bdt )
{
{
std : : cout < < " # Added " < < sig_events < < " signal events. " < < std : : endl ;
TrainBDT ( vars , analysis_name , sig_tree , bkg_tree ) ;
TrainBDT ( vars , analysis_name , sig_tree , bkg_tree ) ;
std : : cout < < " # Finished BDT retrain. " < < std : : endl ;
std : : cout < < " # Finished BDT retrain. " < < std : : endl ;
}
}
@ -240,72 +186,57 @@ int new_analysis_b02hphmmumu()
Float_t * train_vars = new Float_t [ vars . size ( ) ] ;
Float_t * train_vars = new Float_t [ vars . size ( ) ] ;
auto reader = SetupReader ( vars , train_vars , analysis_name ) ;
auto reader = SetupReader ( vars , train_vars , analysis_name ) ;
const double mva_cut_value = - 0.0508 ;
const double mva_cut_value = 0 ;
for ( unsigned int i = 0 ; i < data_entries ; i + + )
for ( unsigned int i = 0 ; i < data_entries ; i + + )
{
{
data_chain - > GetEntry ( i ) ;
data_chain - > GetEntry ( i ) ;
TLorentzVector dimuon = l14v_data - > LorentzVector ( ) + l24v_data - > LorentzVector ( ) ;
TLorentzVector dimuon = l14v_data - > LorentzVector ( ) + l24v_data - > LorentzVector ( ) ;
TLorentzVector reconstructed_Kstar { } ;
bool found_k_star = false ;
if ( Hp_PID_K > 0 & & Hm_PID_K < 0 )
{
reconstructed_Kstar = hp4v_data - > LorentzVector ( K_MASS ) + hm4v_data - > LorentzVector ( ) ;
found_k_star = true ;
}
else if ( Hm_PID_K > 0 & & Hp_PID_K < 0 )
{
reconstructed_Kstar = hp4v_data - > LorentzVector ( ) + hm4v_data - > LorentzVector ( K_MASS ) ;
found_k_star = true ;
}
TLorentzVector reconstructed_Kstar = hp4v_data - > LorentzVector ( ) + hm4v_data - > LorentzVector ( ) ;
Double_t reconstructed_B_Mass = ( reconstructed_Kstar + dimuon ) . M ( ) ;
if ( found_k_star )
if ( std : : all_of ( vars . begin ( ) , vars . end ( ) , [ ] ( TV * v )
{ return v - > IsDataFinite ( ) ; } ) )
{
{
Double_t reconstructed_B_Mass = ( reconstructed_Kstar + dimuon ) . M ( ) ;
if ( std : : all_of ( vars . begin ( ) , vars . end ( ) , [ ] ( TV * v )
{ return v - > IsDataFinite ( ) ; } ) )
for ( size_t j = 0 ; j < vars . size ( ) ; j + + )
{
{
for ( size_t j = 0 ; j < vars . size ( ) ; j + + )
if ( vars [ j ] - > IsDouble ( ) )
{
{
if ( vars [ j ] - > IsDouble ( ) )
{
train_vars [ j ] = vars [ j ] - > GetDataDouble ( ) ;
}
else if ( vars [ j ] - > IsFloat ( ) )
{
train_vars [ j ] = vars [ j ] - > GetDataFloat ( ) ;
}
train_vars [ j ] = vars [ j ] - > GetDataDouble ( ) ;
}
else if ( vars [ j ] - > IsFloat ( ) )
{
train_vars [ j ] = vars [ j ] - > GetDataFloat ( ) ;
}
}
}
}
}
if ( TMath : : Abs ( dimuon . M ( ) - JPSI_MASS ) < 100. )
{
CheckHlt1Decisioins ( h2_Hlt1_flags_B_Mass , h2_Hlt1_flags_excl_B_Mass , exclusive_hits , reconstructed_B_Mass ) ;
FillHlt1DecisionHistos ( hlt1_decision_histos , reconstructed_B_Mass ) ;
}
if ( TMath : : Abs ( dimuon . M ( ) - JPSI_MASS ) < 100. )
{
CheckHlt1Decisioins ( h2_Hlt1_flags_B_Mass , h2_Hlt1_flags_excl_B_Mass , exclusive_hits , reconstructed_B_Mass ) ;
FillHlt1DecisionHistos ( hlt1_decision_histos , reconstructed_B_Mass ) ;
}
double mva_response = reader - > EvaluateMVA ( " BDT " ) ;
h1_bdt_probs - > Fill ( mva_response ) ;
double mva_response = reader - > EvaluateMVA ( " BDT " ) ;
h1_bdt_probs - > Fill ( mva_response ) ;
h1_B_Mass_unf - > Fill ( reconstructed_B_Mass ) ;
h1_B_Mass_unf - > Fill ( reconstructed_B_Mass ) ;
if ( mva_response > mva_cut_value )
if ( mva_response > mva_cut_value )
{
h1_B_Mass_bdtf - > Fill ( reconstructed_B_Mass ) ;
if ( TMath : : Abs ( reconstructed_Kstar . M ( ) - KSTAR_MASS ) < 100. )
{
{
h1_B_Mass_bdtf - > Fill ( reconstructed_B_Mass ) ;
if ( TMath : : Abs ( reconstructed_Kstar . M ( ) - KSTAR_MASS ) < 100. )
if ( TMath : : Abs ( dimuon . M ( ) - JPSI_MASS ) < 100. )
{
B_Mass_jpsi_var = reconstructed_B_Mass ;
tree_B_Mass_jpsi - > Fill ( ) ;
}
else if ( TMath : : Abs ( dimuon . M ( ) - PSI2S_MASS ) < 100. )
{
{
if ( TMath : : Abs ( dimuon . M ( ) - JPSI_MASS ) < 100. )
{
B_Mass_jpsi_var = reconstructed_B_Mass ;
tree_B_Mass_jpsi - > Fill ( ) ;
}
else if ( TMath : : Abs ( dimuon . M ( ) - PSI2S_MASS ) < 100. )
{
B_Mass_psi2s_var = reconstructed_B_Mass ;
tree_B_Mass_psi2s - > Fill ( ) ;
}
B_Mass_psi2s_var = reconstructed_B_Mass ;
tree_B_Mass_psi2s - > Fill ( ) ;
}
}
}
}
}
}
@ -323,14 +254,13 @@ int new_analysis_b02hphmmumu()
DrawInDefaultCanvas ( h2_Hlt1_flags_excl_B_Mass , analysis_name , 0.16 , " COLZ " ) ;
DrawInDefaultCanvas ( h2_Hlt1_flags_excl_B_Mass , analysis_name , 0.16 , " COLZ " ) ;
DrawInDefaultCanvas ( h1_B_Mass_unf , analysis_name , 0.1 ) ;
DrawInDefaultCanvas ( h1_B_Mass_unf , analysis_name , 0.1 ) ;
DrawInDefaultCanvas ( h1_B_Mass_sim_unf , analysis_name , 0.1 ) ;
DrawInDefaultCanvas ( h1_B_Mass_bdtf , analysis_name , 0.1 ) ;
DrawInDefaultCanvas ( h1_B_Mass_bdtf , analysis_name , 0.1 ) ;
DrawInDefaultCanvasStacked ( { h1_B_Mass_unf , h1_B_Mass_bdtf } , { kRed , kBlue } , { 0 , 3003 } , analysis_name ) ;
DrawInDefaultCanvasStacked ( { h1_B_Mass_unf , h1_B_Mass_bdtf } , { kRed , kBlue } , { 0 , 3003 } , analysis_name ) ;
auto roofit_hist_sim = CreateRooDataSetAndFitCB ( tree_B_Mass_sim , B_Mass_sim_var_name , end_state_mass_literal , false , false , ShapeParamters { } ) ;
auto roofit_hist_sim = CreateRooDataSetAndFitCB ( tree_B_Mass_sim , B_Mass_sim_var_name , end_state_mass_literal , false , false , ShapeParamters { } ) ;
auto roofit_hist_jpsi_fitsum = CreateRooDataSetAndFitCB ( tree_B_Mass_jpsi , B_Mass_jpsi_var_name , end_state_mass_literal , true , true , roofit_hist_sim . shape_parameters ) ;
auto roofit_hist_jpsi_fitsum = CreateRooDataSetAndFitCB ( tree_B_Mass_jpsi , B_Mass_jpsi_var_name , end_state_mass_literal , true , true , roofit_hist_sim . shape_parameters ) ;
auto roofit_hist_psi2s_fitsum = CreateRooDataSetAndFitCB ( tree_B_Mass_psi2s , B_Mass_psi2s_var_name , end_state_mass_literal , true , true , roofit_hist_sim . shape_parameters ) ;
auto roofit_hist_psi2s_fitsum = CreateRooDataSetAndFitCB ( tree_B_Mass_psi2s , B_Mass_psi2s_var_name , end_state_mass_literal , true , true , roofit_hist_sim . shape_parameters , true ) ;
DrawInDefaultCanvas ( roofit_hist_jpsi_fitsum , analysis_name ) ;
DrawInDefaultCanvas ( roofit_hist_jpsi_fitsum , analysis_name ) ;
DrawInDefaultCanvas ( roofit_hist_psi2s_fitsum , analysis_name ) ;
DrawInDefaultCanvas ( roofit_hist_psi2s_fitsum , analysis_name ) ;