OscFit::OscillationCalculator Class Reference

#include <OscillationCalculator.h>

List of all members.

Public Member Functions

void UseFastPropagator (bool yesno=true)
void SetPMNS (double dmsq12, double dmsq23, double theta12, double theta23, double theta13, double deltaCP)
void PrintPMNS ()
void ResetWithNewFlavour (int inu)
void PropMatter (double L, double E, double Ne, int anti)
void PropVacuum (double L, double E, int anti)
double OscProb (int inu, int jnu)

Static Public Member Functions

static OscillationCalculatorInstance ()

Private Member Functions

 OscillationCalculator ()
virtual ~OscillationCalculator ()

Private Attributes

bool fUseFastPropagator
int fInitFlavour
OscProb::PMNS fPMNS
OscProb::PMNS_Fast fPMNSFast

Detailed Description

Definition at line 10 of file OscillationCalculator.h.


Constructor & Destructor Documentation

OscillationCalculator::OscillationCalculator (  )  [private]

Definition at line 20 of file OscillationCalculator.cxx.

References fInitFlavour, fUseFastPropagator, and UseFastPropagator().

Referenced by Instance().

00021 {
00022   // which propagator
00023   fUseFastPropagator = 0;
00024  
00025   // set an initial flavour
00026   fInitFlavour = 1;
00027 
00028   // use fast propagator by default
00029   this->UseFastPropagator(true);
00030 }

OscillationCalculator::~OscillationCalculator (  )  [private, virtual]

Definition at line 32 of file OscillationCalculator.cxx.

00033 {
00034 
00035 }


Member Function Documentation

OscillationCalculator * OscillationCalculator::Instance (  )  [static]

Definition at line 11 of file OscillationCalculator.cxx.

References OscillationCalculator().

00012 {
00013   if( !fgOscillationCalculator ){
00014     fgOscillationCalculator = new OscillationCalculator();
00015   }
00016 
00017   return fgOscillationCalculator;
00018 }

double OscillationCalculator::OscProb ( int  inu,
int  jnu 
)

Definition at line 115 of file OscillationCalculator.cxx.

References fInitFlavour, fPMNS, fPMNSFast, fUseFastPropagator, OscProb::PMNS::P(), and OscProb::PMNS_Base::P().

00116 {
00117   // Check initial flavour
00118   // =====================
00119   if( inu != fInitFlavour ){
00120     return 0.0;
00121   }
00122   
00123   // Fast Propagator
00124   // ===============
00125   if( fUseFastPropagator ){
00126     return fPMNSFast.P( jnu );
00127   }
00128 
00129   // Default Propagator
00130   // ==================
00131   else{
00132     return fPMNS.P( inu, jnu );
00133   }
00134 
00135   // No oscillations
00136   // ===============
00137   if( inu==jnu ) return 1.0; 
00138   else return 0.0;
00139 }

void OscillationCalculator::PrintPMNS (  ) 

Definition at line 65 of file OscillationCalculator.cxx.

References fPMNS, OscProb::PMNS::PrintDeltaMsqrs(), and OscProb::PMNS::PrintMix().

00066 {
00067   // Print Oscillation Parameters
00068   fPMNS.PrintMix(); 
00069   fPMNS.PrintDeltaMsqrs();
00070 }

void OscillationCalculator::PropMatter ( double  L,
double  E,
double  Ne,
int  anti 
)

Definition at line 85 of file OscillationCalculator.cxx.

References fPMNS, fPMNSFast, fUseFastPropagator, OscProb::PMNS::PropMatter(), and OscProb::PMNS_Base::PropMatter().

00086 {
00087   // Fast Propagator
00088   // ===============
00089   if( fUseFastPropagator ){
00090     fPMNSFast.PropMatter( L, E, Ne, anti );
00091   }
00092 
00093   // Default Propagator
00094   // ==================
00095   else{
00096     fPMNS.PropMatter( L, E, Ne, anti );
00097   }
00098 }

void OscillationCalculator::PropVacuum ( double  L,
double  E,
int  anti 
)

Definition at line 100 of file OscillationCalculator.cxx.

References fPMNS, fPMNSFast, fUseFastPropagator, OscProb::PMNS::PropVacuum(), and OscProb::PMNS_Fast::PropVacuum().

00101 {
00102   // Fast Propagator
00103   // ===============
00104   if( fUseFastPropagator ){
00105     fPMNSFast.PropVacuum( L, E, anti );
00106   }
00107 
00108   // Default Propagator
00109   // ==================
00110   else{
00111     fPMNS.PropVacuum( L, E, anti );
00112   }
00113 }

void OscillationCalculator::ResetWithNewFlavour ( int  inu  ) 

Definition at line 72 of file OscillationCalculator.cxx.

References fInitFlavour, fPMNS, fPMNSFast, fUseFastPropagator, OscProb::PMNS::Reset(), and OscProb::PMNS_Base::ResetToFlavour().

00073 {
00074   // Reset state vectors
00075   fInitFlavour = inu;
00076 
00077   if( fUseFastPropagator ){
00078     fPMNSFast.ResetToFlavour(inu);
00079   }
00080   else{
00081     fPMNS.Reset();  
00082   }
00083 }

void OscillationCalculator::SetPMNS ( double  dmsq12,
double  dmsq23,
double  theta12,
double  theta23,
double  theta13,
double  deltaCP 
)

Definition at line 52 of file OscillationCalculator.cxx.

References fPMNS, fPMNSFast, OscProb::PMNS::Reset(), OscProb::PMNS_Base::ResetToFlavour(), OscProb::PMNS::SetDeltaMsqrs(), OscProb::PMNS_Fast::SetDeltaMsqrs(), OscProb::PMNS::SetMix(), and OscProb::PMNS_Fast::SetMix().

00053 {
00054   // Fast Propagator
00055   fPMNSFast.ResetToFlavour();
00056   fPMNSFast.SetDeltaMsqrs( dmsq12, dmsq23 );
00057   fPMNSFast.SetMix( theta12, theta23, theta13, deltaCP );
00058 
00059   // Default Propagator
00060   fPMNS.Reset();
00061   fPMNS.SetDeltaMsqrs( dmsq12, dmsq23 );
00062   fPMNS.SetMix( theta12, theta23, theta13, deltaCP );
00063 }

void OscillationCalculator::UseFastPropagator ( bool  yesno = true  ) 

Definition at line 37 of file OscillationCalculator.cxx.

References fUseFastPropagator.

Referenced by OscillationCalculator().

00038 {
00039   // which propagator
00040   if( yesno != fUseFastPropagator ){
00041     fUseFastPropagator = yesno;
00042 
00043     if( fUseFastPropagator ){
00044       std::cout << " *** OscillationCalculator::UseFastPropagator(true) *** " << std::endl;
00045     }
00046     else{
00047       std::cout << " *** OscillationCalculator::UseFastPropagator(false) *** " << std::endl;
00048     }
00049   }
00050 }


Member Data Documentation

Definition at line 39 of file OscillationCalculator.h.

Referenced by OscillationCalculator(), OscProb(), and ResetWithNewFlavour().

Definition at line 45 of file OscillationCalculator.h.

Referenced by OscProb(), PropMatter(), PropVacuum(), ResetWithNewFlavour(), and SetPMNS().


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

Generated on 13 Dec 2018 for loon by  doxygen 1.6.1