//Renata Kopecna #include #include #include void print_help(){ spdlog::set_level(spdlog::level::debug); spdlog::set_pattern("%^[HELP]%$ %v"); spdlog::debug( "//--------------------------------------------------------------------------\\\\" ); spdlog::debug( "|| FCNC fitter to determine angular coefficients of B+ --> K*+ mu mu. ||" ); spdlog::debug( "\\\\--------------------------------------------------------------------------//" ); spdlog::debug( " Please set the following options:" ); spdlog::debug( "- - - - - - - - - - - - - - - - -" ); spdlog::debug( "- - - - - - MANDATORY - - - - - -" ); spdlog::debug( "- - - - - - - - - - - - - - - - -" ); spdlog::debug( " -r : Select Run number" ); spdlog::debug( " 0 : Optional, use when running per year." ); spdlog::debug( " 1, 2 : Run only on Run 1 or 2" ); spdlog::debug( " 12 : Run on both Runs." ); spdlog::debug( " 21 : Run on 15+16." ); spdlog::debug( " 22 : Run on 17+18." ); spdlog::debug( " -y : Select year" ); spdlog::debug( "- - - - - - - - - - - - - - - - -" ); spdlog::debug( "- - - - - - OPTIONAL - - - - - -" ); spdlog::debug( "- - - - - - - - - - - - - - - - -" ); spdlog::debug( " -a : Get angular resolution." ); spdlog::debug( " -b : Run on a certain numbers of q2 bin." ); spdlog::debug( " -c : Get angular corrections." ); spdlog::debug( " -d : Set dataset"); spdlog::debug( " 0 : Data"); spdlog::debug( " 1 : Signal MC"); spdlog::debug( " 2 : Ref MC"); spdlog::debug( " 3 : PHSP"); spdlog::debug( " 4 : Generator level MC"); spdlog::debug( " 5 : Boosted generator level MC"); spdlog::debug( " -e : Set number of events to be used." ); spdlog::debug( " -f : Run a fit." ); spdlog::debug( " 0 : Background only fit"); spdlog::debug( " 1 : Complete fit"); spdlog::debug( " 2 : Mass fit"); spdlog::debug( " 3 : Method of moments"); spdlog::debug( " 4 : MC fit"); spdlog::debug( " 5 : Generator level fit"); spdlog::debug( " 6 : "); spdlog::debug( " -g : Use folding of angles. Five possibilities use range [0-4]" ); spdlog::debug( " : [0]: phi' = phi + pi for phi < 0" ); spdlog::debug( " : [1]: phi' = -phi for phi < 0" ); spdlog::debug( " phi' = pi - phi for ctl < 0 " ); spdlog::debug( " ctl' = -ctl for ctl < 0 " ); spdlog::debug( " : [2]: phi' = -phi for phi < 0" ); spdlog::debug( " ctl' = -ctl for ctl < 0 " ); spdlog::debug( " : [3]: phi' = pi - phi for phi > pi/2" ); spdlog::debug( " phi' = -pi - phi for phi < -pi/2 " ); spdlog::debug( " ctl' = -ctl for ctl < 0 " ); spdlog::debug( " : [4]: phi' = pi - phi for phi > pi/2" ); spdlog::debug( " phi' = -pi - phi for phi < -pi/2 " ); spdlog::debug( " ctk' = -ctk for ctk < 0 " ); spdlog::debug( " ctl' = -ctl for ctl < 0 " ); spdlog::debug( " -h : Print this help :)" ); spdlog::debug( " -i : index. " ); //TODO spdlog::debug( " in combination with angCorr, it scans the corrections. " ); spdlog::debug( " in combination with -f 4, it sets the polarity: 1 is up, 2 is down. " ); spdlog::debug( " -j : job index. Usage to be added" ); //TODO spdlog::debug( " -k : Converting events. Needs specification of a year/run and dataset." ); spdlog::debug( " -l : Likelihood profile scans." ); spdlog::debug( " -m : Getting pulls from MC" ); spdlog::debug( " -n : Set number of toys." ); spdlog::debug( " -o : Run feldman cousins." ); spdlog::debug( " -p : Use P' instead of S-observables." ); spdlog::debug( " -q : Use Jpsi Q2 region" ); spdlog::debug( " -t : Get pulls fro toys." ); spdlog::debug( " -u : Set number q2 bins to be used." ); spdlog::debug( " -v : Set verbosity levels. Default is info." ); spdlog::debug( " 0 : Trace" ); spdlog::debug( " 1 : Debug" ); spdlog::debug( " 2 : Info" ); spdlog::debug( " 3 : Warn" ); spdlog::debug( " 4 : Error" ); spdlog::debug( " 5 : Critical" ); spdlog::debug( " -w : Does nothing for now." ); spdlog::debug( " -x : Runs whatever script you decide from Scripts/. This is due to ROOT trying to compile everything when it really doesn't need to and running it standalone would be a pain in the ass." ); spdlog::debug( " -z : Testing flag." ); spdlog::debug( "- - - - - - - - - - - - - - - - -" ); spdlog::debug( "- - - - - - SYSTEMATICS - - - - -" ); spdlog::debug( "- - - - - - - - - - - - - - - - -" ); spdlog::debug( " -s : Run systematic study number #ID" ); spdlog::debug( " 1 : Bootstrapping of PHSP MC" ); spdlog::debug( " 2 : Perform fit with non-symmetric acceptance in ctl" ); spdlog::debug( " 3 : Increase Legendre poly order by 2 for PHSP MC" ); spdlog::debug( " 4 : Randomly change PHSP MC reweighting wihtin it's uncertainties" ); spdlog::debug( " 5 : Check non-homogeneous FS distributions in q2" ); spdlog::debug( " 6 : Vary angles (ctk, ctl and phi) within the angular resoluation" ); spdlog::debug( " 7 : Generate toy events with double-gaussian profile and fit with CB" ); spdlog::debug( " 8 : Systematic study on angular background model, add 10\% contribution of higher order" ); spdlog::debug( " 9 : Investigate systematic effects due to trigger selection" ); spdlog::debug( " 10 : Reweight PHSP MC according to pion PT disagreement in DD" ); spdlog::debug( " 11 : Background systematic for mimicing the B0 -> KS mu mu veto" ); reset_spdlog(); // back to default format } void print_errorCodes(){ spdlog::set_level(spdlog::level::err); spdlog::set_pattern("%^[HELP]%$ %v"); spdlog::error( "//-----------------------------\\\\"); spdlog::error( "|| Possible error codes: ||"); spdlog::error( "\\\\-----------------------------//"); spdlog::error( " 0 : Everything is okay!" ); spdlog::error( " 1 : Something is wrong with (parsing) the input options!" ); spdlog::error( " 2 : Something is wrong with addition options in the fitter!" ); spdlog::error( " 3 : Wrong tree/parameter name!" ); spdlog::error( " 4 : Wrong array/vector lenght!" ); spdlog::error( " 5 : Missing implementation" ); spdlog::error( " 404 : Something is not found!" ); reset_spdlog(); // back to default format }