AtNuOscillate Class Reference

#include <AtNuOscillate.h>

List of all members.

Public Member Functions

 AtNuOscillate ()
 ~AtNuOscillate ()
OscProb::PMNS GetPMNS ()
void SetDMSq12 (double d)
double GetDMSq12 ()
void SetDMSq23 (double d)
double GetDMSq23 ()
void SetTheta23 (double d)
double GetTheta23 ()
void SetSinSq2Theta12 (double d)
double GetSinSq2Theta12 ()
void SetSinSq2Theta23 (double d)
double GetSinSq2Theta23 ()
void SetSinSq2Theta13 (double d)
double GetSinSq2Theta13 ()
void SetDeltaCP (double d)
double GetDeltaCP ()
void DoMatterEffects (bool b=true)
void SetInnerCoreRadius (double d)
double GetInnerCoreRadius ()
void SetInnerCoreNe (double d)
double GetInnerCoreNe ()
void SetOuterCoreRadius (double d)
double GetOuterCoreRadius ()
void SetOuterCoreNe (double d)
double GetOuterCoreNe ()
void SetMantleRadius (double d)
double GetMantleRadius ()
void SetMantleNe (double d)
double GetMantleNe ()
void SetCrustNe (double d)
double GetCrustNe ()
void SetAtmosphereNe (double d)
double GetAtmosphereNe ()
void SetPMNS ()
int ProdHeightMethod ()
void ProdHeightMethod (int i)
int ParentIDnu ()
void ParentIDnu (int i)
double ProductionHeight (double CosZenith, double Energy)
double ProductionHeight (int ParentIDnu, double CosZenith, double Energy)
double NuLength (double CosZenith, double Energy=0)
void PropagateAtNu (double CosZenith, double Energy, int Anti)
void PropagateAtNuVacuum (double CosZenith, double Energy, int Anti)
void PropagateAtNuMatter (double CosZenith, double Energy, int Anti)
void PropagateAtNu (double CosZenith, double Energy, double Height, int Anti)
void PropagateAtNuVacuum (double CosZenith, double Energy, double Height, int Anti)
void PropagateAtNuMatter (double CosZenith, double Energy, double Height, int Anti)
double OscProb (int inu, int jnu)
double OscProb (int ipdg, int jpdg, double CosZenith, double Energy)
double OscProb (int ipdg, int jpdg, double CosZenith, double Energy, double Height)

Static Public Member Functions

static double ProductionHeight (int ProdHeightMethod, int ParentIDnu, double CosZenith, double Energy)
static double PropagationLength (double CosZenith, double ProdHeight)
static double PropagationLength (int ProdHeightMethod, int ParentIDnu, double CosZenith, double Energy)

Private Attributes

double fDMSq12
double fDMSq23
double fTheta23
double fSinSq2Theta12
double fSinSq2Theta23
double fSinSq2Theta13
double fDeltaCP
OscProb::PMNS fPMNS
int fProdHeightMethod
int fParentIDnu
bool fMatterEffects
double fInnerCoreRadius
double fInnerCoreNe
double fOuterCoreRadius
double fOuterCoreNe
double fMantleRadius
double fMantleNe
double fCrustNe
double fAtmosphereNe

Detailed Description

Definition at line 6 of file AtNuOscillate.h.


Constructor & Destructor Documentation

AtNuOscillate::AtNuOscillate (  ) 

Definition at line 12 of file AtNuOscillate.cxx.

References fAtmosphereNe, fCrustNe, fDeltaCP, fDMSq12, fDMSq23, fInnerCoreNe, fInnerCoreRadius, fMantleNe, fMantleRadius, fMatterEffects, fOuterCoreNe, fOuterCoreRadius, fParentIDnu, fProdHeightMethod, fSinSq2Theta12, fSinSq2Theta13, fSinSq2Theta23, fTheta23, and SetPMNS().

00013 {
00014   fDMSq12 = 8.0e-5;
00015   fDMSq23 = 2.5e-3;
00016 
00017   fSinSq2Theta12 = 0.75;
00018   fSinSq2Theta23 = 1.00;
00019   fSinSq2Theta13 = 0.00;
00020   fDeltaCP = 0.00;
00021 
00022   fTheta23 = -999;
00023 
00024   SetPMNS();
00025 
00026   fProdHeightMethod = 1;
00027   fParentIDnu = 0;
00028 
00029   fMatterEffects = true;
00030   fInnerCoreRadius = 1220;
00031   fInnerCoreNe = 6.05;
00032   fOuterCoreRadius = 3470;
00033   fOuterCoreNe = 5.205;
00034   fMantleRadius = 6336;
00035   fMantleNe = 2.215;
00036   fCrustNe = 1.470;
00037   fAtmosphereNe = 6.0e-4;
00038 }

AtNuOscillate::~AtNuOscillate (  )  [inline]

Definition at line 10 of file AtNuOscillate.h.

00010 {;}


Member Function Documentation

void AtNuOscillate::DoMatterEffects ( bool  b = true  )  [inline]

Definition at line 36 of file AtNuOscillate.h.

References fMatterEffects.

Referenced by AtNuEventCounter::AddData().

00036 {fMatterEffects=b;}

double AtNuOscillate::GetAtmosphereNe (  )  [inline]

Definition at line 61 of file AtNuOscillate.h.

References fAtmosphereNe.

00061 {return fAtmosphereNe;}

double AtNuOscillate::GetCrustNe (  )  [inline]

Definition at line 58 of file AtNuOscillate.h.

References fCrustNe.

00058 {return fCrustNe;} 

double AtNuOscillate::GetDeltaCP (  )  [inline]

Definition at line 34 of file AtNuOscillate.h.

References fDeltaCP.

00034 {return fDeltaCP;}

double AtNuOscillate::GetDMSq12 (  )  [inline]

Definition at line 15 of file AtNuOscillate.h.

References fDMSq12.

00015 {return fDMSq12;}

double AtNuOscillate::GetDMSq23 (  )  [inline]

Definition at line 18 of file AtNuOscillate.h.

References fDMSq23.

00018 {return fDMSq23;}

double AtNuOscillate::GetInnerCoreNe (  )  [inline]

Definition at line 43 of file AtNuOscillate.h.

References fInnerCoreNe.

00043 {return fInnerCoreNe;} 

double AtNuOscillate::GetInnerCoreRadius (  )  [inline]

Definition at line 40 of file AtNuOscillate.h.

References fInnerCoreRadius.

00040 {return fInnerCoreRadius;} 

double AtNuOscillate::GetMantleNe (  )  [inline]

Definition at line 55 of file AtNuOscillate.h.

References fMantleNe.

00055 {return fMantleNe;} 

double AtNuOscillate::GetMantleRadius (  )  [inline]

Definition at line 52 of file AtNuOscillate.h.

References fMantleRadius.

00052 {return fMantleRadius;} 

double AtNuOscillate::GetOuterCoreNe (  )  [inline]

Definition at line 49 of file AtNuOscillate.h.

References fOuterCoreNe.

00049 {return fOuterCoreNe;} 

double AtNuOscillate::GetOuterCoreRadius (  )  [inline]

Definition at line 46 of file AtNuOscillate.h.

References fOuterCoreRadius.

00046 {return fOuterCoreRadius;} 

OscProb::PMNS AtNuOscillate::GetPMNS (  )  [inline]

Definition at line 12 of file AtNuOscillate.h.

References fPMNS.

00012 {return fPMNS;}

double AtNuOscillate::GetSinSq2Theta12 (  )  [inline]

Definition at line 25 of file AtNuOscillate.h.

References fSinSq2Theta12.

00025 {return fSinSq2Theta12;}

double AtNuOscillate::GetSinSq2Theta13 (  )  [inline]

Definition at line 31 of file AtNuOscillate.h.

References fSinSq2Theta13.

00031 {return fSinSq2Theta13;}

double AtNuOscillate::GetSinSq2Theta23 (  )  [inline]

Definition at line 28 of file AtNuOscillate.h.

References fSinSq2Theta23.

00028 {return fSinSq2Theta23;}

double AtNuOscillate::GetTheta23 (  )  [inline]

Definition at line 21 of file AtNuOscillate.h.

References fTheta23.

00021 {return fTheta23;}

double AtNuOscillate::NuLength ( double  CosZenith,
double  Energy = 0 
)

Definition at line 175 of file AtNuOscillate.cxx.

References ProductionHeight(), and PropagationLength().

00176 {
00177   double ProdHeight = this->ProductionHeight(CosZenith, Energy);
00178   return this->PropagationLength(CosZenith, ProdHeight);
00179 }

double AtNuOscillate::OscProb ( int  ipdg,
int  jpdg,
double  CosZenith,
double  Energy,
double  Height 
)

Definition at line 63 of file AtNuOscillate.cxx.

References OscProb(), and PropagateAtNu().

00064 {  
00065   // reject nu<->nubar transitions
00066   if( ( ipdg>0 && jpdg<0 )
00067    || ( ipdg<0 && jpdg>0 ) ){
00068     return 0.0;
00069   }
00070 
00071   // neutrino or anti-neutrino
00072   int Anti = (ipdg>=0)?+1:-1;
00073 
00074   // PDG->PMNS code conversion
00075   int inu = -1;
00076   if( fabs(ipdg)==12 ) inu = 0;
00077   if( fabs(ipdg)==14 ) inu = 1;
00078   if( fabs(ipdg)==16 ) inu = 2; 
00079 
00080   int jnu = -1;
00081   if( fabs(jpdg)==12 ) jnu = 0;
00082   if( fabs(jpdg)==14 ) jnu = 1;
00083   if( fabs(jpdg)==16 ) jnu = 2;
00084 
00085   // propagate neutrino
00086   this->PropagateAtNu(CosZenith, Energy, Height, Anti);
00087 
00088   // return oscillation probability
00089   return this->OscProb(inu,jnu);
00090 }

double AtNuOscillate::OscProb ( int  ipdg,
int  jpdg,
double  CosZenith,
double  Energy 
)

Definition at line 57 of file AtNuOscillate.cxx.

References OscProb(), and ProductionHeight().

00058 {
00059   double ProdHeight = this->ProductionHeight(ipdg, CosZenith, Energy);
00060   return this->OscProb(ipdg, jpdg, CosZenith, Energy, ProdHeight);
00061 }

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

Definition at line 92 of file AtNuOscillate.cxx.

References fPMNS, and OscProb::PMNS::P().

Referenced by AtNuEventCounter::AddData(), and OscProb().

00093 {
00094   // oscillation probability
00095   if( ( inu>=0 && inu<=2 )
00096   &&  ( jnu>=0 && jnu<=2 ) ){
00097     double prob = fPMNS.P(inu,jnu);
00098     if( isnan(prob) ){            // need to protect against NaN
00099       if( inu==jnu ) return 1.0;  //  if OscProb=NaN, return probability
00100       else return 0.0;            //  for case of no oscillations
00101     }
00102     return prob;
00103   }
00104 
00105   // sanity check
00106   if( inu==jnu ) return 1.0;
00107   else return 0.0;
00108 }

void AtNuOscillate::ParentIDnu ( int  i  )  [inline]

Definition at line 69 of file AtNuOscillate.h.

References fParentIDnu.

00069 {fParentIDnu=i;}

int AtNuOscillate::ParentIDnu (  )  [inline]

Definition at line 68 of file AtNuOscillate.h.

References fParentIDnu.

00068 {return fParentIDnu;}

void AtNuOscillate::ProdHeightMethod ( int  i  )  [inline]

Definition at line 66 of file AtNuOscillate.h.

References fProdHeightMethod.

00066 {fProdHeightMethod=i;}

int AtNuOscillate::ProdHeightMethod (  )  [inline]

Definition at line 65 of file AtNuOscillate.h.

References fProdHeightMethod.

00065 {return fProdHeightMethod;}

double AtNuOscillate::ProductionHeight ( int  ProdHeightMethod,
int  ParentIDnu,
double  CosZenith,
double  Energy 
) [static]

Definition at line 132 of file AtNuOscillate.cxx.

References AtNuOsc::FlatProdHeight(), AtNuOsc::MeanMuonProdHeight(), AtNuOsc::MeanPionProdHeight(), AtNuOsc::PDFMeanMuonProdHeight(), AtNuOsc::PDFMeanPionProdHeight(), AtNuOsc::RndmMuonProdHeight(), and AtNuOsc::RndmPionProdHeight().

00133 {
00134   switch(ProdHeightMethod) {
00135     //case 0, return the flat production height
00136     case 0: return AtNuOsc::FlatProdHeight(); break;
00137 
00138     //case 1, return the mean production height
00139     case 1:
00140       //Electron Neutrinos are produced just by muon decay;
00141       if(abs(ParentIDnu) == 12)
00142         return(AtNuOsc::MeanMuonProdHeight(CosZenith, Energy));
00143 
00144       //Muon Neutrinos are produced by either muon or pion decay;
00145       return ( (AtNuOsc::MeanPionProdHeight(CosZenith, Energy) +
00146                 AtNuOsc::MeanMuonProdHeight(CosZenith, Energy))/2);
00147       break;
00148 
00149     //case 2, return a random production height
00150     case 2:
00151       //Electron neutrinos, and half of muon neutrino come from muon decay
00152       if(abs(ParentIDnu) == 12 || gRandom->Integer(2)==0)
00153         return(AtNuOsc::RndmMuonProdHeight(CosZenith, Energy));
00154 
00155       //The other half of muon neutrinos come from pion decay
00156       return(AtNuOsc::RndmPionProdHeight(CosZenith, Energy));
00157       break;
00158 
00159     //case 3, return the PDF mean production height
00160     case 3:
00161       //Electron neutrinos, and half of muon neutrino come from muon decay
00162       if(abs(ParentIDnu) == 12)
00163         return(AtNuOsc::PDFMeanMuonProdHeight(CosZenith, Energy));
00164 
00165       //The other half of muon neutrinos come from pion decay
00166       return ( (AtNuOsc::PDFMeanPionProdHeight(CosZenith, Energy) +
00167                 AtNuOsc::PDFMeanMuonProdHeight(CosZenith, Energy))/2);
00168       break;
00169 
00170     //default case, return the flat production height
00171     default: return AtNuOsc::FlatProdHeight(); break;
00172   }
00173 }

double AtNuOscillate::ProductionHeight ( int  ParentIDnu,
double  CosZenith,
double  Energy 
)

Definition at line 127 of file AtNuOscillate.cxx.

References fProdHeightMethod, and ProductionHeight().

00128 {
00129   return this->ProductionHeight(fProdHeightMethod,ParentIDnu,CosZenith,Energy);
00130 }

double AtNuOscillate::ProductionHeight ( double  CosZenith,
double  Energy 
)
void AtNuOscillate::PropagateAtNu ( double  CosZenith,
double  Energy,
double  Height,
int  Anti 
)

Definition at line 116 of file AtNuOscillate.cxx.

References fMatterEffects, PropagateAtNuMatter(), and PropagateAtNuVacuum().

00117 {
00118   if(fMatterEffects) PropagateAtNuMatter(CosZenith, Energy, Height, Anti);
00119   else PropagateAtNuVacuum(CosZenith, Energy, Height, Anti);
00120 }

void AtNuOscillate::PropagateAtNu ( double  CosZenith,
double  Energy,
int  Anti 
)

Definition at line 110 of file AtNuOscillate.cxx.

References fMatterEffects, PropagateAtNuMatter(), and PropagateAtNuVacuum().

Referenced by OscProb().

00111 {
00112   if(fMatterEffects) PropagateAtNuMatter(CosZenith, Energy, Anti);
00113   else PropagateAtNuVacuum(CosZenith, Energy, Anti);
00114 }

void AtNuOscillate::PropagateAtNuMatter ( double  CosZenith,
double  Energy,
double  Height,
int  Anti 
)

Definition at line 220 of file AtNuOscillate.cxx.

References EarthRadius, fAtmosphereNe, fCrustNe, fInnerCoreNe, fInnerCoreRadius, fMantleNe, fMantleRadius, fOuterCoreNe, fOuterCoreRadius, fPMNS, MineDepth, ProductionHeight(), PropagationLength(), OscProb::PMNS::PropMatter(), and OscProb::PMNS::Reset().

00221 {
00222   double NuL = this->PropagationLength(CosZenith, Height);
00223   
00224   fPMNS.Reset();
00225 
00226   double SinZenith = TMath::Sqrt(1.0 - (CosZenith*CosZenith));
00227   //Closest approach of the neutrino path to the center of the earth
00228   double RApproach = (EarthRadius-MineDepth) * SinZenith;
00229 
00230   double tProdHeight = this->ProductionHeight(CosZenith, Energy);
00231 
00232   //Chord between neutrino path and the sphere of the atmosphere
00233   double LAtmos = 2.0 * TMath::Sqrt( (EarthRadius+tProdHeight) * (EarthRadius+tProdHeight) -
00234                                      (RApproach * RApproach) );
00235 
00236   //Chord between neutrino path and the sphere of the Earth's crust
00237   double LCrust = 2.0 * TMath::Sqrt( (EarthRadius * EarthRadius) -
00238                                      (RApproach * RApproach) );
00239 
00240   //Distance Neutrino Travels through the atmosphere
00241   double NuLAtmos = (LAtmos-LCrust)/2.0;
00242 
00243   //Neutrinos that just go through the Earth's Crust
00244   if (CosZenith > 0 || RApproach >= fMantleRadius) {
00245 
00246     //Propagate through the Atmosphere    
00247     fPMNS.PropMatter(NuLAtmos, Energy, fAtmosphereNe, Anti);
00248     
00249     //Propagate through remaining portion of crust
00250     fPMNS.PropMatter(NuL- NuLAtmos, Energy, fCrustNe, Anti);
00251 
00252     return;
00253   }
00254 
00255   //Chord between neutrino path and the sphere of the Earth's mantle
00256   double LMantle = 2.0 * TMath::Sqrt((fMantleRadius*fMantleRadius) -
00257                                      (RApproach * RApproach));
00258 
00259   //Distance Neutrino Travels through the crust before hitting the mantle
00260   double NuLCrust = (LCrust-LMantle)/2.0;
00261 
00262   //Neutrinos that go through Earth's Mantle + Crust
00263   if (RApproach > fOuterCoreRadius) {
00264 
00265     //Propagate through the Atmosphere 
00266     fPMNS.PropMatter(NuLAtmos, Energy, fAtmosphereNe, Anti);
00267 
00268     //Propagate through crust (first time)
00269     fPMNS.PropMatter(NuLCrust, Energy, fCrustNe, Anti);
00270 
00271     //Propagate through mantle (only time)
00272     fPMNS.PropMatter(LMantle, Energy, fMantleNe, Anti);
00273 
00274     //Propagate through remaining portion of crust (second time)
00275     fPMNS.PropMatter(NuL-(NuLAtmos+NuLCrust+LMantle), Energy, fCrustNe, Anti);
00276 
00277     return;
00278   }
00279 
00280   //Chord between neutrino path and the sphere of the Earth's outer core
00281   double LOuterCore = 2.0 * TMath::Sqrt((fOuterCoreRadius*fOuterCoreRadius) -
00282                                         (RApproach * RApproach));
00283 
00284   //Distance Neutrino Travels through the mantle before hitting the outer core
00285   double NuLMantle = (LMantle-LOuterCore)/2.0;
00286 
00287   //Neutrinos that go through Earth's Mantle + Crust
00288   if (RApproach > fInnerCoreRadius) {
00289     //Propagate through the Atmosphere
00290     fPMNS.PropMatter(NuLAtmos, Energy, fAtmosphereNe, Anti);
00291 
00292     //Propagate through crust (first time)
00293     fPMNS.PropMatter(NuLCrust, Energy, fCrustNe, Anti);
00294 
00295     //Propagate through mantle (first time)
00296     fPMNS.PropMatter(NuLMantle, Energy, fMantleNe, Anti);
00297 
00298     //Propagate through outer core (only time)
00299     fPMNS.PropMatter(LOuterCore, Energy, fOuterCoreNe, Anti);
00300 
00301     //Propagate through mantle (second time)
00302     fPMNS.PropMatter(NuLMantle, Energy, fMantleNe, Anti);
00303 
00304     //Propagate through remaining portion of crust (second time)
00305     fPMNS.PropMatter(NuL - (NuLAtmos+NuLCrust+2*NuLMantle+LOuterCore),
00306       Energy, fCrustNe, Anti);
00307     return;
00308   }
00309 
00310   //Chord between neutrino path and the sphere of the Earth's outer core
00311   double LInnerCore = 2.0 * TMath::Sqrt((fInnerCoreRadius*fInnerCoreRadius) -
00312                                         (RApproach * RApproach));
00313 
00314   //Distance Neutrino Travels through the outer before hitting the inner core
00315   double NuLOuterCore = (LOuterCore-LInnerCore)/2.0;
00316 
00317   //Neutrinos that go through Earth's Mantle + Crust
00318   //Propagate through the Atmosphere
00319   fPMNS.PropMatter(NuLAtmos, Energy, fAtmosphereNe, Anti);
00320 
00321   //Propagate through crust (first time)
00322   fPMNS.PropMatter(NuLCrust, Energy, fCrustNe, Anti);
00323 
00324   //Propagate through mantle (first time)
00325   fPMNS.PropMatter(NuLMantle, Energy, fMantleNe, Anti);
00326 
00327   //Propagate through outer core (first time)
00328   fPMNS.PropMatter(NuLOuterCore, Energy, fOuterCoreNe, Anti);
00329 
00330   //Propagate through inner core (only time)
00331   fPMNS.PropMatter(LInnerCore, Energy, fInnerCoreNe, Anti);
00332 
00333   //Propagate through outer core (second time)
00334   fPMNS.PropMatter(NuLOuterCore, Energy, fOuterCoreNe, Anti);
00335 
00336   //Propagate through mantle (second time)
00337   fPMNS.PropMatter(NuLMantle, Energy, fMantleNe, Anti);
00338 
00339   //Propagate through remaining portion of crust (second time)
00340   fPMNS.PropMatter(
00341     NuL - (NuLAtmos+NuLCrust+2*NuLMantle+2*NuLOuterCore+LInnerCore),
00342     Energy, fCrustNe, Anti);
00343 
00344   return;
00345 }

void AtNuOscillate::PropagateAtNuMatter ( double  CosZenith,
double  Energy,
int  Anti 
)

Definition at line 214 of file AtNuOscillate.cxx.

References ProductionHeight().

Referenced by PropagateAtNu().

00215 {
00216   double Height = this->ProductionHeight(CosZenith, Energy);
00217   this->PropagateAtNuMatter(CosZenith, Energy, Height, Anti);
00218 }

void AtNuOscillate::PropagateAtNuVacuum ( double  CosZenith,
double  Energy,
double  Height,
int  Anti 
)

Definition at line 206 of file AtNuOscillate.cxx.

References fPMNS, PropagationLength(), OscProb::PMNS::PropVacuum(), and OscProb::PMNS::Reset().

00207 {
00208   double NuL = this->PropagationLength(CosZenith, Height);
00209 
00210   fPMNS.Reset();
00211   fPMNS.PropVacuum(NuL, Energy, Anti);
00212 }

void AtNuOscillate::PropagateAtNuVacuum ( double  CosZenith,
double  Energy,
int  Anti 
)

Definition at line 200 of file AtNuOscillate.cxx.

References ProductionHeight().

Referenced by PropagateAtNu().

00201 {
00202   double Height = this->ProductionHeight(CosZenith, Energy);
00203   this->PropagateAtNuVacuum(CosZenith, Energy, Height, Anti);
00204 }

double AtNuOscillate::PropagationLength ( int  ProdHeightMethod,
int  ParentIDnu,
double  CosZenith,
double  Energy 
) [static]

Definition at line 194 of file AtNuOscillate.cxx.

References ProductionHeight(), and PropagationLength().

00195 {
00196   double ProdHeight = AtNuOscillate::ProductionHeight(ProdHeightMethod, ParentIDnu, CosZenith, Energy);
00197   return AtNuOscillate::PropagationLength(CosZenith, ProdHeight);
00198 }

double AtNuOscillate::PropagationLength ( double  CosZenith,
double  ProdHeight 
) [static]

Definition at line 181 of file AtNuOscillate.cxx.

References EarthRadius, and MineDepth.

Referenced by AtNuEventCounter::AddData(), NuLength(), PropagateAtNuMatter(), PropagateAtNuVacuum(), PropagationLength(), AtNuOscFitTemplateMaker::Run(), and AtNuEventNtuple::WriteVariables().

00182 {
00183   double NuL =
00184     sqrt(((EarthRadius - MineDepth) *
00185           (EarthRadius - MineDepth) *
00186           CosZenith * CosZenith) +
00187          ((MineDepth + ProdHeight) *
00188           (2*EarthRadius + ProdHeight - MineDepth))) -
00189     (EarthRadius - MineDepth) * CosZenith;
00190 
00191   return NuL;
00192 }

void AtNuOscillate::SetAtmosphereNe ( double  d  )  [inline]

Definition at line 60 of file AtNuOscillate.h.

References fAtmosphereNe.

00060 {fAtmosphereNe = d;}

void AtNuOscillate::SetCrustNe ( double  d  )  [inline]

Definition at line 57 of file AtNuOscillate.h.

References fCrustNe.

00057 {fCrustNe = d;} 

void AtNuOscillate::SetDeltaCP ( double  d  )  [inline]

Definition at line 33 of file AtNuOscillate.h.

References fDeltaCP, and SetPMNS().

00033 {fDeltaCP = d; SetPMNS();}

void AtNuOscillate::SetDMSq12 ( double  d  )  [inline]

Definition at line 14 of file AtNuOscillate.h.

References fDMSq12, and SetPMNS().

Referenced by AtNuEventCounter::AddData().

00014 {fDMSq12 = d; SetPMNS();}

void AtNuOscillate::SetDMSq23 ( double  d  )  [inline]

Definition at line 17 of file AtNuOscillate.h.

References fDMSq23, and SetPMNS().

Referenced by AtNuEventCounter::AddData().

00017 {fDMSq23 = d; SetPMNS();}

void AtNuOscillate::SetInnerCoreNe ( double  d  )  [inline]

Definition at line 42 of file AtNuOscillate.h.

References fInnerCoreNe.

00042 {fInnerCoreNe = d;} 

void AtNuOscillate::SetInnerCoreRadius ( double  d  )  [inline]

Definition at line 39 of file AtNuOscillate.h.

References fInnerCoreRadius.

00039 {fInnerCoreRadius = d;} 

void AtNuOscillate::SetMantleNe ( double  d  )  [inline]

Definition at line 54 of file AtNuOscillate.h.

References fMantleNe.

00054 {fMantleNe = d;} 

void AtNuOscillate::SetMantleRadius ( double  d  )  [inline]

Definition at line 51 of file AtNuOscillate.h.

References fMantleRadius.

00051 {fMantleRadius = d;} 

void AtNuOscillate::SetOuterCoreNe ( double  d  )  [inline]

Definition at line 48 of file AtNuOscillate.h.

References fOuterCoreNe.

00048 {fOuterCoreNe = d;} 

void AtNuOscillate::SetOuterCoreRadius ( double  d  )  [inline]

Definition at line 45 of file AtNuOscillate.h.

References fOuterCoreRadius.

00045 {fOuterCoreRadius = d;} 

void AtNuOscillate::SetPMNS (  ) 

Definition at line 40 of file AtNuOscillate.cxx.

References fDeltaCP, fDMSq12, fDMSq23, fPMNS, fSinSq2Theta12, fSinSq2Theta13, fSinSq2Theta23, fTheta23, OscProb::PMNS::Reset(), OscProb::PMNS::SetDeltaMsqrs(), and OscProb::PMNS::SetMix().

Referenced by AtNuOscillate(), SetDeltaCP(), SetDMSq12(), SetDMSq23(), SetSinSq2Theta12(), SetSinSq2Theta13(), SetSinSq2Theta23(), and SetTheta23().

00041 {
00042   //Reset the propagator
00043   fPMNS.Reset();
00044 
00045   //Set the delta M squared values
00046   fPMNS.SetDeltaMsqrs(fDMSq12, fDMSq23);
00047 
00048   //Find the angles and set the mixing matrix
00049   double theta12 = TMath::ASin(TMath::Sqrt(fSinSq2Theta12))/2.0;
00050   double theta23 = TMath::ASin(TMath::Sqrt(fSinSq2Theta23))/2.0;//When a value not equal to 1 is passed, this function effectively selects the octant < pi/4 (45 deg.)  I have added the fTheta23 variable to allow selection of either octant directly. - L. A. Corwin
00051   if(fTheta23 != -999) theta23 = fTheta23;
00052 
00053   double theta13 = TMath::ASin(TMath::Sqrt(fSinSq2Theta13))/2.0;
00054   fPMNS.SetMix(theta12, theta23, theta13, fDeltaCP);
00055 }

void AtNuOscillate::SetSinSq2Theta12 ( double  d  )  [inline]

Definition at line 24 of file AtNuOscillate.h.

References fSinSq2Theta12, and SetPMNS().

Referenced by AtNuEventCounter::AddData().

00024 {fSinSq2Theta12 = d; SetPMNS();}

void AtNuOscillate::SetSinSq2Theta13 ( double  d  )  [inline]

Definition at line 30 of file AtNuOscillate.h.

References fSinSq2Theta13, and SetPMNS().

Referenced by AtNuEventCounter::AddData().

00030 {fSinSq2Theta13 = d; SetPMNS();}

void AtNuOscillate::SetSinSq2Theta23 ( double  d  )  [inline]

Definition at line 27 of file AtNuOscillate.h.

References fSinSq2Theta23, and SetPMNS().

Referenced by AtNuEventCounter::AddData().

00027 {fSinSq2Theta23 = d; SetPMNS();}

void AtNuOscillate::SetTheta23 ( double  d  )  [inline]

Definition at line 20 of file AtNuOscillate.h.

References fTheta23, and SetPMNS().

00020 {fTheta23 = d; SetPMNS();}


Member Data Documentation

double AtNuOscillate::fAtmosphereNe [private]
double AtNuOscillate::fCrustNe [private]

Definition at line 123 of file AtNuOscillate.h.

Referenced by AtNuOscillate(), GetCrustNe(), PropagateAtNuMatter(), and SetCrustNe().

double AtNuOscillate::fDeltaCP [private]

Definition at line 107 of file AtNuOscillate.h.

Referenced by AtNuOscillate(), GetDeltaCP(), SetDeltaCP(), and SetPMNS().

double AtNuOscillate::fDMSq12 [private]

Definition at line 101 of file AtNuOscillate.h.

Referenced by AtNuOscillate(), GetDMSq12(), SetDMSq12(), and SetPMNS().

double AtNuOscillate::fDMSq23 [private]

Definition at line 102 of file AtNuOscillate.h.

Referenced by AtNuOscillate(), GetDMSq23(), SetDMSq23(), and SetPMNS().

double AtNuOscillate::fInnerCoreNe [private]
double AtNuOscillate::fMantleNe [private]

Definition at line 122 of file AtNuOscillate.h.

Referenced by AtNuOscillate(), GetMantleNe(), PropagateAtNuMatter(), and SetMantleNe().

double AtNuOscillate::fMantleRadius [private]

Definition at line 116 of file AtNuOscillate.h.

Referenced by AtNuOscillate(), DoMatterEffects(), and PropagateAtNu().

double AtNuOscillate::fOuterCoreNe [private]

Definition at line 113 of file AtNuOscillate.h.

Referenced by AtNuOscillate(), ParentIDnu(), and ProductionHeight().

Definition at line 109 of file AtNuOscillate.h.

Referenced by GetPMNS(), OscProb(), PropagateAtNuMatter(), PropagateAtNuVacuum(), and SetPMNS().

Definition at line 112 of file AtNuOscillate.h.

Referenced by AtNuOscillate(), ProdHeightMethod(), and ProductionHeight().

Definition at line 104 of file AtNuOscillate.h.

Referenced by AtNuOscillate(), GetSinSq2Theta12(), SetPMNS(), and SetSinSq2Theta12().

Definition at line 106 of file AtNuOscillate.h.

Referenced by AtNuOscillate(), GetSinSq2Theta13(), SetPMNS(), and SetSinSq2Theta13().

Definition at line 105 of file AtNuOscillate.h.

Referenced by AtNuOscillate(), GetSinSq2Theta23(), SetPMNS(), and SetSinSq2Theta23().

double AtNuOscillate::fTheta23 [private]

Definition at line 103 of file AtNuOscillate.h.

Referenced by AtNuOscillate(), GetTheta23(), SetPMNS(), and SetTheta23().


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

Generated on 22 Nov 2017 for loon by  doxygen 1.6.1