30 fTh23 = 7.85398163397448279e-01;
43 bool antinu = (flavBefore<0&&flavAfter<0);
48 if (flavBefore==12&&flavAfter==12)
return P_ee(E,antinu);
49 else if (flavBefore==12&&flavAfter==14)
return P_em(E,antinu);
50 else if (flavBefore==12&&flavAfter==16)
return P_et(E,antinu);
51 else if (flavBefore==14&&flavAfter==12)
return P_me(E,antinu);
52 else if (flavBefore==14&&flavAfter==14)
return P_mm(E,antinu);
53 else if (flavBefore==14&&flavAfter==16)
return P_mt(E,antinu);
54 else if (flavBefore==16&&flavAfter==12)
return P_te(E,antinu);
55 else if (flavBefore==16&&flavAfter==14)
return P_tm(E,antinu);
56 else if (flavBefore==16&&flavAfter==16)
return P_tt(E,antinu);
73 TF1 *theTF1 =
new TF1(Form(
"OscCalculatorFunction_%d_%d_%p",flavBefore,flavAfter,
this),
75 theTF1->SetParameters(flavBefore,flavAfter);
82 int flavBefore =
int(p[0]);
83 int flavAfter =
int(p[1]);
84 bool antinu = (flavBefore<0&&flavAfter<0);
102 return (this->*P_xx)(x[0],antinu);
116 std::cerr <<
"OscCalculator::UpdateBasic() -- fDmsq31 should never be zero, but it is" <<
std::endl;
144 static const double ZperA = 0.5;
145 static const double G_F = 1.16637E-23;
146 static const double hbar_c_eV_cm = 1.97326938E-5;
148 fV = TMath::Sqrt2()*G_F*
fRho*ZperA*TMath::Na()*hbar_c_eV_cm*hbar_c_eV_cm*hbar_c_eV_cm;
156 static const double hbar_c_eV_km = 1.97326938E-10;
157 static const double eVPerGeV = 1E9;
159 int s = (antinu)?-1:1;
160 int t = (fliptime)?-1:1;
173 std::cerr <<
"OscCalculator::UpdateEDep() -- falpha should never be zero, but it is" <<
std::endl;
188 double cosC13D = cos(
fC13*
fD);
189 double sinC13D = sin(
fC13*fD);
190 double sin1pAD = sin((
fA+1)*fD);
191 double cos1pAD = cos((
fA+1)*fD);
192 double sinAD = sin(
fA*fD);
193 double sinAm1D = sin((
fA-1)*fD);
195 double sinApam2D = sin((
fA+
falpha-2)*fD);
196 double cosApam2D = cos((
fA+
falpha-2)*fD);
224 double pa1 = 0.0, pa2 = 0.0;
244 double t1 = sinAD*cosdpD*sinAm1D/(
fA*(
fA-1));
248 double totalP = p1+p2+p3 + (pa1+pa2) - repeated;
259 double cosC13D = cos(
fC13*
fD);
260 double sinC13D = sin(
fC13*fD);
261 double sin1pAD = sin((
fA+1)*fD);
262 double cos1pAD = cos((
fA+1)*fD);
263 double sinAD = sin(
fA*fD);
264 double sinAm1D = sin((
fA-1)*fD);
266 double sinApam2D = sin((
fA+
falpha-2)*fD);
267 double cosApam2D = cos((
fA+
falpha-2)*fD);
295 double pa1 = 0.0, pa2 = 0.0;
296 if (fabs(falpha)>1E-10) {
315 double t1 = sinAD*cosdpD*sinAm1D/(
fA*(
fA-1));
319 double totalP = p1+p2+p3 + (pa1+pa2) - repeated;
330 double cosC13D = cos(
fC13*
fD);
331 double sinC13D = sin(
fC13*fD);
352 double pa1 = 1.0, pa2 = 0.0;
365 double totalP = p1+p2 + (pa1+pa2) - repeated;
377 double cosC13D = cos(
fC13*
fD);
378 double sinC13D = sin(
fC13*fD);
379 double sin1pAD = sin((
fA+1)*fD);
380 double cos1pAD = cos((
fA+1)*fD);
381 double sinAD = sin(
fA*fD);
382 double sinAm1D = sin((
fA-1)*fD);
383 double cosAm1D = cos((
fA-1)*fD);
384 double sinApam2D = sin((
fA+
falpha-2)*fD);
385 double cosApam2D = cos((
fA+
falpha-2)*fD);
388 double sin1pAmCD = sin(0.5*(
fA+1-
fC13)*fD);
389 double sin1pApCD = sin(0.5*(
fA+1+
fC13)*fD);
390 double sinD = sin(fD);
391 double sin2D = sin(2*fD);
405 double t0,
t1, t2, t3;
411 t1 *= sinC13D*cos1pAD/
fC13;
419 t0 = cosC13D-cos1pAD;
442 t0 = (cosaC12D-cosApam2D)*(cosaC12D-cosApam2D);
457 t2 = -1/(
fA-1)*fcos_dCPproxy*sinD*(
fA*sinD-sinAD*cosAm1D/
fA)*
fcos_2th23/denom;
464 double repeated = t0+
t1;
467 double totalP = pmt_0 + pmt_1 + pmt_a0 + pmt_a1 - repeated;
double P_mm(double E, bool antinu=false)
double P_et(double E, bool antinu=false)
double P_null(double, bool)
double P_te(double E, bool antinu=false)
double P_tm(double E, bool antinu=false)
double P(int flavBefore, int flavAfter, double E)
double P_wrapper(double *x, double *p)
double P_internal_mt(double E, bool antinu, bool fliptime)
double P_mt(double E, bool antinu=false)
void UpdateEDep(double E, bool antinu, bool fliptime)
double P_tt(double E, bool antinu=false)
double P_internal_me(double E, bool antinu, bool fliptime)
TF1 * GetTF1(int flavBefore, int flavAfter)
double P_ee(double E, bool antinu=false)
double P_em(double E, bool antinu=false)
double P_internal_ee(double E, bool antinu, bool fliptime)
double P_internal_te(double E, bool antinu, bool fliptime)
double P_me(double E, bool antinu=false)
QTextStream & endl(QTextStream &s)