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
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #include "G4HyperonLHEPBuilder.hh"
00040
00041 #include "G4SystemOfUnits.hh"
00042 #include "G4ParticleDefinition.hh"
00043 #include "G4ParticleTable.hh"
00044 #include "G4ProcessManager.hh"
00045
00046 G4HyperonLHEPBuilder::G4HyperonLHEPBuilder():
00047 theLambdaInelastic(0), theLELambdaModel(0), theHELambdaModel(0),
00048 theAntiLambdaInelastic(0), theLEAntiLambdaModel(0), theHEAntiLambdaModel(0),
00049 theSigmaMinusInelastic(0), theLESigmaMinusModel(0), theHESigmaMinusModel(0),
00050 theAntiSigmaMinusInelastic(0), theLEAntiSigmaMinusModel(0), theHEAntiSigmaMinusModel(0),
00051 theSigmaPlusInelastic(0), theLESigmaPlusModel(0), theHESigmaPlusModel(0),
00052 theAntiSigmaPlusInelastic(0), theLEAntiSigmaPlusModel(0), theHEAntiSigmaPlusModel(0),
00053 theXiZeroInelastic(0), theLEXiZeroModel(0), theHEXiZeroModel(0),
00054 theAntiXiZeroInelastic(0), theLEAntiXiZeroModel(0), theHEAntiXiZeroModel(0),
00055 theXiMinusInelastic(0), theLEXiMinusModel(0), theHEXiMinusModel(0),
00056 theAntiXiMinusInelastic(0), theLEAntiXiMinusModel(0), theHEAntiXiMinusModel(0),
00057 theOmegaMinusInelastic(0), theLEOmegaMinusModel(0), theHEOmegaMinusModel(0),
00058 theAntiOmegaMinusInelastic(0), theLEAntiOmegaMinusModel(0), theHEAntiOmegaMinusModel(0),
00059 wasActivated(false)
00060 {}
00061
00062
00063 G4HyperonLHEPBuilder::~G4HyperonLHEPBuilder()
00064 {}
00065
00066 void G4HyperonLHEPBuilder::Build()
00067 {
00068 G4ProcessManager * aProcMan = 0;
00069 wasActivated = true;
00070
00071
00072 theLambdaInelastic = new G4LambdaInelasticProcess();
00073 aProcMan = G4Lambda::Lambda()->GetProcessManager();
00074 theLELambdaModel = new G4LELambdaInelastic();
00075 theHELambdaModel = new G4HELambdaInelastic();
00076 theHELambdaModel->SetMaxEnergy(100*TeV);
00077 theLambdaInelastic->RegisterMe(theLELambdaModel);
00078 theLambdaInelastic->RegisterMe(theHELambdaModel);
00079 aProcMan->AddDiscreteProcess(theLambdaInelastic);
00080
00081
00082 theAntiLambdaInelastic = new G4AntiLambdaInelasticProcess();
00083 aProcMan = G4AntiLambda::AntiLambda()->GetProcessManager();
00084 theLEAntiLambdaModel = new G4LEAntiLambdaInelastic();
00085 theHEAntiLambdaModel = new G4HEAntiLambdaInelastic();
00086 theHEAntiLambdaModel->SetMaxEnergy(100*TeV);
00087 theAntiLambdaInelastic->RegisterMe(theLEAntiLambdaModel);
00088 theAntiLambdaInelastic->RegisterMe(theHEAntiLambdaModel);
00089 aProcMan->AddDiscreteProcess(theAntiLambdaInelastic);
00090
00091
00092 theSigmaMinusInelastic = new G4SigmaMinusInelasticProcess();
00093 aProcMan = G4SigmaMinus::SigmaMinus()->GetProcessManager();
00094 theLESigmaMinusModel = new G4LESigmaMinusInelastic();
00095 theHESigmaMinusModel = new G4HESigmaMinusInelastic();
00096 theHESigmaMinusModel->SetMaxEnergy(100*TeV);
00097 theSigmaMinusInelastic->RegisterMe(theLESigmaMinusModel);
00098 theSigmaMinusInelastic->RegisterMe(theHESigmaMinusModel);
00099 aProcMan->AddDiscreteProcess(theSigmaMinusInelastic);
00100
00101
00102 theAntiSigmaMinusInelastic = new G4AntiSigmaMinusInelasticProcess();
00103 aProcMan = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager();
00104 theLEAntiSigmaMinusModel = new G4LEAntiSigmaMinusInelastic();
00105 theHEAntiSigmaMinusModel = new G4HEAntiSigmaMinusInelastic();
00106 theHEAntiSigmaMinusModel->SetMaxEnergy(100*TeV);
00107 theAntiSigmaMinusInelastic->RegisterMe(theLEAntiSigmaMinusModel);
00108 theAntiSigmaMinusInelastic->RegisterMe(theHEAntiSigmaMinusModel);
00109 aProcMan->AddDiscreteProcess(theAntiSigmaMinusInelastic);
00110
00111
00112 theSigmaPlusInelastic = new G4SigmaPlusInelasticProcess();
00113 aProcMan = G4SigmaPlus::SigmaPlus()->GetProcessManager();
00114 theLESigmaPlusModel = new G4LESigmaPlusInelastic();
00115 theHESigmaPlusModel = new G4HESigmaPlusInelastic();
00116 theHESigmaPlusModel->SetMaxEnergy(100*TeV);
00117 theSigmaPlusInelastic->RegisterMe(theLESigmaPlusModel);
00118 theSigmaPlusInelastic->RegisterMe(theHESigmaPlusModel);
00119 aProcMan->AddDiscreteProcess(theSigmaPlusInelastic);
00120
00121
00122 theAntiSigmaPlusInelastic = new G4AntiSigmaPlusInelasticProcess();
00123 aProcMan = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager();
00124 theLEAntiSigmaPlusModel = new G4LEAntiSigmaPlusInelastic();
00125 theHEAntiSigmaPlusModel = new G4HEAntiSigmaPlusInelastic();
00126 theHEAntiSigmaPlusModel->SetMaxEnergy(100*TeV);
00127 theAntiSigmaPlusInelastic->RegisterMe(theLEAntiSigmaPlusModel);
00128 theAntiSigmaPlusInelastic->RegisterMe(theHEAntiSigmaPlusModel);
00129 aProcMan->AddDiscreteProcess(theAntiSigmaPlusInelastic);
00130
00131
00132 theXiMinusInelastic = new G4XiMinusInelasticProcess();
00133 aProcMan = G4XiMinus::XiMinus()->GetProcessManager();
00134 theLEXiMinusModel = new G4LEXiMinusInelastic();
00135 theHEXiMinusModel = new G4HEXiMinusInelastic();
00136 theHEXiMinusModel->SetMaxEnergy(100*TeV);
00137 theXiMinusInelastic->RegisterMe(theLEXiMinusModel);
00138 theXiMinusInelastic->RegisterMe(theHEXiMinusModel);
00139 aProcMan->AddDiscreteProcess(theXiMinusInelastic);
00140
00141
00142 theAntiXiMinusInelastic = new G4AntiXiMinusInelasticProcess();
00143 aProcMan = G4AntiXiMinus::AntiXiMinus()->GetProcessManager();
00144 theLEAntiXiMinusModel = new G4LEAntiXiMinusInelastic();
00145 theHEAntiXiMinusModel = new G4HEAntiXiMinusInelastic();
00146 theHEAntiXiMinusModel->SetMaxEnergy(100*TeV);
00147 theAntiXiMinusInelastic->RegisterMe(theLEAntiXiMinusModel);
00148 theAntiXiMinusInelastic->RegisterMe(theHEAntiXiMinusModel);
00149 aProcMan->AddDiscreteProcess(theAntiXiMinusInelastic);
00150
00151
00152 theXiZeroInelastic = new G4XiZeroInelasticProcess();
00153 aProcMan = G4XiZero::XiZero()->GetProcessManager();
00154 theLEXiZeroModel = new G4LEXiZeroInelastic();
00155 theHEXiZeroModel = new G4HEXiZeroInelastic();
00156 theHEXiZeroModel->SetMaxEnergy(100*TeV);
00157 theXiZeroInelastic->RegisterMe(theLEXiZeroModel);
00158 theXiZeroInelastic->RegisterMe(theHEXiZeroModel);
00159 aProcMan->AddDiscreteProcess(theXiZeroInelastic);
00160
00161
00162 theAntiXiZeroInelastic = new G4AntiXiZeroInelasticProcess();
00163 aProcMan = G4AntiXiZero::AntiXiZero()->GetProcessManager();
00164 theLEAntiXiZeroModel = new G4LEAntiXiZeroInelastic();
00165 theHEAntiXiZeroModel = new G4HEAntiXiZeroInelastic();
00166 theHEAntiXiZeroModel->SetMaxEnergy(100*TeV);
00167 theAntiXiZeroInelastic->RegisterMe(theLEAntiXiZeroModel);
00168 theAntiXiZeroInelastic->RegisterMe(theHEAntiXiZeroModel);
00169 aProcMan->AddDiscreteProcess(theAntiXiZeroInelastic);
00170
00171
00172 theOmegaMinusInelastic = new G4OmegaMinusInelasticProcess();
00173 aProcMan = G4OmegaMinus::OmegaMinus()->GetProcessManager();
00174 theLEOmegaMinusModel = new G4LEOmegaMinusInelastic();
00175 theHEOmegaMinusModel = new G4HEOmegaMinusInelastic();
00176 theHEOmegaMinusModel->SetMaxEnergy(100*TeV);
00177 theOmegaMinusInelastic->RegisterMe(theLEOmegaMinusModel);
00178 theOmegaMinusInelastic->RegisterMe(theHEOmegaMinusModel);
00179 aProcMan->AddDiscreteProcess(theOmegaMinusInelastic);
00180
00181
00182 theAntiOmegaMinusInelastic = new G4AntiOmegaMinusInelasticProcess();
00183 aProcMan = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager();
00184 theLEAntiOmegaMinusModel = new G4LEAntiOmegaMinusInelastic();
00185 theHEAntiOmegaMinusModel = new G4HEAntiOmegaMinusInelastic();
00186 theHEAntiOmegaMinusModel->SetMaxEnergy(100*TeV);
00187 theAntiOmegaMinusInelastic->RegisterMe(theLEAntiOmegaMinusModel);
00188 theAntiOmegaMinusInelastic->RegisterMe(theHEAntiOmegaMinusModel);
00189 aProcMan->AddDiscreteProcess(theAntiOmegaMinusInelastic);
00190 }
00191
00192