File indexing completed on 2025-02-23 09:22:15
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
0030
0031
0032
0033 #ifndef Run_h
0034 #define Run_h 1
0035
0036 #include "ProcessesCount.hh"
0037
0038 #include "G4Run.hh"
0039 #include "globals.hh"
0040
0041 class G4Run;
0042 class G4Material;
0043 class G4ParticleDefinition;
0044 class DetectorConstruction;
0045 class PrimaryGeneratorAction;
0046
0047
0048
0049 class Run : public G4Run
0050 {
0051 public:
0052 Run(DetectorConstruction*, PrimaryGeneratorAction*);
0053 ~Run();
0054
0055 public:
0056 virtual void Merge(const G4Run*);
0057 void SurveyConvergence(G4int);
0058
0059 void EndOfRun();
0060
0061 void CountProcesses(G4String);
0062 void SumEsecond(G4double e)
0063 {
0064 fEsecondary += e;
0065 fEsecondary2 += e * e;
0066 fNbSec++;
0067 };
0068
0069 void FlowInCavity(G4int k, G4double e)
0070 {
0071 fEnerFlowCavity[k] += e;
0072 fPartFlowCavity[k]++;
0073 };
0074
0075 void AddEdepCavity(G4double de)
0076 {
0077 fEdepCavity += de;
0078 fEdepCavity2 += de * de;
0079 fNbEventCavity++;
0080 };
0081 void AddTrakCavity(G4double dt) { fTrkSegmCavity += dt; };
0082
0083 void StepInWall(G4double s)
0084 {
0085 fStepWall += s;
0086 fStepWall2 += s * s;
0087 fNbStepWall++;
0088 };
0089 void StepInCavity(G4double s)
0090 {
0091 fStepCavity += s;
0092 fStepCavity2 += s * s;
0093 fNbStepCavity++;
0094 };
0095
0096 private:
0097 DetectorConstruction* fDetector;
0098 PrimaryGeneratorAction* fKinematic;
0099 ProcessesCount* fProcCounter;
0100
0101 G4double fEsecondary, fEsecondary2;
0102 G4long fNbSec;
0103
0104 G4long fPartFlowCavity[2];
0105 G4double fEnerFlowCavity[2];
0106 G4double fEdepCavity, fEdepCavity2;
0107 G4double fTrkSegmCavity;
0108 G4long fNbEventCavity;
0109
0110 G4double fOldEmean, fOldDose;
0111
0112 G4double fStepWall, fStepWall2;
0113 G4double fStepCavity, fStepCavity2;
0114 G4long fNbStepWall, fNbStepCavity;
0115
0116 private:
0117 G4double fWallThickness;
0118 G4double fWallRadius;
0119 G4Material* fMateWall;
0120 G4double fDensityWall;
0121
0122 G4double fCavityThickness;
0123 G4double fCavityRadius;
0124 G4double fSurfaceCavity;
0125 G4double fVolumeCavity;
0126 G4Material* fMateCavity;
0127 G4double fDensityCavity;
0128 G4double fMassCavity;
0129 };
0130
0131
0132
0133 #endif