OscFit::ProductionHeight Class Reference

#include <ProductionHeight.h>

List of all members.

Public Types

enum  EMethod { kFlat = 0, kMean = 1, kPdfMean = 2, kPdfRandom = 3 }
typedef enum
OscFit::ProductionHeight::EMethod 
Method_t

Public Member Functions

double FlatHeight ()
double MeanHeight (int ipdg, double coszen, double energy)
double PdfMeanHeight (int ipdg, double coszen, double energy)
double PdfRandomHeight (int ipdg, double coszen, double energy)

Static Public Member Functions

static ProductionHeightInstance ()
static double GetHeight (int ipdg, double coszen, double energy, ProductionHeight::Method_t method)

Private Member Functions

 ProductionHeight ()
 ~ProductionHeight ()

Detailed Description

Definition at line 6 of file GhostFitter/HEAD/ProductionHeight.h.


Member Typedef Documentation


Member Enumeration Documentation

Enumerator:
kFlat 
kMean 
kPdfMean 
kPdfRandom 

Definition at line 10 of file GhostFitter/HEAD/ProductionHeight.h.

00010                          {
00011       kFlat      = 0,
00012       kMean      = 1,
00013       kPdfMean   = 2,
00014       kPdfRandom = 3
00015     } Method_t;


Constructor & Destructor Documentation

ProductionHeight::ProductionHeight (  )  [private]

Definition at line 22 of file GhostFitter/HEAD/ProductionHeight.cxx.

Referenced by Instance().

00023 {
00024  
00025 }

ProductionHeight::~ProductionHeight (  )  [private]

Definition at line 27 of file GhostFitter/HEAD/ProductionHeight.cxx.

00028 {
00029 
00030 }


Member Function Documentation

double ProductionHeight::FlatHeight (  ) 

Definition at line 48 of file GhostFitter/HEAD/ProductionHeight.cxx.

References OscFit::FlatProdHeight().

Referenced by GetHeight().

00049 {
00050   // Flat Production Height (nominally 15km)
00051   return FlatProdHeight();
00052 }

double ProductionHeight::GetHeight ( int  ipdg,
double  coszen,
double  energy,
ProductionHeight::Method_t  method 
) [static]

Definition at line 32 of file GhostFitter/HEAD/ProductionHeight.cxx.

References FlatHeight(), Instance(), kFlat, kMean, kPdfMean, kPdfRandom, MeanHeight(), PdfMeanHeight(), and PdfRandomHeight().

Referenced by OscFit::Oscillation::OscProb().

00033 {
00034   switch( method ){
00035     case kFlat:
00036       return ProductionHeight::Instance()->FlatHeight();
00037     case kMean:
00038       return ProductionHeight::Instance()->MeanHeight( ipdg, coszen, energy );
00039     case kPdfMean:
00040       return ProductionHeight::Instance()->PdfMeanHeight( ipdg, coszen, energy );
00041     case kPdfRandom:
00042       return ProductionHeight::Instance()->PdfRandomHeight( ipdg, coszen, energy );
00043     default:
00044       return ProductionHeight::Instance()->FlatHeight();
00045   }
00046 }  

ProductionHeight * ProductionHeight::Instance (  )  [static]

Definition at line 13 of file GhostFitter/HEAD/ProductionHeight.cxx.

References ProductionHeight().

Referenced by GetHeight().

00014 {
00015   if( !fgProductionHeight ){
00016     fgProductionHeight = new ProductionHeight();
00017   }
00018  
00019   return fgProductionHeight;
00020 }

double ProductionHeight::MeanHeight ( int  ipdg,
double  coszen,
double  energy 
)

Definition at line 54 of file GhostFitter/HEAD/ProductionHeight.cxx.

References OscFit::MeanMuonProdHeight(), and OscFit::MeanPionProdHeight().

Referenced by GetHeight().

00055 {
00056   // Electron Neutrinos are produced just by muon decay;
00057   if( fabs(ipdg) == 12 )
00058     return MeanMuonProdHeight(coszen,energy);
00059   
00060   // Muon Neutrinos are produced by either muon or pion decay;
00061   return 0.5*( MeanPionProdHeight(coszen,energy)
00062              + MeanMuonProdHeight(coszen,energy) );
00063 }

double ProductionHeight::PdfMeanHeight ( int  ipdg,
double  coszen,
double  energy 
)

Definition at line 65 of file GhostFitter/HEAD/ProductionHeight.cxx.

References OscFit::PDFMeanMuonProdHeight(), and OscFit::PDFMeanPionProdHeight().

Referenced by GetHeight().

00066 {
00067   // Electron Neutrinos are produced just by muon decay;
00068   if( fabs(ipdg) == 12 )
00069     return( PDFMeanMuonProdHeight(coszen,energy) );
00070 
00071   // Muon Neutrinos are produced by either muon or pion decay;   
00072   return 0.5*( PDFMeanPionProdHeight(coszen,energy) +
00073              + PDFMeanMuonProdHeight(coszen,energy) );
00074 }

double ProductionHeight::PdfRandomHeight ( int  ipdg,
double  coszen,
double  energy 
)

Definition at line 76 of file GhostFitter/HEAD/ProductionHeight.cxx.

References OscFit::PDFRndmMuonProdHeight(), and OscFit::PDFRndmPionProdHeight().

Referenced by GetHeight().

00077 {
00078   // Electron neutrinos, and half of muon neutrino come from muon decay 
00079   if( fabs(ipdg) == 12 || gRandom->Uniform()<0.5 )
00080     return PDFRndmMuonProdHeight(coszen,energy);
00081 
00082   //The other half of muon neutrinos come from pion decay
00083   return PDFRndmPionProdHeight(coszen,energy);
00084 }


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

Generated on 19 Jan 2018 for loon by  doxygen 1.6.1