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

AtNuOsc Namespace Reference


Classes

class  AtNuOsc::PMNS

Functions

double MeanPionProdHeight (double CosZenith, double Energy)
double MeanMuonProdHeight (double CosZenith, double Energy)
double RandomKR (double BoverA)
double RndmPionProdHeight (double CosZenith, double Energy)
double RndmMuonProdHeight (double CosZenith, double Energy)
double PDFMeanPionProdHeight (double CosZenith, double Energy)
double PDFMeanMuonProdHeight (double CosZenith, double Energy)

Variables

const double SimpleProdHeight = 25.0


Function Documentation

double AtNuOsc::MeanMuonProdHeight double  CosZenith,
double  Energy
 

Definition at line 17 of file ProductionHeight.cxx.

References C.

Referenced by AtNuOscillate::ProductionHeight().

00018   {
00019     if(CosZenith < -0.2 || Energy <= 0.0) return SimpleProdHeight;
00020 
00021     double A = 12.0 + 12.5*exp(-3.2*CosZenith);
00022     double B = 10.1 - 19.8*CosZenith*CosZenith +
00023                13.2*CosZenith*CosZenith*CosZenith;
00024     double C = 0.11 + 0.27 * CosZenith;
00025     return A + B * exp(-C * Energy);
00026   }

double AtNuOsc::MeanPionProdHeight double  CosZenith,
double  Energy
 

Definition at line 10 of file ProductionHeight.cxx.

Referenced by AtNuOscillate::ProductionHeight().

00011   {
00012     if(CosZenith < -0.2 || Energy <= 0.0) return SimpleProdHeight;
00013 
00014     return 35.0 - 31.0*CosZenith + 15.0*CosZenith*CosZenith;
00015   }

double AtNuOsc::PDFMeanMuonProdHeight double  CosZenith,
double  Energy
 

Definition at line 89 of file ProductionHeight.cxx.

Referenced by AtNuOscillate::ProductionHeight().

00090   {
00091     if(CosZenith < -0.2 || Energy <= 0.0) return SimpleProdHeight;
00092 
00093     double A = 14.8 + (1+2*CosZenith)*log10(Energy) +
00094                3*(1-CosZenith)*log10(Energy)*log10(Energy);
00095     double Alpha = 28.3 - 43.7*CosZenith + 41.7*CosZenith*CosZenith - 
00096                    16.3*CosZenith*CosZenith*CosZenith;
00097     double Beta = 0.035 + 0.243*CosZenith + 0.186*CosZenith*CosZenith;
00098     double B = Alpha*exp(-Beta * Energy) - 10.0;
00099 
00100     double PDFMean = 0;
00101     if (B >= 0) {
00102       PDFMean = (A / TMath::Gamma(3/2.)) + B;
00103     }
00104     else {
00105       PDFMean = (TMath::Exp(-B*B/(A*A))*(A*A + B*B) /
00106         (A * TMath::Gamma(3/2.) * (1.0 - TMath::Gamma(3/2., B*B/(A*A))))) +
00107         B;
00108     }
00109     return PDFMean;
00110   }

double AtNuOsc::PDFMeanPionProdHeight double  CosZenith,
double  Energy
 

Definition at line 70 of file ProductionHeight.cxx.

Referenced by AtNuOscillate::ProductionHeight().

00071   {
00072     if(CosZenith < -0.2 || Energy <= 0.0) return SimpleProdHeight;
00073 
00074     double A = 14.0 - 2.6*CosZenith + 0.8*CosZenith*CosZenith;
00075     double B = 18.1 - 28.5*CosZenith + 14.5*CosZenith*CosZenith;
00076 
00077     double PDFMean = 0;
00078     if (B >= 0) {
00079       PDFMean = (A / TMath::Gamma(3/2.)) + B;
00080     }
00081     else {
00082       PDFMean = (TMath::Exp(-B*B/(A*A))*(A*A + B*B) /
00083         (A * TMath::Gamma(3/2.) * (1.0 - TMath::Gamma(3/2., B*B/(A*A))))) +
00084         B;
00085     }
00086     return PDFMean;
00087   }

double AtNuOsc::RandomKR double  BoverA  ) 
 

Definition at line 29 of file ProductionHeight.cxx.

References MinX.

Referenced by RndmMuonProdHeight(), and RndmPionProdHeight().

00030   {
00031     double MinX = (BoverA>=0)?0:-BoverA;
00032     double MaxY = 1/TMath::E();
00033     if(MinX > 1.0) MaxY = MinX*MinX*TMath::Exp(-MinX*MinX);
00034 
00035     while (1) {
00036       double R1 = gRandom->Uniform(MinX, 4);
00037       double R2 = gRandom->Uniform(0, MaxY);
00038       if(R1*R1*TMath::Exp(-R1*R1) < R2) continue;
00039       return R1;
00040     }
00041     return 0;
00042   }

double AtNuOsc::RndmMuonProdHeight double  CosZenith,
double  Energy
 

Definition at line 55 of file ProductionHeight.cxx.

References RandomKR().

Referenced by AtNuOscillate::ProductionHeight().

00056   {
00057     if(CosZenith < -0.2 || Energy <= 0.0) return SimpleProdHeight;
00058 
00059     double A = 14.8 + (1+2*CosZenith)*log10(Energy) +
00060                3*(1-CosZenith)*log10(Energy)*log10(Energy);
00061     double Alpha = 28.3 - 43.7*CosZenith + 41.7*CosZenith*CosZenith - 
00062                    16.3*CosZenith*CosZenith*CosZenith;
00063     double Beta = 0.035 + 0.243*CosZenith + 0.186*CosZenith*CosZenith;
00064     double B = Alpha*exp(-Beta * Energy) - 10.0;
00065 
00066     double X = RandomKR(B / A);
00067     return (A*X + B);
00068   }

double AtNuOsc::RndmPionProdHeight double  CosZenith,
double  Energy
 

Definition at line 44 of file ProductionHeight.cxx.

References RandomKR().

Referenced by AtNuOscillate::ProductionHeight().

00045   {
00046     if(CosZenith < -0.2 || Energy <= 0.0) return SimpleProdHeight;
00047 
00048     double A = 14.0 - 2.6*CosZenith + 0.8*CosZenith*CosZenith;
00049     double B = 18.1 - 28.5*CosZenith + 14.5*CosZenith*CosZenith;
00050 
00051     double X = RandomKR(B / A);
00052     return (A*X + B);
00053   }


Variable Documentation

const double AtNuOsc::SimpleProdHeight = 25.0
 

Definition at line 8 of file ProductionHeight.cxx.


Generated on Mon Nov 23 05:33:43 2009 for loon by  doxygen 1.3.9.1