File indexing completed on 2026-09-12 08:30:33
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 "ProcessesCount.hh"
0033
0034 #include "G4Run.hh"
0035 #include "globals.hh"
0036
0037 class G4Run;
0038 class G4Material;
0039 class G4ParticleDefinition;
0040 class DetectorConstruction;
0041 class PrimaryGeneratorAction;
0042
0043
0044
0045 class Run : public G4Run
0046 {
0047 public:
0048 Run(DetectorConstruction* det, PrimaryGeneratorAction*, bool isMaster);
0049 ~Run();
0050
0051 public:
0052 void SetPrimary(G4ParticleDefinition* particle, G4double energy);
0053
0054 void CountProcesses(G4String);
0055
0056 void SurveyConvergence(G4int);
0057
0058 void FlowInCavity(G4int k, G4double e)
0059 {
0060 fEnerFlowCavity[k] += e;
0061 fPartFlowCavity[k]++;
0062 };
0063
0064 void AddEdepCavity(G4double de)
0065 {
0066 fEdepCavity += de;
0067 fEdepCavity2 += de * de;
0068 fNbEventCavity++;
0069 };
0070 void AddTrakCavity(G4double dt) { fTrkSegmCavity += dt; };
0071
0072 void StepInWall(G4double s)
0073 {
0074 fStepWall += s;
0075 fStepWall2 += s * s;
0076 fNbStepWall++;
0077 };
0078 void StepInCavity(G4double s)
0079 {
0080 fStepCavity += s;
0081 fStepCavity2 += s * s;
0082 fNbStepCavity++;
0083 };
0084 virtual void Merge(const G4Run*);
0085
0086 void EndOfRun();
0087
0088 private:
0089 DetectorConstruction* fDetector;
0090 PrimaryGeneratorAction* fKinematic;
0091 ProcessesCount* fProcCounter;
0092
0093 G4long fPartFlowCavity[2];
0094 G4double fEnerFlowCavity[2];
0095 G4double fEdepCavity, fEdepCavity2;
0096 G4double fTrkSegmCavity;
0097 G4long fNbEventCavity;
0098
0099 G4double fStepWall, fStepWall2;
0100 G4double fStepCavity, fStepCavity2;
0101 G4long fNbStepWall, fNbStepCavity;
0102
0103 private:
0104 G4double fEnergyGun;
0105 G4double fMassWall;
0106 G4double fMassCavity;
0107 G4bool fIsMaster;
0108
0109
0110
0111 };
0112
0113
0114
0115 #endif