00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "G4LHEPPiKBuilder.hh"
00027
00028 #include "globals.hh"
00029 #include "G4ios.hh"
00030 #include "G4SystemOfUnits.hh"
00031 #include "G4ParticleDefinition.hh"
00032 #include "G4ParticleTable.hh"
00033 #include "G4MesonConstructor.hh"
00034 #include "G4BaryonConstructor.hh"
00035 #include "G4ProcessManager.hh"
00036
00037 G4LHEPPiKBuilder::
00038 G4LHEPPiKBuilder() :
00039 theLEPionPlusModel(0),theHEPionPlusModel(0),
00040 theLEPionMinusModel(0), theHEPionMinusModel(0),
00041 theLEKaonPlusModel(0),theHEKaonPlusModel(0),
00042 theLEKaonMinusModel(0), theHEKaonMinusModel(0),
00043 theLEKaonZeroLModel(0),theHEKaonZeroLModel(0),
00044 theLEKaonZeroSModel(0),theHEKaonZeroSModel(0)
00045 {
00046 theM = 0;
00047 theMinPion = theM;
00048 }
00049
00050 G4LHEPPiKBuilder::
00051 ~G4LHEPPiKBuilder()
00052 {
00053 delete theLEPionPlusModel;
00054 delete theHEPionPlusModel;
00055 }
00056
00057 void G4LHEPPiKBuilder::
00058 Build(G4HadronElasticProcess *)
00059 {
00060 }
00061
00062 void G4LHEPPiKBuilder::
00063 Build(G4PionPlusInelasticProcess * aP)
00064 {
00065 theLEPionPlusModel = new G4LEPionPlusInelastic();
00066 theHEPionPlusModel = new G4HEPionPlusInelastic();
00067 theLEPionPlusModel->SetMinEnergy(theMinPion);
00068 theLEPionPlusModel->SetMaxEnergy(55*GeV);
00069 theHEPionPlusModel->SetMinEnergy(25*GeV);
00070 aP->RegisterMe(theLEPionPlusModel);
00071 aP->RegisterMe(theHEPionPlusModel);
00072 }
00073
00074 void G4LHEPPiKBuilder::
00075 Build(G4PionMinusInelasticProcess * aP)
00076 {
00077 theLEPionMinusModel = new G4LEPionMinusInelastic();
00078 theHEPionMinusModel = new G4HEPionMinusInelastic();
00079 theLEPionMinusModel->SetMinEnergy(theMinPion);
00080 theLEPionMinusModel->SetMaxEnergy(55*GeV);
00081 theHEPionMinusModel->SetMinEnergy(25*GeV);
00082 aP->RegisterMe(theLEPionMinusModel);
00083 aP->RegisterMe(theHEPionMinusModel);
00084 }
00085
00086 void G4LHEPPiKBuilder::
00087 Build(G4KaonPlusInelasticProcess * aP)
00088 {
00089 theLEKaonPlusModel = new G4LEKaonPlusInelastic();
00090 theHEKaonPlusModel = new G4HEKaonPlusInelastic();
00091 theLEKaonPlusModel->SetMinEnergy(theM);
00092 aP->RegisterMe(theLEKaonPlusModel);
00093 aP->RegisterMe(theHEKaonPlusModel);
00094 }
00095
00096 void G4LHEPPiKBuilder::
00097 Build(G4KaonMinusInelasticProcess * aP)
00098 {
00099 theLEKaonMinusModel = new G4LEKaonMinusInelastic();
00100 theHEKaonMinusModel = new G4HEKaonMinusInelastic();
00101 theLEKaonMinusModel->SetMinEnergy(theM);
00102 aP->RegisterMe(theLEKaonMinusModel);
00103 aP->RegisterMe(theHEKaonMinusModel);
00104 }
00105
00106 void G4LHEPPiKBuilder::
00107 Build(G4KaonZeroLInelasticProcess * aP)
00108 {
00109 theLEKaonZeroLModel = new G4LEKaonZeroLInelastic();
00110 theHEKaonZeroLModel = new G4HEKaonZeroInelastic();
00111 theLEKaonZeroLModel->SetMinEnergy(theM);
00112 aP->RegisterMe(theLEKaonZeroLModel);
00113 aP->RegisterMe(theHEKaonZeroLModel);
00114 }
00115
00116 void G4LHEPPiKBuilder::
00117 Build(G4KaonZeroSInelasticProcess * aP)
00118 {
00119 theLEKaonZeroSModel = new G4LEKaonZeroSInelastic();
00120 theHEKaonZeroSModel = new G4HEKaonZeroInelastic();
00121 theLEKaonZeroSModel->SetMinEnergy(theM);
00122 aP->RegisterMe(theLEKaonZeroSModel);
00123 aP->RegisterMe(theHEKaonZeroSModel);
00124 }
00125
00126