44 #include "RunAction.hh"
78 G4cout <<
"###RunAction::BeginOfRunAction Material:"
87 std::stringstream
tmp;
88 tmp <<
"testem6_" << aRun->
GetRunID();
93 fileName = fileName +
"." + extension;
110 fnBin,minBin,maxBin);
112 "CrossSectionPerAtom of AnnihiToTwoGamma (microbarn)",
fnBin,minBin,maxBin);
114 fnBin,minBin,maxBin);
116 "Theoretical CrossSectionPerAtom of AnnihiToTwoGamma (microbarn)",
117 fnBin,minBin,maxBin);
119 "Theoretical CrossSectionPerAtom of AnnihiToMuMu (microbarn)",
120 fnBin,minBin,maxBin);
125 fnBin,minBin,maxBin);
127 fnBin,minBin,maxBin);
129 fnBin,minBin,maxBin);
131 fnBin,minBin,maxBin);
133 fnBin,minBin,maxBin);
138 G4cout <<
"\n----> Histogram file is opened in " << fileName <<
G4endl;
149 while ((i<nbProc)&&((*
fProcCounter)[i]->GetName()!=procName)) i++;
152 (*fProcCounter)[i]->Count();
166 G4cout <<
"\n Number of process calls --->";
168 G4String procName = (*fProcCounter)[i]->GetName();
169 if (procName !=
"Transportation") {
170 G4int count = (*fProcCounter)[i]->GetCounter();
171 G4cout <<
"\t" << procName <<
" : " << count;
190 G4String annihiToMuName =
"AnnihiToMuPair";
191 G4String annihiToHadrName =
"ee2hadr";
203 G4double crs_annihil, crs_annihiToMu, crs_annihiToHadr;
204 G4double crsVol_annihil, crsVol_annihiToMu, crsVol_annihiToHadr,
205 crsVol_Brem, crsVol_Ioni;
206 G4double crs_annihil_theory, crs_annihiToMu_theory, RR;
237 for(
int i=0;i<
fnBin;i++){
239 energy=std::pow(10,x)*
GeV;
273 crsVol_annihiToHadr =
280 if(crsVol_annihiToMu != 0) RR = crsVol_annihiToHadr/crsVol_annihiToMu;
286 if(X1>1 && i%1000==0){
287 crs_annihil_theory = atomicZ*
pi*Re*Re*
288 ( (X1*X1+4*X1+1)*
G4Log(X1+std::sqrt(X1*X1-1))/(X1*X1-1)
289 -(X1+3)/std::sqrt(X1*X1-1) )/(X1+1);
294 if(X2<1 && i%1000==0){
295 crs_annihiToMu_theory = atomicZ*
pi*Ru*Ru/3*X2*(1+X2/2)*std::sqrt(1-X2);