@ -21,6 +21,50 @@ std::pair<double, double> DivWithErr(double x, double dx, double y, double dy) {
return std : : make_pair ( x / y , TMath : : Sqrt ( ( TMath : : Sq ( err_x ) + TMath : : Sq ( err_y ) ) ) ) ;
return std : : make_pair ( x / y , TMath : : Sqrt ( ( TMath : : Sq ( err_x ) + TMath : : Sq ( err_y ) ) ) ) ;
}
}
std : : pair < double , double > MultWithErr ( double x , double dx , double y , double dy ) {
double err_x = y * dx ;
double err_y = - x * dy ;
return std : : make_pair ( x * y , TMath : : Sqrt ( ( TMath : : Sq ( err_x ) + TMath : : Sq ( err_y ) ) ) ) ;
}
double RoundUp ( double x , int n = 0 ) {
if ( std : : abs ( x ) > std : : numeric_limits < double > : : max ( ) / n ) / / v * p would overflow
throw std : : overflow_error ( " rounding would overflow " ) ;
const double multiplier = std : : pow ( 10.0 , n ) ;
return std : : ceil ( x * multiplier ) / multiplier ;
}
double RoundDown ( double x , int n = 0 ) {
if ( std : : abs ( x ) > std : : numeric_limits < double > : : max ( ) / n ) / / v * p would overflow
throw std : : overflow_error ( " rounding would overflow " ) ;
const double multiplier = std : : pow ( 10.0 , n ) ;
return std : : floor ( x * multiplier ) / multiplier ;
}
double Round ( double x , int n = 0 ) {
if ( std : : abs ( x ) > std : : numeric_limits < double > : : max ( ) / n ) / / v * p would overflow
throw std : : overflow_error ( " rounding would overflow " ) ;
const double multiplier = std : : pow ( 10.0 , n ) ;
return std : : round ( x * multiplier ) / multiplier ;
}
std : : string ErrToStr ( double val , double err , int n ) {
return TString : : Format ( " %.*f #pm %.*f " , n , Round ( val , n ) , n , RoundUp ( err , n ) ) . Data ( ) ;
}
std : : string ErrToStr ( std : : pair < double , double > val_err , int n ) {
return ErrToStr ( val_err . first , val_err . second , n ) ;
}
std : : pair < double , double > CalcSignificance ( double sig_val , double sig_err , double bkg_val , double bkg_err ) {
double significance_val = sig_val / TMath : : Sqrt ( sig_val + bkg_val ) ;
double err_prop_sig = ( sig_val + 2 * bkg_val ) / ( 2 * TMath : : Power ( ( sig_val + bkg_val ) , ( 3 / 2 ) ) ) ;
double err_prop_bkg = - sig_val / ( 2 * TMath : : Power ( ( sig_val + bkg_val ) , ( 3 / 2 ) ) ) ;
double significance_err = TMath : : Sqrt ( TMath : : Sq ( err_prop_sig * sig_err ) + TMath : : Sq ( err_prop_bkg * bkg_err ) ) ;
return std : : make_pair ( significance_val , significance_err ) ;
}
class FourVect
class FourVect
{
{
private :
private :
@ -84,14 +128,18 @@ struct FittedParam
bool at_limit ;
bool at_limit ;
bool constant ;
bool constant ;
int decimals ;
int decimals ;
bool print_const ;
bool ignore_print ;
FittedParam ( RooRealVar var , int decimals )
FittedParam ( RooRealVar var , int decimals , bool print_const = false , bool ignore_print = false )
{
{
this - > title = var . GetTitle ( ) ;
this - > title = var . GetTitle ( ) ;
this - > name = var . GetName ( ) ;
this - > name = var . GetName ( ) ;
double val = var . getVal ( ) ;
double val = var . getVal ( ) ;
this - > value = val ;
this - > value = val ;
this - > constant = var . isConstant ( ) ;
this - > constant = var . isConstant ( ) ;
this - > print_const = print_const ;
this - > ignore_print = ignore_print ;
if ( ! this - > constant )
if ( ! this - > constant )
{
{
this - > error = var . getError ( ) ;
this - > error = var . getError ( ) ;
@ -104,7 +152,7 @@ struct FittedParam
this - > decimals = decimals ;
this - > decimals = decimals ;
}
}
FittedParam ( std : : string name , std : : string title , double value , double err , int decimals )
FittedParam ( std : : string name , std : : string title , double value , double err , int decimals , bool ignore_print = false )
{
{
this - > title = title ;
this - > title = title ;
this - > name = name ;
this - > name = name ;
@ -113,17 +161,23 @@ struct FittedParam
this - > decimals = decimals ;
this - > decimals = decimals ;
this - > constant = false ;
this - > constant = false ;
this - > at_limit = false ;
this - > at_limit = false ;
this - > ignore_print = ignore_print ;
}
}
std : : string ToString ( ) const
std : : string ToString ( bool latex = false ) const
{
{
if ( this - > constant )
if ( this - > constant )
{
{
return TString : : Format ( " %s = %.*f " , this - > title . c_str ( ) , this - > decimals , this - > value ) . Data ( ) ;
return TString : : Format ( " %s = %.*f (c) " , this - > title . c_str ( ) , this - > decimals , this - > value ) . Data ( ) ;
}
}
else
else
{
{
return TString : : Format ( " %s = %.*f #pm %.*f " , this - > title . c_str ( ) , this - > decimals , this - > value , this - > decimals , this - > error ) . Data ( ) ;
if ( this - > error = = 0 ) {
return TString : : Format ( " %s = %.*f " , this - > title . c_str ( ) , this - > decimals , this - > value ) . Data ( ) ;
}
else {
return TString : : Format ( " %s = %.*f %s %.*f " , this - > title . c_str ( ) , this - > decimals , this - > value , ( latex ? " \\ pm " : " #pm " ) , this - > decimals , this - > error ) . Data ( ) ;
}
}
}
}
}
} ;
} ;
@ -135,6 +189,10 @@ struct ShapeParamters
double alpha_right ;
double alpha_right ;
double n_right ;
double n_right ;
double sigma_lr ;
double sigma_lr ;
std : : string ToString ( ) {
return TString : : Format ( " aL: %.2f \n nL: %.2f \n aR: %.2f \n nR: %.2f \n S: %.2f \n " , this - > alpha_left , this - > n_left , this - > alpha_right , this - > n_right , this - > sigma_lr ) . Data ( ) ;
}
} ;
} ;
struct RooFitSummary
struct RooFitSummary
@ -160,21 +218,34 @@ void DrawInDefaultCanvas(TH1 *histogram, const char *folder, double margin_left
c - > SaveAs ( TString : : Format ( " output_files/analysis/%s/%s.pdf " , folder , name . Data ( ) ) . Data ( ) ) ;
c - > SaveAs ( TString : : Format ( " output_files/analysis/%s/%s.pdf " , folder , name . Data ( ) ) . Data ( ) ) ;
}
}
void DrawInDefaultCanvasStacked ( std : : vector < TH1D * > histograms , std : : vector < Color_t > colors , std : : vector < Style_t > fill_style , const char * folder , double margin_left = 0.1 , Option_t * option = " " )
void DrawInDefaultCanvasStacked ( std : : vector < TH1D * > histograms , std : : vector < Color_t > colors , std : : vector < Style_t > fill_style , const char * folder , const char * title , double margin_left = 0.12 , Option_t * option = " " )
{
{
std : : filesystem : : create_directory ( TString : : Format ( " output_files/analysis/%s " , folder ) . Data ( ) ) ;
std : : filesystem : : create_directory ( TString : : Format ( " output_files/analysis/%s " , folder ) . Data ( ) ) ;
TString name = TString : : Format ( " %s_stack_canvas " , histograms [ 0 ] - > GetName ( ) ) ;
TString name = TString : : Format ( " %s_stack_canvas " , histograms [ 0 ] - > GetName ( ) ) ;
TCanvas * c = new TCanvas ( name , histograms [ 0 ] - > GetName ( ) , 0 , 0 , 800 , 600 ) ;
TCanvas * c = new TCanvas ( name , histograms [ 0 ] - > GetName ( ) , 0 , 0 , 800 , 600 ) ;
c - > SetLeftMargin ( margin_left ) ;
c - > SetLeftMargin ( margin_left ) ;
std : : string drwopt_2 = std : : string ( option ) . empty ( ) ? " SAME HIST " : TString : : Format ( " %s SAME HIST " , option ) . Data ( ) ;
Double_t max = 0 ;
for ( size_t i = 0 ; i < histograms . size ( ) ; i + + )
{
if ( histograms [ i ] - > GetEntries ( ) > max ) {
max = histograms [ i ] - > GetEntries ( ) ;
}
}
TString stack_name = TString : : Format ( " %s_stack " , histograms [ 0 ] - > GetName ( ) ) ;
TString stack_title = TString : : Format ( " %s;%s;#Events normed to 1/%.0f " , title , histograms [ 0 ] - > GetXaxis ( ) - > GetTitle ( ) , max ) ;
std : : string drwopt_2 = std : : string ( option ) . empty ( ) ? " HIST " : TString : : Format ( " %s HIST " , option ) . Data ( ) ;
auto stack = new THStack ( stack_name , stack_title ) ;
for ( size_t i = 0 ; i < histograms . size ( ) ; i + + )
for ( size_t i = 0 ; i < histograms . size ( ) ; i + + )
{
{
const Double_t scaling_factor = 1. ;
const Double_t scaling_factor = 1. ;
auto hist_clone = ( TH1 * ) histograms [ i ] - > Clone ( TString : : Format ( " %s_clone " , histograms [ i ] - > GetName ( ) ) ) ;
auto hist_clone = ( TH1 * ) histograms [ i ] - > Clone ( TString : : Format ( " %s_clone " , histograms [ i ] - > GetName ( ) ) ) ;
hist_clone - > Scale ( scaling_factor / histograms [ i ] - > GetMaximum ( ) ) ;
hist_clone - > Scale ( scaling_factor / max ) ;
hist_clone - > SetLineColor ( colors [ i ] ) ;
hist_clone - > SetLineColor ( colors [ i ] ) ;
hist_clone - > SetMaximum ( scaling_factor + ( scaling_factor * 0.05 ) ) ;
/ / hist_clone - > SetMaximum ( scaling_factor + ( scaling_factor * 0.05 ) ) ;
/ / hist_clone - > SetMaximum ( max + ( max * 0.05 ) ) ;
hist_clone - > SetMinimum ( 0. ) ;
hist_clone - > SetMinimum ( 0. ) ;
hist_clone - > SetStats ( 0 ) ;
hist_clone - > SetStats ( 0 ) ;
if ( fill_style [ i ] ! = 0 )
if ( fill_style [ i ] ! = 0 )
@ -185,15 +256,17 @@ void DrawInDefaultCanvasStacked(std::vector<TH1D *> histograms, std::vector<Colo
if ( i > 0 )
if ( i > 0 )
{
{
hist_clone - > Draw ( drwopt_2 . c_str ( ) ) ;
stack - > Add ( hist_clone , drwopt_2 . c_str ( ) ) ;
}
}
else
else
{
{
hist_clone - > Draw ( drwopt_2 . c_str ( ) ) ;
stack - > Add ( hist_clone , drwopt_2 . c_str ( ) ) ;
}
}
}
}
c - > BuildLegend ( 0.55 , 0.79 , 0.87 , 0.89 ) ;
stack - > Draw ( " NOSTACK " ) ;
c - > BuildLegend ( 0.55 , 0.70 , 0.87 , 0.89 ) ;
c - > Draw ( ) ;
c - > Draw ( ) ;
c - > SaveAs ( TString : : Format ( " output_files/analysis/%s/%s.pdf " , folder , name . Data ( ) ) . Data ( ) ) ;
c - > SaveAs ( TString : : Format ( " output_files/analysis/%s/%s.pdf " , folder , name . Data ( ) ) . Data ( ) ) ;
@ -259,20 +332,8 @@ void DrawInDefaultCanvas(RooFitSummary fitSummary, const char *folder)
Double_t fit_title_size = ( pull_title_size * dwPad_area ) / upPad_area ;
Double_t fit_title_size = ( pull_title_size * dwPad_area ) / upPad_area ;
Double_t fit_label_size = ( pull_label_size * dwPad_area ) / upPad_area ;
Double_t fit_label_size = ( pull_label_size * dwPad_area ) / upPad_area ;
/ / canvas - > Update ( ) ;
c - > cd ( 1 ) ;
c - > cd ( 1 ) ;
/ / TPad * pull_pad = new TPad ( TString : : Format ( " %s_canv_pull " , fitSummary . fit_histogram - > GetName ( ) ) , " Pull Pad " , 0. , 0. , 1. , 0.3 ) ;
/ / pull_pad - > Draw ( ) ;
/ / pull_pad - > SetTopMargin ( 0.001 ) ;
/ / pull_pad - > SetBottomMargin ( 0.3 ) ;
/ / pull_pad - > SetGrid ( ) ;
/ / TPad * fit_pad = new TPad ( TString : : Format ( " %s_canv_fit " , fitSummary . fit_histogram - > GetName ( ) ) , " Fit Pad " , 0. , 0.3 , 1. , 1. ) ;
/ / fit_pad - > Draw ( ) ;
/ / fit_pad - > SetBottomMargin ( 0.001 ) ;
/ / fit_pad - > cd ( ) ;
auto fit_Xaxis = fitSummary . fit_histogram - > GetXaxis ( ) ;
auto fit_Xaxis = fitSummary . fit_histogram - > GetXaxis ( ) ;
auto fit_Yaxis = fitSummary . fit_histogram - > GetYaxis ( ) ;
auto fit_Yaxis = fitSummary . fit_histogram - > GetYaxis ( ) ;
fit_Xaxis - > SetLabelOffset ( 0.02 ) ;
fit_Xaxis - > SetLabelOffset ( 0.02 ) ;
@ -298,7 +359,7 @@ void DrawInDefaultCanvas(RooFitSummary fitSummary, const char *folder)
for ( const auto & par : fitSummary . fitted_params )
for ( const auto & par : fitSummary . fitted_params )
{
{
if ( ! par . constant )
if ( ( ! par . ignore_print ) & & ( ( ! par . constant ) | | par . print_const ) )
{
{
leg1 - > AddEntry ( ( TObject * ) 0 , par . ToString ( ) . c_str ( ) , " " ) ;
leg1 - > AddEntry ( ( TObject * ) 0 , par . ToString ( ) . c_str ( ) , " " ) ;
}
}
@ -373,7 +434,7 @@ void PrintProgress(const char *title, unsigned int total, unsigned int every, un
RooPlot * CreateRooFitHistogram ( TH1D * hist )
RooPlot * CreateRooFitHistogram ( TH1D * hist )
{
{
RooRealVar roo_var_mass ( " var_mass " , " B Mass Variable " , B_MASS_VAR_MIN , B_MASS_VAR_MAX ) ;
RooRealVar roo_var_mass ( " var_mass " , " B Mass Variable " , B_MASS_VAR_MIN , B_MASS_VAR_MAX ) ;
roo_var_mass . setRange ( " fitting_range " , B_MASS_VAR_MIN , B_MASS_VAR _MAX ) ;
roo_var_mass . setRange ( " fitting_range " , B_MASS_FIT_MIN , B_MASS_FIT _MAX ) ;
RooDataHist roohist_B_M ( " roohist_B_M " , " B Mass Histogram " , roo_var_mass , RooFit : : Import ( * hist ) ) ;
RooDataHist roohist_B_M ( " roohist_B_M " , " B Mass Histogram " , roo_var_mass , RooFit : : Import ( * hist ) ) ;
@ -391,13 +452,16 @@ RooFitSummary CreateRooDataSetAndFitCB(TTree *dataSet, TString var_name, TString
return TString : : Format ( " %s_%s " , text , name ) ;
return TString : : Format ( " %s_%s " , text , name ) ;
} ;
} ;
Double_t fitRangeUp = fit_low = = 0 ? B_MASS_VAR _MIN : fit_low ;
Double_t fitRangeLow = fit_up = = 0 ? B_MASS_VAR _MAX : fit_up ;
Double_t fitRangeUp = fit_low = = 0 ? B_MASS_FIT _MIN : fit_low ;
Double_t fitRangeLow = fit_up = = 0 ? B_MASS_FIT _MAX : fit_up ;
RooRealVar roo_var_mass ( var_name , " B Mass Variable " , B_MASS_VAR_MIN , B_MASS_VAR_MAX ) ;
RooRealVar roo_var_mass ( var_name , " B Mass Variable " , B_MASS_VAR_MIN , B_MASS_VAR_MAX ) ;
const char * fitting_range_name = " fitting_range " ;
const char * fitting_range_name = " fitting_range " ;
roo_var_mass . setRange ( fitting_range_name , fitRangeUp , fitRangeLow ) ;
roo_var_mass . setRange ( fitting_range_name , fitRangeUp , fitRangeLow ) ;
const char * draw_range_name = " draw_range " ;
roo_var_mass . setRange ( draw_range_name , B_MASS_VAR_MIN , B_MASS_VAR_MAX ) ;
TString dataset_name = suffix_name ( " roodataset_B_M " ) ;
TString dataset_name = suffix_name ( " roodataset_B_M " ) ;
/ / RooDataHist roodataset_B_M ( hist_name , " B Mass Histogram " , roo_var_mass , RooFit : : Import ( * hist ) ) ;
/ / RooDataHist roodataset_B_M ( hist_name , " B Mass Histogram " , roo_var_mass , RooFit : : Import ( * hist ) ) ;
RooDataSet roodataset_B_M ( dataset_name , " B Mass Data Set " , roo_var_mass , RooFit : : Import ( * dataSet ) ) ;
RooDataSet roodataset_B_M ( dataset_name , " B Mass Data Set " , roo_var_mass , RooFit : : Import ( * dataSet ) ) ;
@ -477,30 +541,45 @@ RooFitSummary CreateRooDataSetAndFitCB(TTree *dataSet, TString var_name, TString
RooAddPdf fitted_pdf ( fitted_pdf_name , " Sig + Bkg " , RooArgList ( sig_cb , bkg_exp ) , RooArgList ( var_mass_nsig , var_mass_nbkg ) ) ;
RooAddPdf fitted_pdf ( fitted_pdf_name , " Sig + Bkg " , RooArgList ( sig_cb , bkg_exp ) , RooArgList ( var_mass_nsig , var_mass_nbkg ) ) ;
pdf_names [ fitted_pdf_name . Data ( ) ] = fitted_pdf . getTitle ( ) . Data ( ) ;
pdf_names [ fitted_pdf_name . Data ( ) ] = fitted_pdf . getTitle ( ) . Data ( ) ;
RooFitResult * fitres = fitted_pdf . fitTo ( roodataset_B_M , RooFit : : Save ( ) , RooFit : : PrintLevel ( 1 ) , RooFit : : Range ( fitting_range_name ) ) ;
RooFitResult * fitres = fitted_pdf . fitTo ( roodataset_B_M , RooFit : : Save ( ) , RooFit : : PrintLevel ( - 1 ) , RooFit : : Range ( fitting_range_name ) ) ;
/ / sigplusbkg . plotOn ( roo_frame_mass , RooFit : : VisualizeError ( * fitres , 1 ) , RooFit : : FillColor ( kOrange + 1 ) , RooFit : : FillStyle ( 3144 ) ) ;
/ / sigplusbkg . plotOn ( roo_frame_mass , RooFit : : VisualizeError ( * fitres , 1 ) , RooFit : : FillColor ( kOrange + 1 ) , RooFit : : FillStyle ( 3144 ) ) ;
fitted_pdf . plotOn ( roo_frame_mass , RooFit : : LineColor ( kRed ) , RooFit : : LineStyle ( kSolid ) , RooFit : : Range ( fitting _range_name) , RooFit : : Name ( fitted_pdf_name ) ) ;
fitted_pdf . plotOn ( roo_frame_mass , RooFit : : Components ( RooArgSet ( bkg_exp ) ) , RooFit : : LineColor ( kBlue - 7 ) , RooFit : : LineStyle ( kDashed ) , RooFit : : Range ( fitting _range_name) , RooFit : : Name ( background_name ) ) ;
fitted_pdf . plotOn ( roo_frame_mass , RooFit : : Components ( RooArgSet ( sig_cb ) ) , RooFit : : LineColor ( kRed - 7 ) , RooFit : : LineStyle ( kDashed ) , RooFit : : Range ( fitting _range_name) , RooFit : : Name ( signal_name ) ) ;
fitted_pdf . plotOn ( roo_frame_mass , RooFit : : LineColor ( kRed ) , RooFit : : LineStyle ( kSolid ) , RooFit : : Range ( draw _range_name) , RooFit : : Name ( fitted_pdf_name ) ) ;
fitted_pdf . plotOn ( roo_frame_mass , RooFit : : Components ( RooArgSet ( bkg_exp ) ) , RooFit : : LineColor ( kBlue - 7 ) , RooFit : : LineStyle ( kDashed ) , RooFit : : Range ( draw _range_name) , RooFit : : Name ( background_name ) ) ;
fitted_pdf . plotOn ( roo_frame_mass , RooFit : : Components ( RooArgSet ( sig_cb ) ) , RooFit : : LineColor ( kRed - 7 ) , RooFit : : LineStyle ( kDashed ) , RooFit : : Range ( draw _range_name) , RooFit : : Name ( signal_name ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_nsig , 2 ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_nbkg , 2 ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_nsig , 0 ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_nbkg , 0 ) ) ;
double mu_val = var_mass_x0 . getVal ( ) ;
double sigma_val = var_mass_sigmaLR . getVal ( ) ;
sig_val = var_mass_nsig . getVal ( ) ;
sig_val = var_mass_nsig . getVal ( ) ;
sig_err = var_mass_nsig . getError ( ) ;
sig_err = var_mass_nsig . getError ( ) ;
bkg_val = var_mass_nbkg . getVal ( ) ;
bkg_val = var_mass_nbkg . getVal ( ) ;
bkg_err = var_mass_nbkg . getError ( ) ;
bkg_err = var_mass_nbkg . getError ( ) ;
double significance_val = sig_val / TMath : : Sqrt ( sig_val + bkg_val ) ;
double err_prop_sig = ( sig_val + 2 * bkg_val ) / ( 2 * TMath : : Power ( ( sig_val + bkg_val ) , ( 3 / 2 ) ) ) ;
double err_prop_bkg = - sig_val / ( 2 * TMath : : Power ( ( sig_val + bkg_val ) , ( 3 / 2 ) ) ) ;
double significance_err = TMath : : Sqrt ( TMath : : Sq ( err_prop_sig * sig_err ) + TMath : : Sq ( err_prop_bkg * bkg_err ) ) ;
double sig_bkg_sum_val = sig_val + bkg_val ;
double sig_bkg_sum_err = TMath : : Sqrt ( TMath : : Sq ( sig_err ) + TMath : : Sq ( bkg_err ) ) ;
const int sigma_space = 2 ;
double int_lo = mu_val - sigma_space * sigma_val ;
double int_up = mu_val + sigma_space * sigma_val ;
roo_var_mass . setRange ( " peak_integral_range " , int_lo , int_up ) ;
std : : cout < < " #### Integral Over: " < < int_lo < < " -> " < < int_up < < std : : endl ;
auto bkg_int = bkg_exp . createIntegral ( roo_var_mass , RooFit : : NormSet ( roo_var_mass ) , RooFit : : Range ( " peak_integral_range " ) ) ;
auto bkg_yield_under_sig = std : : make_pair ( bkg_int - > getVal ( ) * sig_bkg_sum_val , bkg_int - > getVal ( ) * sig_bkg_sum_err ) ;
fitted_params . push_back ( FittedParam ( " bkg_int_sig " , TString : : Format ( " N_{Bkg,%d#sigma} " , sigma_space ) . Data ( ) , bkg_yield_under_sig . first , bkg_yield_under_sig . second , 0 ) ) ;
auto significance = CalcSignificance ( sig_val , sig_err , bkg_val , bkg_err ) ;
auto sig_over_bkg = DivWithErr ( sig_val , sig_err , bkg_val , bkg_err ) ;
auto sig_over_bkg_3sig = DivWithErr ( sig_val , sig_err , bkg_yield_under_sig . first , bkg_yield_under_sig . second ) ;
auto sig_over_bkg_full = DivWithErr ( sig_val , sig_err , bkg_val , bkg_err ) ;
fitted_params . push_back ( FittedParam ( " significance " , " N_{Sig}/#sqrt{N_{Sig} + N_{Bkg}} " , significance_val , significance_err , 2 ) ) ;
fitted_params . push_back ( FittedParam ( " sig_over_bkg " , " N_{Sig}/N_{Bkg} " , sig_over_bkg . first , sig_over_bkg . second , 2 ) ) ;
/ / fitted_params . push_back ( FittedParam ( " significance " , " N_{Sig}/#sqrt{N_{Sig} + N_{Bkg}} " , significance . first , significance . second , 2 ) ) ;
fitted_params . push_back ( FittedParam ( " sig_over_bkg " , " N_{Sig}/N_{Bkg} " , sig_over_bkg_full . first , sig_over_bkg_full . second , 2 , true ) ) ;
fitted_params . push_back ( FittedParam ( " sig_over_bkg " , TString : : Format ( " N_{Sig}/N_{Bkg,%d#sigma} " , sigma_space ) . Data ( ) , sig_over_bkg_3sig . first , sig_over_bkg_3sig . second , 2 , true ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_bkg_c , 5 ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_bkg_c , 5 ) ) ;
@ -508,14 +587,14 @@ RooFitSummary CreateRooDataSetAndFitCB(TTree *dataSet, TString var_name, TString
}
}
else
else
{
{
RooFitResult * fitres = sig_cb . fitTo ( roodataset_B_M , RooFit : : Save ( ) , RooFit : : PrintLevel ( 1 ) , RooFit : : Range ( fitting_range_name ) ) ;
RooFitResult * fitres = sig_cb . fitTo ( roodataset_B_M , RooFit : : Save ( ) , RooFit : : PrintLevel ( - 1 ) , RooFit : : Range ( fitting_range_name ) ) ;
/ / sigplusbkg . plotOn ( roo_frame_mass , RooFit : : VisualizeError ( * fitres , 1 ) , RooFit : : FillColor ( kOrange + 1 ) , RooFit : : FillStyle ( 3144 ) ) ;
/ / sigplusbkg . plotOn ( roo_frame_mass , RooFit : : VisualizeError ( * fitres , 1 ) , RooFit : : FillColor ( kOrange + 1 ) , RooFit : : FillStyle ( 3144 ) ) ;
sig_cb . plotOn ( roo_frame_mass , RooFit : : LineColor ( kRed ) , RooFit : : LineStyle ( kSolid ) , RooFit : : Range ( fitting _range_name) , RooFit : : Name ( signal_name ) ) ;
sig_cb . plotOn ( roo_frame_mass , RooFit : : LineColor ( kRed ) , RooFit : : LineStyle ( kSolid ) , RooFit : : Range ( draw _range_name) , RooFit : : Name ( signal_name ) ) ;
pull_compare_name = signal_name ;
pull_compare_name = signal_name ;
}
}
fitted_params . push_back ( FittedParam ( var_mass_x0 , 2 ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_x0 , 2 ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_sigmaLR , 2 ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_sigmaLR , 2 , true ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_alphaL , 2 ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_alphaL , 2 ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_nL , 2 ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_nL , 2 ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_alphaR , 2 ) ) ;
fitted_params . push_back ( FittedParam ( var_mass_alphaR , 2 ) ) ;