Public Member Functions | List of all members
osc::_NoOscillations< T > Class Template Reference

Pass neutrinos through unchanged. More...

#include "/cvmfs/nova.opensciencegrid.org/externals/osclib/v00.07/src/OscLib/IOscCalc.h"

Inheritance diagram for osc::_NoOscillations< T >:
osc::_IOscCalc< T >

Public Member Functions

virtual _IOscCalc< T > * Copy () const override
 
virtual T P (int from, int to, double) override
 E in GeV; flavors as PDG codes (so, neg==>antinu) More...
 
virtual TMD5 * GetParamsHash () const override
 Always compare equal to self. More...
 
virtual Eigen::Array< T, Eigen::Dynamic, 1 > P (int flavBefore, int flavAfter, const std::vector< double > &E)
 
virtual Eigen::Array< T, Eigen::Dynamic, 1 > P (int flavBefore, int flavAfter, const Eigen::ArrayXd &E)
 

Detailed Description

template<typename T>
class osc::_NoOscillations< T >

Pass neutrinos through unchanged.

Definition at line 45 of file IOscCalc.h.

Member Function Documentation

template<typename T >
virtual _IOscCalc<T>* osc::_NoOscillations< T >::Copy ( ) const
inlineoverridevirtual
template<typename T >
virtual TMD5* osc::_NoOscillations< T >::GetParamsHash ( ) const
inlineoverridevirtual

Always compare equal to self.

Reimplemented from osc::_IOscCalc< T >.

Definition at line 58 of file IOscCalc.h.

References runNovaSAM::ret.

59  {
60  TMD5* ret = new TMD5;
61  const char* txt = "NoOscillations";
62  ret->Update((unsigned char*)txt, strlen(txt));
63  ret->Final();
64  return ret;
65  }
template<class T >
Eigen::Array< T, Eigen::Dynamic, 1 > osc::_IOscCalc< T >::P ( int  flavBefore,
int  flavAfter,
const std::vector< double > &  E 
)
virtualinherited

Default implementation forwards to non-vector version using a simple loop. Override if your calculator has a more efficient implementation.

Reimplemented in osc::analytic::_OscCalc< T >, osc::OscCalcPMNSOptEigen, and osc::_OscCalcDMP< T >.

Definition at line 27 of file IOscCalc.cxx.

References MECModelEnuComparisons::i, osc::_IOscCalc< T >::P(), runNovaSAM::ret, and submit_hadd::u.

Referenced by osc::_IOscCalc< T >::P().

28  {
29  Eigen::Matrix<T,Eigen::Dynamic,1> ret(E.size());
30  for(auto i = 0u; i < E.size(); i++) {
31  ret(i) = this->P(flavBefore, flavAfter, E[i]);
32  }
33  return ret.array().isNaN().select(0, ret);
34  }
Float_t E
Definition: plot.C:20
virtual T P(int flavBefore, int flavAfter, double E)=0
E in GeV; flavors as PDG codes (so, neg==>antinu)
template<class T >
Eigen::Array< T, Eigen::Dynamic, 1 > osc::_IOscCalc< T >::P ( int  flavBefore,
int  flavAfter,
const Eigen::ArrayXd &  E 
)
virtualinherited

Default implementation forawrds to vector<double> version. Override if your calculator has a more efficient implementation.

Reimplemented in osc::analytic::_OscCalc< T >.

Definition at line 37 of file IOscCalc.cxx.

References P.

38  {
39  return P(flavBefore, flavAfter, std::vector<double>(&E[0], &E[0]+E.size()));
40  }
Float_t E
Definition: plot.C:20
virtual T P(int flavBefore, int flavAfter, double E)=0
E in GeV; flavors as PDG codes (so, neg==>antinu)
template<typename T >
virtual T osc::_NoOscillations< T >::P ( int  flavBefore,
int  flavAfter,
double  E 
)
inlineoverridevirtual

E in GeV; flavors as PDG codes (so, neg==>antinu)

Implements osc::_IOscCalc< T >.

Definition at line 51 of file IOscCalc.h.

52  {
53  if(from == to || to == 0) return 1;
54  return 0;
55  }

The documentation for this class was generated from the following file: