From 340c84d8abdf069592f48077e2f74861a06345fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Renata=20Kopecn=C3=A1?= Date: Mon, 31 Jan 2022 08:40:44 +0100 Subject: [PATCH] Update 'GlobalFunctions.hh' --- GlobalFunctions.hh.md | 83 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 68 insertions(+), 15 deletions(-) diff --git a/GlobalFunctions.hh.md b/GlobalFunctions.hh.md index 8162be3..0206044 100644 --- a/GlobalFunctions.hh.md +++ b/GlobalFunctions.hh.md @@ -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