11 : fPMNS_Sterile(0), fNFlavors(3), fDirty(true), fPrevE(0), fPrevAnti(0), fPrevFlavBefore(0)
19 std::vector<double>
state;
22 state.push_back(
fRho);
25 for(
int i = 1;
i <
j; ++
i) {
39 SetL(state[iState++]);
43 for(
int i = 1;
i <
j; ++
i) {
63 ret->Update((
unsigned char*)txt.c_str(), txt.size());
64 std::vector<double> buf =
GetState();
65 ret->Update((
unsigned char*)&buf[0],
sizeof(
double)*buf.size());
157 const int anti = (flavBefore > 0) ? +1 : -1;
159 assert(flavAfter/anti >= 0);
170 if(
abs(flavBefore) == 12) i = 0;
171 if(
abs(flavBefore) == 14) i = 1;
172 if(
abs(flavBefore) == 16) i = 2;
173 if(
abs(flavAfter) == 12)
j = 0;
174 if(
abs(flavAfter) == 14)
j = 1;
175 if(
abs(flavAfter) == 16)
j = 2;
176 if(
abs(flavAfter) == 0)
j = 3;
182 const double Ne =
fRho/2;
231 if (calc_trivial)
return calc_trivial;
233 if(calc_sterile)
return calc_sterile;
243 if (calc_trivial)
return calc_trivial;
245 if(calc_sterile)
return calc_sterile;
virtual ~OscCalcSterile()
void SetState(std::vector< double > state)
double GetDelta(int i, int j) const
void SetNFlavors(int nflavors)
virtual void SetDelta(int i, int j, double delta)
virtual void SetAngle(int i, int j, double th)
virtual double P(int flv) const
virtual void SetTh12(const double &th12) override
virtual void PropMatter(double L, double E, double Ne, int anti=1)
virtual IOscCalcAdjustable * Copy() const override
General interface to oscillation calculators.
void SetDelta(int i, int j, double delta)
virtual void SetDm(int i, double dm)
Adapt the PMNS_Sterile calculator to standard interface.
Version of OscCalcSterile that always returns probability of 1.
virtual double P(int flavBefore, int flavAfter, double E) override
E in GeV; flavors as PDG codes (so, neg==>antinu)
virtual TMD5 * GetParamsHash() const override
Use to check two calculators are in the same state.
virtual void SetdCP(const double &dCP) override
PMNS_Sterile * fPMNS_Sterile
std::vector< double > GetState() const
virtual void SetDmsq21(const double &dmsq21) override
virtual void ResetToFlavour(int flv=1)
virtual double P(int flavBefore, int flavAfter, double E) override
E in GeV; flavors as PDG codes (so, neg==>antinu)
Oscillation probability calculators.
const OscCalcSterile * DowncastToSterile(const IOscCalc *calc)
virtual void SetTh13(const double &th13) override
void SetAngle(int i, int j, double th)
void SetDm(int i, double dm)
virtual void SetL(double L) override
virtual void SetRho(double rho) override
assert(nhit_max >=nhit_nbins)
double GetDm(int i) const
virtual void SetDmsq32(const double &dmsq32) override
virtual void SetTh23(const double &th23) override
double GetAngle(int i, int j) const
virtual IOscCalcAdjustable * Copy() const override