Warning, file /include/Geant4/G4TablesForExtrapolator.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
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042 #ifndef G4TablesForExtrapolator_h
0043 #define G4TablesForExtrapolator_h 1
0044
0045 #include "globals.hh"
0046 #include "G4PhysicsTable.hh"
0047 #include "G4DataVector.hh"
0048 #include <vector>
0049
0050 class G4ParticleDefinition;
0051 class G4ProductionCuts;
0052 class G4MaterialCutsCouple;
0053 class G4LossTableBuilder;
0054
0055
0056
0057 enum ExtTableType
0058 {
0059 fDedxElectron = 0,
0060 fDedxPositron,
0061 fDedxProton,
0062 fDedxMuon,
0063 fRangeElectron,
0064 fRangePositron,
0065 fRangeProton,
0066 fRangeMuon,
0067 fInvRangeElectron,
0068 fInvRangePositron,
0069 fInvRangeProton,
0070 fInvRangeMuon,
0071 fMscElectron
0072 };
0073
0074 class G4TablesForExtrapolator
0075 {
0076 public:
0077
0078 explicit G4TablesForExtrapolator(G4int verb, G4int bins, G4double e1, G4double e2);
0079
0080 ~G4TablesForExtrapolator();
0081
0082 const G4PhysicsTable* GetPhysicsTable(ExtTableType type) const;
0083
0084 void Initialisation();
0085
0086
0087 G4TablesForExtrapolator & operator=
0088 (const G4TablesForExtrapolator &right) = delete;
0089 G4TablesForExtrapolator(const G4TablesForExtrapolator&) = delete;
0090
0091 private:
0092
0093 G4PhysicsTable* PrepareTable(G4PhysicsTable*);
0094
0095 void ComputeElectronDEDX(const G4ParticleDefinition* part,
0096 G4PhysicsTable* table);
0097
0098 void ComputeMuonDEDX(const G4ParticleDefinition* part,
0099 G4PhysicsTable* table);
0100
0101 void ComputeProtonDEDX(const G4ParticleDefinition* part,
0102 G4PhysicsTable* table);
0103
0104 void ComputeTrasportXS(const G4ParticleDefinition* part,
0105 G4PhysicsTable* table);
0106
0107 std::vector<const G4MaterialCutsCouple*> couples;
0108 G4DataVector cuts;
0109
0110 const G4ParticleDefinition* electron;
0111 const G4ParticleDefinition* positron;
0112 const G4ParticleDefinition* muonPlus;
0113 const G4ParticleDefinition* muonMinus;
0114 const G4ParticleDefinition* proton;
0115 const G4ParticleDefinition* currentParticle = nullptr;
0116
0117 G4LossTableBuilder* builder = nullptr;
0118 G4ProductionCuts* pcuts = nullptr;
0119
0120 G4PhysicsTable* dedxElectron = nullptr;
0121 G4PhysicsTable* dedxPositron = nullptr;
0122 G4PhysicsTable* dedxMuon = nullptr;
0123 G4PhysicsTable* dedxProton = nullptr;
0124 G4PhysicsTable* rangeElectron = nullptr;
0125 G4PhysicsTable* rangePositron = nullptr;
0126 G4PhysicsTable* rangeMuon = nullptr;
0127 G4PhysicsTable* rangeProton = nullptr;
0128 G4PhysicsTable* invRangeElectron = nullptr;
0129 G4PhysicsTable* invRangePositron = nullptr;
0130 G4PhysicsTable* invRangeMuon = nullptr;
0131 G4PhysicsTable* invRangeProton = nullptr;
0132 G4PhysicsTable* mscElectron = nullptr;
0133
0134 G4double emin;
0135 G4double emax;
0136 G4double mass = 0.0;
0137 G4double charge2 = 0.0;
0138
0139 G4int verbose;
0140 G4int nbins;
0141 G4int nmat = 0;
0142
0143 G4bool splineFlag = false;
0144 };
0145
0146
0147
0148 #endif
0149