00001
00002 #ifndef BesHadronPhysics_h
00003 #define BesHadronPhysics_h 1
00004
00005 #include "globals.hh"
00006 #include "G4ios.hh"
00007 #include <vector>
00008
00009 #include "G4VPhysicsConstructor.hh"
00010
00011 #include "G4MultipleScattering.hh"
00012 #include "G4hIonisation.hh"
00013
00014 #include "G4HadronElasticProcess.hh"
00015 #include "G4HadronFissionProcess.hh"
00016 #include "G4HadronCaptureProcess.hh"
00017
00018 #include "G4PionPlusInelasticProcess.hh"
00019 #include "G4PionMinusInelasticProcess.hh"
00020 #include "G4KaonPlusInelasticProcess.hh"
00021 #include "G4KaonZeroSInelasticProcess.hh"
00022 #include "G4KaonZeroLInelasticProcess.hh"
00023 #include "G4KaonMinusInelasticProcess.hh"
00024 #include "G4ProtonInelasticProcess.hh"
00025 #include "G4AntiProtonInelasticProcess.hh"
00026 #include "G4NeutronInelasticProcess.hh"
00027 #include "G4AntiNeutronInelasticProcess.hh"
00028 #include "G4LambdaInelasticProcess.hh"
00029 #include "G4AntiLambdaInelasticProcess.hh"
00030 #include "G4SigmaPlusInelasticProcess.hh"
00031 #include "G4SigmaMinusInelasticProcess.hh"
00032 #include "G4AntiSigmaPlusInelasticProcess.hh"
00033 #include "G4AntiSigmaMinusInelasticProcess.hh"
00034 #include "G4XiZeroInelasticProcess.hh"
00035 #include "G4XiMinusInelasticProcess.hh"
00036 #include "G4AntiXiZeroInelasticProcess.hh"
00037 #include "G4AntiXiMinusInelasticProcess.hh"
00038 #include "G4DeuteronInelasticProcess.hh"
00039 #include "G4TritonInelasticProcess.hh"
00040 #include "G4AlphaInelasticProcess.hh"
00041 #include "G4OmegaMinusInelasticProcess.hh"
00042 #include "G4AntiOmegaMinusInelasticProcess.hh"
00043
00044
00045 #include "G4LElastic.hh"
00046 #include "G4LFission.hh"
00047 #include "G4LCapture.hh"
00048
00049 #include "G4LEPionPlusInelastic.hh"
00050 #include "G4LEPionMinusInelastic.hh"
00051 #include "G4LEKaonPlusInelastic.hh"
00052 #include "G4LEKaonZeroSInelastic.hh"
00053 #include "G4LEKaonZeroLInelastic.hh"
00054 #include "G4LEKaonMinusInelastic.hh"
00055 #include "G4LEProtonInelastic.hh"
00056 #include "G4LEAntiProtonInelastic.hh"
00057 #include "G4LENeutronInelastic.hh"
00058 #include "G4LEAntiNeutronInelastic.hh"
00059 #include "G4LELambdaInelastic.hh"
00060 #include "G4LEAntiLambdaInelastic.hh"
00061 #include "G4LESigmaPlusInelastic.hh"
00062 #include "G4LESigmaMinusInelastic.hh"
00063 #include "G4LEAntiSigmaPlusInelastic.hh"
00064 #include "G4LEAntiSigmaMinusInelastic.hh"
00065 #include "G4LEXiZeroInelastic.hh"
00066 #include "G4LEXiMinusInelastic.hh"
00067 #include "G4LEAntiXiZeroInelastic.hh"
00068 #include "G4LEAntiXiMinusInelastic.hh"
00069 #include "G4LEDeuteronInelastic.hh"
00070 #include "G4LETritonInelastic.hh"
00071 #include "G4LEAlphaInelastic.hh"
00072 #include "G4LEOmegaMinusInelastic.hh"
00073 #include "G4LEAntiOmegaMinusInelastic.hh"
00074
00075
00076
00077 #include "G4HEPionPlusInelastic.hh"
00078 #include "G4HEPionMinusInelastic.hh"
00079 #include "G4HEKaonPlusInelastic.hh"
00080 #include "G4HEKaonZeroInelastic.hh"
00081 #include "G4HEKaonZeroInelastic.hh"
00082 #include "G4HEKaonMinusInelastic.hh"
00083 #include "G4HEProtonInelastic.hh"
00084 #include "G4HEAntiProtonInelastic.hh"
00085 #include "G4HENeutronInelastic.hh"
00086 #include "G4HEAntiNeutronInelastic.hh"
00087 #include "G4HELambdaInelastic.hh"
00088 #include "G4HEAntiLambdaInelastic.hh"
00089 #include "G4HESigmaPlusInelastic.hh"
00090 #include "G4HESigmaMinusInelastic.hh"
00091 #include "G4HEAntiSigmaPlusInelastic.hh"
00092 #include "G4HEAntiSigmaMinusInelastic.hh"
00093 #include "G4HEXiZeroInelastic.hh"
00094 #include "G4HEXiMinusInelastic.hh"
00095 #include "G4HEAntiXiZeroInelastic.hh"
00096 #include "G4HEAntiXiMinusInelastic.hh"
00097 #include "G4HEOmegaMinusInelastic.hh"
00098 #include "G4HEAntiOmegaMinusInelastic.hh"
00099
00100
00101 #include "G4AntiProtonAnnihilationAtRest.hh"
00102 #include "G4AntiNeutronAnnihilationAtRest.hh"
00103
00104 #ifdef TRIUMF_STOP_PIMINUS
00105 #include "G4PionMinusAbsorptionAtRest.hh"
00106 #else
00107 #include "G4PiMinusAbsorptionAtRest.hh"
00108 #endif
00109 #ifdef TRIUMF_STOP_KMINUS
00110 #include "G4KaonMinusAbsorption.hh"
00111 #else
00112 #include "G4KaonMinusAbsorptionAtRest.hh"
00113 #endif
00114
00115
00116 #include "G4TheoFSGenerator.hh"
00117 #include "G4ExcitationHandler.hh"
00118 #include "G4PreCompoundModel.hh"
00119 #include "G4GeneratorPrecompoundInterface.hh"
00120
00121
00122
00123
00124
00125 class BesHadronPhysics : public G4VPhysicsConstructor
00126 {
00127 public:
00128 BesHadronPhysics(const G4String& name ="hadron");
00129 virtual ~BesHadronPhysics();
00130
00131 public:
00132
00133
00134 virtual void ConstructParticle();
00135
00136
00137
00138
00139 virtual void ConstructProcess();
00140
00141 protected:
00142
00143 G4HadronElasticProcess theElasticProcess;
00144 G4LElastic* theElasticModel;
00145
00146
00147 G4PionPlusInelasticProcess thePionPlusInelastic;
00148 G4LEPionPlusInelastic* theLEPionPlusModel;
00149 G4MultipleScattering thePionPlusMult;
00150 G4hIonisation thePionPlusIonisation;
00151
00152
00153 G4PionMinusInelasticProcess thePionMinusInelastic;
00154 G4LEPionMinusInelastic* theLEPionMinusModel;
00155 G4MultipleScattering thePionMinusMult;
00156 G4hIonisation thePionMinusIonisation;
00157 #ifdef TRIUMF_STOP_PIMINUS
00158 G4PionMinusAbsorptionAtRest thePionMinusAbsorption;
00159 #else
00160 G4PiMinusAbsorptionAtRest thePionMinusAbsorption;
00161 #endif
00162
00163
00164
00165
00166
00167 G4ExcitationHandler theHandler;
00168 G4PreCompoundModel * thePreEquilib;
00169 G4GeneratorPrecompoundInterface theCascade;
00170
00171
00172
00173
00174
00175 G4KaonPlusInelasticProcess theKaonPlusInelastic;
00176 G4LEKaonPlusInelastic* theLEKaonPlusModel;
00177 G4HEKaonPlusInelastic* theHEKaonPlusModel;
00178 G4MultipleScattering theKaonPlusMult;
00179 G4hIonisation theKaonPlusIonisation;
00180
00181
00182 G4KaonMinusInelasticProcess theKaonMinusInelastic;
00183 G4LEKaonMinusInelastic* theLEKaonMinusModel;
00184 G4HEKaonMinusInelastic* theHEKaonMinusModel;
00185 G4MultipleScattering theKaonMinusMult;
00186 G4hIonisation theKaonMinusIonisation;
00187 #ifdef TRIUMF_STOP_KMINUS
00188 G4KaonMinusAbsorption theKaonMinusAbsorption;
00189 #else
00190 G4PiMinusAbsorptionAtRest theKaonMinusAbsorption;
00191 #endif
00192
00193
00194 G4KaonZeroLInelasticProcess theKaonZeroLInelastic;
00195 G4LEKaonZeroLInelastic* theLEKaonZeroLModel;
00196 G4HEKaonZeroInelastic* theHEKaonZeroLModel;
00197
00198
00199
00200 G4KaonZeroSInelasticProcess theKaonZeroSInelastic;
00201 G4LEKaonZeroSInelastic* theLEKaonZeroSModel;
00202 G4HEKaonZeroInelastic* theHEKaonZeroSModel;
00203
00204
00205 G4ProtonInelasticProcess theProtonInelastic;
00206 G4LEProtonInelastic* theLEProtonModel;
00207 G4HEProtonInelastic* theHEProtonModel;
00208 G4MultipleScattering theProtonMult;
00209 G4hIonisation theProtonIonisation;
00210
00211
00212 G4AntiProtonInelasticProcess theAntiProtonInelastic;
00213 G4LEAntiProtonInelastic* theLEAntiProtonModel;
00214 G4HEAntiProtonInelastic* theHEAntiProtonModel;
00215 G4MultipleScattering theAntiProtonMult;
00216 G4hIonisation theAntiProtonIonisation;
00217 G4AntiProtonAnnihilationAtRest theAntiProtonAnnihilation;
00218
00219
00220 G4NeutronInelasticProcess theNeutronInelastic;
00221 G4LENeutronInelastic* theLENeutronModel;
00222 G4HENeutronInelastic* theHENeutronModel;
00223 G4HadronFissionProcess theNeutronFission;
00224 G4LFission* theNeutronFissionModel;
00225 G4HadronCaptureProcess theNeutronCapture;
00226 G4LCapture* theNeutronCaptureModel;
00227
00228
00229
00230 G4AntiNeutronInelasticProcess theAntiNeutronInelastic;
00231 G4LEAntiNeutronInelastic* theLEAntiNeutronModel;
00232 G4HEAntiNeutronInelastic* theHEAntiNeutronModel;
00233 G4AntiNeutronAnnihilationAtRest theAntiNeutronAnnihilation;
00234
00235
00236 G4LambdaInelasticProcess theLambdaInelastic;
00237 G4LELambdaInelastic* theLELambdaModel;
00238 G4HELambdaInelastic* theHELambdaModel;
00239
00240
00241 G4AntiLambdaInelasticProcess theAntiLambdaInelastic;
00242 G4LEAntiLambdaInelastic* theLEAntiLambdaModel;
00243 G4HEAntiLambdaInelastic* theHEAntiLambdaModel;
00244
00245
00246 G4SigmaMinusInelasticProcess theSigmaMinusInelastic;
00247 G4LESigmaMinusInelastic* theLESigmaMinusModel;
00248 G4HESigmaMinusInelastic* theHESigmaMinusModel;
00249 G4MultipleScattering theSigmaMinusMult;
00250 G4hIonisation theSigmaMinusIonisation;
00251
00252
00253 G4AntiSigmaMinusInelasticProcess theAntiSigmaMinusInelastic;
00254 G4LEAntiSigmaMinusInelastic* theLEAntiSigmaMinusModel;
00255 G4HEAntiSigmaMinusInelastic* theHEAntiSigmaMinusModel;
00256 G4MultipleScattering theAntiSigmaMinusMult;
00257 G4hIonisation theAntiSigmaMinusIonisation;
00258
00259
00260 G4SigmaPlusInelasticProcess theSigmaPlusInelastic;
00261 G4LESigmaPlusInelastic* theLESigmaPlusModel;
00262 G4HESigmaPlusInelastic* theHESigmaPlusModel;
00263 G4MultipleScattering theSigmaPlusMult;
00264 G4hIonisation theSigmaPlusIonisation;
00265
00266
00267 G4AntiSigmaPlusInelasticProcess theAntiSigmaPlusInelastic;
00268 G4LEAntiSigmaPlusInelastic* theLEAntiSigmaPlusModel;
00269 G4HEAntiSigmaPlusInelastic* theHEAntiSigmaPlusModel;
00270 G4MultipleScattering theAntiSigmaPlusMult;
00271 G4hIonisation theAntiSigmaPlusIonisation;
00272
00273
00274 G4XiZeroInelasticProcess theXiZeroInelastic;
00275 G4LEXiZeroInelastic* theLEXiZeroModel;
00276 G4HEXiZeroInelastic* theHEXiZeroModel;
00277
00278
00279 G4AntiXiZeroInelasticProcess theAntiXiZeroInelastic;
00280 G4LEAntiXiZeroInelastic* theLEAntiXiZeroModel;
00281 G4HEAntiXiZeroInelastic* theHEAntiXiZeroModel;
00282
00283
00284 G4XiMinusInelasticProcess theXiMinusInelastic;
00285 G4LEXiMinusInelastic* theLEXiMinusModel;
00286 G4HEXiMinusInelastic* theHEXiMinusModel;
00287 G4MultipleScattering theXiMinusMult;
00288 G4hIonisation theXiMinusIonisation;
00289
00290
00291 G4AntiXiMinusInelasticProcess theAntiXiMinusInelastic;
00292 G4LEAntiXiMinusInelastic* theLEAntiXiMinusModel;
00293 G4HEAntiXiMinusInelastic* theHEAntiXiMinusModel;
00294 G4MultipleScattering theAntiXiMinusMult;
00295 G4hIonisation theAntiXiMinusIonisation;
00296
00297
00298 G4OmegaMinusInelasticProcess theOmegaMinusInelastic;
00299 G4LEOmegaMinusInelastic* theLEOmegaMinusModel;
00300 G4HEOmegaMinusInelastic* theHEOmegaMinusModel;
00301 G4MultipleScattering theOmegaMinusMult;
00302 G4hIonisation theOmegaMinusIonisation;
00303
00304
00305 G4AntiOmegaMinusInelasticProcess theAntiOmegaMinusInelastic;
00306 G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusModel;
00307 G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusModel;
00308 G4MultipleScattering theAntiOmegaMinusMult;
00309 G4hIonisation theAntiOmegaMinusIonisation;
00310
00311
00312 };
00313
00314
00315 #endif
00316