Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Data Structures | Public Member Functions | Data Fields
RunAction Class Reference

#include <RunAction.hh>

Inheritance diagram for RunAction:
G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction G4UserRunAction

Public Member Functions

 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
void BeginOfRunAction (const G4Run *)
 
void EndOfRunAction (const G4Run *)
 
void GetCuts ()
 
void CriticalEnergy ()
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *, HistoManager *)
 
 ~RunAction ()
 
void BeginOfRunAction (const G4Run *)
 
void EndOfRunAction (const G4Run *)
 
void fillPerEvent_1 (G4int, G4double, G4double)
 
void fillPerEvent_2 (G4int, G4double, G4double)
 
void fillPerEvent_3 (G4double, G4double, G4double)
 
void fillDetailedLeakage (G4int, G4double)
 
void fillNbRadLen (G4double)
 
void SetWriteFile (G4bool val)
 
void CreateFilePixels ()
 
 RunAction (DetectorConstruction *, HistoManager *)
 
 ~RunAction ()
 
void BeginOfRunAction (const G4Run *)
 
void EndOfRunAction (const G4Run *)
 
 RunAction (DetectorConstruction *)
 
 ~RunAction ()
 
void BeginOfRunAction (const G4Run *)
 
void EndOfRunAction (const G4Run *)
 
 RunAction (DetectorConstruction *)
 
 ~RunAction ()
 
void BeginOfRunAction (const G4Run *)
 
void EndOfRunAction (const G4Run *)
 
void SetRndmFreq (G4int val)
 
G4int GetRndmFreq ()
 
void AddDoseN (G4float dose)
 
void SetDoseN (G4float dose)
 
G4float GetDoseN ()
 
void AddDoseC (G4float dose)
 
void SetDoseC (G4float dose)
 
G4float GetDoseC ()
 
G4int GetNumEvent ()
 
void SetNumEvent (G4int i)
 
G4int GetNbOfHitsGas ()
 
void AddNbOfHitsGas ()
 
void SetMassNucleus (G4float mN)
 
G4float GetMassNucleus ()
 
void SetMassCytoplasm (G4float mC)
 
G4float GetMassCytoplasm ()
 
void AddDoseBox (G4int i, G4float x)
 
G4float GetDoseBox (G4int i)
 
G4ThreeVector GetVectCell (G4int i)
 
 RunAction ()
 
 ~RunAction ()
 
void BeginOfRunAction (const G4Run *)
 
void EndOfRunAction (const G4Run *)
 
 RunAction ()
 
 ~RunAction ()
 
void BeginOfRunAction (const G4Run *)
 
void EndOfRunAction (const G4Run *)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
void BeginOfRunAction (const G4Run *)
 
void EndOfRunAction (const G4Run *)
 
G4int GetRow ()
 
void AddRow ()
 
void AddToXVector (float v)
 
void AddToYVector (float v)
 
void AddToThetaVector (float v)
 
void AddToPhiVector (float v)
 
 RunAction (AnalysisManager *analysis)
 
 ~RunAction ()
 
void BeginOfRunAction (const G4Run *)
 
void EndOfRunAction (const G4Run *)
 
 RunAction (HistoManager *)
 
virtual ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void fillPerEvent (G4double, G4double, G4double, G4double)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void GetCuts ()
 
void CriticalEnergy ()
 
 RunAction (DetectorConstruction *det, PrimaryGeneratorAction *prim=0)
 
 ~RunAction ()
 
virtual G4RunGenerateRun ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
 RunAction (DetectorConstruction *, PhysicsList *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual G4RunGenerateRun ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
 RunAction (DetectorConstruction *, PhysicsList *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void AddEdep (G4double e)
 
void AddTrackLength (G4double t)
 
void AddProjRange (G4double x)
 
void AddStepSize (G4int nb, G4double s)
 
G4double GetCsdaRange ()
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void CountProcesses (G4String procName)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void CountProcesses (G4String procName)
 
void SumTrack (G4double track)
 
void SumeTransf (G4double energy)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void CountProcesses (G4String)
 
void SumPathLength (G4double truepl, G4double geompl)
 
void SumLateralDisplacement (G4double displa)
 
void SumPsi (G4double psi)
 
void SumTetaPlane (G4double teta)
 
void SumPhiCorrel (G4double correl)
 
G4double ComputeMscHighland (G4double pathLength)
 
 RunAction ()
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *, HistoManager *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void CountProcesses (G4String)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void AddEnergyDeposit (G4double edep)
 
void AddTrackLength (G4double step)
 
void AddChargedSecondary (G4double ekin)
 
void AddNeutralSecondary (G4double ekin)
 
G4double GetEnergyFromRestrictedRange (G4double, G4ParticleDefinition *, G4Material *, G4double)
 
G4double GetEnergyFromCSDARange (G4double, G4ParticleDefinition *, G4Material *, G4double)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
virtual ~RunAction ()
 
virtual G4RunGenerateRun ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void SetVerbose (G4int val)
 
void SetHistoName (G4String &val)
 
void SetEdepAndRMS (G4ThreeVector)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void FillPerEvent (G4int, G4double, G4double)
 
void SumEnergyFlow (G4int plane, G4double Eflow)
 
void SumLateralEleak (G4int cell, G4double Eflow)
 
void AddChargedStep ()
 
void AddNeutralStep ()
 
void PrintDedxTables ()
 
void AddSecondaryTrack (const G4Track *)
 
void SetEdepAndRMS (G4int, G4double, G4double, G4double)
 
G4double GetAverageEdep (G4int i) const
 
G4double GetRMSEdep (G4int i) const
 
G4double GetLimitEdep (G4int i) const
 
void SetApplyLimit (G4bool val)
 
 RunAction ()
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
 RunAction (DetectorConstruction *det, PrimaryGeneratorAction *prim=0)
 
 ~RunAction ()
 
virtual G4RunGenerateRun ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
 RunAction ()
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void CountProcesses (G4String)
 
 RunAction (DetectorConstruction *, PhysicsList *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void FillTallyEdep (G4int n, G4double e)
 
void FillEdep (G4double de, G4double eni)
 
void AddProjRange (G4double x)
 
void AddPrimaryStep ()
 
 RunAction ()
 
virtual ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
 RunAction ()
 
virtual ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
 RunAction ()
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
virtual ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void FillHisto (G4int id, G4double x, G4double weight=1.0)
 
void SetBinSize (G4double size)
 
G4double GetOffsetX ()
 
void SetVerbose (G4int verbose)
 
G4int GetVerbose ()
 
void AddProjRange (G4double x)
 
 RunAction ()
 
virtual ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
 RunAction ()
 
virtual ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
 RunAction ()
 
virtual ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void CountProcesses (const G4VProcess *process)
 
void SumTrack (G4double track)
 
void CountNuclearChannel (G4String, G4double)
 
void ParticleCount (G4String, G4double)
 
void Balance (G4double)
 
void CountGamma (G4int)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual G4RunGenerateRun ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
 RunAction ()
 
virtual ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void InitFluence ()
 
void SumFluence (G4double, G4double)
 
void ComputeFluenceError ()
 
void PrintFluence (G4int)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void CountProcesses (G4String)
 
void SurveyConvergence (G4int)
 
void sumEsecond (G4double e)
 
void FlowInCavity (G4int k, G4double e)
 
void AddEdepCavity (G4double de)
 
void AddTrakCavity (G4double dt)
 
void StepInWall (G4double s)
 
void StepInCavity (G4double s)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void CountProcesses (G4String)
 
void SurveyConvergence (G4int)
 
void FlowInCavity (G4int k, G4double e)
 
void AddEdepCavity (G4double de)
 
void AddTrakCavity (G4double dt)
 
void StepInWall (G4double s)
 
void StepInCavity (G4double s)
 
 RunAction ()
 
virtual ~RunAction ()
 
void BeginOfRunAction (const G4Run *)
 
void EndOfRunAction (const G4Run *)
 
 RunAction ()
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *arun)
 
virtual void EndOfRunAction (const G4Run *arun)
 
 RunAction (DetectorConstruction *, PrimaryGeneratorAction *, HistoManager *)
 
virtual ~RunAction ()
 
void BeginOfRunAction (const G4Run *)
 
void EndOfRunAction (const G4Run *)
 
void CountProcesses (G4String)
 
void FillData (const G4String &particleName, G4double kinEnergy, G4double costheta, G4double phi, G4double longitudinalPolarization)
 
void EventFinished ()
 
 RunAction (PrimaryGeneratorAction *)
 
 ~RunAction ()
 
virtual void BeginOfRunAction (const G4Run *)
 
virtual void EndOfRunAction (const G4Run *)
 
void ParticleCount (G4String, G4double)
 
void Balance (G4double, G4double)
 
void EventTiming (G4double)
 
void PrimaryTiming (G4double)
 
- Public Member Functions inherited from G4UserRunAction
 G4UserRunAction ()
 
virtual ~G4UserRunAction ()
 
void SetMaster (G4bool val=true)
 
G4bool IsMaster () const
 

Data Fields

G4int f_n_gam_sync
 
G4double f_e_gam_sync
 
G4double f_e_gam_sync2
 
G4double f_e_gam_sync_max
 
G4double f_lam_gam_sync
 

Additional Inherited Members

- Protected Attributes inherited from G4UserRunAction
G4bool isMaster
 

Detailed Description

Definition at line 45 of file environments/g4py/examples/demos/TestEm0/g4lib/RunAction.hh.

Constructor & Destructor Documentation

RunAction::RunAction ( DetectorConstruction det,
PrimaryGeneratorAction kin 
)

Definition at line 46 of file environments/g4py/examples/demos/TestEm0/g4lib/RunAction.cc.

47 :detector(det), primary(kin)
48 { }
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction det,
PrimaryGeneratorAction prim,
HistoManager hist 
)

Definition at line 45 of file examples/advanced/amsEcal/src/RunAction.cc.

47 :detector(det), primary(prim), histoManager(hist)
48 {
49  writeFile = false;
50 }
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction det,
HistoManager his 
)

Definition at line 40 of file examples/advanced/dnageometry/src/RunAction.cc.

41  :Detector(det),Histo(his)
42 {}
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction det)

Definition at line 41 of file examples/advanced/dnaphysics/src/RunAction.cc.

42 {}
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction )
RunAction::~RunAction ( )
RunAction::RunAction ( )

Definition at line 45 of file examples/advanced/microdosimetry/src/RunAction.cc.

46 {
47  fpTrackingAction = 0;
48  fInitialized = 0;
49  fDebug = false;
50 }
RunAction::~RunAction ( )
RunAction::RunAction ( )
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( AnalysisManager analysis)

Definition at line 37 of file examples/advanced/radioprotection/src/RunAction.cc.

38 :analysisMan(analysis)
39 {
40 
41 }
RunAction::~RunAction ( )
RunAction::RunAction ( HistoManager histo)

Definition at line 44 of file examples/extended/analysis/shared/src/RunAction.cc.

45 : G4UserRunAction(),
46  fHistoManager(histo),
47  fSumEAbs(0.), fSum2EAbs(0.),
48  fSumEGap(0.), fSum2EGap(0.),
49  fSumLAbs(0.), fSum2LAbs(0.),
50  fSumLGap(0.), fSum2LGap(0.)
51 {}
virtual RunAction::~RunAction ( )
virtual
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction det,
PrimaryGeneratorAction prim = 0 
)
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction det,
PhysicsList phys,
PrimaryGeneratorAction kin 
)

Definition at line 52 of file examples/extended/electromagnetic/TestEm11/src/RunAction.cc.

54 :G4UserRunAction(),fDetector(det),fPhysics(phys),fKinematic(kin),fRun(0),
55  fHistoManager(0)
56 {
57  // Book predefined histograms
58  fHistoManager = new HistoManager();
59 }
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PhysicsList ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( )
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction ,
HistoManager  
)
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
virtual RunAction::~RunAction ( )
virtual
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( )
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction det,
PrimaryGeneratorAction prim = 0 
)
RunAction::~RunAction ( )
RunAction::RunAction ( )
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PhysicsList ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( )
virtual RunAction::~RunAction ( )
virtual
RunAction::RunAction ( )
virtual RunAction::~RunAction ( )
virtual
RunAction::RunAction ( )
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
virtual RunAction::~RunAction ( )
virtual
RunAction::RunAction ( )
virtual RunAction::~RunAction ( )
virtual
RunAction::RunAction ( )
virtual RunAction::~RunAction ( )
virtual
RunAction::RunAction ( )
virtual RunAction::~RunAction ( )
virtual
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( )
virtual RunAction::~RunAction ( )
virtual
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction  
)
RunAction::~RunAction ( )
RunAction::RunAction ( )
virtual RunAction::~RunAction ( )
virtual
RunAction::RunAction ( )
RunAction::~RunAction ( )
RunAction::RunAction ( DetectorConstruction ,
PrimaryGeneratorAction ,
HistoManager  
)
virtual RunAction::~RunAction ( )
virtual
RunAction::RunAction ( PrimaryGeneratorAction kin)

Definition at line 48 of file examples/extended/radioactivedecay/rdecay01/src/RunAction.cc.

50  fHistoManager(0), fPrimary(kin)
51 {
52  fHistoManager = new HistoManager();
53 }
RunAction::~RunAction ( )

Member Function Documentation

void RunAction::AddChargedSecondary ( G4double  ekin)
inline

Definition at line 69 of file examples/extended/electromagnetic/TestEm18/include/RunAction.hh.

70  {fEnergyCharged += ekin; fNbCharged++;
71  if (ekin<fEmin[0]) fEmin[0] = ekin;
72  if (ekin>fEmax[0]) fEmax[0] = ekin;
73  };
void RunAction::AddChargedStep ( )
inline

Definition at line 72 of file examples/extended/electromagnetic/TestEm3/include/RunAction.hh.

72 { fChargedStep += 1.0; }
void RunAction::AddDoseBox ( G4int  i,
G4float  x 
)
inline

Definition at line 80 of file examples/advanced/microbeam/include/RunAction.hh.

References test::x.

80 { fDose3DDose[i] +=x;}
void RunAction::AddDoseC ( G4float  dose)
inline

Definition at line 64 of file examples/advanced/microbeam/include/RunAction.hh.

64 { fDoseC += dose;}
void RunAction::AddDoseN ( G4float  dose)
inline

Definition at line 60 of file examples/advanced/microbeam/include/RunAction.hh.

60 { fDoseN += dose;}
void RunAction::AddEdep ( G4double  e)
inline

Definition at line 58 of file examples/extended/electromagnetic/TestEm12/include/RunAction.hh.

58 { fEdeposit += e; fEdeposit2 += e*e;};
void RunAction::AddEdepCavity ( G4double  de)
inline

Definition at line 66 of file examples/extended/medical/fanoCavity2/include/RunAction.hh.

66  { fEdepCavity += de; fEdepCavity2 += de*de;
67  fNbEventCavity++;};
void RunAction::AddEdepCavity ( G4double  de)
inline

Definition at line 69 of file examples/extended/medical/fanoCavity/include/RunAction.hh.

69  { fEdepCavity += de; fEdepCavity2 += de*de;
70  fNbEventCavity++;};
void RunAction::AddEnergyDeposit ( G4double  edep)
inline

Definition at line 63 of file examples/extended/electromagnetic/TestEm18/include/RunAction.hh.

64  {fEnergyDeposit += edep;};
void RunAction::AddNbOfHitsGas ( )
inline

Definition at line 72 of file examples/advanced/microbeam/include/RunAction.hh.

72 {fNbOfHitsGas = fNbOfHitsGas+1;}
void RunAction::AddNeutralSecondary ( G4double  ekin)
inline

Definition at line 75 of file examples/extended/electromagnetic/TestEm18/include/RunAction.hh.

76  {fEnergyNeutral += ekin; fNbNeutral++;
77  if (ekin<fEmin[1]) fEmin[1] = ekin;
78  if (ekin>fEmax[1]) fEmax[1] = ekin;
79  };
void RunAction::AddNeutralStep ( )
inline

Definition at line 73 of file examples/extended/electromagnetic/TestEm3/include/RunAction.hh.

73 { fNeutralStep += 1.0; }
void RunAction::AddPrimaryStep ( )
inline

Definition at line 106 of file examples/extended/electromagnetic/TestEm7/include/RunAction.hh.

107 {
108  ++fNbPrimarySteps;
109 }
void RunAction::AddProjRange ( G4double  x)
inline

Definition at line 60 of file examples/extended/electromagnetic/TestEm12/include/RunAction.hh.

References test::x.

60 { fProjRange += x; fProjRange2 += x*x;};
void RunAction::AddProjRange ( G4double  x)
inline
void RunAction::AddProjRange ( G4double  x)
inline

Definition at line 67 of file examples/extended/exoticphysics/monopole/include/RunAction.hh.

References test::x.

67 { fProjRange += x; fProjRange2 += x*x; };
void RunAction::AddRow ( )
inline

Definition at line 53 of file examples/advanced/nanobeam/include/RunAction.hh.

53 {fRow=fRow+1;}
void RunAction::AddSecondaryTrack ( const G4Track track)

Definition at line 395 of file examples/extended/electromagnetic/TestEm3/src/RunAction.cc.

References G4Electron::Electron(), G4Gamma::Gamma(), G4Track::GetDefinition(), and G4Positron::Positron().

396 {
397  const G4ParticleDefinition* d = track->GetDefinition();
398  if(d == G4Gamma::Gamma()) { ++fN_gamma; }
399  else if (d == G4Electron::Electron()) { ++fN_elec; }
400  else if (d == G4Positron::Positron()) { ++fN_pos; }
401 }
G4ParticleDefinition * GetDefinition() const
static G4Gamma * Gamma()
Definition: G4Gamma.cc:86
static G4Positron * Positron()
Definition: G4Positron.cc:94
static G4Electron * Electron()
Definition: G4Electron.cc:94
void RunAction::AddStepSize ( G4int  nb,
G4double  s 
)
inline

Definition at line 61 of file examples/extended/electromagnetic/TestEm12/include/RunAction.hh.

62  { fNbOfSteps += nb; fNbOfSteps2 += nb*nb;
63  fStepSize += s ; fStepSize2 += s*s; };
const XML_Char * s
void RunAction::AddToPhiVector ( float  v)
inline

Definition at line 58 of file examples/advanced/nanobeam/include/RunAction.hh.

References test::v.

58 {fPhiVector(fRow)=v;}
void RunAction::AddToThetaVector ( float  v)
inline

Definition at line 57 of file examples/advanced/nanobeam/include/RunAction.hh.

References test::v.

57 {fThetaVector(fRow)=v;}
void RunAction::AddToXVector ( float  v)
inline

Definition at line 55 of file examples/advanced/nanobeam/include/RunAction.hh.

References test::v.

55 {fXVector(fRow)=v;}
void RunAction::AddToYVector ( float  v)
inline

Definition at line 56 of file examples/advanced/nanobeam/include/RunAction.hh.

References test::v.

56 {fYVector(fRow)=v;}
void RunAction::AddTrackLength ( G4double  t)
inline

Definition at line 59 of file examples/extended/electromagnetic/TestEm12/include/RunAction.hh.

59 { fTrackLen += t; fTrackLen2 += t*t;};
void RunAction::AddTrackLength ( G4double  step)
inline

Definition at line 66 of file examples/extended/electromagnetic/TestEm18/include/RunAction.hh.

67  {fTrackLength += step; fNbSteps++;};
void RunAction::AddTrakCavity ( G4double  dt)
inline

Definition at line 68 of file examples/extended/medical/fanoCavity2/include/RunAction.hh.

68 { fTrkSegmCavity += dt;};
void RunAction::AddTrakCavity ( G4double  dt)
inline

Definition at line 71 of file examples/extended/medical/fanoCavity/include/RunAction.hh.

71 { fTrkSegmCavity += dt;};
void RunAction::Balance ( G4double  Ekin,
G4double  Pbal 
)

Definition at line 98 of file examples/extended/radioactivedecay/rdecay01/src/RunAction.cc.

99 {
100  fDecayCount++;
101  fEkinTot[0] += Ekin;
102  //update min max
103  if (fDecayCount == 1) fEkinTot[1] = fEkinTot[2] = Ekin;
104  if (Ekin < fEkinTot[1]) fEkinTot[1] = Ekin;
105  if (Ekin > fEkinTot[2]) fEkinTot[2] = Ekin;
106 
107  fPbalance[0] += Pbal;
108  //update min max
109  if (fDecayCount == 1) fPbalance[1] = fPbalance[2] = Pbal;
110  if (Pbal < fPbalance[1]) fPbalance[1] = Pbal;
111  if (Pbal > fPbalance[2]) fPbalance[2] = Pbal;
112 }
void RunAction::Balance ( G4double  Pbal)

Definition at line 110 of file examples/extended/hadronic/Hadr03/src/RunAction.cc.

111 {
112  fPbalance[0] += Pbal;
113  //update min max
114  if (fTotalCount == 1) fPbalance[1] = fPbalance[2] = Pbal;
115  if (Pbal < fPbalance[1]) fPbalance[1] = Pbal;
116  if (Pbal > fPbalance[2]) fPbalance[2] = Pbal;
117 }
virtual void RunAction::BeginOfRunAction ( const G4Run arun)
virtual

Reimplemented from G4UserRunAction.

void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::BeginOfRunAction ( const G4Run aRun)
virtual

Reimplemented from G4UserRunAction.

Definition at line 57 of file environments/g4py/examples/demos/TestEm0/g4lib/RunAction.cc.

References python.hepunit::cm, G4EmCalculator::ComputeCrossSectionPerAtom(), G4EmCalculator::ComputeCrossSectionPerVolume(), G4EmCalculator::ComputeDEDX(), CriticalEnergy(), DBL_MAX, density, G4Electron::Electron(), energy(), fElectromagnetic, G4BestUnit, G4cout, G4endl, G4Material::GetA(), G4EmCalculator::GetCrossSectionPerVolume(), G4EmCalculator::GetCSDARange(), GetCuts(), G4EmCalculator::GetDEDX(), G4Material::GetDensity(), DetectorConstruction::GetMaterial(), G4EmCalculator::GetMeanFreePath(), G4Material::GetName(), G4Material::GetNumberOfElements(), G4ParticleGun::GetParticleDefinition(), G4ParticleGun::GetParticleEnergy(), PrimaryGeneratorAction::GetParticleGun(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGCharge(), G4ProcessManager::GetProcessList(), G4ParticleDefinition::GetProcessManager(), G4Material::GetRadlen(), G4EmCalculator::GetRangeFromRestricteDEDX(), G4Material::GetZ(), G4InuclParticleNames::lambda, eplot::material, and G4ProcessVector::size().

58 {
59  //set precision for printing
60  G4int prec = G4cout.precision(6);
61 
62  // get particle
63  G4ParticleDefinition* particle = primary->GetParticleGun()
65  G4String partName = particle->GetParticleName();
66  G4double charge = particle->GetPDGCharge();
68 
69  // get material
70  G4Material* material = detector->GetMaterial();
71  G4String matName = material->GetName();
72  G4double density = material->GetDensity();
73  G4double radl = material->GetRadlen();
74 
75  G4cout << "\n " << partName << " ("
76  << G4BestUnit(energy,"Energy") << ") in "
77  << material->GetName() << " (density: "
78  << G4BestUnit(density,"Volumic Mass") << "; radiation length: "
79  << G4BestUnit(radl, "Length") << ")" << G4endl;
80 
81  // get cuts
82  GetCuts();
83  if (charge != 0.) {
84  G4cout << "\n Range cuts : \t gamma "
85  << std::setw(8) << G4BestUnit(rangeCut[0],"Length")
86  << "\t e- " << std::setw(8) << G4BestUnit(rangeCut[1],"Length");
87  G4cout << "\n Energy cuts : \t gamma "
88  << std::setw(8) << G4BestUnit(energyCut[0],"Energy")
89  << "\t e- " << std::setw(8) << G4BestUnit(energyCut[1],"Energy")
90  << G4endl;
91  }
92 
93  // get processList and extract EM processes (but not MultipleScattering)
94  G4ProcessVector* plist = particle->GetProcessManager()->GetProcessList();
95  G4String procName;
96  G4double cut;
97  std::vector<G4String> emName;
98  std::vector<G4double> enerCut;
99  size_t length = plist->size();
100  for (size_t j=0; j<length; j++) {
101  procName = (*plist)[j]->GetProcessName();
102  cut = energyCut[1];
103  if ((procName == "eBrem")||(procName == "muBrems")) cut = energyCut[0];
104  if (((*plist)[j]->GetProcessType() == fElectromagnetic) &&
105  (procName != "msc")) {
106  emName.push_back(procName);
107  enerCut.push_back(cut);
108  }
109  }
110 
111  // print list of processes
112  G4cout << "\n processes : ";
113  for (size_t j=0; j<emName.size();j++)
114  G4cout << "\t" << std::setw(13) << emName[j] << "\t";
115  G4cout << "\t" << std::setw(13) <<"total";
116 
117  //instanciate EmCalculator
118  G4EmCalculator emCal;
119  // emCal.SetVerbose(2);
120 
121  //compute cross section per atom (only for single material)
122  if (material->GetNumberOfElements() == 1) {
123  G4double Z = material->GetZ();
124  G4double A = material->GetA();
125 
126  std::vector<G4double> sigma0;
127  G4double sig, sigtot = 0.;
128 
129  for (size_t j=0; j<emName.size();j++) {
130  sig = emCal.ComputeCrossSectionPerAtom
131  (energy,particle,emName[j],Z,A,enerCut[j]);
132  sigtot += sig;
133  sigma0.push_back(sig);
134  }
135  sigma0.push_back(sigtot);
136 
137  G4cout << "\n \n cross section per atom : ";
138  for (size_t j=0; j<sigma0.size();j++) {
139  G4cout << "\t" << std::setw(13) << G4BestUnit(sigma0[j], "Surface");
140  }
141  G4cout << G4endl;
142  }
143 
144  //get cross section per volume
145  std::vector<G4double> sigma1;
146  std::vector<G4double> sigma2;
147  G4double Sig, Sigtot = 0.;
148 
149  for (size_t j=0; j<emName.size();j++) {
150  Sig = emCal.GetCrossSectionPerVolume(energy,particle,emName[j],material);
151  if (Sig == 0.) Sig = emCal.ComputeCrossSectionPerVolume
152  (energy,particle,emName[j],material,enerCut[j]);
153  Sigtot += Sig;
154  sigma1.push_back(Sig);
155  sigma2.push_back(Sig/density);
156  }
157  sigma1.push_back(Sigtot);
158  sigma2.push_back(Sigtot/density);
159 
160  //print cross sections
161  G4cout << "\n \n cross section per volume : ";
162  for (size_t j=0; j<sigma1.size();j++) {
163  G4cout << "\t" << std::setw(13) << sigma1[j]*cm << " cm^-1";
164  }
165 
166  G4cout << "\n cross section per mass : ";
167  for (size_t j=0; j<sigma2.size();j++) {
168  G4cout << "\t" << std::setw(13) << G4BestUnit(sigma2[j], "Surface/Mass");
169  }
170 
171  //print mean free path
172 
174 
175  G4cout << "\n \n mean free path : ";
176  for (size_t j=0; j<sigma1.size();j++) {
177  lambda = DBL_MAX;
178  if (sigma1[j] > 0.) lambda = 1/sigma1[j];
179  G4cout << "\t" << std::setw(13) << G4BestUnit( lambda, "Length");
180  }
181 
182  //mean free path (g/cm2)
183  G4cout << "\n (g/cm2) : ";
184  for (size_t j=0; j<sigma2.size();j++) {
185  lambda = DBL_MAX;
186  if (sigma2[j] > 0.) lambda = 1/sigma2[j];
187  G4cout << "\t" << std::setw(13) << G4BestUnit( lambda, "Mass/Surface");
188  }
189  G4cout << G4endl;
190 
191  if (charge == 0.) {
192  G4cout.precision(prec);
193  G4cout << "\n-------------------------------------------------------------\n"
194  << G4endl;
195  return;
196  }
197 
198  //get stopping power
199  std::vector<G4double> dedx1;
200  std::vector<G4double> dedx2;
201  G4double dedx, dedxtot = 0.;
202 
203  for (size_t j=0; j<emName.size();j++) {
204  dedx = emCal.ComputeDEDX(energy,particle,emName[j],material,enerCut[j]);
205  dedx1.push_back(dedx);
206  dedx2.push_back(dedx/density);
207  }
208  dedxtot = emCal.GetDEDX(energy,particle,material);
209  dedx1.push_back(dedxtot);
210  dedx2.push_back(dedxtot/density);
211 
212  //print stopping power
213  G4cout << "\n \n restricted dE/dx : ";
214  for (size_t j=0; j<sigma1.size();j++) {
215  G4cout << "\t" << std::setw(13) << G4BestUnit(dedx1[j],"Energy/Length");
216  }
217 
218  G4cout << "\n (MeV/g/cm2) : ";
219  for (size_t j=0; j<sigma2.size();j++) {
220  G4cout << "\t" << std::setw(13) << G4BestUnit(dedx2[j],"Energy*Surface/Mass");
221  }
222 
223  //get range from restricted dedx
224  G4double range1 = emCal.GetRangeFromRestricteDEDX(energy,particle,material);
225  G4double range2 = range1*density;
226 
227  //get range from full dedx
228  G4double Range1 = emCal.GetCSDARange(energy,particle,material);
229  G4double Range2 = Range1*density;
230 
231  //print range
232  G4cout << "\n \n range from restrict dE/dx: "
233  << "\t" << std::setw(8) << G4BestUnit(range1,"Length")
234  << " (" << std::setw(8) << G4BestUnit(range2,"Mass/Surface") << ")";
235 
236  G4cout << "\n range from full dE/dx : "
237  << "\t" << std::setw(8) << G4BestUnit(Range1,"Length")
238  << " (" << std::setw(8) << G4BestUnit(Range2,"Mass/Surface") << ")";
239 
240  //get transport mean free path (for multiple scattering)
241  G4double MSmfp1 = emCal.GetMeanFreePath(energy,particle,"msc",material);
242  G4double MSmfp2 = MSmfp1*density;
243 
244  //print transport mean free path
245  G4cout << "\n \n transport mean free path : "
246  << "\t" << std::setw(8) << G4BestUnit(MSmfp1,"Length")
247  << " (" << std::setw(8) << G4BestUnit(MSmfp2,"Mass/Surface") << ")";
248 
249  if (particle == G4Electron::Electron()) CriticalEnergy();
250 
251  G4cout << "\n-------------------------------------------------------------\n";
252  G4cout << G4endl;
253 
254  // reset default precision
255  G4cout.precision(prec);
256 }
G4double GetZ() const
Definition: G4Material.cc:606
const G4String & GetName() const
Definition: G4Material.hh:176
G4double GetDensity() const
Definition: G4Material.hh:178
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
G4double GetCrossSectionPerVolume(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, const G4Region *r=0)
G4double GetMeanFreePath(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, const G4Region *r=0)
G4ProcessManager * GetProcessManager() const
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
G4double GetDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=0)
string material
Definition: eplot.py:19
G4double GetCSDARange(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=0)
G4double density
Definition: TRTMaterials.hh:39
double precision function energy(A, Z)
Definition: dpm25nuc6.f:4106
G4GLOB_DLL std::ostream G4cout
G4double ComputeDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, G4double cut=DBL_MAX)
G4double GetRangeFromRestricteDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=0)
G4double GetRadlen() const
Definition: G4Material.hh:218
G4double GetA() const
Definition: G4Material.cc:619
G4int size() const
G4double ComputeCrossSectionPerVolume(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, G4double cut=0.0)
G4ParticleDefinition * GetParticleDefinition() const
static G4Electron * Electron()
Definition: G4Electron.cc:94
#define G4endl
Definition: G4ios.hh:61
G4double ComputeCrossSectionPerAtom(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, G4double Z, G4double A, G4double cut=0.0)
size_t GetNumberOfElements() const
Definition: G4Material.hh:184
double G4double
Definition: G4Types.hh:76
G4double GetPDGCharge() const
#define DBL_MAX
Definition: templates.hh:83
G4double GetParticleEnergy() const
G4ProcessVector * GetProcessList() const
void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::BeginOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::ComputeFluenceError ( )

Definition at line 169 of file examples/extended/medical/electronScattering/src/RunAction.cc.

References plottest35::bin, python.hepunit::mm, and python.hepunit::twopi.

170 {
171  //compute rms
172  //
173  G4double ds,variance,rms;
174  G4double rmean = -0.5*fDr;
175 
176  for (G4int bin=0; bin<fNbBins; bin++) {
177  rmean += fDr;
178  ds = twopi*rmean*fDr;
179  fluence[bin] /= ds;
180  fluence2[bin] /= (ds*ds);
181  variance = 0.;
182  if (fNbEntries[bin] > 0)
183  variance = fluence2[bin] - (fluence[bin]*fluence[bin])/fNbEntries[bin];
184  rms = 0.;
185  if(variance > 0.) rms = std::sqrt(variance);
186  fluence2[bin] = rms;
187  }
188 
189  //normalize to first bins, compute error and fill histo
190  //
191  G4double rnorm(4*mm), radius(0.), fnorm(0.), fnorm2(0.);
192  G4int inorm = -1;
193  do {
194  inorm++; radius += fDr; fnorm += fluence[inorm]; fnorm2 += fluence2[inorm];
195  } while (radius < rnorm);
196  fnorm /= (inorm+1);
197  fnorm2 /= (inorm+1);
198  //
199  G4double ratio, error;
200  G4double scale = 1./fnorm;
201  G4double err0 = fnorm2/fnorm, err1 = 0.;
202  //
203  rmean = -0.5*fDr;
204 
205  for (G4int bin=0; bin<fNbBins; bin++) {
206  ratio = fluence[bin]*scale;
207  error = 0.;
208  if (ratio > 0.) {
209  err1 = fluence2[bin]/fluence[bin];
210  error = ratio*std::sqrt(err1*err1 + err0*err0);
211  }
212  fluence1[bin] = ratio;
213  fluence2[bin] = error;
214  rmean += fDr;
215  G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
216  analysisManager->FillH1(4,rmean,ratio);
217  }
218 }
tuple bin
Definition: plottest35.py:22
int G4int
Definition: G4Types.hh:78
ExG4HbookAnalysisManager G4AnalysisManager
Definition: g4hbook_defs.hh:46
double G4double
Definition: G4Types.hh:76
G4double RunAction::ComputeMscHighland ( G4double  pathLength)

Definition at line 232 of file examples/extended/electromagnetic/TestEm15/src/RunAction.cc.

References DBL_MIN, python.hepunit::eplus, DetectorConstruction::GetMaterial(), G4ParticleGun::GetParticleDefinition(), G4ParticleGun::GetParticleEnergy(), PrimaryGeneratorAction::GetParticleGun(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetPDGMass(), G4Material::GetRadlen(), python.hepunit::MeV, and z.

233 {
234  //compute the width of the Gaussian central part of the MultipleScattering
235  //projected angular distribution.
236  //Eur. Phys. Jour. C15 (2000) page 166, formule 23.9
237 
238  G4double t = pathLength/(fDetector->GetMaterial()->GetRadlen());
239  if (t < DBL_MIN) return 0.;
240 
241  G4ParticleGun* particle = fPrimary->GetParticleGun();
242  G4double T = particle->GetParticleEnergy();
243  G4double M = particle->GetParticleDefinition()->GetPDGMass();
244  G4double z = std::abs(particle->GetParticleDefinition()->GetPDGCharge()/eplus);
245 
246  G4double bpc = T*(T+2*M)/(T+M);
247  G4double teta0 = 13.6*MeV*z*std::sqrt(t)*(1.+0.038*std::log(t))/bpc;
248  return teta0;
249 }
G4double z
Definition: TRTMaterials.hh:39
G4double GetRadlen() const
Definition: G4Material.hh:218
G4double GetPDGMass() const
#define DBL_MIN
Definition: templates.hh:75
G4ParticleDefinition * GetParticleDefinition() const
double G4double
Definition: G4Types.hh:76
G4double GetPDGCharge() const
G4double GetParticleEnergy() const
void RunAction::CountGamma ( G4int  nGamma)

Definition at line 121 of file examples/extended/hadronic/Hadr03/src/RunAction.cc.

122 {
123  fGammaCount++;
124  fNbGamma[0] += nGamma;
125  //update min max
126  if (fGammaCount == 1) fNbGamma[1] = fNbGamma[2] = nGamma;
127  if (nGamma < fNbGamma[1]) fNbGamma[1] = nGamma;
128  if (nGamma > fNbGamma[2]) fNbGamma[2] = nGamma;
129 }
void RunAction::CountNuclearChannel ( G4String  name,
G4double  Q 
)

Definition at line 102 of file examples/extended/hadronic/Hadr03/src/RunAction.cc.

103 {
104  fNuclChannelCount[name]++;
105  fNuclChannelQ[name] += Q;
106 }
const XML_Char * name
void RunAction::CountProcesses ( G4String  )
void RunAction::CountProcesses ( G4String  procName)
inline

Definition at line 59 of file examples/extended/electromagnetic/TestEm13/include/RunAction.hh.

59 { fProcCounter[procName]++;};
void RunAction::CountProcesses ( G4String  )
void RunAction::CountProcesses ( G4String  )
void RunAction::CountProcesses ( G4String  procName)
inline

Definition at line 60 of file examples/extended/electromagnetic/TestEm14/include/RunAction.hh.

61  {fProcCounter[procName]++;};
void RunAction::CountProcesses ( G4String  )
void RunAction::CountProcesses ( const G4VProcess process)
inline

Definition at line 61 of file examples/extended/hadronic/Hadr03/include/RunAction.hh.

62  {fProcCounter[process]++;};
void RunAction::CountProcesses ( G4String  )
void RunAction::CountProcesses ( G4String  )
void RunAction::CreateFilePixels ( )

Definition at line 342 of file examples/advanced/amsEcal/src/RunAction.cc.

References G4endl, G4RunManager::GetCurrentRun(), HistoManager::GetFileName(), DetectorConstruction::GetN1Pixels(), DetectorConstruction::GetN1Shift(), DetectorConstruction::GetN2Pixels(), G4Run::GetNumberOfEventToBeProcessed(), and G4RunManager::GetRunManager().

343 {
344  //create file and write run header
345  //
346  G4String name = histoManager->GetFileName();
347  G4String fileName = name + ".pixels.ascii";
348 
349  std::ofstream File(fileName, std::ios::out);
350 
351  G4int n1pxl = detector->GetN1Pixels();
352  G4int n2pxl = detector->GetN2Pixels();
353  G4int n1shift = detector->GetN1Shift();
356  File << noEvents << " " << n1pxl << " " << n2pxl << " " << n1shift
357  << G4endl;
358 }
const XML_Char * name
int G4int
Definition: G4Types.hh:78
const G4Run * GetCurrentRun() const
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:74
G4int GetNumberOfEventToBeProcessed() const
Definition: G4Run.hh:83
#define G4endl
Definition: G4ios.hh:61
void RunAction::CriticalEnergy ( )

Definition at line 300 of file environments/g4py/examples/demos/TestEm0/g4lib/RunAction.cc.

References G4EmCalculator::ComputeDEDX(), G4Electron::Electron(), G4BestUnit, G4cout, DetectorConstruction::GetMaterial(), G4Material::GetNumberOfElements(), G4Material::GetRadlen(), G4Material::GetState(), G4Material::GetZ(), kStateGas, eplot::material, and python.hepunit::MeV.

Referenced by BeginOfRunAction().

301 {
302  // compute e- critical energy (Rossi definition) and Moliere radius.
303  // Review of Particle Physics - Eur. Phys. J. C3 (1998) page 147
304  //
305  G4EmCalculator emCal;
306 
307  const G4Material* material = detector->GetMaterial();
308  const G4double radl = material->GetRadlen();
309  G4double ekin = 5*MeV;
310  G4double deioni;
311  G4double err = 1., errmax = 0.001;
312  G4int iter = 0 , itermax = 10;
313  while (err > errmax && iter < itermax) {
314  iter++;
315  deioni = radl*
316  emCal.ComputeDEDX(ekin,G4Electron::Electron(),"eIoni",material);
317  err = std::abs(deioni - ekin)/ekin;
318  ekin = deioni;
319  }
320  G4cout << "\n \n critical energy (Rossi) : "
321  << "\t" << std::setw(8) << G4BestUnit(ekin,"Energy");
322 
323  //Pdg formula (only for single material)
324  G4double pdga[2] = { 610*MeV, 710*MeV };
325  G4double pdgb[2] = { 1.24, 0.92 };
326  G4double EcPdg = 0.;
327 
328  if (material->GetNumberOfElements() == 1) {
329  G4int istat = 0;
330  if (material->GetState() == kStateGas) istat = 1;
331  G4double Zeff = material->GetZ() + pdgb[istat];
332  EcPdg = pdga[istat]/Zeff;
333  G4cout << "\t\t\t (from Pdg formula : "
334  << std::setw(8) << G4BestUnit(EcPdg,"Energy") << ")";
335  }
336 
337  const G4double Es = 21.2052*MeV;
338  G4double rMolier1 = Es/ekin, rMolier2 = rMolier1*radl;
339  G4cout << "\n Moliere radius : "
340  << "\t" << std::setw(8) << rMolier1 << " X0 "
341  << "= " << std::setw(8) << G4BestUnit(rMolier2,"Length");
342 
343  if (material->GetNumberOfElements() == 1) {
344  G4double rMPdg = radl*Es/EcPdg;
345  G4cout << "\t (from Pdg formula : "
346  << std::setw(8) << G4BestUnit(rMPdg,"Length") << ")";
347  }
348 }
G4double GetZ() const
Definition: G4Material.cc:606
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
int G4int
Definition: G4Types.hh:78
string material
Definition: eplot.py:19
G4GLOB_DLL std::ostream G4cout
G4double ComputeDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, G4double cut=DBL_MAX)
G4double GetRadlen() const
Definition: G4Material.hh:218
static G4Electron * Electron()
Definition: G4Electron.cc:94
size_t GetNumberOfElements() const
Definition: G4Material.hh:184
G4State GetState() const
Definition: G4Material.hh:179
double G4double
Definition: G4Types.hh:76
void RunAction::CriticalEnergy ( )
virtual void RunAction::EndOfRunAction ( const G4Run arun)
virtual

Reimplemented from G4UserRunAction.

void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::EndOfRunAction ( const G4Run aRun)
virtual

Reimplemented from G4UserRunAction.

Definition at line 260 of file environments/g4py/examples/demos/TestEm0/g4lib/RunAction.cc.

261 { }
virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

virtual void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::EndOfRunAction ( const G4Run )
virtual

Reimplemented from G4UserRunAction.

void RunAction::EventFinished ( )

Definition at line 163 of file examples/extended/polarisation/Pol01/src/RunAction.cc.

164 {
165  ++totalEventCount;
166  photonStats.EventFinished();
167  electronStats.EventFinished();
168  positronStats.EventFinished();
169 }
void RunAction::EventTiming ( G4double  time)

Definition at line 116 of file examples/extended/radioactivedecay/rdecay01/src/RunAction.cc.

117 {
118  fTimeCount++;
119  fEventTime[0] += time;
120  if (fTimeCount == 1) fEventTime[1] = fEventTime[2] = time;
121  if (time < fEventTime[1]) fEventTime[1] = time;
122  if (time > fEventTime[2]) fEventTime[2] = time;
123 }
void RunAction::FillData ( const G4String particleName,
G4double  kinEnergy,
G4double  costheta,
G4double  phi,
G4double  longitudinalPolarization 
)

Definition at line 83 of file examples/extended/polarisation/Pol01/src/RunAction.cc.

87 {
88  if (particleName=="gamma")
89  photonStats.FillData(kinEnergy, costheta, longitudinalPolarization);
90  else if (particleName=="e-")
91  electronStats.FillData(kinEnergy, costheta, longitudinalPolarization);
92  else if (particleName=="e+")
93  positronStats.FillData(kinEnergy, costheta, longitudinalPolarization);
94 }
void RunAction::fillDetailedLeakage ( G4int  icase,
G4double  energy 
)

Definition at line 146 of file examples/advanced/amsEcal/src/RunAction.cc.

References energy().

Referenced by TrackingAction::PostUserTrackingAction().

147 {
148  //forward, backward, lateral leakage
149  //
150  EdLeak[icase] += energy;
151 }
double precision function energy(A, Z)
Definition: dpm25nuc6.f:4106
void RunAction::FillEdep ( G4double  de,
G4double  eni 
)
inline

Definition at line 89 of file examples/extended/electromagnetic/TestEm7/include/RunAction.hh.

90 {
91  fEdeptot += de;
92  fEniel += eni;
93 }
void RunAction::FillHisto ( G4int  id,
G4double  x,
G4double  weight = 1.0 
)

Definition at line 186 of file examples/extended/exoticphysics/monopole/src/RunAction.cc.

References Histo::Fill(), G4cout, G4endl, and GetVerbose().

187 {
188  if(GetVerbose() > 1) {
189  G4cout << "FillHisto " << ih << " x=" << x << " weight= " << weight
190  << G4endl;
191  }
192  fHisto->Fill(ih, x, weight);
193 }
void Fill(G4int, G4double, G4double)
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
void RunAction::fillNbRadLen ( G4double  dn)

Definition at line 155 of file examples/advanced/amsEcal/src/RunAction.cc.

Referenced by EventAction::EndOfEventAction().

156 {
157  //total number of radiation length
158  //
159  nbRadLen += dn; nbRadLen2 += dn*dn;
160 }
void RunAction::fillPerEvent ( G4double  EAbs,
G4double  EGap,
G4double  LAbs,
G4double  LGap 
)

Definition at line 76 of file examples/extended/analysis/shared/src/RunAction.cc.

78 {
79  //accumulate statistic
80  //
81  fSumEAbs += EAbs; fSum2EAbs += EAbs*EAbs;
82  fSumEGap += EGap; fSum2EGap += EGap*EGap;
83 
84  fSumLAbs += LAbs; fSum2LAbs += LAbs*LAbs;
85  fSumLGap += LGap; fSum2LGap += LGap*LGap;
86 }
void RunAction::FillPerEvent ( G4int  kAbs,
G4double  EAbs,
G4double  LAbs 
)

Definition at line 125 of file examples/extended/electromagnetic/TestEm3/src/RunAction.cc.

References kAbs.

126 {
127  //accumulate statistic with restriction
128  //
129  if(fApplyLimit) fEnergyDeposit[kAbs].push_back(EAbs);
130  fSumEAbs[kAbs] += EAbs; fSum2EAbs[kAbs] += EAbs*EAbs;
131  fSumLAbs[kAbs] += LAbs; fSum2LAbs[kAbs] += LAbs*LAbs;
132 }
void RunAction::fillPerEvent_1 ( G4int  pixel,
G4double  Evis,
G4double  Etot 
)

Definition at line 113 of file examples/advanced/amsEcal/src/RunAction.cc.

Referenced by EventAction::EndOfEventAction().

114 {
115  //accumulate statistic per pixel
116  //
117  visibleEnergy[pixel] += Evis; visibleEnergy2[pixel] += Evis*Evis;
118  totalEnergy[pixel] += Etot; totalEnergy2[pixel] += Etot*Etot;
119 }
void RunAction::fillPerEvent_2 ( G4int  layer,
G4double  Evis,
G4double  Etot 
)

Definition at line 123 of file examples/advanced/amsEcal/src/RunAction.cc.

Referenced by EventAction::EndOfEventAction().

124 {
125  //accumulate statistic per layer
126  //
127  layerEvis[layer] += Evis; layerEvis2[layer] += Evis*Evis;
128  layerEtot[layer] += Etot; layerEtot2[layer] += Etot*Etot;
129 }
void RunAction::fillPerEvent_3 ( G4double  calEvis,
G4double  calEtot,
G4double  eleak 
)

Definition at line 133 of file examples/advanced/amsEcal/src/RunAction.cc.

Referenced by EventAction::EndOfEventAction().

135 {
136  //accumulate statistic
137  //
138  nbEvents++;
139  calorEvis += calEvis; calorEvis2 += calEvis*calEvis;
140  calorEtot += calEtot; calorEtot2 += calEtot*calEtot;
141  Eleak += eleak; Eleak2 += eleak*eleak;
142 }
void RunAction::FillTallyEdep ( G4int  n,
G4double  e 
)
inline

Definition at line 82 of file examples/extended/electromagnetic/TestEm7/include/RunAction.hh.

References n.

83 {
84  fTallyEdep[n] += e;
85 }
const G4int n
void RunAction::FlowInCavity ( G4int  k,
G4double  e 
)
inline

Definition at line 63 of file examples/extended/medical/fanoCavity2/include/RunAction.hh.

63  { fEnerFlowCavity[k] += e;
64  fPartFlowCavity[k]++;};
void RunAction::FlowInCavity ( G4int  k,
G4double  e 
)
inline

Definition at line 66 of file examples/extended/medical/fanoCavity/include/RunAction.hh.

66  { fEnerFlowCavity[k] += e;
67  fPartFlowCavity[k]++;};
virtual G4Run* RunAction::GenerateRun ( )
virtual

Reimplemented from G4UserRunAction.

virtual G4Run* RunAction::GenerateRun ( )
virtual

Reimplemented from G4UserRunAction.

G4Run * RunAction::GenerateRun ( void  )
virtual

Reimplemented from G4UserRunAction.

Definition at line 65 of file examples/extended/electromagnetic/TestEm1/src/RunAction.cc.

66 {
67  fRun = new Run(fDetector);
68  return fRun;
69 }
virtual G4Run* RunAction::GenerateRun ( )
virtual

Reimplemented from G4UserRunAction.

virtual G4Run* RunAction::GenerateRun ( )
virtual

Reimplemented from G4UserRunAction.

G4double RunAction::GetAverageEdep ( G4int  i) const
inline

Definition at line 81 of file examples/extended/electromagnetic/TestEm3/include/RunAction.hh.

81 {return fEdeptrue[i];};
G4double RunAction::GetCsdaRange ( )
inline

Definition at line 65 of file examples/extended/electromagnetic/TestEm12/include/RunAction.hh.

65 { return fCsdaRange;};
void RunAction::GetCuts ( )

Definition at line 269 of file environments/g4py/examples/demos/TestEm0/g4lib/RunAction.cc.

References G4ProductionCutsTable::GetEnergyCutsVector(), DetectorConstruction::GetMaterial(), G4MaterialCutsCouple::GetMaterial(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4ProductionCutsTable::GetProductionCutsTable(), G4ProductionCutsTable::GetRangeCutsVector(), G4ProductionCutsTable::GetTableSize(), idxG4ElectronCut, idxG4GammaCut, and idxG4PositronCut.

Referenced by BeginOfRunAction().

270 {
271  G4ProductionCutsTable* theCoupleTable =
273 
274  size_t numOfCouples = theCoupleTable->GetTableSize();
275  const G4MaterialCutsCouple* couple = 0;
276  G4int index = 0;
277  for (size_t i=0; i<numOfCouples; i++) {
278  couple = theCoupleTable->GetMaterialCutsCouple(i);
279  if (couple->GetMaterial() == detector->GetMaterial()) {index = i; break;}
280  }
281 
282  rangeCut[0] =
283  (*(theCoupleTable->GetRangeCutsVector(idxG4GammaCut)))[index];
284  rangeCut[1] =
285  (*(theCoupleTable->GetRangeCutsVector(idxG4ElectronCut)))[index];
286  rangeCut[2] =
287  (*(theCoupleTable->GetRangeCutsVector(idxG4PositronCut)))[index];
288 
289  energyCut[0] =
290  (*(theCoupleTable->GetEnergyCutsVector(idxG4GammaCut)))[index];
291  energyCut[1] =
292  (*(theCoupleTable->GetEnergyCutsVector(idxG4ElectronCut)))[index];
293  energyCut[2] =
294  (*(theCoupleTable->GetEnergyCutsVector(idxG4PositronCut)))[index];
295 
296 }
const std::vector< G4double > * GetEnergyCutsVector(size_t pcIdx) const
int G4int
Definition: G4Types.hh:78
const std::vector< G4double > * GetRangeCutsVector(size_t pcIdx) const
static G4ProductionCutsTable * GetProductionCutsTable()
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
const G4Material * GetMaterial() const
void RunAction::GetCuts ( )
G4float RunAction::GetDoseBox ( G4int  i)
inline

Definition at line 81 of file examples/advanced/microbeam/include/RunAction.hh.

81 { return fDose3DDose[i];}
G4float RunAction::GetDoseC ( )
inline

Definition at line 66 of file examples/advanced/microbeam/include/RunAction.hh.

66 {return fDoseC;}
G4float RunAction::GetDoseN ( )
inline

Definition at line 62 of file examples/advanced/microbeam/include/RunAction.hh.

62 {return fDoseN;}
G4double RunAction::GetEnergyFromCSDARange ( G4double  range,
G4ParticleDefinition particle,
G4Material material,
G4double  Etry 
)

Definition at line 260 of file examples/extended/electromagnetic/TestEm18/src/RunAction.cc.

References G4EmCalculator::ComputeTotalDEDX(), G4BestUnit, G4cout, G4endl, and G4EmCalculator::GetCSDARange().

262 {
263  G4EmCalculator emCal;
264 
265  G4double Energy = Etry, dE = 0., dEdx;
266  G4double r, dr;
267  G4double err = 1., errmax = 0.00001;
268  G4int iter = 0 , itermax = 10;
269  while (err > errmax && iter < itermax) {
270  iter++;
271  Energy -= dE;
272  r = emCal.GetCSDARange(Energy,particle,material);
273  dr = r - range;
274  dEdx = emCal.ComputeTotalDEDX(Energy,particle,material);
275  dE = dEdx*dr;
276  err = std::abs(dE)/Energy;
277  }
278  if (iter == itermax) {
279  G4cout
280  << "\n ---> warning: RunAction::GetEnergyFromCSDARange() did not converge"
281  << " Etry = " << G4BestUnit(Etry,"Energy")
282  << " Energy = " << G4BestUnit(Energy,"Energy")
283  << " err = " << err
284  << " iter = " << iter << G4endl;
285  }
286 
287  return Energy;
288 }
G4double ComputeTotalDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, G4double cut=DBL_MAX)
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
int G4int
Definition: G4Types.hh:78
G4double GetCSDARange(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=0)
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4double RunAction::GetEnergyFromRestrictedRange ( G4double  range,
G4ParticleDefinition particle,
G4Material material,
G4double  Etry 
)

Definition at line 228 of file examples/extended/electromagnetic/TestEm18/src/RunAction.cc.

References G4BestUnit, G4cout, G4endl, G4EmCalculator::GetDEDX(), and G4EmCalculator::GetRangeFromRestricteDEDX().

230 {
231  G4EmCalculator emCal;
232 
233  G4double Energy = Etry, dE = 0., dEdx;
234  G4double r, dr;
235  G4double err = 1., errmax = 0.00001;
236  G4int iter = 0 , itermax = 10;
237  while (err > errmax && iter < itermax) {
238  iter++;
239  Energy -= dE;
240  r = emCal.GetRangeFromRestricteDEDX(Energy,particle,material);
241  dr = r - range;
242  dEdx = emCal.GetDEDX(Energy,particle,material);
243  dE = dEdx*dr;
244  err = std::abs(dE)/Energy;
245  }
246  if (iter == itermax) {
247  G4cout
248  << "\n ---> warning: RunAction::GetEnergyFromRestRange() did not converge"
249  << " Etry = " << G4BestUnit(Etry,"Energy")
250  << " Energy = " << G4BestUnit(Energy,"Energy")
251  << " err = " << err
252  << " iter = " << iter << G4endl;
253  }
254 
255  return Energy;
256 }
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
int G4int
Definition: G4Types.hh:78
G4double GetDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=0)
G4GLOB_DLL std::ostream G4cout
G4double GetRangeFromRestricteDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=0)
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4double RunAction::GetLimitEdep ( G4int  i) const
inline

Definition at line 83 of file examples/extended/electromagnetic/TestEm3/include/RunAction.hh.

83 {return fLimittrue[i];};
G4float RunAction::GetMassCytoplasm ( )
inline

Definition at line 78 of file examples/advanced/microbeam/include/RunAction.hh.

78 {return fMassCytoplasm;}
G4float RunAction::GetMassNucleus ( )
inline

Definition at line 75 of file examples/advanced/microbeam/include/RunAction.hh.

75 {return fMassNucleus;}
G4int RunAction::GetNbOfHitsGas ( )
inline

Definition at line 71 of file examples/advanced/microbeam/include/RunAction.hh.

71 {return fNbOfHitsGas;}
G4int RunAction::GetNumEvent ( )
inline

Definition at line 68 of file examples/advanced/microbeam/include/RunAction.hh.

68 {return fNumEvent;}
G4double RunAction::GetOffsetX ( )
inline

Definition at line 62 of file examples/extended/exoticphysics/monopole/include/RunAction.hh.

62 { return fOffsetX;}
G4double RunAction::GetRMSEdep ( G4int  i) const
inline

Definition at line 82 of file examples/extended/electromagnetic/TestEm3/include/RunAction.hh.

82 {return fRmstrue[i];};
G4int RunAction::GetRndmFreq ( )
inline

Definition at line 58 of file examples/advanced/microbeam/include/RunAction.hh.

58 {return fSaveRndm;}
G4int RunAction::GetRow ( )
inline

Definition at line 52 of file examples/advanced/nanobeam/include/RunAction.hh.

52 {return fRow;}
G4ThreeVector RunAction::GetVectCell ( G4int  i)
inline

Definition at line 83 of file examples/advanced/microbeam/include/RunAction.hh.

83 {return fMapVoxels[i];}
G4int RunAction::GetVerbose ( )
inline

Definition at line 65 of file examples/extended/exoticphysics/monopole/include/RunAction.hh.

Referenced by FillHisto().

65 { return fVerboseLevel;}
void RunAction::InitFluence ( )

Definition at line 138 of file examples/extended/medical/electronScattering/src/RunAction.cc.

References python.hepunit::mm.

139 {
140  // create Fluence histo in any case
141  //
142  G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
143  G4int ih = 4;
144  analysisManager->SetH1(ih, 120, 0*mm, 240*mm, "mm");
145 
146  //construct vectors for fluence distribution
147  //
148  fNbBins = analysisManager->GetH1Nbins(ih);
149  fDr = analysisManager->GetH1Width(ih);
150  fluence.resize(fNbBins, 0.);
151  fluence1.resize(fNbBins, 0.);
152  fluence2.resize(fNbBins, 0.);
153  fNbEntries.resize(fNbBins, 0);
154 }
int G4int
Definition: G4Types.hh:78
ExG4HbookAnalysisManager G4AnalysisManager
Definition: g4hbook_defs.hh:46
void RunAction::ParticleCount ( G4String  ,
G4double   
)
void RunAction::ParticleCount ( G4String  name,
G4double  Ekin 
)

Definition at line 90 of file examples/extended/hadronic/Hadr03/src/RunAction.cc.

91 {
92  fParticleCount[name]++;
93  fEmean[name] += Ekin;
94  //update min max
95  if (fParticleCount[name] == 1) fEmin[name] = fEmax[name] = Ekin;
96  if (Ekin < fEmin[name]) fEmin[name] = Ekin;
97  if (Ekin > fEmax[name]) fEmax[name] = Ekin;
98 }
const XML_Char * name
void RunAction::PrimaryTiming ( G4double  ptime)

Definition at line 127 of file examples/extended/radioactivedecay/rdecay01/src/RunAction.cc.

128 {
129  fPrimaryTime += ptime;
130 }
void RunAction::PrintDedxTables ( )

Definition at line 306 of file examples/extended/electromagnetic/TestEm3/src/RunAction.cc.

References python.hepunit::cm, G4BestUnit, G4cout, G4endl, DetectorConstruction::GetAbsorMaterial(), G4LossTableManager::GetDEDX(), G4ProductionCutsTable::GetEnergyCutsVector(), G4MaterialCutsCouple::GetMaterial(), G4ProductionCutsTable::GetMaterialCutsCouple(), G4Material::GetName(), DetectorConstruction::GetNbOfAbsor(), G4ParticleGun::GetParticleDefinition(), PrimaryGeneratorAction::GetParticleGun(), G4ParticleDefinition::GetParticleName(), G4ProductionCutsTable::GetProductionCutsTable(), G4ProductionCutsTable::GetTableSize(), python.hepunit::GeV, idxG4ElectronCut, idxG4GammaCut, G4LossTableManager::Instance(), python.hepunit::keV, python.hepunit::MeV, and python.hepunit::TeV.

307 {
308  //Print dE/dx tables with binning identical to the Geant3 JMATE bank.
309  //The printout is readable as Geant3 ffread data cards (by the program g4mat).
310  //
311  const G4double tkmin=10*keV, tkmax=10*TeV;
312  const G4int nbin=90;
313  G4double tk[nbin];
314 
315  const G4int ncolumn = 5;
316 
317  //compute the kinetic energies
318  //
319  const G4double dp = std::log10(tkmax/tkmin)/nbin;
320  const G4double dt = std::pow(10.,dp);
321  tk[0] = tkmin;
322  for (G4int i=1; i<nbin; ++i) tk[i] = tk[i-1]*dt;
323 
324  //print the kinetic energies
325  //
326  std::ios::fmtflags mode = G4cout.flags();
327  G4cout.setf(std::ios::fixed,std::ios::floatfield);
328  G4int prec = G4cout.precision(3);
329 
330  G4cout << "\n kinetic energies \n ";
331  for (G4int j=0; j<nbin; ++j) {
332  G4cout << G4BestUnit(tk[j],"Energy") << "\t";
333  if ((j+1)%ncolumn == 0) G4cout << "\n ";
334  }
335  G4cout << G4endl;
336 
337  //print the dE/dx tables
338  //
339  G4cout.setf(std::ios::scientific,std::ios::floatfield);
340 
342  part = fPrimary->GetParticleGun()->GetParticleDefinition();
343 
344  G4ProductionCutsTable* theCoupleTable =
346  size_t numOfCouples = theCoupleTable->GetTableSize();
347  const G4MaterialCutsCouple* couple = 0;
348 
349  for (G4int iab=1;iab <= fDetector->GetNbOfAbsor(); iab++)
350  {
351  G4Material* mat = fDetector->GetAbsorMaterial(iab);
352  G4int index = 0;
353  for (size_t i=0; i<numOfCouples; i++) {
354  couple = theCoupleTable->GetMaterialCutsCouple(i);
355  if (couple->GetMaterial() == mat) {index = i; break;}
356  }
357  G4cout << "\nLIST";
358  G4cout << "\nC \nC dE/dx (MeV/cm) for " << part->GetParticleName()
359  << " in " << mat ->GetName() << "\nC";
360  G4cout << "\nKINE (" << part->GetParticleName() << ")";
361  G4cout << "\nMATE (" << mat ->GetName() << ")";
362  G4cout.precision(2);
363  G4cout << "\nERAN " << tkmin/GeV << " (ekmin)\t"
364  << tkmax/GeV << " (ekmax)\t"
365  << nbin << " (nekbin)";
366  G4double cutgam =
367  (*(theCoupleTable->GetEnergyCutsVector(idxG4GammaCut)))[index];
368  if (cutgam < tkmin) cutgam = tkmin;
369  if (cutgam > tkmax) cutgam = tkmax;
370  G4double cutele =
371  (*(theCoupleTable->GetEnergyCutsVector(idxG4ElectronCut)))[index];
372  if (cutele < tkmin) cutele = tkmin;
373  if (cutele > tkmax) cutele = tkmax;
374  G4cout << "\nCUTS " << cutgam/GeV << " (cutgam)\t"
375  << cutele/GeV << " (cutele)";
376 
377  G4cout.precision(6);
378  G4cout << "\nG4VAL \n ";
379  for (G4int l=0;l<nbin; ++l)
380  {
382  ->GetDEDX(part,tk[l],couple);
383  G4cout << dedx/(MeV/cm) << "\t";
384  if ((l+1)%ncolumn == 0) G4cout << "\n ";
385  }
386  G4cout << G4endl;
387  }
388 
389  G4cout.precision(prec);
390  G4cout.setf(mode,std::ios::floatfield);
391 }
const std::vector< G4double > * GetEnergyCutsVector(size_t pcIdx) const
static G4LossTableManager * Instance()
G4double GetDEDX(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
const G4String & GetName() const
Definition: G4Material.hh:176
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
static G4ProductionCutsTable * GetProductionCutsTable()
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
G4ParticleDefinition * GetParticleDefinition() const
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
const G4Material * GetMaterial() const
void RunAction::PrintFluence ( G4int  TotEvents)

Definition at line 224 of file examples/extended/medical/electronScattering/src/RunAction.cc.

References plottest35::bin, G4endl, and python.hepunit::mm.

225 {
226  G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
227  G4String name = analysisManager->GetFileName();
228  G4String fileName = name + ".ascii";
229  std::ofstream File(fileName, std::ios::out);
230 
231  std::ios::fmtflags mode = File.flags();
232  File.setf( std::ios::scientific, std::ios::floatfield );
233  G4int prec = File.precision(3);
234 
235  File << " Fluence density distribution \n "
236  << "\n ibin \t radius (mm) \t Nb \t fluence\t norma fl\t rms/nfl (%) \n"
237  << G4endl;
238 
239  G4double rmean = -0.5*fDr;
240  for (G4int bin=0; bin<fNbBins; bin++) {
241  rmean +=fDr;
242  G4double error = 0.;
243  if (fluence1[bin] > 0.) error = 100*fluence2[bin]/fluence1[bin];
244  File << " " << bin << "\t " << rmean/mm << "\t " << fNbEntries[bin]
245  << "\t " << fluence[bin]/double(TotEvents) << "\t " << fluence1[bin]
246  << "\t " << error
247  << G4endl;
248  }
249 
250  // restaure default formats
251  File.setf(mode,std::ios::floatfield);
252  File.precision(prec);
253 }
tuple bin
Definition: plottest35.py:22
const XML_Char * name
int G4int
Definition: G4Types.hh:78
ExG4HbookAnalysisManager G4AnalysisManager
Definition: g4hbook_defs.hh:46
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
void RunAction::SetApplyLimit ( G4bool  val)
inline

Definition at line 84 of file examples/extended/electromagnetic/TestEm3/include/RunAction.hh.

84 {fApplyLimit = val;};
void RunAction::SetBinSize ( G4double  size)
inline

Definition at line 61 of file examples/extended/exoticphysics/monopole/include/RunAction.hh.

61 { fBinLength = size; }
void RunAction::SetDoseC ( G4float  dose)
inline

Definition at line 65 of file examples/advanced/microbeam/include/RunAction.hh.

65 { fDoseC = dose;}
void RunAction::SetDoseN ( G4float  dose)
inline

Definition at line 61 of file examples/advanced/microbeam/include/RunAction.hh.

61 { fDoseN = dose;}
void RunAction::SetEdepAndRMS ( G4ThreeVector  Value)

Definition at line 189 of file examples/extended/electromagnetic/TestEm2/src/RunAction.cc.

Referenced by RunActionMessenger::SetNewValue().

190 {
191  fEdeptrue = Value(0);
192  fRmstrue = Value(1);
193  fLimittrue= Value(2);
194 }
void RunAction::SetEdepAndRMS ( G4int  i,
G4double  edep,
G4double  rms,
G4double  lim 
)

Definition at line 405 of file examples/extended/electromagnetic/TestEm3/src/RunAction.cc.

406 {
407  if (i>=0 && i<MaxAbsor) {
408  fEdeptrue [i] = edep;
409  fRmstrue [i] = rms;
410  fLimittrue[i] = lim;
411  }
412 }
void RunAction::SetHistoName ( G4String val)
inline

Definition at line 71 of file examples/extended/electromagnetic/TestEm2/include/RunAction.hh.

Referenced by RunActionMessenger::SetNewValue().

71 {fHistoName[0] = val;};
void RunAction::SetMassCytoplasm ( G4float  mC)
inline

Definition at line 77 of file examples/advanced/microbeam/include/RunAction.hh.

77 { fMassCytoplasm = mC;}
void RunAction::SetMassNucleus ( G4float  mN)
inline

Definition at line 74 of file examples/advanced/microbeam/include/RunAction.hh.

74 { fMassNucleus = mN;}
void RunAction::SetNumEvent ( G4int  i)
inline

Definition at line 69 of file examples/advanced/microbeam/include/RunAction.hh.

69 {fNumEvent = i;}
void RunAction::SetRndmFreq ( G4int  val)
inline

Definition at line 57 of file examples/advanced/microbeam/include/RunAction.hh.

57 {fSaveRndm = val;}
void RunAction::SetVerbose ( G4int  verbose)
inline

Definition at line 64 of file examples/extended/exoticphysics/monopole/include/RunAction.hh.

64 { fVerboseLevel = verbose;}
void RunAction::SetVerbose ( G4int  val)

Definition at line 197 of file examples/extended/electromagnetic/TestEm2/src/RunAction.cc.

References Run::SetVerbose().

Referenced by RunActionMessenger::SetNewValue().

198 {
199  fVerbose = val;
200  if ( fRun ) fRun->SetVerbose(val);
201 }
void SetVerbose(G4int val)
void RunAction::SetWriteFile ( G4bool  val)
inline

Definition at line 66 of file examples/advanced/amsEcal/include/RunAction.hh.

Referenced by EventAction::SetWriteFile().

66 {writeFile = val;};
void RunAction::StepInCavity ( G4double  s)
inline

Definition at line 72 of file examples/extended/medical/fanoCavity2/include/RunAction.hh.

72  { fStepCavity += s; fStepCavity2 += s*s;
73  fNbStepCavity++;};
const XML_Char * s
void RunAction::StepInCavity ( G4double  s)
inline

Definition at line 75 of file examples/extended/medical/fanoCavity/include/RunAction.hh.

75  { fStepCavity += s; fStepCavity2 += s*s;
76  fNbStepCavity++;};
const XML_Char * s
void RunAction::StepInWall ( G4double  s)
inline

Definition at line 70 of file examples/extended/medical/fanoCavity2/include/RunAction.hh.

70  { fStepWall += s; fStepWall2 += s*s;
71  fNbStepWall++;};
const XML_Char * s
void RunAction::StepInWall ( G4double  s)
inline

Definition at line 73 of file examples/extended/medical/fanoCavity/include/RunAction.hh.

73  { fStepWall += s; fStepWall2 += s*s;
74  fNbStepWall++;};
const XML_Char * s
void RunAction::SumEnergyFlow ( G4int  plane,
G4double  Eflow 
)
inline

Definition at line 67 of file examples/extended/electromagnetic/TestEm3/include/RunAction.hh.

68  {fEnergyFlow[plane] += Eflow;};
void RunAction::sumEsecond ( G4double  e)
inline

Definition at line 63 of file examples/extended/medical/fanoCavity/include/RunAction.hh.

63  { fEsecondary += e; fEsecondary2 += e*e;
64  fNbSec++;};
void RunAction::SumeTransf ( G4double  energy)
inline

Definition at line 64 of file examples/extended/electromagnetic/TestEm14/include/RunAction.hh.

References energy().

65  {fEnTransfer += energy;};
double precision function energy(A, Z)
Definition: dpm25nuc6.f:4106
void RunAction::SumFluence ( G4double  r,
G4double  fl 
)

Definition at line 158 of file examples/extended/medical/electronScattering/src/RunAction.cc.

References int().

159 {
160  G4int ibin = (int)(r/fDr);
161  if (ibin >= fNbBins) return;
162  fNbEntries[ibin]++;
163  fluence[ibin] += fl;
164  fluence2[ibin] += fl*fl;
165 }
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
int G4int
Definition: G4Types.hh:78
void RunAction::SumLateralDisplacement ( G4double  displa)
inline

Definition at line 67 of file examples/extended/electromagnetic/TestEm15/include/RunAction.hh.

68  {fLDispl += displa; fLDispl2 += displa*displa;}
void RunAction::SumLateralEleak ( G4int  cell,
G4double  Eflow 
)
inline

Definition at line 69 of file examples/extended/electromagnetic/TestEm3/include/RunAction.hh.

70  {fLateralEleak[cell] += Eflow;};
void RunAction::SumPathLength ( G4double  truepl,
G4double  geompl 
)
inline

Definition at line 61 of file examples/extended/electromagnetic/TestEm15/include/RunAction.hh.

62  {fTotalCount++;
63  fTruePL += truepl; fTruePL2 += truepl*truepl;
64  fGeomPL += geompl; fGeomPL2 += geompl*geompl;
65  };
void RunAction::SumPhiCorrel ( G4double  correl)
inline

Definition at line 76 of file examples/extended/electromagnetic/TestEm15/include/RunAction.hh.

77  {fPhiCor += correl; fPhiCor2 += correl*correl;}
void RunAction::SumPsi ( G4double  psi)
inline

Definition at line 70 of file examples/extended/electromagnetic/TestEm15/include/RunAction.hh.

71  {fPsiSpa += psi; fPsiSpa2 += psi*psi;}
void RunAction::SumTetaPlane ( G4double  teta)
inline

Definition at line 73 of file examples/extended/electromagnetic/TestEm15/include/RunAction.hh.

74  {fTetPrj += teta; fTetPrj2 += teta*teta;}
void RunAction::SumTrack ( G4double  track)
inline

Definition at line 62 of file examples/extended/electromagnetic/TestEm14/include/RunAction.hh.

63  {fTotalCount++; fSumTrack += track; fSumTrack2 += track*track;};
void RunAction::SumTrack ( G4double  track)
inline

Definition at line 64 of file examples/extended/hadronic/Hadr03/include/RunAction.hh.

65  {fTotalCount++; fSumTrack += track; fSumTrack2 += track*track;};
void RunAction::SurveyConvergence ( G4int  NbofEvents)

Definition at line 138 of file examples/extended/medical/fanoCavity/src/RunAction.cc.

References G4BestUnit, G4cout, G4endl, PrimaryGeneratorAction::GetBeamRadius(), G4ParticleGun::GetParticleEnergy(), PrimaryGeneratorAction::GetParticleGun(), and python.hepunit::pi.

139 {
140  if (NbofEvents == 0) return;
141 
142  //mean kinetic energy of secondary electrons
143  //
144  G4double meanEsecond = 0.;
145  if (fNbSec > 0) meanEsecond = fEsecondary/fNbSec;
146  G4double rateEmean = 0.;
147  // compute variation rate (%), iteration to iteration
148  if (fOldEmean > 0.) rateEmean = 100*(meanEsecond/fOldEmean - 1.);
149  fOldEmean = meanEsecond;
150 
151  //beam energy fluence
152  //
153  G4double rBeam = fWallRadius*(fKinematic->GetBeamRadius());
154  G4double surfaceBeam = pi*rBeam*rBeam;
155  G4double beamEnergy = fKinematic->GetParticleGun()->GetParticleEnergy();
156 
157  //total dose in cavity
158  //
159  G4double doseCavity = fEdepCavity/fMassCavity;
160  G4double doseOverBeam = doseCavity*surfaceBeam/(NbofEvents*beamEnergy);
161  G4double rateDose = 0.;
162  // compute variation rate (%), iteration to iteration
163  if (fOldDose > 0.) rateDose = 100*(doseOverBeam/fOldDose - 1.);
164  fOldDose = doseOverBeam;
165 
166  std::ios::fmtflags mode = G4cout.flags();
167  G4cout.setf(std::ios::fixed,std::ios::floatfield);
168  G4int prec = G4cout.precision(3);
169 
170  G4cout << "\n ---> NbofEvents= " << NbofEvents
171  << " NbOfelectr= " << fNbSec
172  << " Tkin= " << G4BestUnit(meanEsecond,"Energy")
173  << " (" << rateEmean << " %)"
174  << " NbOfelec in cav= " << fPartFlowCavity[0]
175  << " Dose/EnFluence= " << G4BestUnit(doseOverBeam,"Surface/Mass")
176  << " (" << rateDose << " %)"
177  << G4endl;
178 
179  // reset default formats
180  G4cout.setf(mode,std::ios::floatfield);
181  G4cout.precision(prec);
182 }
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4double GetParticleEnergy() const
void RunAction::SurveyConvergence ( G4int  )

Field Documentation

G4double RunAction::f_e_gam_sync
G4double RunAction::f_e_gam_sync2
G4double RunAction::f_e_gam_sync_max
G4double RunAction::f_lam_gam_sync
G4int RunAction::f_n_gam_sync

The documentation for this class was generated from the following files: