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