File indexing completed on 2026-09-12 08:29:20
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifndef Run_h
0030 #define Run_h 1
0031
0032 #include "DetectorConstruction.hh"
0033
0034 #include "G4Run.hh"
0035
0036 class DetectorConstruction;
0037 class G4ParticleDefinition;
0038
0039
0040
0041 class Run : public G4Run
0042 {
0043 public:
0044 Run(DetectorConstruction* detector);
0045 ~Run() override = default;
0046
0047 public:
0048 void SetPrimary(G4ParticleDefinition* particle, G4double energy);
0049
0050 void AddEdep(G4int i, G4double e);
0051 void AddTotEdep(G4double e);
0052 void AddEleak(G4double);
0053 void AddEtotal(G4double);
0054 void AddTrackLength(G4double t);
0055 void AddProjRange(G4double x);
0056 void AddStepSize(G4int nb, G4double st);
0057 void AddTrackStatus(G4int i);
0058
0059 void SetCsdaRange(G4int i, G4double value);
0060 void SetXfrontNorm(G4int i, G4double value);
0061
0062 G4double GetCsdaRange(G4int i);
0063 G4double GetXfrontNorm(G4int i);
0064
0065 void Merge(const G4Run*) override;
0066 void EndOfRun();
0067
0068 private:
0069 DetectorConstruction* fDetector = nullptr;
0070 G4ParticleDefinition* fParticle = nullptr;
0071 G4double fEkin = 0.;
0072
0073 G4double fTrackLen = 0., fTrackLen2 = 0.;
0074 G4double fProjRange = 0., fProjRange2 = 0.;
0075 G4int fNbOfSteps = 0, fNbOfSteps2 = 0;
0076 G4double fStepSize = 0., fStepSize2 = 0.;
0077 G4int fStatus[3];
0078
0079 G4double fEdeposit[kMaxAbsor], fEmin[kMaxAbsor], fEmax[kMaxAbsor];
0080 G4double fTotEdep[3], fEleak[3], fEtotal[3];
0081 G4double fCsdaRange[kMaxAbsor];
0082 G4double fXfrontNorm[kMaxAbsor];
0083 };
0084
0085
0086
0087 #endif