Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // 27 // Geant4 header G4EmTableUtil 28 // 29 // Author V.Ivanchenko 14.03.2022 30 // 31 // Utilities used at initialisation of EM phys 32 // 33 34 #ifndef G4EmTableUtil_h 35 #define G4EmTableUtil_h 1 36 37 #include "globals.hh" 38 #include "G4PhysicsTable.hh" 39 #include "G4VMultipleScattering.hh" 40 #include "G4VEmProcess.hh" 41 #include "G4VEnergyLossProcess.hh" 42 #include "G4EmModelManager.hh" 43 #include "G4LossTableBuilder.hh" 44 #include "G4ParticleDefinition.hh" 45 #include "G4MscStepLimitType.hh" 46 #include "G4DataVector.hh" 47 48 class G4EmTableUtil 49 { 50 public: 51 52 static const G4DataVector* 53 PrepareEmProcess(G4VEmProcess* proc, 54 const G4ParticleDefinition* 55 const G4ParticleDefinition* 56 G4EmModelManager* modelManager, 57 const G4double& maxKinEnerg 58 G4int& secID, G4int& tripletID, 59 G4int& mainSec, const G4int 60 const G4bool& master); 61 62 static void BuildEmProcess(G4VEmProcess* pro 63 const G4VEmProces 64 const G4ParticleDefinition* firstPa 65 const G4ParticleDefinition* part, 66 const G4int nModels, const G4int ve 67 const G4bool mast 68 const G4bool toBu 69 70 static void BuildLambdaTable(G4VEmProcess* p 71 const G4Particl 72 G4EmModelManage 73 G4LossTableBuilder* bld, 74 G4PhysicsTable* 75 G4PhysicsTable* 76 const G4double 77 const G4double 78 const G4double 79 const G4double 80 const G4int ver 81 const G4bool st 82 const G4bool sp 83 84 static void BuildLambdaTable(G4VEnergyLossPr 85 const G4Particl 86 G4EmModelManage 87 G4LossTableBuilder* bld, 88 G4PhysicsTable* 89 const G4DataVec 90 const G4double 91 const G4double 92 const G4double 93 const G4int ver 94 const G4bool sp 95 96 static const G4ParticleDefinition* CheckIon( 97 G4VEnergyLossPr 98 const G4Particl 99 const G4Particl 100 const G4int ver 101 102 static void UpdateModels(G4VEnergyLossProces 103 G4EmModelManager* modelManager, 104 const G4double maxK 105 const G4int nModels 106 G4int& secID, G4int 107 G4int& mainSecondar 108 const G4bool isMast 109 110 static void BuildLocalElossProcess(G4VEnergy 111 const G4VEnergyLossProcess* maste 112 const G4ParticleDefinition* part, 113 const G4i 114 115 static void BuildDEDXTable(G4VEnergyLossProc 116 const G4ParticleDefinition* part, 117 G4EmModelManager* modelManager, 118 G4LossTableBuilder* bld, 119 G4PhysicsTable* table, 120 const G4double minKinEnergy, 121 const G4double maxKinEnergy, 122 const G4int nbins, 123 const G4int verbose, 124 const G4EmTableType tType, 125 const G4bool splineFlag); 126 127 static void PrepareMscProcess(G4VMultipleSca 128 const G4Partic 129 G4EmModelManager* modelManager, 130 G4MscStepLimitType& stepLimit, 131 G4double& facr 132 G4bool& latDisplacement, G4bool& 133 G4bool& isIon, G4bool& baseMat); 134 135 static void BuildMscProcess(G4VMultipleScatt 136 const G4VMultipl 137 const G4ParticleDefinition& 138 const G4ParticleDefinition* 139 G4int nModels, G4bool master 140 141 static G4bool StoreMscTable(G4VMultipleScatt 142 const G4Particle 143 const G4String& 144 const G4int nModels, const G4int v 145 const G4bool asc 146 147 static G4bool StoreTable(G4VProcess*, const 148 G4PhysicsTable*, co 149 const G4String& tna 150 G4bool ascii); 151 152 static G4bool RetrieveTable(G4VProcess* ptr, 153 const G4Particle 154 G4PhysicsTable* 155 const G4String& 156 const G4int verb 157 const G4bool spl 158 159 }; 160 161 #endif 162 163 164