Print

Print


Commit in LCPhys/src on MAIN
LCHadronPhysics.cc+28-221.1 -> 1.2
use Bertini model for strange particles

LCPhys/src
LCHadronPhysics.cc 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- LCHadronPhysics.cc	23 Jul 2004 00:25:08 -0000	1.1
+++ LCHadronPhysics.cc	14 Jul 2005 23:12:24 -0000	1.2
@@ -58,10 +58,6 @@
 #include "G4CascadeInterface.hh"
 #include "G4LEPionPlusInelastic.hh"
 #include "G4LEPionMinusInelastic.hh"
-#include "G4LEKaonPlusInelastic.hh"
-#include "G4LEKaonMinusInelastic.hh"
-#include "G4LEKaonZeroLInelastic.hh"
-#include "G4LEKaonZeroSInelastic.hh"
 #include "G4LEProtonInelastic.hh"
 #include "G4LENeutronInelastic.hh"
 #include "G4LFission.hh"
@@ -140,21 +136,25 @@
 
   // Hadronic inelastic models
 
-  // Bertini cascade model: use for p,n,pi+,pi- between 0 and 9.9 GeV
+  // Bertini cascade model: use between 0 and 9.9 GeV
+  // for p,n,pi+,pi-
+
   G4CascadeInterface* bertiniModel = new G4CascadeInterface();
   bertiniModel->SetMaxEnergy(9.9*GeV);
 
+  // Bertini cascade model: use between 0 and 13 GeV for 
+  // K+,K-,K0L,K0S,Lambda,Sigma+,Sigma-,Xi0,Xi-
+ 
+  G4CascadeInterface* bertiniModelStrange = new G4CascadeInterface();
+  bertiniModelStrange->SetMaxEnergy(13*GeV);
+
   // Low energy parameterized models : use between 9.5 and 25 GeV
   G4double LEPUpperLimit = 25*GeV;
+  G4double LEPLowerLimitForHyperons = 12*GeV;
   G4double LEPpnpiLimit = 9.5*GeV;
 
-  G4LEKaonZeroLInelastic* LEPk0LModel = new G4LEKaonZeroLInelastic();
-  LEPk0LModel->SetMaxEnergy(LEPUpperLimit);
-
-  G4LEKaonZeroSInelastic* LEPk0SModel = new G4LEKaonZeroSInelastic();
-  LEPk0SModel->SetMaxEnergy(LEPUpperLimit);
-
-  // Quark-Gluon String Model: use for p,n,pi+,pi- between 12 GeV and 100 TeV
+  // Quark-Gluon String Model: use for p,n,pi+,pi-,K+,K-,K0L,K0S 
+  // between 12 GeV and 100 TeV
 
   G4TheoFSGenerator* QGSPModel = new G4TheoFSGenerator();
   G4GeneratorPrecompoundInterface* theCascade = 
@@ -253,9 +253,7 @@
 
   // hadron inelastic
   G4KaonPlusInelasticProcess* kpinelProc = new G4KaonPlusInelasticProcess();
-  G4LEKaonPlusInelastic* LEPkpModel = new G4LEKaonPlusInelastic();
-  LEPkpModel->SetMaxEnergy(LEPUpperLimit);
-  kpinelProc->RegisterMe(LEPkpModel);
+  kpinelProc->RegisterMe(bertiniModelStrange);
   kpinelProc->RegisterMe(QGSPModel);
   pManager->AddDiscreteProcess(kpinelProc);
 
@@ -276,9 +274,7 @@
 
   // hadron inelastic
   G4KaonMinusInelasticProcess* kminelProc = new G4KaonMinusInelasticProcess();
-  G4LEKaonMinusInelastic* LEPkmModel = new G4LEKaonMinusInelastic();
-  LEPkmModel->SetMaxEnergy(LEPUpperLimit);
-  kminelProc->RegisterMe(LEPkmModel);
+  kminelProc->RegisterMe(bertiniModelStrange);
   kminelProc->RegisterMe(QGSPModel);
   pManager->AddDiscreteProcess(kminelProc);
 
@@ -299,7 +295,7 @@
 
   // hadron inelastic
   G4KaonZeroLInelasticProcess* k0LinelProc = new G4KaonZeroLInelasticProcess();
-  k0LinelProc->RegisterMe(LEPk0LModel);
+  k0LinelProc->RegisterMe(bertiniModelStrange);
   k0LinelProc->RegisterMe(QGSPModel);
   pManager->AddDiscreteProcess(k0LinelProc);
 
@@ -316,7 +312,7 @@
 
   // hadron inelastic
   G4KaonZeroSInelasticProcess* k0SinelProc = new G4KaonZeroSInelasticProcess();
-  k0SinelProc->RegisterMe(LEPk0SModel);
+  k0SinelProc->RegisterMe(bertiniModelStrange);
   k0SinelProc->RegisterMe(QGSPModel);
   pManager->AddDiscreteProcess(k0SinelProc);
 
@@ -460,7 +456,9 @@
   // hadron inelastic
   G4LambdaInelasticProcess* linelProc = 
                                   new G4LambdaInelasticProcess();
-  G4LELambdaInelastic* LEPlModel = new G4LELambdaInelastic(); 
+  linelProc->RegisterMe(bertiniModelStrange);
+  G4LELambdaInelastic* LEPlModel = new G4LELambdaInelastic();
+  LEPlModel->SetMinEnergy(LEPLowerLimitForHyperons); 
   linelProc->RegisterMe(LEPlModel);
   G4HELambdaInelastic* HEPlModel = new G4HELambdaInelastic(); 
   linelProc->RegisterMe(HEPlModel);
@@ -504,7 +502,9 @@
   // hadron inelastic
   G4SigmaMinusInelasticProcess* sminelProc = 
                                   new G4SigmaMinusInelasticProcess();
+  sminelProc->RegisterMe(bertiniModelStrange);
   G4LESigmaMinusInelastic* LEPsmModel = new G4LESigmaMinusInelastic(); 
+  LEPsmModel->SetMinEnergy(LEPLowerLimitForHyperons); 
   sminelProc->RegisterMe(LEPsmModel);
   G4HESigmaMinusInelastic* HEPsmModel = new G4HESigmaMinusInelastic(); 
   sminelProc->RegisterMe(HEPsmModel);
@@ -553,7 +553,9 @@
 
   // hadron inelastic
   G4SigmaPlusInelasticProcess* spinelProc = new G4SigmaPlusInelasticProcess();
-  G4LESigmaPlusInelastic* LEPspModel = new G4LESigmaPlusInelastic(); 
+  spinelProc->RegisterMe(bertiniModelStrange);
+  G4LESigmaPlusInelastic* LEPspModel = new G4LESigmaPlusInelastic();
+  LEPspModel->SetMinEnergy(LEPLowerLimitForHyperons); 
   spinelProc->RegisterMe(LEPspModel);
   G4HESigmaPlusInelastic* HEPspModel = new G4HESigmaPlusInelastic(); 
   spinelProc->RegisterMe(HEPspModel);
@@ -602,7 +604,9 @@
 
   // hadron inelastic
   G4XiMinusInelasticProcess* xminelProc = new G4XiMinusInelasticProcess();
+  xminelProc->RegisterMe(bertiniModelStrange);
   G4LEXiMinusInelastic* LEPxmModel = new G4LEXiMinusInelastic(); 
+  LEPxmModel->SetMinEnergy(LEPLowerLimitForHyperons); 
   xminelProc->RegisterMe(LEPxmModel);
   G4HEXiMinusInelastic* HEPxmModel = new G4HEXiMinusInelastic(); 
   xminelProc->RegisterMe(HEPxmModel);
@@ -645,7 +649,9 @@
 
   // hadron inelastic
   G4XiZeroInelasticProcess* x0inelProc = new G4XiZeroInelasticProcess();
+  x0inelProc->RegisterMe(bertiniModelStrange);
   G4LEXiZeroInelastic* LEPx0Model = new G4LEXiZeroInelastic(); 
+  LEPx0Model->SetMinEnergy(LEPLowerLimitForHyperons); 
   x0inelProc->RegisterMe(LEPx0Model);
   G4HEXiZeroInelastic* HEPx0Model = new G4HEXiZeroInelastic(); 
   x0inelProc->RegisterMe(HEPx0Model);
CVSspam 0.2.8