21 virtual double P(
int flavBefore,
int flavAfter,
double E)
override 23 const double L = 810.;
24 const double ldm = 2.40e-3;
25 const double ss2t13 = 0.1;
26 const double ss2t23 = 1.;
30 if(
abs(flavAfter) == 12 &&
abs(flavBefore) == 14){
32 return ss2t13*ssth23*
sqr(
sin(1.267*ldm*L/E));
34 if(
abs(flavAfter) == 14 &&
abs(flavBefore) == 14){
36 return 1-ss2t23*
sqr(
sin(1.267*ldm*L/E));
40 if(
abs(flavAfter) == 12 &&
abs(flavBefore) == 12){
42 return 1-ss2t13*
sqr(
sin(1.267*ldm*L/E));
44 if(
abs(flavAfter) == 14 &&
abs(flavBefore) == 12){
46 return ss2t13*ssth23*
sqr(
sin(1.267*ldm*L/E));
48 if(
abs(flavAfter) == 16 &&
abs(flavBefore) == 14){
50 return (1-ss2t13)*ss2t23*
sqr(
sin(1.267*ldm*L/E));
52 if(
abs(flavAfter) == 16 &&
abs(flavBefore) == 12){
56 if(
abs(flavAfter) == 16 &&
abs(flavBefore) == 16){
58 return 1-(ss2t23-ss2t23*ss2t13+ss2t13-ss2t13*
ssth23)*
sqr(
sin(1.267*ldm*L/E));
66 template<
class T>
T sqr(
T x)
const{
return x*
x;}
General interface to oscillation calculators.
virtual double P(int flavBefore, int flavAfter, double E) override
E in GeV; flavors as PDG codes (so, neg==>antinu)
static constexpr double L
Simple oscillation probability calculator that has no solar term or mass hierarchy or delta so it's s...
Oscillation probability calculators.
virtual T P(int flavBefore, int flavAfter, double E)=0
E in GeV; flavors as PDG codes (so, neg==>antinu)
virtual IOscCalc * Copy() const override