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