00001
00006 #ifndef MUONPROPAGATOR_HH
00007 #define MUONPROPAGATOR_HH
00008 #include <math.h>
00009 #include <iostream.h>
00010 #include "ReactorConstants.hh"
00011
00017 class MuonPropagator{
00018
00019 public:
00020
00032 MuonPropagator(double newRmaxgen=RMAXGEN,
00033 double newDepth=450.,
00034 double newEnergy=0.,
00035 double newCosTheta=1.);
00036
00037 MuonPropagator(int test=0, double newRmaxgen=RMAXGEN,double newEnergy=0.,
00038 double newX=0.,double newY=0.,double newZ=0.,
00039 double newVx=0.,double newVy=0.,double newVz=0.);
00041 ~MuonPropagator();
00043 MuonPropagator(const MuonPropagator& Muon);
00045 MuonPropagator& operator=(const MuonPropagator& rhs);
00046
00047 double* Intersection(double, double, double,
00048 double, double, double,
00049 double, double, double, double);
00050 double* Rotate(char, double, double, double, double);
00051 double RadCorr(double,double);
00052
00053 double GetMuonE() const {return energy;}
00054 double GetMuonCosTheta() const {return cosg;}
00055 double GetMuonPhi() const {return phig;}
00056
00062 static float IsotopeDistance(const float& r);
00063
00065 int GetNumNeutron() const {return Nneutron;}
00066
00067 double GetNeutronKE(int& n) const {return Eneutron[n];}
00068 double GetNeutronTime(int& n) const {return Tneutron[n];}
00069 double* const GetNeutronVertexXYZ() {return Rneutron;}
00070
00072 int GetNumElectron() const {return Nelectron;}
00073
00074 double GetElectronKE(int& n) const {return Eelectron[n];}
00075 double GetElectronTime(int& n) const {return Telectron[n];}
00076 double* const GetElectronVertexXYZ() {return Relectron;}
00077
00079 int GetNumGamma() const {return Ngamma;}
00080
00081 double GetGammaKE(int& n) const {return Egamma[n];}
00082 double GetGammaTime(int& n) const {return Tgamma[n];}
00083 double* const GetGammaVertexXYZ() {return Rgamma;}
00084
00085 double GetWeight() const {return Weight;}
00086
00087 private:
00088
00089 double Rmaxgen;
00090 double Depth;
00091
00092 int Nmuon;
00093 double energy, cosg, phig;
00094
00095 int Nneutron, Nelectron, Ngamma;
00096
00097 double* Eneutron;
00098 double* Eelectron;
00099 double* Egamma;
00100 double* Rneutron;
00101 double* Relectron;
00102 double* Rgamma;
00103 double* Tneutron;
00104 double* Telectron;
00105 double* Tgamma;
00106
00107 double Weight;
00108 };
00109 #endif