File indexing completed on 2025-01-18 09:58:01
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 #ifndef G4ChipsComponentXS_h
0036 #define G4ChipsComponentXS_h
0037
0038 #include <CLHEP/Units/PhysicalConstants.h> // pi, fermi,..
0039
0040 #include "globals.hh"
0041 #include "G4Proton.hh"
0042 #include "G4AntiProton.hh"
0043 #include "G4Nucleus.hh"
0044
0045 #include "G4ChipsProtonElasticXS.hh"
0046 #include "G4ChipsProtonInelasticXS.hh"
0047
0048 #include "G4ChipsNeutronElasticXS.hh"
0049 #include "G4ChipsNeutronInelasticXS.hh"
0050
0051 #include "G4ChipsAntiBaryonElasticXS.hh"
0052 #include "G4ChipsAntiBaryonInelasticXS.hh"
0053
0054 #include "G4ChipsPionMinusElasticXS.hh"
0055 #include "G4ChipsPionMinusInelasticXS.hh"
0056
0057 #include "G4ChipsPionPlusElasticXS.hh"
0058 #include "G4ChipsPionPlusInelasticXS.hh"
0059
0060 #include "G4ChipsKaonMinusElasticXS.hh"
0061 #include "G4ChipsKaonMinusInelasticXS.hh"
0062
0063 #include "G4ChipsKaonPlusElasticXS.hh"
0064 #include "G4ChipsKaonPlusInelasticXS.hh"
0065
0066 #include "G4ChipsKaonZeroElasticXS.hh"
0067 #include "G4ChipsKaonZeroInelasticXS.hh"
0068
0069 #include "G4ChipsHyperonElasticXS.hh"
0070 #include "G4ChipsHyperonInelasticXS.hh"
0071
0072 #include "G4VComponentCrossSection.hh"
0073
0074 class G4ParticleDefinition;
0075
0076 class G4ChipsComponentXS : public G4VComponentCrossSection
0077 {
0078 public:
0079
0080 G4ChipsComponentXS ();
0081 virtual ~G4ChipsComponentXS ();
0082
0083 virtual
0084 G4double GetTotalElementCrossSection(const G4ParticleDefinition* aParticle,
0085 G4double kinEnergy,
0086 G4int Z, G4double N);
0087
0088 virtual
0089 G4double GetTotalIsotopeCrossSection(const G4ParticleDefinition* aParticle,
0090 G4double kinEnergy,
0091 G4int Z, G4int N);
0092 virtual
0093 G4double GetInelasticElementCrossSection(const G4ParticleDefinition* aParticle,
0094 G4double kinEnergy,
0095 G4int Z, G4double N);
0096 virtual
0097 G4double GetInelasticIsotopeCrossSection(const G4ParticleDefinition* aParticle,
0098 G4double kinEnergy,
0099 G4int Z, G4int N);
0100
0101 virtual
0102 G4double GetElasticElementCrossSection(const G4ParticleDefinition* aParticle,
0103 G4double kinEnergy,
0104 G4int Z, G4double N);
0105
0106 virtual
0107 G4double GetElasticIsotopeCrossSection(const G4ParticleDefinition* aParticle,
0108 G4double kinEnergy,
0109 G4int Z, G4int N);
0110
0111 virtual
0112 void BuildPhysicsTable(const G4ParticleDefinition&)
0113 {}
0114
0115 virtual
0116 void DumpPhysicsTable(const G4ParticleDefinition&)
0117 {}
0118
0119 private:
0120 G4ChipsComponentXS & operator=(const G4ChipsComponentXS &right);
0121 G4ChipsComponentXS(const G4ChipsComponentXS&);
0122
0123 const G4double fUpperLimit;
0124 const G4double fLowerLimit;
0125
0126 G4ChipsProtonElasticXS* PxsManagerEl;
0127 G4ChipsProtonInelasticXS* PxsManagerInEl;
0128
0129 G4ChipsNeutronElasticXS* NxsManagerEl;
0130 G4ChipsNeutronInelasticXS* NxsManagerInEl;
0131
0132 G4ChipsAntiBaryonElasticXS* PBARxsManagerEl;
0133 G4ChipsAntiBaryonInelasticXS* PBARxsManagerInEl;
0134
0135 G4ChipsPionPlusElasticXS* PIPxsManagerEl;
0136 G4ChipsPionPlusInelasticXS* PIPxsManagerInEl;
0137
0138 G4ChipsPionMinusElasticXS* PIMxsManagerEl;
0139 G4ChipsPionMinusInelasticXS* PIMxsManagerInEl;
0140
0141 G4ChipsKaonPlusElasticXS* KPxsManagerEl;
0142 G4ChipsKaonPlusInelasticXS* KPxsManagerInEl;
0143
0144 G4ChipsKaonMinusElasticXS* KMxsManagerEl;
0145 G4ChipsKaonMinusInelasticXS* KMxsManagerInEl;
0146
0147 G4ChipsKaonZeroElasticXS* KZxsManagerEl;
0148 G4ChipsKaonZeroInelasticXS* KZxsManagerInEl;
0149
0150 G4ChipsHyperonElasticXS* HxsManagerEl;
0151 G4ChipsHyperonInelasticXS* HxsManagerInEl;
0152 };
0153
0154 #endif