Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

NCOscProb.h File Reference

#include <cassert>
#include <vector>
#include <stdexcept>
#include <iostream>
#include "NCUtils/NCType.h"
#include "NCUtils/NCUtility.h"

Go to the source code of this file.

Namespaces

namespace  NC
namespace  NC::OscProb

Classes

class  NC::OscProb::SafeDouble
 Wrap a double so that use of it uninitialized is detected. More...
class  NC::OscProb::OscPars
 Base class for the various oscillation models. More...
class  NC::OscProb::NoOscillations
 No neutrino oscillations occur. More...
class  NC::OscProb::ThreeFlavor
 For oscillation model kThreeFlavor. More...
class  NC::OscProb::SterileFraction
 For oscillation model kSterileFraction. More...
class  NC::OscProb::SterileFractionTauNorm
 The sterile fraction model, with an additional parameter to scale the CC tau contribution. See docdb 5431. More...
class  NC::OscProb::FourFlavorBase
 Implements a generalized mixing matrix. More...
class  NC::OscProb::FourFlavorGeneral
 The general case, all parameters are adjustable. More...
class  NC::OscProb::FourFlavorDelta43Is0
 Specialized for the case that $ m_4 = m_3 $. More...
class  NC::OscProb::FourFlavorDelta41Is0
 Specialized for the case that $ m_4 = m_1 $. More...
class  NC::OscProb::FourFlavorDelta43IsBig
 Specialized for the case that $ m_4 \gg m_3 $. More...
class  NC::OscProb::Decay
 A model with a combination of oscillations and decay. More...
class  NC::OscProb::Decoherence
 The decoherence model used by the CC group. More...

Defines

#define OSCPARS_EXPOSE(var)
 Implement a getter and setter for a particular variable.
#define OSCPARS_EXPOSEDELTAMSQR(var)
#define OSCPARS_DEFAULTCLONE
 Implement the Clone() function.

Functions

NCType::EOscMode ToOscMode (int from, int to)
 Get correct NCType::EOscMode enumeration value from a pair of PDG codes from and to.
std::ostream & operator<< (std::ostream &os, const OscPars &rhs)
double OscProbFs (double ssDeltaMSqr31, double amu, double fs, double ae, int oscMode)
 Helper function for SterileFraction model.
double FindSinSqrDeltaMSqr (double energy, double baseline, double deltaMSqr)
 The $ \Delta m^2 $ term in the oscillation formula.

Variables

const double kUninitialized = 0xDEADBEEF
 Special-value for use in SafeDouble.


Define Documentation

#define OSCPARS_DEFAULTCLONE
 

Value:

virtual OscPars* Clone()                \
{                                       \
  typeof(this) ret = new typeof(*this); \
  *ret = *this;                         \
  return ret;                           \
}
Implement the Clone() function.

Definition at line 157 of file NCOscProb.h.

#define OSCPARS_EXPOSE var   ) 
 

Value:

public:                                                      \
  virtual double var() const {return fVals[NCType::k##var];} \
  SafeDouble& var() {return fVals[NCType::k##var];}
Implement a getter and setter for a particular variable.

Definition at line 130 of file NCOscProb.h.

#define OSCPARS_EXPOSEDELTAMSQR var   ) 
 

Value:

public:                                                               \
  virtual double DeltaMSqr##var() const                               \
  {return fVals[NCType::kDeltaMSqr##var];}                            \
  SafeDouble& DeltaMSqr##var()                                        \
  {return fVals[NCType::kDeltaMSqr##var];}                            \
protected:                                                            \
  virtual double sinSqrDelta##var() const                             \
  {                                                                   \
    return NC::Utility::SQR(TMath::Sin(NCType::k127*                  \
                            fVals[NCType::kDeltaMSqr##var]*fLoverE)); \
  }                                                                   \
  virtual double sin2Delta##var() const                               \
  {                                                                   \
    return TMath::Sin(2*NCType::k127*                                 \
                      fVals[NCType::kDeltaMSqr##var]*fLoverE);        \
  }
Implement a visible variable DeltaMSqr* with getter and setter and code to calculate sinSqrDelta* and sin2Delta*

Definition at line 138 of file NCOscProb.h.


Function Documentation

double NC::OscProb::FindSinSqrDeltaMSqr double  energy,
double  baseline,
double  deltaMSqr
 

The $ \Delta m^2 $ term in the oscillation formula.

\[ \sin^2\left(1.267{\Delta m^2L\over E}\right) \]

Definition at line 197 of file NCOscProb.cxx.

References SQR().

Referenced by NC::OscProb::SterileFractionTauNorm::TransitionProbability(), and NC::OscProb::SterileFraction::TransitionProbability().

00198 {
00199   return SQR(TMath::Sin(NCType::k127*L/E*dmsq));
00200 }

std::ostream & NC::OscProb::operator<< std::ostream &  os,
const OscPars &  rhs
 

Definition at line 63 of file NCOscProb.cxx.

References NC::OscProb::OscPars::Print().

00065 {
00066   return rhs.Print(os);
00067 }

double NC::OscProb::OscProbFs double  ssDeltaMSqr31,
double  amu,
double  fs,
double  ae,
int  oscMode
 

Helper function for SterileFraction model.

Definition at line 70 of file NCOscProb.cxx.

Referenced by NC::OscProb::SterileFractionTauNorm::TransitionProbability(), and NC::OscProb::SterileFraction::TransitionProbability().

00075 {
00076   switch(oscMode){
00077   case NCType::kNuMuToNuMu: return 1. - amu*ssDeltaMSqr31;
00078   case NCType::kNuMuToNuS: return fs*amu*ssDeltaMSqr31;
00079   case NCType::kNuMuToNuE: return ae*ssDeltaMSqr31;
00080   case NCType::kNuMuToNuTau: return (amu*(1.-fs)-ae)*ssDeltaMSqr31;
00081   case NCType::kNuEToNuE: return 1;
00082   default:
00083     assert(0 && "Bad oscMode");
00084   }
00085 }

NCType::EOscMode NC::OscProb::ToOscMode int  from,
int  to
 

Get correct NCType::EOscMode enumeration value from a pair of PDG codes from and to.

Use a PDG code of zero to represent a sterile neutrino. Will convert codes for antiparticles, or the charged leptons to the corresponding neutrino

Definition at line 203 of file NCOscProb.cxx.

Referenced by NC::OscProb::OscPars::TransitionProbability().

00204 {
00205   // Use the same oscillation designators for antiparticle oscillations
00206   if(from < 0) from *= -1;
00207   if(to < 0) to *= -1;
00208 
00209   // Translate e to nue, mu to numu, tau to nutau
00210   if(from%2) ++from;
00211   if(to%2) ++to;
00212 
00213   if(from == 14 && to == 14) return NCType::kNuMuToNuMu;
00214   if(from == 14 && to == 16) return NCType::kNuMuToNuTau;
00215   if(from == 14 && to == 12) return NCType::kNuMuToNuE;
00216   if(from == 14 && to ==  0) return NCType::kNuMuToNuS;
00217   if(from == 12 && to == 12) return NCType::kNuEToNuE;
00218 
00219   assert(0 && "Don't have an enum for this oscillation mode");
00220 }


Variable Documentation

const double NC::OscProb::kUninitialized = 0xDEADBEEF
 

Special-value for use in SafeDouble.

Definition at line 28 of file NCOscProb.h.

Referenced by NC::OscProb::SafeDouble::SafeDouble().


Generated on Mon Feb 15 11:08:06 2010 for loon by  doxygen 1.3.9.1