35 #include "DetectorConstruction.hh"
36 #include "PrimaryGeneratorAction.hh"
37 #include "EmAcceptance.hh"
47 :
G4Run(),fDet(det),fKin(kin),
120 dLCumul += f_dEdL[i];
130 dRCumul += f_dEdR[j];
148 analysisManager->
FillH1(1, 100.*dLCumul/(Ekin+mass));
149 analysisManager->
FillH1(2, fChargTrLength/radl);
150 analysisManager->
FillH1(3, fNeutrTrLength/radl);
170 const Run* localRun =
static_cast<const Run*
>(run);
204 assert(NbOfEvents*kinEnergy > 0);
216 MyVector MeanELongit(f_nLbin), rmsELongit(f_nLbin);
217 MyVector MeanELongitCumul(f_nLbin), rmsELongitCumul(f_nLbin);
226 - fSumELongit[i]*fSumELongit[i]));
229 rmsELongitCumul[i] = norme*std::sqrt(
std::abs(NbOfEvents*
232 analysisManager->
FillH1(4, bin,MeanELongit[i]/dLradl);
233 analysisManager->
FillH1(5, bin, rmsELongit[i]/dLradl);
235 analysisManager->
FillH1(6, bin,MeanELongitCumul[i]);
236 analysisManager->
FillH1(7, bin, rmsELongitCumul[i]);
249 - fSumERadial[i]*fSumERadial[i]));
254 - fSumERadialCumul[i]*fSumERadialCumul[i]));
257 analysisManager->
FillH1(8, bin,MeanERadial[i]/dRradl);
258 analysisManager->
FillH1(9, bin, rmsERadial[i]/dRradl);
260 analysisManager->
FillH1(10, bin,MeanERadialCumul[i]);
261 analysisManager->
FillH1(11, bin, rmsERadialCumul[i]);
268 if ((MeanERadialCumul[0] <= EMoliere) &&
269 (MeanERadialCumul[f_nRbin-1] >= EMoliere)) {
271 while( (imin < f_nRbin-1) && (MeanERadialCumul[imin] < EMoliere) )
274 G4double del = MeanERadialCumul[imin+1] - MeanERadialCumul[imin];
276 (del > 0.0) ? (EMoliere - MeanERadialCumul[imin])/del : 0.0;
277 iMoliere = 1. + imin +
ratio;
286 - fSumChargTrLength*fSumChargTrLength));
291 - fSumNeutrTrLength*fSumNeutrTrLength));
294 std::ios::fmtflags mode =
G4cout.flags();
295 G4cout.setf(std::ios::fixed,std::ios::floatfield);
300 G4cout <<
" LOGITUDINAL PROFILE "
301 <<
" CUMULATIVE LOGITUDINAL PROFILE" <<
G4endl <<
G4endl;
303 G4cout <<
" bin " <<
" Mean rms "
304 <<
" bin " <<
" Mean rms \n" <<
G4endl;
309 G4cout << std::setw(8) << inf <<
"->"
310 << std::setw(5) << sup <<
" radl: "
311 << std::setw(7) << MeanELongit[i] <<
"% "
312 << std::setw(9) << rmsELongit[i] <<
"% "
313 <<
" 0->" << std::setw(5) << sup <<
" radl: "
314 << std::setw(7) << MeanELongitCumul[i] <<
"% "
315 << std::setw(7) << rmsELongitCumul[i] <<
"% "
321 G4cout <<
" RADIAL PROFILE "
322 <<
" CUMULATIVE RADIAL PROFILE" << G4endl <<
G4endl;
324 G4cout <<
" bin " <<
" Mean rms "
325 <<
" bin " <<
" Mean rms \n" <<
G4endl;
330 G4cout << std::setw(8) << inf <<
"->"
331 << std::setw(5) << sup <<
" radl: "
332 << std::setw(7) << MeanERadial[i] <<
"% "
333 << std::setw(9) << rmsERadial[i] <<
"% "
334 <<
" 0->" << std::setw(5) << sup <<
" radl: "
335 << std::setw(7) << MeanERadialCumul[i] <<
"% "
336 << std::setw(7) << rmsERadialCumul[i] <<
"% "
343 G4cout <<
" Total number of events: " << NbOfEvents <<
"\n"
348 G4cout <<
" energy deposit : "
349 << std::setw(7) << MeanELongitCumul[f_nLbin-1] <<
" % E0 +- "
350 << std::setw(7) << rmsELongitCumul[f_nLbin-1] <<
" % E0" <<
G4endl;
351 G4cout <<
" charged traklen: "
352 << std::setw(7) << MeanChargTrLength <<
" radl +- "
353 << std::setw(7) << rmsChargTrLength <<
" radl" <<
G4endl;
354 G4cout <<
" neutral traklen: "
355 << std::setw(7) << MeanNeutrTrLength <<
" radl +- "
356 << std::setw(7) << rmsNeutrTrLength <<
" radl" <<
G4endl;
358 if (iMoliere > 0. ) {
361 G4cout <<
"\n " << EMoliere <<
" % confinement: radius = "
362 << RMoliere1 <<
" radl ("
366 G4cout.setf(mode,std::ios::floatfield);
375 G4double e = MeanELongitCumul[nLbin-1]/100.;
376 G4double r = rmsELongitCumul[nLbin-1]/100.;