364{
365
366
367 if(!statsAreUpdated)
368 {
369 calStat();
370 }
371
372 out << std::setprecision(6);
373
375 out <<
"G4ConvergenceTester Output Result of " << name <<
G4endl;
376 out << std::setw(20) << "EFFICIENCY = " << std::setw(13) << efficiency
378 out << std::setw(20) <<
"MEAN = " << std::setw(13) << mean <<
G4endl;
379 out << std::setw(20) <<
"VAR = " << std::setw(13) << var <<
G4endl;
380 out << std::setw(20) <<
"SD = " << std::setw(13) << sd <<
G4endl;
381 out << std::setw(20) <<
"R = " << std::setw(13) << r <<
G4endl;
382 out << std::setw(20) <<
"SHIFT = " << std::setw(13) << shift <<
G4endl;
383 out << std::setw(20) <<
"VOV = " << std::setw(13) << vov <<
G4endl;
384 out << std::setw(20) <<
"FOM = " << std::setw(13) << fom <<
G4endl;
385
386 out << std::setw(20) << "THE LARGEST SCORE = " << std::setw(13) << largest
387 << " and it happened at " << largest_score_happened << "th event"
389 if(mean != 0)
390 {
391 out << std::setw(20) << "Affected Mean = " << std::setw(13) << mean_1
392 <<
" and its ratio to original is " << mean_1 / mean <<
G4endl;
393 }
394 else
395 {
396 out << std::setw(20) << "Affected Mean = " << std::setw(13) << mean_1
398 }
399 if(var != 0)
400 {
401 out << std::setw(20) << "Affected VAR = " << std::setw(13) << var_1
402 <<
" and its ratio to original is " << var_1 / var <<
G4endl;
403 }
404 else
405 {
406 out << std::setw(20) << "Affected VAR = " << std::setw(13) << var_1
408 }
409 if(r != 0)
410 {
411 out << std::setw(20) << "Affected R = " << std::setw(13) << r_1
412 <<
" and its ratio to original is " << r_1 / r <<
G4endl;
413 }
414 else
415 {
416 out << std::setw(20) <<
"Affected R = " << std::setw(13) << r_1 <<
G4endl;
417 }
418 if(shift != 0)
419 {
420 out << std::setw(20) << "Affected SHIFT = " << std::setw(13) << shift_1
421 <<
" and its ratio to original is " << shift_1 / shift <<
G4endl;
422 }
423 else
424 {
425 out << std::setw(20) << "Affected SHIFT = " << std::setw(13) << shift_1
427 }
428 if(fom != 0)
429 {
430 out << std::setw(20) << "Affected FOM = " << std::setw(13) << fom_1
431 <<
" and its ratio to original is " << fom_1 / fom <<
G4endl;
432 }
433 else
434 {
435 out << std::setw(20) << "Affected FOM = " << std::setw(13) << fom_1
437 }
438
439 if(!showHistory)
440 {
441 out << "Number of events of this run is too small to do convergence tests."
443 return;
444 }
445
446 check_stat_history(out);
447
448
449 if(calcSLOPE)
450 {
451 if(slope >= 3)
452 {
453 noPass++;
454 out <<
"SLOPE is large enough" <<
G4endl;
455 }
456 else
457 {
458 out <<
"SLOPE is not large enough" <<
G4endl;
459 }
460 }
461 else
462 {
463 out <<
"Number of non zero history too small to calculate SLOPE" <<
G4endl;
464 }
465
466 out << "This result passes " << noPass << " / " << noTotal
467 <<
" Convergence Test." <<
G4endl;
469}