//Renata Kopecna

#ifndef MAINFIT_HH
#define MAINFIT_HH

#include <options.hh>
#include <parse.hh>


////////////////////////////////////////////
// FL SCALING OF LARGE BINS TO SMALL BINS //
////////////////////////////////////////////

        // TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO TODO

//Idea is to scale FS accordingly to FL distributions
//FS is obtained in three bins: [1.0-8.0], [11.0-12.5] and [15.0-19.0] in 2D mass fits
//the following scales for FL are obtained from flav.io and are the ratio of int(FL)_largebin / int(FL)_smallbin
//in principle, only the scaling in q2 below the ccbar peaks is significant

///including the first q2bin: //TODO: get from my MC
const std::vector<double> FL_scale = {0.4836193455050577, 1.2251014138607774, 1.274499551405837, 1.1368614009399862};

const std::vector<double> FL_scale_toys = { //TODO Get from my MC!
                0.5,   //scaled from average of bin 1-4
                1.0 + 0.07 /  (61.*4) * (61.+  62.+  96.+ 125.),
                1.0 + 0.12 /  (62.*4) * (61.+  62.+  96.+ 125.),
                1.0 - 0.02 /  (96.*4) * (61.+  62.+  96.+ 125.),
                1.0 - 0.17 / (125.*4) * (61.+  62.+  96.+ 125.),
                1.0,//evaluated by itself
                1.0 + 0.04 / (129. * 2) * (129. + 69.),
                1.0 - 0.04 /  (69. * 2) * (129. + 69.),
};

////////////////////////////////////////////
//      Other constants                   //
////////////////////////////////////////////
const int TotalEvents = 0;

////////////////////////////////////////////
/// \brief mainfit
int mainfit(fcnc::options opts, basic_params params, bool fitReference, bool fitToy, bool likelihoodScan, bool FeldmanCousin);

#endif // MAINFIT_HH
