Import Geant4 8.2.0 source tree
This commit is contained in:
@@ -0,0 +1,321 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronInelasticQBBC.cc,v 1.1 2006/10/31 11:35:09 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4HadronInelasticQBBC
|
||||
//
|
||||
// Author: 11 April 2006 V. Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
// 05.07.2006 V.Ivanchenko fix problem of initialisation of HP
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4HadronInelasticQBBC.hh"
|
||||
|
||||
#include "G4HadronInelasticProcess.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
|
||||
#include "G4PiNuclearCrossSection.hh"
|
||||
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4StringChipsParticleLevelInterface.hh"
|
||||
#include "G4StringChipsInterface.hh"
|
||||
#include "G4QGSMFragmentation.hh"
|
||||
#include "G4LundStringFragmentation.hh"
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
|
||||
#include "G4BinaryCascade.hh"
|
||||
#include "G4HadronFissionProcess.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4LFission.hh"
|
||||
#include "G4LCapture.hh"
|
||||
|
||||
#include "G4NeutronHPInelastic.hh"
|
||||
#include "G4NeutronHPFission.hh"
|
||||
#include "G4NeutronHPCapture.hh"
|
||||
|
||||
#include "G4HadronProcessStore.hh"
|
||||
#include "G4UInelasticCrossSection.hh"
|
||||
|
||||
G4HadronInelasticQBBC::G4HadronInelasticQBBC(const G4String& name,
|
||||
G4int ver, G4bool ftf, G4bool bert, G4bool chips, G4bool hp, G4bool glauber)
|
||||
: G4VPhysicsConstructor(name), verbose(ver), ftfFlag(ftf), bertFlag(bert),
|
||||
chipsFlag(chips), hpFlag(hp), glFlag(glauber), wasActivated(false)
|
||||
{
|
||||
if(verbose > -1) G4cout << "### HadronInelasticQBBC" << G4endl;
|
||||
store = G4HadronProcessStore::Instance();
|
||||
theHPXSecI = 0;
|
||||
theHPXSecC = 0;
|
||||
theHPXSecF = 0;
|
||||
}
|
||||
|
||||
G4HadronInelasticQBBC::~G4HadronInelasticQBBC()
|
||||
{
|
||||
if(wasActivated) {
|
||||
delete theCHIPSCascade;
|
||||
delete theQGStringDecay;
|
||||
delete theQGStringModel;
|
||||
delete theFTFStringDecay;
|
||||
delete theFTFStringModel;
|
||||
delete theHPXSecI;
|
||||
delete theHPXSecC;
|
||||
delete theHPXSecF;
|
||||
}
|
||||
}
|
||||
|
||||
void G4HadronInelasticQBBC::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
void G4HadronInelasticQBBC::ConstructProcess()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
wasActivated = true;
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### HadronInelasticQBBC Construct Process" << G4endl;
|
||||
|
||||
G4double minEstring = 8*GeV;
|
||||
G4double maxEcascade = 10.*GeV;
|
||||
|
||||
//Bertini
|
||||
G4HadronicInteraction* theBERT = new G4CascadeInterface();
|
||||
theBERT->SetMinEnergy(0.0);
|
||||
theBERT->SetMaxEnergy(maxEcascade);
|
||||
|
||||
//CHIPS
|
||||
G4HadronicInteraction* theCHIPS = new G4StringChipsInterface();
|
||||
theCHIPS->SetMinEnergy(0.0);
|
||||
theCHIPS->SetMaxEnergy(maxEcascade);
|
||||
|
||||
//QGSC
|
||||
G4TheoFSGenerator* theQGSModel = new G4TheoFSGenerator();
|
||||
theQGStringModel = new G4QGSModel< G4QGSParticipants >;
|
||||
theQGStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation());
|
||||
theQGStringModel->SetFragmentationModel(theQGStringDecay);
|
||||
theCHIPSCascade = new G4StringChipsParticleLevelInterface;
|
||||
theQGSModel->SetTransport(theCHIPSCascade);
|
||||
theQGSModel->SetHighEnergyGenerator(theQGStringModel);
|
||||
theQGSModel->SetMinEnergy(minEstring);
|
||||
theQGSModel->SetMaxEnergy(100*TeV);
|
||||
|
||||
//FTFC
|
||||
G4TheoFSGenerator* theFTFModel = new G4TheoFSGenerator();
|
||||
theFTFStringModel = new G4FTFModel();
|
||||
theFTFStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation());
|
||||
theFTFStringModel->SetFragmentationModel(theFTFStringDecay);
|
||||
theFTFModel->SetTransport(theCHIPSCascade);
|
||||
theFTFModel->SetHighEnergyGenerator(theFTFStringModel);
|
||||
theFTFModel->SetMinEnergy(minEstring);
|
||||
theFTFModel->SetMaxEnergy(100*TeV);
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ) {
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4String pname = particle->GetParticleName();
|
||||
if(verbose > 1) G4cout << "### HadronInelasticQBBC: " << pname << G4endl;
|
||||
if(pname == "anti_lambda" ||
|
||||
pname == "anti_neutron" ||
|
||||
pname == "anti_omega-" ||
|
||||
pname == "anti_proton" ||
|
||||
pname == "anti_sigma-" ||
|
||||
pname == "anti_sigma+" ||
|
||||
pname == "anti_xi-" ||
|
||||
pname == "anti_xi0" ||
|
||||
pname == "kaon-" ||
|
||||
pname == "kaon+" ||
|
||||
pname == "kaon0S" ||
|
||||
pname == "kaon0L" ||
|
||||
pname == "lambda" ||
|
||||
pname == "neutron" ||
|
||||
pname == "omega-" ||
|
||||
pname == "pi-" ||
|
||||
pname == "pi+" ||
|
||||
pname == "proton" ||
|
||||
pname == "sigma-" ||
|
||||
pname == "sigma+" ||
|
||||
pname == "xi-" ||
|
||||
pname == "xi0") {
|
||||
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4HadronInelasticProcess* hp =
|
||||
new G4HadronInelasticProcess("hInelastic", particle);
|
||||
pmanager->AddDiscreteProcess(hp);
|
||||
|
||||
if(pname == "proton") {
|
||||
hp->AddDataSet(&theXSecP);
|
||||
if(ftfFlag) Register(particle,hp,theFTFModel,"FTF");
|
||||
else Register(particle,hp,theQGSModel,"QGS");
|
||||
|
||||
if(bertFlag) Register(particle,hp,theBERT,"Bertini");
|
||||
else if(chipsFlag) Register(particle,hp,theCHIPS,"CHIPS");
|
||||
else {
|
||||
G4HadronicInteraction* theBIC = new G4BinaryCascade();
|
||||
theBIC->SetMinEnergy(0.0);
|
||||
theBIC->SetMaxEnergy(maxEcascade);
|
||||
Register(particle,hp,theBIC,"Binary");
|
||||
}
|
||||
if(glFlag)
|
||||
hp->AddDataSet(new G4UInelasticCrossSection(particle));
|
||||
|
||||
} else if(pname == "neutron") {
|
||||
hp->AddDataSet(&theXSecN);
|
||||
if(ftfFlag) Register(particle,hp,theFTFModel,"FTF");
|
||||
else Register(particle,hp,theQGSModel,"QGS");
|
||||
|
||||
G4HadronCaptureProcess* theNeutronCapture =
|
||||
new G4HadronCaptureProcess("nCapture");
|
||||
G4HadronFissionProcess* theNeutronFission =
|
||||
new G4HadronFissionProcess("nFission");
|
||||
pmanager->AddDiscreteProcess(theNeutronCapture);
|
||||
pmanager->AddDiscreteProcess(theNeutronFission);
|
||||
|
||||
G4double emin = 0.0;
|
||||
if(hpFlag) {
|
||||
emin = 19.5*MeV;
|
||||
theHPXSecI = new G4NeutronHPInelasticData;
|
||||
theHPXSecC = new G4NeutronHPCaptureData;
|
||||
theHPXSecF = new G4NeutronHPFissionData;
|
||||
hp->AddDataSet(theHPXSecI);
|
||||
theNeutronCapture->AddDataSet(theHPXSecC);
|
||||
theNeutronFission->AddDataSet(theHPXSecF);
|
||||
G4NeutronHPInelastic* hpi = new G4NeutronHPInelastic();
|
||||
G4NeutronHPCapture* hpc = new G4NeutronHPCapture();
|
||||
G4NeutronHPFission* hpf = new G4NeutronHPFission();
|
||||
Register(particle,hp,hpi,"HP");
|
||||
Register(particle,theNeutronCapture,hpc,"HP");
|
||||
Register(particle,theNeutronFission,hpf,"HP");
|
||||
}
|
||||
|
||||
G4HadronicInteraction* theB;
|
||||
G4String s;
|
||||
if(bertFlag) {
|
||||
theB = new G4CascadeInterface();
|
||||
s = "Bertini";
|
||||
} else if(chipsFlag) {
|
||||
theB = new G4StringChipsInterface();
|
||||
s = "CHIPS";
|
||||
} else {
|
||||
theB = new G4BinaryCascade();
|
||||
s = "Binary";
|
||||
}
|
||||
theB->SetMinEnergy(emin);
|
||||
theB->SetMaxEnergy(maxEcascade);
|
||||
Register(particle,hp,theB,s);
|
||||
if(glFlag)
|
||||
hp->AddDataSet(new G4UInelasticCrossSection(particle));
|
||||
|
||||
G4HadronicInteraction* theC = new G4LCapture();
|
||||
theC->SetMinEnergy(emin);
|
||||
Register(particle,theNeutronCapture,theC,"LCapture");
|
||||
|
||||
G4HadronicInteraction* theF = new G4LFission();
|
||||
theF->SetMinEnergy(emin);
|
||||
Register(particle,theNeutronFission,theF,"LFission");
|
||||
|
||||
} else if(pname == "pi-" || pname == "pi+") {
|
||||
hp->AddDataSet(&thePiCross);
|
||||
if(ftfFlag) Register(particle,hp,theFTFModel,"FTF");
|
||||
else Register(particle,hp,theQGSModel,"QGS");
|
||||
|
||||
if(chipsFlag) Register(particle,hp,theCHIPS,"CHIPS");
|
||||
else Register(particle,hp,theBERT,"Bertini");
|
||||
if(glFlag)
|
||||
hp->AddDataSet(new G4UInelasticCrossSection(particle));
|
||||
|
||||
} else if(pname == "kaon-" ||
|
||||
pname == "kaon+" ||
|
||||
pname == "kaon0S" ||
|
||||
pname == "kaon0L") {
|
||||
if(ftfFlag) Register(particle,hp,theFTFModel,"FTF");
|
||||
else Register(particle,hp,theQGSModel,"QGS");
|
||||
|
||||
if(chipsFlag) Register(particle,hp,theCHIPS,"CHIPS");
|
||||
else Register(particle,hp,theBERT,"Bertini");
|
||||
if(glFlag)
|
||||
hp->AddDataSet(new G4UInelasticCrossSection(particle));
|
||||
|
||||
} else if(pname == "lambda" ||
|
||||
pname == "sigma-" ||
|
||||
pname == "sigma+" ||
|
||||
pname == "xi-" ||
|
||||
pname == "xi0") {
|
||||
Register(particle,hp,theFTFModel,"FTF");
|
||||
|
||||
if(chipsFlag) Register(particle,hp,theCHIPS,"CHIPS");
|
||||
else Register(particle,hp,theBERT,"Bertini");
|
||||
if(glFlag)
|
||||
hp->AddDataSet(new G4UInelasticCrossSection(particle));
|
||||
|
||||
} else if(pname == "anti_proton" || pname == "anti_neutron") {
|
||||
Register(particle,hp,theFTFModel,"FTF");
|
||||
Register(particle,hp,theCHIPS,"CHIPS");
|
||||
if(glFlag)
|
||||
hp->AddDataSet(new G4UInelasticCrossSection(particle));
|
||||
|
||||
} else {
|
||||
Register(particle,hp,theFTFModel,"FTF");
|
||||
Register(particle,hp,theCHIPS,"CHIPS");
|
||||
if(glFlag)
|
||||
hp->AddDataSet(new G4UInelasticCrossSection(particle));
|
||||
}
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### HadronInelasticQBBC: " << hp->GetProcessName()
|
||||
<< " added for " << pname << G4endl;
|
||||
}
|
||||
}
|
||||
store->Dump(verbose);
|
||||
}
|
||||
|
||||
void G4HadronInelasticQBBC::Register(G4ParticleDefinition* p,
|
||||
G4HadronicProcess* hp,
|
||||
G4HadronicInteraction* hi,
|
||||
const G4String& m)
|
||||
{
|
||||
hp->RegisterMe(hi);
|
||||
store->Register(hp,p,hi,m);
|
||||
if(verbose > 1)
|
||||
G4cout << "### QBBC: Register new model " << m
|
||||
<< " for " << p->GetParticleName() << " and " << hp->GetProcessName()
|
||||
<< " E(GeV) " << hi->GetMinEnergy()/GeV
|
||||
<< " - " << hi->GetMaxEnergy()/GeV << G4endl;
|
||||
}
|
||||
@@ -0,0 +1,431 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronInelasticQLHEP.cc,v 1.1 2006/10/31 11:35:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4HadronInelasticQLHEP
|
||||
//
|
||||
// Author: 11 April 2006 V. Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
// 05.07.2006 V.Ivanchenko fix problem of initialisation of HP
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4HadronInelasticQLHEP.hh"
|
||||
|
||||
#include "G4HadronInelasticProcess.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
|
||||
#include "G4PiNuclearCrossSection.hh"
|
||||
|
||||
#include "G4TheoFSGenerator.hh"
|
||||
#include "G4GeneratorPrecompoundInterface.hh"
|
||||
#include "G4PreCompoundModel.hh"
|
||||
#include "G4ExcitationHandler.hh"
|
||||
#include "G4QGSMFragmentation.hh"
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
|
||||
#include "G4CascadeInterface.hh"
|
||||
#include "G4BinaryCascade.hh"
|
||||
#include "G4HadronFissionProcess.hh"
|
||||
#include "G4HadronCaptureProcess.hh"
|
||||
#include "G4LFission.hh"
|
||||
#include "G4LCapture.hh"
|
||||
|
||||
#include "G4NeutronHPInelastic.hh"
|
||||
#include "G4NeutronHPFission.hh"
|
||||
#include "G4NeutronHPCapture.hh"
|
||||
|
||||
#include "G4LEAntiLambdaInelastic.hh"
|
||||
#include "G4LEAntiNeutronInelastic.hh"
|
||||
#include "G4LEAntiOmegaMinusInelastic.hh"
|
||||
#include "G4LEAntiProtonInelastic.hh"
|
||||
#include "G4LEAntiSigmaMinusInelastic.hh"
|
||||
#include "G4LEAntiSigmaPlusInelastic.hh"
|
||||
#include "G4LEAntiXiMinusInelastic.hh"
|
||||
#include "G4LEAntiXiZeroInelastic.hh"
|
||||
#include "G4LEKaonMinusInelastic.hh"
|
||||
#include "G4LEKaonPlusInelastic.hh"
|
||||
#include "G4LEKaonZeroSInelastic.hh"
|
||||
#include "G4LEKaonZeroLInelastic.hh"
|
||||
#include "G4LENeutronInelastic.hh"
|
||||
#include "G4LELambdaInelastic.hh"
|
||||
#include "G4LEProtonInelastic.hh"
|
||||
#include "G4LEPionPlusInelastic.hh"
|
||||
#include "G4LEPionMinusInelastic.hh"
|
||||
#include "G4LEOmegaMinusInelastic.hh"
|
||||
#include "G4LESigmaMinusInelastic.hh"
|
||||
#include "G4LESigmaPlusInelastic.hh"
|
||||
#include "G4LEXiMinusInelastic.hh"
|
||||
#include "G4LEXiZeroInelastic.hh"
|
||||
|
||||
#include "G4HEAntiLambdaInelastic.hh"
|
||||
#include "G4HEAntiNeutronInelastic.hh"
|
||||
#include "G4HEAntiOmegaMinusInelastic.hh"
|
||||
#include "G4HEAntiProtonInelastic.hh"
|
||||
#include "G4HEAntiSigmaMinusInelastic.hh"
|
||||
#include "G4HEAntiSigmaPlusInelastic.hh"
|
||||
#include "G4HEAntiXiMinusInelastic.hh"
|
||||
#include "G4HEAntiXiZeroInelastic.hh"
|
||||
#include "G4HEKaonMinusInelastic.hh"
|
||||
#include "G4HEKaonPlusInelastic.hh"
|
||||
#include "G4HEKaonZeroInelastic.hh"
|
||||
#include "G4HENeutronInelastic.hh"
|
||||
#include "G4HELambdaInelastic.hh"
|
||||
#include "G4HEProtonInelastic.hh"
|
||||
#include "G4HEPionPlusInelastic.hh"
|
||||
#include "G4HEPionMinusInelastic.hh"
|
||||
#include "G4HEOmegaMinusInelastic.hh"
|
||||
#include "G4HESigmaMinusInelastic.hh"
|
||||
#include "G4HESigmaPlusInelastic.hh"
|
||||
#include "G4HEXiMinusInelastic.hh"
|
||||
#include "G4HEXiZeroInelastic.hh"
|
||||
|
||||
#include "G4HadronProcessStore.hh"
|
||||
|
||||
G4HadronInelasticQLHEP::G4HadronInelasticQLHEP(const G4String& name,
|
||||
G4int ver, G4bool qgs, G4bool bert, G4bool bic, G4bool hp)
|
||||
: G4VPhysicsConstructor(name), verbose(ver), qgsFlag(qgs),
|
||||
bertFlag(bert), bicFlag(bic), hpFlag(hp), wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) G4cout << "### HadronInelasticQLHEP" << G4endl;
|
||||
store = G4HadronProcessStore::Instance();
|
||||
theCascade = 0;
|
||||
theQGStringDecay = 0;
|
||||
theQGStringModel = 0;
|
||||
thePreEquilib = 0;
|
||||
theHPXSecI = 0;
|
||||
theHPXSecC = 0;
|
||||
theHPXSecF = 0;
|
||||
}
|
||||
|
||||
G4HadronInelasticQLHEP::~G4HadronInelasticQLHEP()
|
||||
{
|
||||
if(wasActivated) {
|
||||
delete theCascade;
|
||||
delete theQGStringDecay;
|
||||
delete theQGStringModel;
|
||||
delete thePreEquilib;
|
||||
delete theHPXSecI;
|
||||
delete theHPXSecC;
|
||||
delete theHPXSecF;
|
||||
}
|
||||
}
|
||||
|
||||
void G4HadronInelasticQLHEP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
void G4HadronInelasticQLHEP::ConstructProcess()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
wasActivated = true;
|
||||
|
||||
if(verbose > 1) G4cout << "### HadronInelasticQLHEP Construct Process" << G4endl;
|
||||
|
||||
G4double minEneutron = 0.0*GeV;
|
||||
G4double minELEP = 0.0*GeV;
|
||||
G4double maxELEP = 55.*GeV;
|
||||
G4double minEstring = 12.*GeV;
|
||||
if(hpFlag) minEneutron = 19.5*MeV;
|
||||
|
||||
//Bertini
|
||||
G4HadronicInteraction* theBERT = 0;
|
||||
if(bertFlag) {
|
||||
minELEP = 9.5*GeV;
|
||||
theBERT = new G4CascadeInterface();
|
||||
theBERT->SetMinEnergy(0.0);
|
||||
theBERT->SetMaxEnergy(9.9*GeV);
|
||||
}
|
||||
|
||||
//Binari
|
||||
G4HadronicInteraction* theBIC = 0;
|
||||
if(bicFlag) {
|
||||
minELEP = 9.5*GeV;
|
||||
theBIC = new G4BinaryCascade();
|
||||
theBIC->SetMinEnergy(0.0);
|
||||
theBIC->SetMaxEnergy(9.9*GeV);
|
||||
}
|
||||
|
||||
//QGSP
|
||||
G4TheoFSGenerator* theQGSModel = 0;
|
||||
if(qgsFlag) {
|
||||
maxELEP = 25.*GeV;
|
||||
theQGSModel = new G4TheoFSGenerator();
|
||||
theQGStringModel = new G4QGSModel< G4QGSParticipants >;
|
||||
theQGStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation());
|
||||
theQGStringModel->SetFragmentationModel(theQGStringDecay);
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
theQGSModel->SetTransport(theCascade);
|
||||
theQGSModel->SetHighEnergyGenerator(theQGStringModel);
|
||||
theQGSModel->SetMinEnergy(minEstring);
|
||||
theQGSModel->SetMaxEnergy(100*TeV);
|
||||
}
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() ) {
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4String pname = particle->GetParticleName();
|
||||
if(verbose > 1) G4cout << "### HadronInelasticQLHEP: " << pname << G4endl;
|
||||
if(pname == "anti_lambda" ||
|
||||
pname == "anti_neutron" ||
|
||||
pname == "anti_omega-" ||
|
||||
pname == "anti_proton" ||
|
||||
pname == "anti_sigma-" ||
|
||||
pname == "anti_sigma+" ||
|
||||
pname == "anti_xi-" ||
|
||||
pname == "anti_xi0" ||
|
||||
pname == "kaon-" ||
|
||||
pname == "kaon+" ||
|
||||
pname == "kaon0S" ||
|
||||
pname == "kaon0L" ||
|
||||
pname == "lambda" ||
|
||||
pname == "neutron" ||
|
||||
pname == "omega-" ||
|
||||
pname == "pi-" ||
|
||||
pname == "pi+" ||
|
||||
pname == "proton" ||
|
||||
pname == "sigma-" ||
|
||||
pname == "sigma+" ||
|
||||
pname == "xi-" ||
|
||||
pname == "xi0") {
|
||||
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4HadronInelasticProcess* hp =
|
||||
new G4HadronInelasticProcess("hInelastic", particle);
|
||||
pmanager->AddDiscreteProcess(hp);
|
||||
|
||||
if(pname == "proton") {
|
||||
if(qgsFlag) {
|
||||
Register(particle,hp,theQGSModel,"QGS");
|
||||
hp->AddDataSet(&theXSecP);
|
||||
} else {
|
||||
AddHEP(particle, hp, 25.*GeV, 100.*TeV);
|
||||
}
|
||||
AddLEP(particle, hp, minELEP, maxELEP);
|
||||
|
||||
if(bicFlag) Register(particle,hp,theBIC,"Binary");
|
||||
else if(bertFlag) Register(particle,hp,theBERT,"Bertini");
|
||||
|
||||
} else if(pname == "neutron") {
|
||||
if(qgsFlag) {
|
||||
Register(particle,hp,theQGSModel,"QGS");
|
||||
hp->AddDataSet(&theXSecN);
|
||||
} else {
|
||||
AddHEP(particle, hp, 25.*GeV, 100.*TeV);
|
||||
}
|
||||
AddLEP(particle, hp, minELEP, maxELEP);
|
||||
|
||||
G4HadronCaptureProcess* theNeutronCapture =
|
||||
new G4HadronCaptureProcess("nCapture");
|
||||
G4HadronFissionProcess* theNeutronFission =
|
||||
new G4HadronFissionProcess("nFission");
|
||||
pmanager->AddDiscreteProcess(theNeutronCapture);
|
||||
pmanager->AddDiscreteProcess(theNeutronFission);
|
||||
|
||||
if(hpFlag) {
|
||||
theHPXSecI = new G4NeutronHPInelasticData;
|
||||
theHPXSecC = new G4NeutronHPCaptureData;
|
||||
theHPXSecF = new G4NeutronHPFissionData;
|
||||
hp->AddDataSet(theHPXSecI);
|
||||
theNeutronCapture->AddDataSet(theHPXSecC);
|
||||
theNeutronFission->AddDataSet(theHPXSecF);
|
||||
G4NeutronHPInelastic* hpi = new G4NeutronHPInelastic();
|
||||
G4NeutronHPCapture* hpc = new G4NeutronHPCapture();
|
||||
G4NeutronHPFission* hpf = new G4NeutronHPFission();
|
||||
Register(particle,hp,hpi,"HP");
|
||||
Register(particle,theNeutronCapture,hpc,"HP");
|
||||
Register(particle,theNeutronFission,hpf,"HP");
|
||||
}
|
||||
|
||||
G4HadronicInteraction* theC = new G4LCapture();
|
||||
theC->SetMinEnergy(minEneutron);
|
||||
Register(particle,theNeutronCapture,theC,"LCapture");
|
||||
|
||||
G4HadronicInteraction* theF = new G4LFission();
|
||||
theF->SetMinEnergy(minEneutron);
|
||||
Register(particle,theNeutronFission,theF,"LFission");
|
||||
|
||||
if(bicFlag) {
|
||||
G4BinaryCascade* theB = new G4BinaryCascade();
|
||||
theB->SetMinEnergy(minEneutron);
|
||||
theB->SetMaxEnergy(9.9*GeV);
|
||||
Register(particle,hp,theB,"Binary");
|
||||
} else if(bertFlag) {
|
||||
G4CascadeInterface* theB = new G4CascadeInterface();
|
||||
theB->SetMinEnergy(minEneutron);
|
||||
theB->SetMaxEnergy(9.9*GeV);
|
||||
Register(particle,hp,theB,"Bertini");
|
||||
}
|
||||
|
||||
} else if(pname == "pi-" || pname == "pi+") {
|
||||
if(qgsFlag) {
|
||||
Register(particle,hp,theQGSModel,"QGS");
|
||||
hp->AddDataSet(&thePiCross);
|
||||
} else {
|
||||
AddHEP(particle, hp, 25.*GeV, 100.*TeV);
|
||||
}
|
||||
AddLEP(particle, hp, minELEP, maxELEP);
|
||||
if(bertFlag) Register(particle,hp,theBERT,"Bertini");
|
||||
|
||||
} else if(pname == "kaon-" ||
|
||||
pname == "kaon+" ||
|
||||
pname == "kaon0S" ||
|
||||
pname == "kaon0L") {
|
||||
|
||||
if(qgsFlag) Register(particle,hp,theQGSModel,"QGS");
|
||||
else AddHEP(particle, hp, 25.*GeV, 100.*TeV);
|
||||
|
||||
AddLEP(particle, hp, minELEP, maxELEP);
|
||||
if(bertFlag) Register(particle,hp,theBERT,"Bertini");
|
||||
|
||||
} else {
|
||||
|
||||
AddHEP(particle, hp, 25.*GeV, 100.*TeV);
|
||||
AddLEP(particle, hp, 0.0, 55.*GeV);
|
||||
}
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### HadronInelasticQLHEP: " << hp->GetProcessName()
|
||||
<< " added for " << pname << G4endl;
|
||||
}
|
||||
}
|
||||
store->Dump(verbose);
|
||||
}
|
||||
|
||||
void G4HadronInelasticQLHEP::AddLEP(G4ParticleDefinition* particle,
|
||||
G4HadronicProcess* hp,
|
||||
G4double emin,
|
||||
G4double emax)
|
||||
{
|
||||
G4HadronicInteraction* hi = 0;
|
||||
G4String pname = particle->GetParticleName();
|
||||
|
||||
if(pname == "anti_lambda" ) hi = new G4LEAntiLambdaInelastic();
|
||||
else if(pname == "anti_neutron") hi = new G4LEAntiNeutronInelastic();
|
||||
else if(pname == "anti_omega-" ) hi = new G4LEAntiOmegaMinusInelastic();
|
||||
else if(pname == "anti_proton" ) hi = new G4LEAntiProtonInelastic();
|
||||
else if(pname == "anti_sigma-" ) hi = new G4LEAntiSigmaMinusInelastic();
|
||||
else if(pname == "anti_sigma+" ) hi = new G4LEAntiSigmaPlusInelastic();
|
||||
else if(pname == "anti_xi-" ) hi = new G4LEAntiXiMinusInelastic();
|
||||
else if(pname == "anti_xi0" ) hi = new G4LEAntiXiZeroInelastic();
|
||||
else if(pname == "kaon-" ) hi = new G4LEKaonMinusInelastic();
|
||||
else if(pname == "kaon+" ) hi = new G4LEKaonPlusInelastic();
|
||||
else if(pname == "kaon0S" ) hi = new G4LEKaonZeroSInelastic();
|
||||
else if(pname == "kaon0L" ) hi = new G4LEKaonZeroLInelastic();
|
||||
else if(pname == "neutron" ) hi = new G4LENeutronInelastic();
|
||||
else if(pname == "lambda" ) hi = new G4LELambdaInelastic();
|
||||
else if(pname == "omega-" ) hi = new G4LEOmegaMinusInelastic();
|
||||
else if(pname == "proton" ) hi = new G4LEProtonInelastic();
|
||||
else if(pname == "pi+" ) hi = new G4LEPionPlusInelastic();
|
||||
else if(pname == "pi-" ) hi = new G4LEPionMinusInelastic();
|
||||
else if(pname == "sigma-" ) hi = new G4LESigmaMinusInelastic();
|
||||
else if(pname == "sigma+" ) hi = new G4LESigmaPlusInelastic();
|
||||
else if(pname == "xi-" ) hi = new G4LEXiMinusInelastic();
|
||||
else if(pname == "xi0" ) hi = new G4LEXiZeroInelastic();
|
||||
|
||||
if(hi) {
|
||||
hi->SetMinEnergy(emin);
|
||||
hi->SetMaxEnergy(emax);
|
||||
Register(particle,hp,hi,"LHEP");
|
||||
} else {
|
||||
G4cout << "### G4HadronInelasticTHEO: ERROR - no LHEP model for "
|
||||
<< pname << G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void G4HadronInelasticQLHEP::AddHEP(G4ParticleDefinition* particle,
|
||||
G4HadronicProcess* hp,
|
||||
G4double emin,
|
||||
G4double emax)
|
||||
{
|
||||
G4HadronicInteraction* hi = 0;
|
||||
G4String pname = particle->GetParticleName();
|
||||
|
||||
if(pname == "anti_lambda" ) hi = new G4HEAntiLambdaInelastic();
|
||||
else if(pname == "anti_neutron") hi = new G4HEAntiNeutronInelastic();
|
||||
else if(pname == "anti_omega-" ) hi = new G4HEAntiOmegaMinusInelastic();
|
||||
else if(pname == "anti_proton" ) hi = new G4HEAntiProtonInelastic();
|
||||
else if(pname == "anti_sigma-" ) hi = new G4HEAntiSigmaMinusInelastic();
|
||||
else if(pname == "anti_sigma+" ) hi = new G4HEAntiSigmaPlusInelastic();
|
||||
else if(pname == "anti_xi-" ) hi = new G4HEAntiXiMinusInelastic();
|
||||
else if(pname == "anti_xi0" ) hi = new G4HEAntiXiZeroInelastic();
|
||||
else if(pname == "kaon-" ) hi = new G4HEKaonMinusInelastic();
|
||||
else if(pname == "kaon+" ) hi = new G4HEKaonPlusInelastic();
|
||||
else if(pname == "kaon0S" ) hi = new G4HEKaonZeroInelastic();
|
||||
else if(pname == "kaon0L" ) hi = new G4HEKaonZeroInelastic();
|
||||
else if(pname == "neutron" ) hi = new G4HENeutronInelastic();
|
||||
else if(pname == "lambda" ) hi = new G4HELambdaInelastic();
|
||||
else if(pname == "omega-" ) hi = new G4HEOmegaMinusInelastic();
|
||||
else if(pname == "proton" ) hi = new G4HEProtonInelastic();
|
||||
else if(pname == "pi+" ) hi = new G4HEPionPlusInelastic();
|
||||
else if(pname == "pi-" ) hi = new G4HEPionMinusInelastic();
|
||||
else if(pname == "sigma-" ) hi = new G4HESigmaMinusInelastic();
|
||||
else if(pname == "sigma+" ) hi = new G4HESigmaPlusInelastic();
|
||||
else if(pname == "xi-" ) hi = new G4HEXiMinusInelastic();
|
||||
else if(pname == "xi0" ) hi = new G4HEXiZeroInelastic();
|
||||
|
||||
if(hi) {
|
||||
hi->SetMinEnergy(emin);
|
||||
hi->SetMaxEnergy(emax);
|
||||
Register(particle,hp,hi,"HEP");
|
||||
} else {
|
||||
G4cout << "### G4HadronInelasticQLHEP: ERROR - no HEP model for "
|
||||
<< pname << G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
void G4HadronInelasticQLHEP::Register(G4ParticleDefinition* p,
|
||||
G4HadronicProcess* hp,
|
||||
G4HadronicInteraction* hi,
|
||||
const G4String& m)
|
||||
{
|
||||
hp->RegisterMe(hi);
|
||||
store->Register(hp,p,hi,m);
|
||||
if(verbose > 1)
|
||||
G4cout << "### QLHEP: Register new model " << m
|
||||
<< " for " << p->GetParticleName() << " and "
|
||||
<< hp->GetProcessName()
|
||||
<< " E(GeV) " << hi->GetMinEnergy()/GeV
|
||||
<< " - " << hi->GetMaxEnergy()/GeV << G4endl;
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsFTFC.cc,v 1.1 2006/10/31 11:35:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName:
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 28.11.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko:remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsFTFC.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsFTFC::HadronPhysicsFTFC(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsFTFC::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theFTFCNeutron=new G4FTFCNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theFTFCPro=new G4FTFCProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theFTFCPiK=new G4FTFCPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsFTFC::~HadronPhysicsFTFC()
|
||||
{
|
||||
delete theNeutrons;
|
||||
delete theLEPNeutron;
|
||||
delete theFTFCNeutron;
|
||||
|
||||
delete thePiK;
|
||||
delete theLEPPiK;
|
||||
delete theFTFCPiK;
|
||||
|
||||
delete thePro;
|
||||
delete theLEPPro;
|
||||
delete theFTFCPro;
|
||||
|
||||
delete theMiscLHEP;
|
||||
}
|
||||
|
||||
void HadronPhysicsFTFC::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsFTFC::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsFTFP.cc,v 1.1 2006/10/31 11:35:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName:
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 23.11.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsFTFP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsFTFP::HadronPhysicsFTFP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsFTFP::CreateModels()
|
||||
{
|
||||
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theFTFPNeutron=new G4FTFPNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theFTFPPro=new G4FTFPProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theFTFPPiK=new G4FTFPPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsFTFP::~HadronPhysicsFTFP()
|
||||
{
|
||||
delete theNeutrons;
|
||||
delete theLEPNeutron;
|
||||
delete theFTFPNeutron;
|
||||
|
||||
delete thePiK;
|
||||
delete theLEPPiK;
|
||||
delete theFTFPPiK;
|
||||
|
||||
delete thePro;
|
||||
delete theLEPPro;
|
||||
delete theFTFPPro;
|
||||
|
||||
delete theMiscLHEP;
|
||||
}
|
||||
|
||||
void HadronPhysicsFTFP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsFTFP::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsLHEP.cc,v 1.1 2006/10/31 11:35:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsLHEP
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 21.11.2005 G.Folger: don't keep processes as data members, but new these
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsLHEP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP::HadronPhysicsLHEP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsLHEP::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
theStoppingHadron=new G4StoppingHadronBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP::~HadronPhysicsLHEP()
|
||||
{
|
||||
delete theLHEPNeutron;
|
||||
delete theNeutrons;
|
||||
delete theLHEPPro;
|
||||
delete thePro;
|
||||
delete theLHEPPiK;
|
||||
delete thePiK;
|
||||
}
|
||||
|
||||
void HadronPhysicsLHEP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
theStoppingHadron->Build();
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,120 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsLHEP_BERT.cc,v 1.1 2006/10/31 11:35:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsLHEP_BERT
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 1.12.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
// 20.06.2006 G.Folger: Bertini applies to Kaons, i.e. use SetMinEnergy instead of SetMinPionEnergy
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsLHEP_BERT.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP_BERT::HadronPhysicsLHEP_BERT(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsLHEP_BERT::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
|
||||
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theBertiniNeutron=new G4BertiniNeutronBuilder);
|
||||
theLHEPNeutron->SetMinInelasticEnergy(9.5*GeV);
|
||||
theBertiniNeutron->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
|
||||
thePro->RegisterMe(theBertiniPro=new G4BertiniProtonBuilder);
|
||||
theLHEPPro->SetMinEnergy(9.5*GeV);
|
||||
theBertiniPro->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
|
||||
thePiK->RegisterMe(theBertiniPiK=new G4BertiniPiKBuilder);
|
||||
theLHEPPiK->SetMinEnergy(9.5*GeV);
|
||||
theBertiniPiK->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_BERT::~HadronPhysicsLHEP_BERT()
|
||||
{
|
||||
delete theNeutrons;
|
||||
delete theLHEPNeutron;
|
||||
delete theBertiniNeutron;
|
||||
|
||||
delete thePiK;
|
||||
delete theLHEPPiK;
|
||||
delete theBertiniPiK;
|
||||
|
||||
delete thePro;
|
||||
delete theLHEPPro;
|
||||
delete theBertiniPro;
|
||||
|
||||
delete theMiscLHEP;
|
||||
}
|
||||
|
||||
void HadronPhysicsLHEP_BERT::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_BERT::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsLHEP_BERT_HP.cc,v 1.1 2006/10/31 11:35:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsLHEP_BERT_HP
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 1.12.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsLHEP_BERT_HP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP_BERT_HP::HadronPhysicsLHEP_BERT_HP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsLHEP_BERT_HP::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theBertiniNeutron=new G4BertiniNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder);
|
||||
theLHEPNeutron->SetMinEnergy(19.9*MeV);
|
||||
theLHEPNeutron->SetMinInelasticEnergy(9.5*GeV);
|
||||
theBertiniNeutron->SetMaxEnergy(9.9*GeV);
|
||||
theBertiniNeutron->SetMinEnergy(19.9*MeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
|
||||
thePro->RegisterMe(theBertiniPro=new G4BertiniProtonBuilder);
|
||||
theLHEPPro->SetMinEnergy(9.5*GeV);
|
||||
theBertiniPro->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_BERT_HP::~HadronPhysicsLHEP_BERT_HP()
|
||||
{
|
||||
delete theNeutrons;
|
||||
delete theLHEPNeutron;
|
||||
delete theBertiniNeutron;
|
||||
delete theHPNeutron;
|
||||
|
||||
delete thePiK;
|
||||
delete theLHEPPiK;
|
||||
|
||||
delete thePro;
|
||||
delete theLHEPPro;
|
||||
delete theBertiniPro;
|
||||
|
||||
delete theMiscLHEP;
|
||||
}
|
||||
|
||||
void HadronPhysicsLHEP_BERT_HP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_BERT_HP::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsLHEP_BIC.cc,v 1.1 2006/10/31 11:35:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsLHEP_BIC
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 1.12.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsLHEP_BIC.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP_BIC::HadronPhysicsLHEP_BIC(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsLHEP_BIC::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
|
||||
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theBinaryNeutron=new G4BinaryNeutronBuilder);
|
||||
theLHEPNeutron->SetMinInelasticEnergy(9.5*GeV);
|
||||
theBinaryNeutron->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
|
||||
thePro->RegisterMe(theBinaryPro=new G4BinaryProtonBuilder);
|
||||
theLHEPPro->SetMinEnergy(9.5*GeV);
|
||||
theBinaryPro->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_BIC::~HadronPhysicsLHEP_BIC()
|
||||
{
|
||||
delete theNeutrons;
|
||||
delete theLHEPNeutron;
|
||||
delete theBinaryNeutron;
|
||||
|
||||
delete thePiK;
|
||||
delete theLHEPPiK;
|
||||
|
||||
delete thePro;
|
||||
delete theLHEPPro;
|
||||
delete theBinaryPro;
|
||||
|
||||
delete theMiscLHEP;
|
||||
}
|
||||
|
||||
void HadronPhysicsLHEP_BIC::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_BIC::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,117 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsLHEP_BIC_HP.cc,v 1.1 2006/10/31 11:35:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsLHEP_BIC_HP
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 1.12.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsLHEP_BIC_HP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP_BIC_HP::HadronPhysicsLHEP_BIC_HP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsLHEP_BIC_HP::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theBinaryNeutron=new G4BinaryNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder);
|
||||
theLHEPNeutron->SetMinEnergy(19.9*MeV);
|
||||
theLHEPNeutron->SetMinInelasticEnergy(9.5*GeV);
|
||||
theBinaryNeutron->SetMaxEnergy(9.9*GeV);
|
||||
theBinaryNeutron->SetMinEnergy(19.9*MeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
|
||||
thePro->RegisterMe(theBinaryPro=new G4BinaryProtonBuilder);
|
||||
theLHEPPro->SetMinEnergy(9.5*GeV);
|
||||
theBinaryPro->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_BIC_HP::~HadronPhysicsLHEP_BIC_HP()
|
||||
{
|
||||
delete theNeutrons;
|
||||
delete theLHEPNeutron;
|
||||
delete theBinaryNeutron;
|
||||
delete theHPNeutron;
|
||||
|
||||
delete thePiK;
|
||||
delete theLHEPPiK;
|
||||
|
||||
delete thePro;
|
||||
delete theLHEPPro;
|
||||
delete theBinaryPro;
|
||||
|
||||
delete theMiscLHEP;
|
||||
}
|
||||
|
||||
void HadronPhysicsLHEP_BIC_HP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_BIC_HP::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsLHEP_EMV.cc,v 1.1 2006/10/31 11:35:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsLHEP_EMV
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 16.12.2005 G.Folger: create from HadronPhysicsLHEP_GN
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "HadronPhysicsLHEP_EMV.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
HadronPhysicsLHEP_EMV::HadronPhysicsLHEP_EMV(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsLHEP_EMV::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_EMV::~HadronPhysicsLHEP_EMV()
|
||||
{
|
||||
delete theLHEPNeutron;
|
||||
delete theNeutrons;
|
||||
delete theLHEPPro;
|
||||
delete thePro;
|
||||
delete theLHEPPiK;
|
||||
delete thePiK;
|
||||
}
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
void HadronPhysicsLHEP_EMV::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_EMV::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsLHEP_HP.cc,v 1.1 2006/10/31 11:35:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsLHEP_HP
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 1.12.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsLHEP_HP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
HadronPhysicsLHEP_HP::HadronPhysicsLHEP_HP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsLHEP_HP::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
|
||||
theLHEPNeutron->SetMinEnergy(19.9*MeV);
|
||||
theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
|
||||
|
||||
theProton=new G4ProtonBuilder;
|
||||
theProton->RegisterMe(theLHEPProton=new G4LHEPProtonBuilder);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_HP::
|
||||
~HadronPhysicsLHEP_HP()
|
||||
{
|
||||
delete theNeutrons;
|
||||
delete theLHEPNeutron;
|
||||
delete theHPNeutron;
|
||||
|
||||
delete theLHEPPiK;
|
||||
delete thePiK;
|
||||
delete theLHEPProton;
|
||||
delete theProton;
|
||||
|
||||
delete theMiscLHEP;
|
||||
}
|
||||
|
||||
void HadronPhysicsLHEP_HP::
|
||||
ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
void HadronPhysicsLHEP_HP::
|
||||
ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
theProton->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsLHEP_LEAD.cc,v 1.1 2006/10/31 11:35:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsLHEP_LEAD
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 1.12.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsLHEP_LEAD.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP_LEAD::HadronPhysicsLHEP_LEAD(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsLHEP_LEAD::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theLEADNeutron=new G4LEADNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
|
||||
theLHEPNeutron->SetMinInelasticEnergy(4.99*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theLEADPro=new G4LEADProtonBuilder);
|
||||
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
|
||||
theLHEPPro->SetMinEnergy(4.99*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theLEADPiK=new G4LEADPiKBuilder);
|
||||
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
|
||||
theLHEPPiK->SetMinEnergy(4.99*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_LEAD::~HadronPhysicsLHEP_LEAD()
|
||||
{
|
||||
delete theNeutrons;
|
||||
delete theLHEPNeutron;
|
||||
delete theLEADNeutron;
|
||||
|
||||
delete thePiK;
|
||||
delete theLHEPPiK;
|
||||
delete theLEADPiK;
|
||||
|
||||
delete thePro;
|
||||
delete theLHEPPro;
|
||||
delete theLEADPro;
|
||||
|
||||
delete theMiscLHEP;
|
||||
}
|
||||
|
||||
void HadronPhysicsLHEP_LEAD::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_LEAD::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsLHEP_LEAD_HP.cc,v 1.1 2006/10/31 11:35:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: LHEP_LEAD_HP
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 30.11.2005 G.Folger: migration to non static particles
|
||||
// 30.11.2005 G.Folger: Register EmStandard first, split Em Standard and Extra
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsLHEP_LEAD_HP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP_LEAD_HP::HadronPhysicsLHEP_LEAD_HP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsLHEP_LEAD_HP::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
|
||||
theLHEPNeutron->SetMinEnergy(19.9*MeV);
|
||||
theLHEPNeutron->SetMinInelasticEnergy(4.99*GeV);
|
||||
theNeutrons->RegisterMe(theLEADNeutron=new G4LEADNeutronBuilder);
|
||||
theLEADNeutron->SetMinEnergy(19.9*MeV);
|
||||
theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
|
||||
theLHEPPro->SetMinEnergy(4.99*GeV);
|
||||
thePro->RegisterMe(theLEADPro=new G4LEADProtonBuilder);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
|
||||
theLHEPPiK->SetMinEnergy(4.99*GeV);
|
||||
thePiK->RegisterMe(theLEADPiK=new G4LEADPiKBuilder);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_LEAD_HP::~HadronPhysicsLHEP_LEAD_HP()
|
||||
{
|
||||
delete theNeutrons;
|
||||
delete theLHEPNeutron;
|
||||
delete theLEADNeutron;
|
||||
delete theHPNeutron;
|
||||
|
||||
delete thePiK;
|
||||
delete theLHEPPiK;
|
||||
delete theLEADPiK;
|
||||
|
||||
delete thePro;
|
||||
delete theLHEPPro;
|
||||
delete theLEADPro;
|
||||
|
||||
delete theMiscLHEP;
|
||||
}
|
||||
|
||||
void HadronPhysicsLHEP_LEAD_HP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_LEAD_HP::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsLHEP_PRECO.cc,v 1.1 2006/10/31 11:35:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsLHEP_PRECO
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 1.12.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsLHEP_PRECO.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP_PRECO::HadronPhysicsLHEP_PRECO(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsLHEP_PRECO::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(thePrecoNeutron=new G4PrecoNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
|
||||
theLHEPNeutron->SetMinInelasticEnergy(0.15*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(thePrecoPro=new G4PrecoProtonBuilder);
|
||||
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
|
||||
theLHEPPro->SetMinEnergy(0.15*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_PRECO::~HadronPhysicsLHEP_PRECO()
|
||||
{
|
||||
delete theNeutrons;
|
||||
delete theLHEPNeutron;
|
||||
delete thePrecoNeutron;
|
||||
|
||||
delete thePiK;
|
||||
delete theLHEPPiK;
|
||||
|
||||
delete thePro;
|
||||
delete theLHEPPro;
|
||||
delete thePrecoPro;
|
||||
|
||||
delete theMiscLHEP;
|
||||
}
|
||||
|
||||
void HadronPhysicsLHEP_PRECO::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_PRECO::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsLHEP_PRECO_HP.cc,v 1.1 2006/10/31 11:35:11 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsLHEP_PRECO_HP
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 1.12.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsLHEP_PRECO_HP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsLHEP_PRECO_HP::HadronPhysicsLHEP_PRECO_HP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsLHEP_PRECO_HP::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theLHEPNeutron=new G4LHEPNeutronBuilder);
|
||||
theLHEPNeutron->SetMinEnergy(19.9*MeV);
|
||||
theLHEPNeutron->SetMinInelasticEnergy(0.15*GeV);
|
||||
theNeutrons->RegisterMe(thePrecoNeutron=new G4PrecoNeutronBuilder);
|
||||
thePrecoNeutron->SetMinEnergy(19.9*MeV);
|
||||
theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theLHEPPro=new G4LHEPProtonBuilder);
|
||||
theLHEPPro->SetMinEnergy(0.15*GeV);
|
||||
thePro->RegisterMe(thePrecoPro=new G4PrecoProtonBuilder);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theLHEPPiK=new G4LHEPPiKBuilder);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsLHEP_PRECO_HP::~HadronPhysicsLHEP_PRECO_HP()
|
||||
{
|
||||
delete theNeutrons;
|
||||
delete theLHEPNeutron;
|
||||
delete thePrecoNeutron;
|
||||
delete theHPNeutron;
|
||||
|
||||
delete thePiK;
|
||||
delete theLHEPPiK;
|
||||
|
||||
delete thePro;
|
||||
delete theLHEPPro;
|
||||
delete thePrecoPro;
|
||||
|
||||
delete theMiscLHEP;
|
||||
}
|
||||
|
||||
void HadronPhysicsLHEP_PRECO_HP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsLHEP_PRECO_HP::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsQGSC.cc,v 1.1 2006/10/31 11:35:11 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsQGSC
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 21.11.2005 G.Folger: don't keep processes as data members, but new these
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsQGSC.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsQGSC::HadronPhysicsQGSC(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsQGSC::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theQGSCNeutron=new G4QGSCNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theQGSCPro=new G4QGSCProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theQGSCPiK=new G4QGSCPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsQGSC::~HadronPhysicsQGSC()
|
||||
{
|
||||
delete theMiscLHEP;
|
||||
delete theQGSCPro;
|
||||
delete theLEPPro;
|
||||
delete thePro;
|
||||
delete theQGSCPiK;
|
||||
delete theLEPPiK;
|
||||
delete thePiK;
|
||||
}
|
||||
|
||||
void HadronPhysicsQGSC::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsQGSC::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsQGSC_EFLOW.cc,v 1.1 2006/12/05 17:03:32 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsQGSC_EFLOW
|
||||
//
|
||||
// Author: 2006 Gunter Folger
|
||||
//
|
||||
// Created from HadronPhysicsQGSC
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsQGSC_EFLOW.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsQGSC_EFLOW::HadronPhysicsQGSC_EFLOW(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsQGSC_EFLOW::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theQGSCEflowNeutron=new G4QGSCEflowNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theQGSCEflowPro=new G4QGSCEflowProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theQGSCEflowPiK=new G4QGSCEflowPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsQGSC_EFLOW::~HadronPhysicsQGSC_EFLOW()
|
||||
{
|
||||
delete theMiscLHEP;
|
||||
delete theQGSCEflowNeutron;
|
||||
delete theLEPNeutron;
|
||||
delete theNeutrons;
|
||||
delete theQGSCEflowPro;
|
||||
delete theLEPPro;
|
||||
delete thePro;
|
||||
delete theQGSCEflowPiK;
|
||||
delete theLEPPiK;
|
||||
delete thePiK;
|
||||
}
|
||||
|
||||
void HadronPhysicsQGSC_EFLOW::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsQGSC_EFLOW::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsQGSC_EMV.cc,v 1.1 2006/11/24 15:49:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsQGSC_EMV
|
||||
//
|
||||
// Author: 2006 G.Folger
|
||||
//
|
||||
// Created as copy of HadronPhysicsQGSC
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsQGSC_EMV.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsQGSC_EMV::HadronPhysicsQGSC_EMV(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsQGSC_EMV::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theQGSCNeutron=new G4QGSCNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theQGSCPro=new G4QGSCProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theQGSCPiK=new G4QGSCPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsQGSC_EMV::~HadronPhysicsQGSC_EMV()
|
||||
{
|
||||
delete theMiscLHEP;
|
||||
delete theQGSCPro;
|
||||
delete theLEPPro;
|
||||
delete thePro;
|
||||
delete theQGSCPiK;
|
||||
delete theLEPPiK;
|
||||
delete thePiK;
|
||||
}
|
||||
|
||||
void HadronPhysicsQGSC_EMV::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsQGSC_EMV::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsQGSC_LEAD.cc,v 1.1 2006/10/31 11:35:11 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysiosQGSC_LEAD
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 28.11.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
|
||||
#include "HadronPhysicsQGSC_LEAD.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsQGSC_LEAD::HadronPhysicsQGSC_LEAD(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsQGSC_LEAD::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theQGSCNeutron=new G4QGSCNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
theLEPNeutron->SetMinInelasticEnergy(4.99*GeV);
|
||||
theNeutrons->RegisterMe(theLEADNeutron=new G4LEADNeutronBuilder);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theQGSCPro=new G4QGSCProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
theLEPPro->SetMinEnergy(4.99*GeV);
|
||||
thePro->RegisterMe(theLEADProton=new G4LEADProtonBuilder);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theQGSCPiK=new G4QGSCPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
thePiK->RegisterMe(theLEADPiK=new G4LEADPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
theLEPPiK->SetMinEnergy(4.99*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsQGSC_LEAD::~HadronPhysicsQGSC_LEAD()
|
||||
{
|
||||
delete theNeutrons;
|
||||
delete theLEPNeutron;
|
||||
delete theQGSCNeutron;
|
||||
delete theLEADNeutron;
|
||||
|
||||
delete thePiK;
|
||||
delete theLEPPiK;
|
||||
delete theQGSCPiK;
|
||||
delete theLEADPiK;
|
||||
|
||||
delete thePro;
|
||||
delete theLEPPro;
|
||||
delete theQGSCPro;
|
||||
delete theLEADProton;
|
||||
|
||||
delete theMiscLHEP;
|
||||
}
|
||||
|
||||
void HadronPhysicsQGSC_LEAD::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsQGSC_LEAD::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsQGSC_LEAD_HP.cc,v 1.1 2006/10/31 11:35:11 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsQGSC_LEAD_HP
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 1.12.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsQGSC_LEAD_HP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsQGSC_LEAD_HP::HadronPhysicsQGSC_LEAD_HP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsQGSC_LEAD_HP::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theQGSCNeutron=new G4QGSCNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
theLEPNeutron->SetMinEnergy(19.9*MeV);
|
||||
theLEPNeutron->SetMinInelasticEnergy(4.99*GeV);
|
||||
theNeutrons->RegisterMe(theLEADNeutron=new G4LEADNeutronBuilder);
|
||||
theLEADNeutron->SetMinEnergy(19.9*MeV);
|
||||
theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theQGSCPro=new G4QGSCProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
theLEPPro->SetMinEnergy(4.99*GeV);
|
||||
thePro->RegisterMe(theLEADProton=new G4LEADProtonBuilder);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theQGSCPiK=new G4QGSCPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
theLEPPiK->SetMinEnergy(4.99*GeV);
|
||||
thePiK->RegisterMe(theLEADPiK=new G4LEADPiKBuilder);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsQGSC_LEAD_HP::~HadronPhysicsQGSC_LEAD_HP()
|
||||
{
|
||||
delete theNeutrons;
|
||||
delete theLEPNeutron;
|
||||
delete theQGSCNeutron;
|
||||
delete theLEADNeutron;
|
||||
delete theHPNeutron;
|
||||
|
||||
delete thePiK;
|
||||
delete theLEPPiK;
|
||||
delete theQGSCPiK;
|
||||
delete theLEADPiK;
|
||||
|
||||
delete thePro;
|
||||
delete theLEPPro;
|
||||
delete theQGSCPro;
|
||||
delete theLEADProton;
|
||||
|
||||
delete theMiscLHEP;
|
||||
}
|
||||
|
||||
void HadronPhysicsQGSC_LEAD_HP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsQGSC_LEAD_HP::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: HadronPhysicsQGSP.cc,v 1.1 2006/10/31 11:35:11 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsQGSP
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 21.11.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
|
||||
#include "HadronPhysicsQGSP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsQGSP::HadronPhysicsQGSP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsQGSP::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsQGSP::~HadronPhysicsQGSP()
|
||||
{
|
||||
delete theMiscLHEP;
|
||||
delete theQGSPNeutron;
|
||||
delete theLEPNeutron;
|
||||
delete theQGSPPro;
|
||||
delete theLEPPro;
|
||||
delete thePro;
|
||||
delete theQGSPPiK;
|
||||
delete theLEPPiK;
|
||||
delete thePiK;
|
||||
}
|
||||
|
||||
|
||||
void HadronPhysicsQGSP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsQGSP::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsQGSP_BERT.cc,v 1.1 2006/10/31 11:35:11 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsQGSP_BERT
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 23.11.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
// 20.06.2006 G.Folger: Bertini applies to Kaons, i.e. use SetMinEnergy instead of SetMinPionEnergy
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsQGSP_BERT.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsQGSP_BERT::HadronPhysicsQGSP_BERT(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsQGSP_BERT::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMinInelasticEnergy(9.5*GeV);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
theNeutrons->RegisterMe(theBertiniNeutron=new G4BertiniNeutronBuilder);
|
||||
theBertiniNeutron->SetMinEnergy(0.0*GeV);
|
||||
theBertiniNeutron->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMinEnergy(9.5*GeV);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
|
||||
thePro->RegisterMe(theBertiniPro=new G4BertiniProtonBuilder);
|
||||
theBertiniPro->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
theLEPPiK->SetMinEnergy(9.5*GeV);
|
||||
|
||||
thePiK->RegisterMe(theBertiniPiK=new G4BertiniPiKBuilder);
|
||||
theBertiniPiK->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsQGSP_BERT::~HadronPhysicsQGSP_BERT()
|
||||
{
|
||||
delete theMiscLHEP;
|
||||
delete theQGSPNeutron;
|
||||
delete theLEPNeutron;
|
||||
delete theBertiniNeutron;
|
||||
delete theQGSPPro;
|
||||
delete theLEPPro;
|
||||
delete thePro;
|
||||
delete theBertiniPro;
|
||||
delete theQGSPPiK;
|
||||
delete theLEPPiK;
|
||||
delete theBertiniPiK;
|
||||
delete thePiK;
|
||||
}
|
||||
|
||||
void HadronPhysicsQGSP_BERT::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsQGSP_BERT::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsQGSP_BERT_HP.cc,v 1.1 2006/10/31 11:35:11 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsQGSP_BERT_HP
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 15.12.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
// 20.06.2006 G.Folger: Bertini applies to Kaons, i.e. use SetMinEnergy instead of SetMinPionEnergy
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsQGSP_BERT_HP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsQGSP_BERT_HP::HadronPhysicsQGSP_BERT_HP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsQGSP_BERT_HP::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMinEnergy(19.9*MeV);
|
||||
theLEPNeutron->SetMinInelasticEnergy(9.5*GeV);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
theNeutrons->RegisterMe(theBertiniNeutron=new G4BertiniNeutronBuilder);
|
||||
theBertiniNeutron->SetMinEnergy(19.9*MeV);
|
||||
theBertiniNeutron->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMinEnergy(9.5*GeV);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
|
||||
thePro->RegisterMe(theBertiniPro=new G4BertiniProtonBuilder);
|
||||
theBertiniPro->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
theLEPPiK->SetMinEnergy(9.5*GeV);
|
||||
|
||||
thePiK->RegisterMe(theBertiniPiK=new G4BertiniPiKBuilder);
|
||||
theBertiniPiK->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsQGSP_BERT_HP::~HadronPhysicsQGSP_BERT_HP()
|
||||
{
|
||||
delete theMiscLHEP;
|
||||
delete theQGSPNeutron;
|
||||
delete theLEPNeutron;
|
||||
delete theBertiniNeutron;
|
||||
delete theHPNeutron;
|
||||
delete theQGSPPro;
|
||||
delete theLEPPro;
|
||||
delete thePro;
|
||||
delete theBertiniPro;
|
||||
delete theQGSPPiK;
|
||||
delete theLEPPiK;
|
||||
delete theBertiniPiK;
|
||||
delete thePiK;
|
||||
}
|
||||
|
||||
void HadronPhysicsQGSP_BERT_HP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsQGSP_BERT_HP::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsQGSP_BIC.cc,v 1.1 2006/10/31 11:35:11 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsQGSP_BIC
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 23.11.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsQGSP_BIC.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsQGSP_BIC::HadronPhysicsQGSP_BIC(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsQGSP_BIC::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
|
||||
theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMinInelasticEnergy(9.5*GeV);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
theNeutrons->RegisterMe(theBinaryNeutron=new G4BinaryNeutronBuilder);
|
||||
theBinaryNeutron->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMinEnergy(9.5*GeV);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
|
||||
thePro->RegisterMe(theBinaryPro=new G4BinaryProtonBuilder);
|
||||
theBinaryPro->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsQGSP_BIC::~HadronPhysicsQGSP_BIC()
|
||||
{
|
||||
delete theMiscLHEP;
|
||||
delete theQGSPNeutron;
|
||||
delete theLEPNeutron;
|
||||
delete theBinaryNeutron;
|
||||
delete theQGSPPro;
|
||||
delete theLEPPro;
|
||||
delete thePro;
|
||||
delete theBinaryPro;
|
||||
delete theQGSPPiK;
|
||||
delete theLEPPiK;
|
||||
delete thePiK;
|
||||
}
|
||||
|
||||
void HadronPhysicsQGSP_BIC::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsQGSP_BIC::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsQGSP_BIC_HP.cc,v 1.2 2006/11/24 16:33:23 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsQGSP_BIC_HP
|
||||
//
|
||||
// Author: 2006 G.Folger
|
||||
//
|
||||
// Based on HadronPhysicsQGSP_BIC
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsQGSP_BIC_HP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsQGSP_BIC_HP::HadronPhysicsQGSP_BIC_HP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsQGSP_BIC_HP::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
|
||||
theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMinEnergy(19.9*MeV);
|
||||
theLEPNeutron->SetMinInelasticEnergy(9.5*GeV);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
theNeutrons->RegisterMe(theBinaryNeutron=new G4BinaryNeutronBuilder);
|
||||
theBinaryNeutron->SetMinEnergy(19.9*MeV);
|
||||
theBinaryNeutron->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMinEnergy(9.5*GeV);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
|
||||
thePro->RegisterMe(theBinaryPro=new G4BinaryProtonBuilder);
|
||||
theBinaryPro->SetMaxEnergy(9.9*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsQGSP_BIC_HP::~HadronPhysicsQGSP_BIC_HP()
|
||||
{
|
||||
delete theMiscLHEP;
|
||||
delete theQGSPNeutron;
|
||||
delete theLEPNeutron;
|
||||
delete theBinaryNeutron;
|
||||
delete theHPNeutron;
|
||||
delete theQGSPPro;
|
||||
delete theLEPPro;
|
||||
delete thePro;
|
||||
delete theBinaryPro;
|
||||
delete theQGSPPiK;
|
||||
delete theLEPPiK;
|
||||
delete thePiK;
|
||||
}
|
||||
|
||||
void HadronPhysicsQGSP_BIC_HP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsQGSP_BIC_HP::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: HadronPhysicsQGSP_EMV.cc,v 1.1 2006/10/31 11:35:11 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsQGSP_EMV
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 21.11.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
|
||||
#include "HadronPhysicsQGSP_EMV.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsQGSP_EMV::HadronPhysicsQGSP_EMV(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsQGSP_EMV::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsQGSP_EMV::~HadronPhysicsQGSP_EMV()
|
||||
{
|
||||
delete theMiscLHEP;
|
||||
delete theQGSPPro;
|
||||
delete theLEPPro;
|
||||
delete thePro;
|
||||
delete theQGSPPiK;
|
||||
delete theLEPPiK;
|
||||
delete thePiK;
|
||||
}
|
||||
|
||||
|
||||
void HadronPhysicsQGSP_EMV::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsQGSP_EMV::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,109 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: HadronPhysicsQGSP_EMX.cc,v 1.1 2006/10/31 11:35:11 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: HadronPhysicsQGSP_EMX
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 21.06.2006 V.Ivanchenko: copied from HadronPhysiosQGSP_EMX
|
||||
//
|
||||
|
||||
#include "HadronPhysicsQGSP_EMX.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsQGSP_EMX::HadronPhysicsQGSP_EMX(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsQGSP_EMX::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsQGSP_EMX::~HadronPhysicsQGSP_EMX()
|
||||
{
|
||||
delete theMiscLHEP;
|
||||
delete theQGSPPro;
|
||||
delete theLEPPro;
|
||||
delete thePro;
|
||||
delete theQGSPPiK;
|
||||
delete theLEPPiK;
|
||||
delete thePiK;
|
||||
}
|
||||
|
||||
|
||||
void HadronPhysicsQGSP_EMX::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsQGSP_EMX::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: HadronPhysicsQGSP_HP.cc,v 1.1 2006/10/31 11:35:11 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName:
|
||||
//
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 23.11.2005 G.Folger: migration to non static particles
|
||||
// 08.06.2006 V.Ivanchenko: remove stopping
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "HadronPhysicsQGSP_HP.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
HadronPhysicsQGSP_HP::HadronPhysicsQGSP_HP(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{}
|
||||
|
||||
void HadronPhysicsQGSP_HP::CreateModels()
|
||||
{
|
||||
theNeutrons=new G4NeutronBuilder;
|
||||
|
||||
theNeutrons->RegisterMe(theQGSPNeutron=new G4QGSPNeutronBuilder);
|
||||
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
|
||||
theLEPNeutron->SetMinEnergy(19.9*MeV);
|
||||
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
|
||||
theNeutrons->RegisterMe(theHPNeutron=new G4NeutronHPBuilder);
|
||||
|
||||
thePro=new G4ProtonBuilder;
|
||||
thePro->RegisterMe(theQGSPPro=new G4QGSPProtonBuilder);
|
||||
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
|
||||
theLEPPro->SetMaxEnergy(25*GeV);
|
||||
|
||||
thePiK=new G4PiKBuilder;
|
||||
thePiK->RegisterMe(theQGSPPiK=new G4QGSPPiKBuilder);
|
||||
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
|
||||
theLEPPiK->SetMaxEnergy(25*GeV);
|
||||
|
||||
theMiscLHEP=new G4MiscLHEPBuilder;
|
||||
}
|
||||
|
||||
HadronPhysicsQGSP_HP::~HadronPhysicsQGSP_HP()
|
||||
{
|
||||
delete theMiscLHEP;
|
||||
delete theQGSPNeutron;
|
||||
delete theLEPNeutron;
|
||||
delete theHPNeutron;
|
||||
delete theQGSPPro;
|
||||
delete theLEPPro;
|
||||
delete thePro;
|
||||
delete theQGSPPiK;
|
||||
delete theLEPPiK;
|
||||
delete thePiK;
|
||||
}
|
||||
|
||||
void HadronPhysicsQGSP_HP::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
G4ShortLivedConstructor pShortLivedConstructor;
|
||||
pShortLivedConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
void HadronPhysicsQGSP_HP::ConstructProcess()
|
||||
{
|
||||
CreateModels();
|
||||
theNeutrons->Build();
|
||||
thePro->Build();
|
||||
thePiK->Build();
|
||||
theMiscLHEP->Build();
|
||||
}
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4
|
||||
//
|
||||
// For information related to this code contact: Alex Howard
|
||||
// e-mail: a.s.howard@ic.ac.uk
|
||||
// --------------------------------------------------------------
|
||||
// Comments
|
||||
//
|
||||
// by A. Howard and H. Araujo
|
||||
// (27th November 2001)
|
||||
//
|
||||
// MaxTimeCuts program
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#include "MaxTimeCuts.hh"
|
||||
|
||||
#include "G4Step.hh"
|
||||
#include "G4UserLimits.hh"
|
||||
#include "G4VParticleChange.hh"
|
||||
#include "G4EnergyLossTables.hh"
|
||||
|
||||
|
||||
MaxTimeCuts::MaxTimeCuts(const G4String& aName)
|
||||
: SpecialCuts(aName)
|
||||
{
|
||||
if (verboseLevel>1) {
|
||||
G4cout << GetProcessName() << " is created "<< G4endl;
|
||||
}
|
||||
SetProcessType(fUserDefined);
|
||||
}
|
||||
|
||||
MaxTimeCuts::~MaxTimeCuts()
|
||||
{}
|
||||
|
||||
MaxTimeCuts::MaxTimeCuts(MaxTimeCuts& ) : SpecialCuts()
|
||||
{}
|
||||
|
||||
|
||||
G4double MaxTimeCuts::PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& aTrack,
|
||||
G4double ,
|
||||
G4ForceCondition* condition
|
||||
)
|
||||
{
|
||||
// condition is set to "Not Forced"
|
||||
*condition = NotForced;
|
||||
|
||||
G4double proposedStep = DBL_MAX;
|
||||
// get the pointer to UserLimits
|
||||
G4UserLimits* pUserLimits = aTrack.GetVolume()->GetLogicalVolume()->GetUserLimits();
|
||||
const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle();
|
||||
|
||||
// can apply cuts for specific particles - use if(particleDef):
|
||||
// G4ParticleDefinition* aParticleDef = aTrack.GetDefinition();
|
||||
|
||||
// G4cout << " Time: " << pUserLimits->GetUserMaxTime(aTrack) << G4endl;
|
||||
|
||||
if (pUserLimits) {
|
||||
G4double temp = DBL_MAX;
|
||||
//max time limit
|
||||
G4double dTime= (pUserLimits->GetUserMaxTime(aTrack) - aTrack.GetGlobalTime());
|
||||
if (dTime < 0. ) {
|
||||
proposedStep = 0.;
|
||||
} else {
|
||||
G4double beta = (aParticle->GetTotalMomentum())/(aParticle->GetTotalEnergy());
|
||||
temp = beta*c_light*dTime;
|
||||
if (proposedStep > temp) proposedStep = temp;
|
||||
}
|
||||
|
||||
}
|
||||
return proposedStep;
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// GEANT4 tag $Name: geant4-08-02 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// --------------------------------------------------------------
|
||||
// 15 April 1998 M.Maire
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#include "MinEkineCuts.hh"
|
||||
|
||||
#include "G4Step.hh"
|
||||
#include "G4UserLimits.hh"
|
||||
#include "G4VParticleChange.hh"
|
||||
#include "G4EnergyLossTables.hh"
|
||||
|
||||
MinEkineCuts::MinEkineCuts(const G4String& aName)
|
||||
: SpecialCuts(aName)
|
||||
{
|
||||
if (verboseLevel>1) {
|
||||
G4cout << GetProcessName() << " is created "<< G4endl;
|
||||
}
|
||||
SetProcessType(fUserDefined);
|
||||
}
|
||||
|
||||
MinEkineCuts::~MinEkineCuts()
|
||||
{}
|
||||
|
||||
MinEkineCuts::MinEkineCuts(MinEkineCuts& ) : SpecialCuts()
|
||||
{}
|
||||
|
||||
|
||||
G4double MinEkineCuts::PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& aTrack,
|
||||
G4double ,
|
||||
G4ForceCondition* condition
|
||||
)
|
||||
{
|
||||
// condition is set to "Not Forced"
|
||||
*condition = NotForced;
|
||||
|
||||
G4double proposedStep = DBL_MAX;
|
||||
// get the pointer to UserLimits
|
||||
G4UserLimits* pUserLimits = aTrack.GetVolume()->GetLogicalVolume()->GetUserLimits();
|
||||
const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle();
|
||||
G4ParticleDefinition* aParticleDef = aTrack.GetDefinition();
|
||||
|
||||
if (pUserLimits && aParticleDef->GetPDGCharge() != 0.0) {
|
||||
//min kinetic energy
|
||||
G4double temp = DBL_MAX;
|
||||
G4double eKine = aParticle->GetKineticEnergy();
|
||||
G4Material* aMaterial = aTrack.GetMaterial();
|
||||
G4double eMin = pUserLimits->GetUserMinEkine(aTrack);
|
||||
|
||||
G4double rangeNow = DBL_MAX;
|
||||
|
||||
rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,aMaterial);
|
||||
|
||||
if (eKine < eMin ) {
|
||||
proposedStep = 0.;
|
||||
} else {
|
||||
// charged particles only
|
||||
G4double rangeMin = G4EnergyLossTables::GetRange(aParticleDef,eMin,aMaterial);
|
||||
temp = rangeNow - rangeMin;
|
||||
if (proposedStep > temp) proposedStep = temp;
|
||||
}
|
||||
}
|
||||
return proposedStep;
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4
|
||||
//
|
||||
// For information related to this code contact: Alex Howard
|
||||
// e-mail: a.s.howard@ic.ac.uk
|
||||
// --------------------------------------------------------------
|
||||
// Comments
|
||||
//
|
||||
// by A. Howard and H. Araujo
|
||||
// (27th November 2001)
|
||||
//
|
||||
// SpecialCuts program
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#include "SpecialCuts.hh"
|
||||
#include "G4VParticleChange.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4Step.hh"
|
||||
|
||||
SpecialCuts::SpecialCuts(const G4String& aName)
|
||||
: G4VProcess(aName)
|
||||
{
|
||||
if (verboseLevel>1) {
|
||||
G4cout << GetProcessName() << " is created "<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
SpecialCuts::~SpecialCuts()
|
||||
{
|
||||
}
|
||||
|
||||
G4VParticleChange* SpecialCuts::PostStepDoIt(
|
||||
const G4Track& aTrack,
|
||||
const G4Step&
|
||||
)
|
||||
//
|
||||
// Stop the current particle, if requested by G4UserLimits
|
||||
//
|
||||
{
|
||||
aParticleChange.Initialize(aTrack);
|
||||
aParticleChange.ProposeEnergy(0.) ;
|
||||
aParticleChange.ProposeLocalEnergyDeposit (aTrack.GetKineticEnergy()) ;
|
||||
aParticleChange.ProposeTrackStatus(fStopButAlive);
|
||||
return &aParticleChange;
|
||||
}
|
||||
|
||||
G4double SpecialCuts::PostStepGetPhysicalInteractionLength(
|
||||
const G4Track& /* track*/,
|
||||
G4double /* previousStepSize */,
|
||||
G4ForceCondition* /* condition */
|
||||
)
|
||||
{
|
||||
return DBL_MAX;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user