Update 'GlobalFunctions.hh'

Renata Kopecná 2022-01-31 08:40:44 +01:00
parent 42f9ea5dc7
commit 340c84d8ab

@ -1,10 +1,13 @@
# Global functions
**TODO**
#define for_indexed(...) for_indexed_v(i, __VA_ARGS__)
#define for_indexed_v(v, ...) for(bool _i_ = true, _break_ = false; _i_;) for(size_t v = 0; _i_; _i_ = false) for(__VA_ARGS__) if(_break_) break; else for(bool _j_ = true; _j_;) for(_break_ = true; _j_; _j_ = false) for(bool _k_ = true; _k_; v++, _k_ = false, _break_ = false)
# Global variables
* int verboseLevel = 2
### Decay Options
* const bool KshortChannel = [GetKSfromExePath()](bool-getksfromexepath)
* const bool SplitDDandLL = KshortChannel ? true : false //for pi0 SplitDDandLL is always false!
@ -55,32 +58,82 @@
* const double cut_DTF_status = 0.5
* const double cut_DTF_chi2 = 200.0
* const double K_star_plus_mass_difference = 100.0 //MeV //difference between K* mass and PDG K* mass
* const double cut_B_plus_M_low_basic = 4900. //MeV
* to account for cut on non-DTF mass in stripping
* const double cut_B_plus_M_low_basic = 4900. //pre-DTF cut
* const double cut_B_plus_M_low = KshortChannel ? 5150. : 5150. //MeV
* const double cut_B_plus_M_high = KshortChannel ? 6000. : 5800. //MeV
* const double B_plus_M_signal_window = KshortChannel ? 50. : 100 //MeV -- as PDGmass +/- the window
* const double cut_kin_Theta_low = 0.0
* const double cut_kin_Theta_up = 0.4
* const double cut_K_star_plus_pT = 1350.0 //MeV
* const double cut_kin_Theta_low = 0.0 //kinematic cut <=> pseudorapidity (for each particle, except for gammas)
* const double cut_kin_Theta_up = 0.4 //kinematic cut <=> pseudorapidity (for each particle, except for gammas)
* const double cut_K_star_plus_pT = 1350.0 //MeV
* const double cut_B_plus_pT = 2000.0 //MeV
* const double cut_pi_zero_PT = 800.0 //MeV
* const double cut_B_plus_DIRA = 0.99996
* const double cut_muon_angle = 0.001
* const double cut_B_plus_FDCHI2 = 121.0
* const double cut_K_star_plus_FDCHI2 = 9.0
* const double cut_B_plus_ConePTasym = -0.5
* const double cut_DiMuon_M = 7100.0
* const double cut_B_plus_DIRA = 0.99996 //DIRA is nicely explained in my [thesis](http://www.physi.uni-heidelberg.de/Publications/thesis_Kopecna_final.pdf), page 45
* const double cut_muon_angle = 0.001 //cut on angles between particles
* const double cut_B_plus_FDCHI2 = 121.0
* const double cut_K_star_plus_FDCHI2 = 9.0
* const double cut_B_plus_ConePTasym = -0.5 //conePT is explained in my [thesis](http://www.physi.uni-heidelberg.de/Publications/thesis_Kopecna_final.pdf), page 47
* const double cut_DiMuon_M = 7100.0 //MeV, dimuon mass cut
* const double cut_muon_IPCHI2_OWNPV_low = 9.0
* const double cut_IPCHI2_OWNPV_low = 0.0
* const double cut_IPCHI2_OWNPV_high = 12.0
* const double cut_muon_ProbNNmu = 0.25
* const double cut_K_plus_ProbNNk = 0.25
* const double cut_gamma_CL = 0.15
* const bool SplitInQ2 = KshortChannel ? false : false
* TString TMVAmethod = KshortChannel ? "BDTG" : "MLP" //used TMVA method
* int verboseLevel = 2
* const double cut_gamma_CL = 0.15 //gamma confidence level, explained in my [thesis](http://www.physi.uni-heidelberg.de/Publications/thesis_Kopecna_final.pdf), page 48
* const bool SplitInQ2 = KshortChannel ? false : false //rather obsolete, but still allows you to split the sample based on Q2 below and above J/psi
### Constants
* TString TMVAmethod = KshortChannel ? "BDTG" : "MLP" //used TMVA method
* struct PDGMASS //PDG masses in MeV
* const Double_t B_PLUS = 5279.29
* const Double_t B_ZERO = 5279.61
* const Double_t J_PSI = 3096.90
* const Double_t PSI_2S = 3686.10
* const Double_t K_STAR_PLUS = 891.66
* const Double_t K_ONE_PLUS = 1272.0
* const Double_t K_PLUS = 493.68
* const Double_t K_SHORT = 497.61
* const Double_t PI_PLUS = 139.57
* const Double_t PI_ZERO = 134.98
* const Double_t MU = 105.66
* const Double_t GAMMA = 0
* struct TRUEIDS //IDs of particles (see [Monte Carlo numbering scheme](pdg.lbl.gov/2019/reviews/rpp2019-rev-monte-carlo-numbering.pdf)
* const Int_t B_PLUS = 521
* const Int_t B_ZERO = 511
* const Int_t K_STAR_PLUS = 323
* const Int_t K_STAR_ZERO = 313
* const Int_t K_ONE_PLUS = 10323 // K1(1270)+
* const Int_t K_ONE_PLUS_1400 = 20323 // K1(1400)+
* const Int_t K_ONE_PLUS_1410 = 100323 // K1(1410)+
* const Int_t K_ONE_ZERO = 10313 // K0(1270)+
* const Int_t K_PLUS = 321
* const Int_t K_SHORT = 310
* const Int_t PI_PLUS = 211
* const Int_t PI_ZERO = 111
* const Int_t RHO_ZERO = 113
* const Int_t MU_MINUS = 13
* const Int_t GAMMA = 22
* const Int_t J_PSI = 443
* const Int_t ELECTRON = 11
const double BR_sig = 8.668e-7;
//branching ratios
//const double BR_sig = 9.6e-7; //PDG value for B+ -> K*+ mu mu
//const double BR_sig = 6.09576e-7; //BR for B+ -> K*+ mu mu without resonances from LHCb-PAPER-2014-006
const double BR_sig = 8.668e-7; //BR for B+ -> K*+ mu mu without resonances from flavio (09-05-19)
const double BR_ref = 1.43e-3 * 5.961e-2; //PDG value for B+ -> J/psi K*+ times J/psi -> mu mu
const double BR_ref2 = 6.7e-4 * 8.0e-3; //PDG value for B+ -> psi(2s) K*+ times psi(2s) -> mu mu
const float SignalRegionNsigma = 2.; //How many sigmas around the signal peak comprises the signal region
double getTMVAcut(int Run){
if (Run == 1) return 0.9985;
else if (Run == 2) return 0.996;
else return 1;
}
# Classes
* struct SignalFitParameters{ //TODO: possibly add the K1 to ParamValues at some point