35 #include "DetectorConstruction.hh"
36 #include "PrimaryGeneratorAction.hh"
49 fParticle(0), fEkin(0.),
50 fNbOfTraks0(0), fNbOfTraks1(0),
51 fNbOfSteps0(0), fNbOfSteps1(0),
53 fTrueRange(0.), fTrueRange2(0.),
54 fProjRange(0.), fProjRange2(0.),
55 fTransvDev(0.), fTransvDev2(0.)
83 G4cout <<
"\n ======================== run summary ======================\n";
84 G4cout <<
"\n The run was: " << nbOfEvents <<
" " << partName <<
" of "
87 << material->
GetName() <<
" (density: "
89 G4cout <<
"\n ============================================================\n";
103 G4cout <<
"\n total energy deposit: "
108 G4cout <<
"\n nb tracks/event"
109 <<
" neutral: " << std::setw(wid) <<
fNbOfTraks0/dNbOfEvents
110 <<
" charged: " << std::setw(wid) <<
fNbOfTraks1/dNbOfEvents
111 <<
"\n nb steps/event"
112 <<
" neutral: " << std::setw(wid) <<
fNbOfSteps0/dNbOfEvents
113 <<
" charged: " << std::setw(wid) <<
fNbOfSteps1/dNbOfEvents
117 std::map<G4String,G4int>::iterator it;
118 G4cout <<
"\n nb of process calls per event: \n ";
120 G4cout << std::setw(12) << it->first;
124 G4cout << std::setw(12) << (it->second)/dNbOfEvents;
131 if (trueRms>0.) trueRms = std::sqrt(trueRms);
else trueRms = 0.;
135 if (projRms>0.) projRms = std::sqrt(projRms);
else projRms = 0.;
139 if (trvsRms>0.) trvsRms = std::sqrt(trvsRms);
else trvsRms = 0.;
151 G4cout <<
"\n---------------------------------------------------------\n";
152 G4cout <<
" Primary particle : " ;
154 <<
" rms = " <<
G4BestUnit(trueRms,
"Length");
157 <<
" rms = " <<
G4BestUnit(projRms,
"Length");
161 G4cout <<
"\n transverse dispersion at end = "
164 G4cout <<
"\n mass true Range from simulation = "
165 <<
G4BestUnit(fTrueRange*density,
"Mass/Surface")
166 <<
"\n from PhysicsTable (csda range) = "
167 <<
G4BestUnit(rangeTable*density,
"Mass/Surface");
168 G4cout <<
"\n---------------------------------------------------------\n";
182 const Run* localRun =
static_cast<const Run*
>(run);
203 std::map<G4String,G4int>::const_iterator it;
virtual void Merge(const G4Run *)
const G4String & GetName() const
G4double GetDensity() const
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
const G4String & GetParticleName() const
G4double GetCSDARange(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=0)
G4GLOB_DLL std::ostream G4cout
void PrintSummary() const
std::map< G4String, G4int > fProcCounter
G4int GetNumberOfEvent() const
G4Material * GetMaterial()
G4double energy(const ThreeVector &p, const G4double m)
DetectorConstruction * fDetector
Detector construction class to demonstrate various ways of placement.
G4ParticleDefinition * fParticle
void SetPrimary(G4ParticleDefinition *particle, G4double energy)
G4double GetPDGCharge() const
virtual void Merge(const G4Run *)
Run(DetectorConstruction *)