00001 00008 #include "grid.h" 00009 00010 using namespace std; 00011 00012 TGrid::TGrid(double Ekfact, int numr, int numz, double zmax_) { 00013 00014 dimr = numr; 00015 dimz = numz; 00016 zmax = zmax_; 00017 zmin = -zmax; 00018 Deltar =(Rmax-Rmin)/(double)(dimr-1); 00019 Deltaz =(zmax-zmin)/(double)(dimz-1); 00020 Ekin_factor = Ekfact; 00021 DeltalogE = log(Ekin_factor); 00022 dimE = int(log(Ekmax/Ekmin)/DeltalogE + 1.9); 00023 00024 for (int i = 0; i < dimE; ++i) { 00025 if (dimE == 1) Ek.push_back(Ekmin); 00026 else Ek.push_back(exp(log(Ekmin)+(double)i*log(Ekin_factor))); 00027 00028 gamma.push_back(1.0+Ek.back()/mp); 00029 beta.push_back(sqrt(1.0-1.0/pow(gamma.back(),2))); 00030 momentum.push_back(gamma.back()*mp*beta.back()); 00031 00032 gammael.push_back(1.0+Ek.back()/MeleGeV); 00033 betael.push_back(sqrt(1.0-1.0/pow(gammael.back(),2))); 00034 momentumel.push_back(gammael.back()*MeleGeV*betael.back()); 00035 } 00036 for (int i = 0; i < dimr; ++i) r.push_back(Rmin + (double)i*Deltar); 00037 for (int i = 0; i < dimz; ++i) z.push_back(zmin + (double)i*Deltaz); 00038 00039 }
1.6.3