Warning, file /include/Geant4/G4DNABornExcitationModel2.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
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 #ifndef G4DNABornExcitationModel2_h
0029 #define G4DNABornExcitationModel2_h 1
0030
0031 #include "G4VEmModel.hh"
0032 #include "G4ParticleChangeForGamma.hh"
0033 #include "G4ProductionCutsTable.hh"
0034
0035
0036 #include "G4LogLogInterpolation.hh"
0037 #include "G4Electron.hh"
0038 #include "G4Proton.hh"
0039 #include "G4DNAWaterExcitationStructure.hh"
0040 #include "G4NistManager.hh"
0041
0042 class G4PhysicsVector;
0043
0044 class G4DNABornExcitationModel2: public G4VEmModel
0045 {
0046 public:
0047 G4DNABornExcitationModel2(const G4ParticleDefinition* p = nullptr,
0048 const G4String& nam = "DNABornExcitationModel");
0049
0050 ~G4DNABornExcitationModel2() override;
0051
0052 G4DNABornExcitationModel2 & operator=(const G4DNABornExcitationModel2 &right) = delete;
0053 G4DNABornExcitationModel2(const G4DNABornExcitationModel2&) = delete;
0054
0055 void Initialise(const G4ParticleDefinition*,
0056 const G4DataVector& = *(new G4DataVector())) override;
0057
0058 G4double CrossSectionPerVolume(const G4Material* material,
0059 const G4ParticleDefinition* p,
0060 G4double ekin,
0061 G4double emin,
0062 G4double emax) override;
0063
0064 G4double GetPartialCrossSection(const G4Material*,
0065 G4int level,
0066 const G4ParticleDefinition*,
0067 G4double kineticEnergy) override;
0068
0069 void SampleSecondaries(std::vector<G4DynamicParticle*>*,
0070 const G4MaterialCutsCouple*,
0071 const G4DynamicParticle*,
0072 G4double tmin,
0073 G4double maxEnergy) override;
0074
0075 inline void SelectStationary(G4bool input);
0076
0077 protected:
0078
0079 G4ParticleChangeForGamma* fParticleChangeForGamma;
0080
0081 private:
0082
0083 G4bool statCode;
0084
0085
0086 const std::vector<G4double>* fpMolWaterDensity;
0087
0088 G4bool isInitialised{false};
0089 G4int verboseLevel;
0090 const G4ParticleDefinition* fParticleDefinition;
0091
0092 G4double fLowEnergy;
0093 G4double fHighEnergy;
0094
0095 G4PhysicsTable* fTableData{nullptr};
0096 G4PhysicsVector* fTotalXS;
0097 size_t fLastBinCallForFinalXS;
0098
0099
0100 G4int RandomSelect(G4double energy);
0101
0102 G4DNAWaterExcitationStructure waterStructure;
0103
0104
0105 };
0106
0107
0108
0109 inline void G4DNABornExcitationModel2::SelectStationary (G4bool input)
0110 {
0111 statCode = input;
0112 }
0113
0114
0115
0116 #endif