File indexing completed on 2026-09-18 08:32:06
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 SteppingAction_H
0030 #define SteppingAction_H 1
0031
0032 #include "CLHEP/Units/SystemOfUnits.h"
0033
0034 #include "G4ThreeVector.hh"
0035 #include "G4UserSteppingAction.hh"
0036 #include "globals.hh"
0037
0038 class Run;
0039
0040
0041
0042 class SteppingAction : public G4UserSteppingAction
0043 {
0044 public:
0045 SteppingAction();
0046 virtual ~SteppingAction();
0047
0048
0049
0050
0051
0052
0053
0054 virtual void UserSteppingAction(const G4Step*) override;
0055
0056
0057
0058
0059
0060
0061 void Initialize();
0062
0063
0064
0065
0066
0067 void SetRunPointer(Run* inputValue = nullptr) { fRunPtr = inputValue; }
0068
0069 private:
0070 G4bool IsPreassignedDecayEnabled() const { return fIsPreassignedDecayEnabled; }
0071 G4bool IsBoostToLabEnabled() const { return fIsBoostToLabEnabled; }
0072 G4double ToleranceEPviolations() const { return fToleranceEPviolations; }
0073 G4double ToleranceDeltaDecayRadius() const { return fToleranceDeltaDecayRadius; }
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084 const G4bool fIsPreassignedDecayEnabled = true;
0085 const G4bool fIsBoostToLabEnabled = true;
0086
0087
0088 G4double fToleranceEPviolations;
0089
0090
0091
0092 const G4double fToleranceDeltaDecayRadius = 1.0 * CLHEP::micrometer;
0093
0094 Run* fRunPtr;
0095
0096
0097 G4int fPrimaryParticleId;
0098 G4double fPrimaryParticleInitialKineticEnergy;
0099 G4double fPrimaryParticleInitialTotalEnergy;
0100 G4double fPrimaryParticleInitialMomentum;
0101 G4double fPrimaryParticleInitialBeta;
0102 G4double fPrimaryParticleInitialGamma;
0103 G4ThreeVector fPrimaryParticleInitial3Momentum;
0104 G4ThreeVector fPrimaryParticleInitialPosition;
0105
0106
0107
0108 G4double fMaxEkin_deltaMax;
0109 G4double fMaxEtot_deltaMax;
0110 G4double fMaxP_deltaMax;
0111 G4double fMaxPdir_deltaMax;
0112 G4double fMaxMass_deltaMax1;
0113 G4double fMaxMass_deltaMax2;
0114 G4double fMaxMass_deltaMax3;
0115 G4double fMeanMass_deltaMax3;
0116 G4double fMaxBeta_deltaMax1;
0117 G4double fMaxBeta_deltaMax2;
0118 G4double fMaxGamma_deltaMax1;
0119 G4double fMaxGamma_deltaMax2;
0120 G4double fMaxGamma_deltaMax3;
0121 G4double fMaxT_proper_deltaMax;
0122 G4double fMaxT_lab_deltaMax;
0123 G4double fMaxMc_truth_rPos_deltaMax;
0124 G4double fMeanMc_truth_rPos_deltaMax;
0125
0126
0127 G4double fMeanDeltaR_primaryDecay;
0128 G4double fMinDeltaR_primaryDecay;
0129 G4double fMaxDeltaR_primaryDecay;
0130 G4double fMeanR_primaryDecay;
0131 G4double fMinR_primaryDecay;
0132 G4double fMaxR_primaryDecay;
0133 G4double fMeanX_primaryDecay;
0134 G4double fMinX_primaryDecay;
0135 G4double fMaxX_primaryDecay;
0136 G4double fMeanY_primaryDecay;
0137 G4double fMinY_primaryDecay;
0138 G4double fMaxY_primaryDecay;
0139 G4double fMeanZ_primaryDecay;
0140 G4double fMinZ_primaryDecay;
0141 G4double fMaxZ_primaryDecay;
0142 G4double fMeanDeltaAngle_primaryDecay;
0143 G4double fMinDeltaAngle_primaryDecay;
0144 G4double fMaxDeltaAngle_primaryDecay;
0145 G4double fMeanDeltaEkin_primaryDecay;
0146 G4double fMinDeltaEkin_primaryDecay;
0147 G4double fMaxDeltaEkin_primaryDecay;
0148 G4double fMeanEkin_primaryDecay;
0149 G4double fMinEkin_primaryDecay;
0150 G4double fMaxEkin_primaryDecay;
0151 G4double fMeanPx_primaryDecay;
0152 G4double fMinPx_primaryDecay;
0153 G4double fMaxPx_primaryDecay;
0154 G4double fMeanPy_primaryDecay;
0155 G4double fMinPy_primaryDecay;
0156 G4double fMaxPy_primaryDecay;
0157 G4double fMeanPz_primaryDecay;
0158 G4double fMinPz_primaryDecay;
0159 G4double fMaxPz_primaryDecay;
0160
0161
0162
0163 G4double fMinUnderestimated_mc_truth_rPos_delta;
0164 G4double fMaxOverestimated_mc_truth_rPos_delta;
0165 G4double fMeanUnderestimated_mc_truth_rPos_delta;
0166 G4double fMeanOverestimated_mc_truth_rPos_delta;
0167 G4double fMinUnderestimated_rDeltaPos;
0168 G4double fMaxOverestimated_rDeltaPos;
0169 G4double fMeanUnderestimated_rDeltaPos;
0170 G4double fMeanOverestimated_rDeltaPos;
0171
0172
0173 G4double fMaxFloat_rDeltaPos_deltaMax;
0174
0175
0176
0177 G4double fMeanViolationE_primaryDecay;
0178 G4double fMinViolationE_primaryDecay;
0179 G4double fMaxViolationE_primaryDecay;
0180 G4double fMeanViolationPx_primaryDecay;
0181 G4double fMinViolationPx_primaryDecay;
0182 G4double fMaxViolationPx_primaryDecay;
0183 G4double fMeanViolationPy_primaryDecay;
0184 G4double fMinViolationPy_primaryDecay;
0185 G4double fMaxViolationPy_primaryDecay;
0186 G4double fMeanViolationPz_primaryDecay;
0187 G4double fMinViolationPz_primaryDecay;
0188 G4double fMaxViolationPz_primaryDecay;
0189 };
0190
0191
0192
0193 #endif