Public Member Functions | List of all members
osc::_IOscCalc< T > Class Template Referenceabstract

General interface to oscillation calculators. More...

#include "/cvmfs/nova-development.opensciencegrid.org/novasoft/releases/N21-04-17/CAFAna/Core/StanTypedefs.h"

Inheritance diagram for osc::_IOscCalc< T >:
osc::_IOscCalcAdjustable< double > osc::_IOscCalcAdjustable< T > osc::_NoOscillations< T > osc::OscCalcDumb osc::OscCalc osc::OscCalcGeneral osc::OscCalcPMNS_NSI osc::OscCalcPMNSOptEigen osc::_OscCalcDMP< T > osc::_OscCalcPMNS< T > osc::_OscCalcPMNSOpt< T > osc::analytic::_OscCalc< T > osc::OscCalcCPT osc::OscCalcPMNS_CPT osc::OscCalcSterile

Public Member Functions

virtual ~_IOscCalc ()
 
virtual _IOscCalcCopy () const =0
 
virtual T P (int flavBefore, int flavAfter, double E)=0
 E in GeV; flavors as PDG codes (so, neg==>antinu) 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)
 
virtual TMD5 * GetParamsHash () const
 Use to check two calculators are in the same state. More...
 

Detailed Description

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

General interface to oscillation calculators.

Definition at line 23 of file StanTypedefs.h.

Constructor & Destructor Documentation

template<typename T>
virtual osc::_IOscCalc< T >::~_IOscCalc ( )
inlinevirtual

Definition at line 23 of file IOscCalc.h.

References osc::_IOscCalc< T >::Copy(), E, osc::_IOscCalc< T >::P(), and T.

23 {}

Member Function Documentation

template<typename T>
virtual _IOscCalc* osc::_IOscCalc< T >::Copy ( ) const
pure virtual
template<typename T>
virtual TMD5* osc::_IOscCalc< T >::GetParamsHash ( ) const
inlinevirtual
template<typename T>
virtual T osc::_IOscCalc< T >::P ( int  flavBefore,
int  flavAfter,
double  E 
)
pure virtual
template<class T >
Eigen::Array< T, Eigen::Dynamic, 1 > osc::_IOscCalc< T >::P ( int  flavBefore,
int  flavAfter,
const std::vector< double > &  E 
)
virtual

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 25 of file IOscCalc.cxx.

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

26  {
27  Eigen::Matrix<T,Eigen::Dynamic,1> ret(E.size());
28  for(auto i = 0u; i < E.size(); i++) {
29  ret(i) = this->P(flavBefore, flavAfter, E[i]);
30  }
31  return ret.array().isNaN().select(0, ret);
32  }
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 
)
virtual

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 35 of file IOscCalc.cxx.

References P.

36  {
37  return P(flavBefore, flavAfter, std::vector<double>(&E[0], &E[0]+E.size()));
38  }
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)

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