Import Geant4 7.0.0 source tree
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "EMPhysics.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4NeutrinoE.hh"
|
||||
#include "G4AntiNeutrinoE.hh"
|
||||
|
||||
|
||||
EMPhysics::
|
||||
EMPhysics(const G4String& name) : G4VPhysicsConstructor(name) {}
|
||||
|
||||
EMPhysics::
|
||||
~EMPhysics() {}
|
||||
|
||||
void EMPhysics::
|
||||
ConstructParticle()
|
||||
{
|
||||
G4Gamma::GammaDefinition();
|
||||
G4Electron::ElectronDefinition();
|
||||
G4Positron::PositronDefinition();
|
||||
G4NeutrinoE::NeutrinoEDefinition();
|
||||
G4AntiNeutrinoE::AntiNeutrinoEDefinition();
|
||||
}
|
||||
|
||||
void EMPhysics::
|
||||
ConstructProcess()
|
||||
{
|
||||
theEMPhysics.Build();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,63 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "EM_GNPhysics.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4NeutrinoE.hh"
|
||||
#include "G4AntiNeutrinoE.hh"
|
||||
|
||||
|
||||
EM_GNPhysics::
|
||||
EM_GNPhysics(const G4String& name) : G4VPhysicsConstructor(name) {}
|
||||
|
||||
EM_GNPhysics::
|
||||
~EM_GNPhysics() {}
|
||||
|
||||
void EM_GNPhysics::
|
||||
ConstructParticle()
|
||||
{
|
||||
G4Gamma::GammaDefinition();
|
||||
G4Electron::ElectronDefinition();
|
||||
G4Positron::PositronDefinition();
|
||||
G4NeutrinoE::NeutrinoEDefinition();
|
||||
G4AntiNeutrinoE::AntiNeutrinoEDefinition();
|
||||
}
|
||||
|
||||
void EM_GNPhysics::
|
||||
ConstructProcess()
|
||||
{
|
||||
theEMPhysics.Build();
|
||||
#ifndef NO_ELECTRO_AND_GAMMA_NUCLEAR
|
||||
theGNPhysics.Build();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,63 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4BertiniNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4BertiniNeutronBuilder::
|
||||
G4BertiniNeutronBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theMax = 9.9*GeV;
|
||||
theModel = new G4CascadeInterface;
|
||||
}
|
||||
|
||||
void G4BertiniNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
G4BertiniNeutronBuilder::
|
||||
~G4BertiniNeutronBuilder() {}
|
||||
|
||||
void G4BertiniNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BertiniNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BertiniNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,81 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4BertiniPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4BertiniPiKBuilder::
|
||||
G4BertiniPiKBuilder()
|
||||
{
|
||||
theMin = 0*GeV;
|
||||
theMax = 9.9*GeV;
|
||||
theModel = new G4CascadeInterface;
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
G4BertiniPiKBuilder::
|
||||
~G4BertiniPiKBuilder() {}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BertiniPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,53 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4BertiniProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4BertiniProtonBuilder::
|
||||
G4BertiniProtonBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theMax=9.9*GeV;
|
||||
theModel = new G4CascadeInterface;
|
||||
}
|
||||
|
||||
G4BertiniProtonBuilder::
|
||||
~G4BertiniProtonBuilder() {}
|
||||
|
||||
void G4BertiniProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BertiniProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,63 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4BinaryNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4BinaryNeutronBuilder::
|
||||
G4BinaryNeutronBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theMax = 9.9*GeV;
|
||||
theModel = new G4BinaryCascade;
|
||||
}
|
||||
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
G4BinaryNeutronBuilder::
|
||||
~G4BinaryNeutronBuilder() {}
|
||||
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BinaryNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,82 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4BinaryPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4BinaryPiKBuilder::
|
||||
G4BinaryPiKBuilder()
|
||||
{
|
||||
theMin = 0*GeV;
|
||||
theMax = 1.3*GeV;
|
||||
theModel = new G4BinaryCascade;
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
G4BinaryPiKBuilder::
|
||||
~G4BinaryPiKBuilder() {}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&thePiData);
|
||||
}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&thePiData);
|
||||
}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4BinaryPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,53 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4BinaryProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4BinaryProtonBuilder::
|
||||
G4BinaryProtonBuilder()
|
||||
{
|
||||
theModel = new G4BinaryCascade;
|
||||
theMin = 0;
|
||||
theMax = 9.9*GeV;
|
||||
}
|
||||
|
||||
void G4BinaryProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
{
|
||||
aP.AddDataSet(&theXSec);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
G4BinaryProtonBuilder::
|
||||
~G4BinaryProtonBuilder() {}
|
||||
|
||||
void G4BinaryProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,157 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4EMBuilder.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4EMBuilder::
|
||||
G4EMBuilder(): wasActivated(false), synchOn(false),
|
||||
gammNucOn(false)
|
||||
{
|
||||
theT = new G4EMTailorer(this);
|
||||
}
|
||||
|
||||
void G4EMBuilder::
|
||||
Synch (G4String & newState)
|
||||
{
|
||||
if(newState == "on")
|
||||
{
|
||||
if(synchOn)
|
||||
{
|
||||
}
|
||||
else if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
pManager = G4Electron::ElectronDefinition()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(&theElectronSynch);
|
||||
pManager = G4Positron::PositronDefinition()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(&thePositronSynch);
|
||||
}
|
||||
synchOn = true;
|
||||
}
|
||||
else if(synchOn)
|
||||
{
|
||||
synchOn = false;
|
||||
G4ProcessManager * pManager = 0;
|
||||
pManager = G4Electron::ElectronDefinition()->GetProcessManager();
|
||||
pManager->RemoveProcess(&theElectronSynch);
|
||||
pManager = G4Positron::PositronDefinition()->GetProcessManager();
|
||||
pManager->RemoveProcess(&thePositronSynch);
|
||||
}
|
||||
}
|
||||
|
||||
void G4EMBuilder::
|
||||
GammaNuclear (G4String & newState)
|
||||
{
|
||||
if(newState == "on")
|
||||
{
|
||||
if(gammNucOn)
|
||||
{
|
||||
}
|
||||
else if(wasActivated)
|
||||
{
|
||||
theGNPhysics.Build();
|
||||
}
|
||||
gammNucOn = true;
|
||||
}
|
||||
else if(gammNucOn)
|
||||
{
|
||||
G4Exception("G4EMBuilder", "007", FatalException,
|
||||
"Switching off of gamma nuclear currently not supported.");
|
||||
}
|
||||
}
|
||||
|
||||
G4EMBuilder::
|
||||
~G4EMBuilder()
|
||||
{
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
pManager = G4Gamma::Gamma()->GetProcessManager();
|
||||
if(pManager)
|
||||
{
|
||||
pManager->RemoveProcess(&thePhotoEffect);
|
||||
pManager->RemoveProcess(&theComptonEffect);
|
||||
pManager->RemoveProcess(&thePairProduction);
|
||||
}
|
||||
|
||||
pManager = G4Electron::Electron()->GetProcessManager();
|
||||
if(pManager)
|
||||
{
|
||||
pManager->RemoveProcess(&theElectronBremsStrahlung);
|
||||
pManager->RemoveProcess(&theElectronIonisation);
|
||||
pManager->RemoveProcess(&theElectronMultipleScattering);
|
||||
if(synchOn) pManager->RemoveProcess(&theElectronSynch);
|
||||
}
|
||||
|
||||
pManager = G4Positron::Positron()->GetProcessManager();
|
||||
if(pManager)
|
||||
{
|
||||
pManager->RemoveProcess(&thePositronBremsStrahlung);
|
||||
pManager->RemoveProcess(&theAnnihilation);
|
||||
pManager->RemoveProcess(&thePositronIonisation);
|
||||
pManager->RemoveProcess(&thePositronMultipleScattering);
|
||||
if(synchOn) pManager->RemoveProcess(&thePositronSynch);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void G4EMBuilder::Build()
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
wasActivated = true;
|
||||
|
||||
pManager = G4Gamma::Gamma()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(&thePhotoEffect);
|
||||
pManager->AddDiscreteProcess(&theComptonEffect);
|
||||
pManager->AddDiscreteProcess(&thePairProduction);
|
||||
|
||||
pManager = G4Electron::Electron()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(&theElectronBremsStrahlung);
|
||||
pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2);
|
||||
pManager->AddProcess(&theElectronMultipleScattering);
|
||||
if(synchOn) pManager->AddDiscreteProcess(&theElectronSynch);
|
||||
pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1);
|
||||
|
||||
pManager = G4Positron::Positron()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(&thePositronBremsStrahlung);
|
||||
pManager->AddDiscreteProcess(&theAnnihilation);
|
||||
pManager->AddRestProcess(&theAnnihilation);
|
||||
pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2);
|
||||
pManager->AddProcess(&thePositronMultipleScattering);
|
||||
if(synchOn) pManager->AddDiscreteProcess(&thePositronSynch);
|
||||
pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1);
|
||||
if (gammNucOn) theGNPhysics.Build();
|
||||
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,64 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4EMTailorer.hh"
|
||||
#include "G4EMBuilder.hh"
|
||||
|
||||
void G4EMTailorer::SetNewValue(G4UIcommand* aComm, G4String aS)
|
||||
{
|
||||
if(aComm==theSynch)
|
||||
{
|
||||
theB->Synch(aS);
|
||||
}
|
||||
if(aComm==theGN)
|
||||
{
|
||||
theB->GammaNuclear(aS);
|
||||
}
|
||||
}
|
||||
|
||||
G4EMTailorer::G4EMTailorer(G4EMBuilder * ab)
|
||||
{
|
||||
theB = ab;
|
||||
aDir1 = new G4UIdirectory("/physics_engine/");
|
||||
aDir1->SetGuidance("commands related to the physics simulation engine.");
|
||||
|
||||
// general stuff.
|
||||
aDir2 = new G4UIdirectory("/physics_engine/tailor/");
|
||||
aDir2->SetGuidance("tailoring the processes");
|
||||
|
||||
// command for synchrotron radiation.
|
||||
theSynch = new G4UIcmdWithAString("/physics_engine/tailor/SyncRadiation",this);
|
||||
theSynch->SetGuidance("Switching on/off synchrotron radiation.");
|
||||
theSynch->SetParameterName("status","off");
|
||||
theSynch->SetCandidates("on off");
|
||||
theSynch->SetDefaultValue("off");
|
||||
theSynch->AvailableForStates(G4State_PreInit);
|
||||
|
||||
// command for gamma nuclear physics.
|
||||
theGN = new G4UIcmdWithAString("/physics_engine/tailor/GammaNuclear",this);
|
||||
theGN->SetGuidance("Switching on gamma nuclear physics.");
|
||||
theGN->SetParameterName("status","off");
|
||||
theGN->SetCandidates("on off");
|
||||
theGN->SetDefaultValue("off");
|
||||
theGN->AvailableForStates(G4State_PreInit);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4ElectroNuclearBuilder.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4ElectroNuclearBuilder::G4ElectroNuclearBuilder() : wasActivated(false)
|
||||
{
|
||||
theElectroReaction = new G4ElectroNuclearReaction;
|
||||
theGammaReaction = new G4GammaNuclearReaction;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4ElectroNuclearBuilder::~G4ElectroNuclearBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
delete theElectroReaction;
|
||||
delete theGammaReaction;
|
||||
delete theModel;
|
||||
delete theCascade;
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
pManager = G4Gamma::Gamma()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&thePhotoNuclearProcess);
|
||||
pManager = G4Electron::Electron()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&theElectronNuclearProcess);
|
||||
pManager = G4Positron::Positron()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&thePositronNuclearProcess);
|
||||
}
|
||||
}
|
||||
|
||||
void G4ElectroNuclearBuilder::Build()
|
||||
{
|
||||
G4ProcessManager * aProcMan = 0;
|
||||
|
||||
aProcMan = G4Gamma::Gamma()->GetProcessManager();
|
||||
theGammaReaction->SetMaxEnergy(3.5*GeV);
|
||||
thePhotoNuclearProcess.RegisterMe(theGammaReaction);
|
||||
theModel->SetMinEnergy(3.*GeV);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
thePhotoNuclearProcess.RegisterMe(theModel);
|
||||
aProcMan->AddDiscreteProcess(&thePhotoNuclearProcess);
|
||||
|
||||
aProcMan = G4Electron::Electron()->GetProcessManager();
|
||||
theElectronNuclearProcess.RegisterMe(theElectroReaction);
|
||||
aProcMan->AddDiscreteProcess(&theElectronNuclearProcess);
|
||||
|
||||
aProcMan = G4Positron::Positron()->GetProcessManager();
|
||||
thePositronNuclearProcess.RegisterMe(theElectroReaction);
|
||||
aProcMan->AddDiscreteProcess(&thePositronNuclearProcess);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,71 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4FTFCNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4FTFCNeutronBuilder::
|
||||
G4FTFCNeutronBuilder()
|
||||
{
|
||||
theMin = 15*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
theCascade = new G4StringChipsParticleLevelInterface;
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4FTFCNeutronBuilder::
|
||||
~G4FTFCNeutronBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
}
|
||||
|
||||
void G4FTFCNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4FTFCNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4FTFCNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4FTFCNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
{
|
||||
aP.AddDataSet(&theXSec);
|
||||
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,99 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4FTFCPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4FTFCPiKBuilder::
|
||||
G4FTFCPiKBuilder()
|
||||
{
|
||||
theMin = 15*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
theCascade = new G4StringChipsParticleLevelInterface;
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4FTFCPiKBuilder::
|
||||
~G4FTFCPiKBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
{
|
||||
aP.AddDataSet(&thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
{
|
||||
aP.AddDataSet(&thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFCPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,46 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4FTFCProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "TheoModelFactory.hh"
|
||||
|
||||
G4FTFCProtonBuilder::
|
||||
G4FTFCProtonBuilder()
|
||||
{
|
||||
theMin = 15*GeV;
|
||||
theModel = TheoModelFactory<G4StringChipsParticleLevelInterface,
|
||||
G4FTFModel, G4LundStringFragmentation>::New();
|
||||
}
|
||||
|
||||
void G4FTFCProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,72 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4FTFPNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4FTFPNeutronBuilder::
|
||||
G4FTFPNeutronBuilder()
|
||||
{
|
||||
theMin = 15*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(&theHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4FTFPNeutronBuilder::
|
||||
~G4FTFPNeutronBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
}
|
||||
|
||||
void G4FTFPNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4FTFPNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4FTFPNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4FTFPNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,101 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4FTFPPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4FTFPPiKBuilder::
|
||||
G4FTFPPiKBuilder()
|
||||
{
|
||||
theMin = 15*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(&theHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4FTFPPiKBuilder::
|
||||
~G4FTFPPiKBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,62 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4FTFPProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4FTFPProtonBuilder::
|
||||
G4FTFPProtonBuilder()
|
||||
{
|
||||
theMin = 15*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(&theHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
void G4FTFPProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
G4FTFPProtonBuilder::
|
||||
~G4FTFPProtonBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
}
|
||||
|
||||
void G4FTFPProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,33 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4HadronQEDBuilder.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
G4HadronQEDBuilder::G4HadronQEDBuilder(): wasActivated(false) {}
|
||||
|
||||
G4HadronQEDBuilder::~G4HadronQEDBuilder()
|
||||
{ if(wasActivated) std::for_each(theCache().begin(), theCache().end(), Clear()); }
|
||||
|
||||
void G4HadronQEDBuilder::Build() { wasActivated = true; Apply<Register>::ForEachIn<theParticles>(); }
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,55 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4LEADNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4LEADNeutronBuilder::
|
||||
G4LEADNeutronBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theModel = new G4Mars5GeV;
|
||||
}
|
||||
|
||||
G4LEADNeutronBuilder::
|
||||
~G4LEADNeutronBuilder() {}
|
||||
|
||||
void G4LEADNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
{
|
||||
aP.AddDataSet(&theXSec);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4LEADNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & ){}
|
||||
|
||||
void G4LEADNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & ){}
|
||||
|
||||
void G4LEADNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & ){}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,85 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4LEADPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4LEADPiKBuilder::
|
||||
G4LEADPiKBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theModel = new G4Mars5GeV;
|
||||
}
|
||||
|
||||
G4LEADPiKBuilder::
|
||||
~G4LEADPiKBuilder() {}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&thePiData);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
}
|
||||
|
||||
void G4LEADPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
{
|
||||
aP.RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4LEADProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4LEADProtonBuilder::
|
||||
G4LEADProtonBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theModel = new G4Mars5GeV;
|
||||
}
|
||||
|
||||
G4LEADProtonBuilder::
|
||||
~G4LEADProtonBuilder() {}
|
||||
|
||||
void G4LEADProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4LEADProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,76 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4LEPNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4LEPNeutronBuilder::
|
||||
G4LEPNeutronBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theIMin = theMin;
|
||||
theMax = 20*TeV;
|
||||
theIMax = 55*GeV;
|
||||
}
|
||||
|
||||
G4LEPNeutronBuilder::
|
||||
~G4LEPNeutronBuilder() {}
|
||||
|
||||
void G4LEPNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
{
|
||||
theElasticModel = new G4LElastic();
|
||||
theElasticModel->SetMinEnergy(theMin);
|
||||
theElasticModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theElasticModel);
|
||||
}
|
||||
|
||||
void G4LEPNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & aP)
|
||||
{
|
||||
theNeutronFissionModel = new G4LFission();
|
||||
theNeutronFissionModel->SetMinEnergy(theMin);
|
||||
theNeutronFissionModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theNeutronFissionModel);
|
||||
}
|
||||
|
||||
void G4LEPNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & aP)
|
||||
{
|
||||
theNeutronCaptureModel = new G4LCapture();
|
||||
theNeutronCaptureModel->SetMinEnergy(theMin);
|
||||
theNeutronCaptureModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theNeutronCaptureModel);
|
||||
}
|
||||
|
||||
void G4LEPNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
{
|
||||
theLENeutronModel = new G4LENeutronInelastic();
|
||||
theLENeutronModel->SetMinEnergy(theIMin);
|
||||
theLENeutronModel->SetMaxEnergy(theIMax);
|
||||
aP.RegisterMe(theLENeutronModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,105 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4LEPPiKBuilder.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4LEPPiKBuilder::
|
||||
G4LEPPiKBuilder()
|
||||
{
|
||||
theElasticModel = new G4LElastic();
|
||||
theMin = 0;
|
||||
theMax = 55*GeV;
|
||||
theMinPion = theMin;
|
||||
}
|
||||
|
||||
G4LEPPiKBuilder::
|
||||
~G4LEPPiKBuilder() {}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
{
|
||||
aP.RegisterMe(theElasticModel);
|
||||
}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
{
|
||||
theLEPionPlusModel = new G4LEPionPlusInelastic();
|
||||
theLEPionPlusModel->SetMinEnergy(theMinPion);
|
||||
theLEPionPlusModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theLEPionPlusModel);
|
||||
}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
{
|
||||
theLEPionMinusModel = new G4LEPionMinusInelastic();
|
||||
theLEPionMinusModel->SetMinEnergy(theMinPion);
|
||||
theLEPionMinusModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theLEPionMinusModel);
|
||||
}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
{
|
||||
theLEKaonPlusModel = new G4LEKaonPlusInelastic();
|
||||
theLEKaonPlusModel->SetMinEnergy(theMin);
|
||||
theLEKaonPlusModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theLEKaonPlusModel);
|
||||
}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
{
|
||||
theLEKaonMinusModel = new G4LEKaonMinusInelastic();
|
||||
theLEKaonMinusModel->SetMaxEnergy(theMax);
|
||||
theLEKaonMinusModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theLEKaonMinusModel);
|
||||
}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
{
|
||||
theLEKaonZeroLModel = new G4LEKaonZeroLInelastic();
|
||||
theLEKaonZeroLModel->SetMaxEnergy(theMax);
|
||||
theLEKaonZeroLModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theLEKaonZeroLModel);
|
||||
}
|
||||
|
||||
void G4LEPPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
{
|
||||
theLEKaonZeroSModel = new G4LEKaonZeroSInelastic();
|
||||
theLEKaonZeroSModel->SetMaxEnergy(theMax);
|
||||
theLEKaonZeroSModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theLEKaonZeroSModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,54 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4LEPProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4LEPProtonBuilder::
|
||||
G4LEPProtonBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theMax=55*GeV;
|
||||
}
|
||||
|
||||
G4LEPProtonBuilder::
|
||||
~G4LEPProtonBuilder() {}
|
||||
|
||||
void G4LEPProtonBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
{
|
||||
theElasticModel = new G4LElastic();
|
||||
aP.RegisterMe(theElasticModel);
|
||||
}
|
||||
|
||||
void G4LEPProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
{
|
||||
theLEProtonModel = new G4LEProtonInelastic();
|
||||
theLEProtonModel->SetMinEnergy(theMin);
|
||||
theLEProtonModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theLEProtonModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,74 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4LHEPNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4LHEPNeutronBuilder::
|
||||
G4LHEPNeutronBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theIMin = 0;
|
||||
}
|
||||
|
||||
G4LHEPNeutronBuilder::
|
||||
~G4LHEPNeutronBuilder() {}
|
||||
|
||||
void G4LHEPNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
{
|
||||
theLENeutronModel = new G4LENeutronInelastic();
|
||||
theHENeutronModel = new G4HENeutronInelastic();
|
||||
theLENeutronModel->SetMinEnergy(theIMin);
|
||||
theLENeutronModel->SetMaxEnergy(55*GeV);
|
||||
theHENeutronModel->SetMinEnergy(25*GeV);
|
||||
aP.RegisterMe(theLENeutronModel);
|
||||
aP.RegisterMe(theHENeutronModel);
|
||||
}
|
||||
|
||||
void G4LHEPNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & aP)
|
||||
{
|
||||
theNeutronFissionModel = new G4LFission();
|
||||
theNeutronFissionModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theNeutronFissionModel);
|
||||
}
|
||||
|
||||
void G4LHEPNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
{
|
||||
theElasticModel = new G4LElastic();
|
||||
theElasticModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theElasticModel);
|
||||
}
|
||||
|
||||
void G4LHEPNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & aP)
|
||||
{
|
||||
theNeutronCaptureModel = new G4LCapture();
|
||||
theNeutronCaptureModel->SetMinEnergy(theMin);
|
||||
aP.RegisterMe(theNeutronCaptureModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,114 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4LHEPPiKBuilder.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4LHEPPiKBuilder::
|
||||
G4LHEPPiKBuilder()
|
||||
{
|
||||
theElasticModel = new G4LElastic();
|
||||
theM = 0;
|
||||
theMinPion = theM;
|
||||
}
|
||||
|
||||
G4LHEPPiKBuilder::
|
||||
~G4LHEPPiKBuilder() {}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
{
|
||||
aP.RegisterMe(theElasticModel);
|
||||
}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
{
|
||||
theLEPionPlusModel = new G4LEPionPlusInelastic();
|
||||
theHEPionPlusModel = new G4HEPionPlusInelastic();
|
||||
theLEPionPlusModel->SetMinEnergy(theMinPion);
|
||||
theLEPionPlusModel->SetMaxEnergy(55*GeV);
|
||||
theHEPionPlusModel->SetMinEnergy(25*GeV);
|
||||
aP.RegisterMe(theLEPionPlusModel);
|
||||
aP.RegisterMe(theHEPionPlusModel);
|
||||
}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
{
|
||||
theLEPionMinusModel = new G4LEPionMinusInelastic();
|
||||
theHEPionMinusModel = new G4HEPionMinusInelastic();
|
||||
theLEPionMinusModel->SetMinEnergy(theMinPion);
|
||||
theLEPionMinusModel->SetMaxEnergy(55*GeV);
|
||||
theHEPionMinusModel->SetMinEnergy(25*GeV);
|
||||
aP.RegisterMe(theLEPionMinusModel);
|
||||
aP.RegisterMe(theHEPionMinusModel);
|
||||
}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
{
|
||||
theLEKaonPlusModel = new G4LEKaonPlusInelastic();
|
||||
theHEKaonPlusModel = new G4HEKaonPlusInelastic();
|
||||
theLEKaonPlusModel->SetMinEnergy(theM);
|
||||
aP.RegisterMe(theLEKaonPlusModel);
|
||||
aP.RegisterMe(theHEKaonPlusModel);
|
||||
}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
{
|
||||
theLEKaonMinusModel = new G4LEKaonMinusInelastic();
|
||||
theHEKaonMinusModel = new G4HEKaonMinusInelastic();
|
||||
theLEKaonMinusModel->SetMinEnergy(theM);
|
||||
aP.RegisterMe(theLEKaonMinusModel);
|
||||
aP.RegisterMe(theHEKaonMinusModel);
|
||||
}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
{
|
||||
theLEKaonZeroLModel = new G4LEKaonZeroLInelastic();
|
||||
theHEKaonZeroLModel = new G4HEKaonZeroInelastic();
|
||||
theLEKaonZeroLModel->SetMinEnergy(theM);
|
||||
aP.RegisterMe(theLEKaonZeroLModel);
|
||||
aP.RegisterMe(theHEKaonZeroLModel);
|
||||
}
|
||||
|
||||
void G4LHEPPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
{
|
||||
theLEKaonZeroSModel = new G4LEKaonZeroSInelastic();
|
||||
theHEKaonZeroSModel = new G4HEKaonZeroInelastic();
|
||||
theLEKaonZeroSModel->SetMinEnergy(theM);
|
||||
aP.RegisterMe(theLEKaonZeroSModel);
|
||||
aP.RegisterMe(theHEKaonZeroSModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4LHEPProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4LHEPProtonBuilder::
|
||||
G4LHEPProtonBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
}
|
||||
|
||||
G4LHEPProtonBuilder::
|
||||
~G4LHEPProtonBuilder() {}
|
||||
|
||||
void G4LHEPProtonBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
{
|
||||
theElasticModel = new G4LElastic();
|
||||
aP.RegisterMe(theElasticModel);
|
||||
}
|
||||
|
||||
void G4LHEPProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
{
|
||||
theLEProtonModel = new G4LEProtonInelastic();
|
||||
theHEProtonModel = new G4HEProtonInelastic();
|
||||
theLEProtonModel->SetMinEnergy(theMin);
|
||||
theLEProtonModel->SetMaxEnergy(55*GeV);
|
||||
theHEProtonModel->SetMinEnergy(25*GeV);
|
||||
aP.RegisterMe(theLEProtonModel);
|
||||
aP.RegisterMe(theHEProtonModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,227 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4MiscLHEPBuilder.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4MiscLHEPBuilder::G4MiscLHEPBuilder(): wasActivated(false) {}
|
||||
G4MiscLHEPBuilder::~G4MiscLHEPBuilder()
|
||||
{
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * aProcMan = 0;
|
||||
aProcMan = G4AntiProton::AntiProton()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiProtonInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiProtonElasticProcess);
|
||||
aProcMan = G4AntiNeutron::AntiNeutron()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiNeutronInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiNeutronElasticProcess);
|
||||
aProcMan = G4Lambda::Lambda()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theLambdaInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theLambdaElasticProcess);
|
||||
aProcMan = G4AntiLambda::AntiLambda()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiLambdaInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiLambdaElasticProcess);
|
||||
aProcMan = G4SigmaMinus::SigmaMinus()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theSigmaMinusInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theSigmaMinusElasticProcess);
|
||||
aProcMan = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiSigmaMinusInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiSigmaMinusElasticProcess);
|
||||
aProcMan = G4SigmaPlus::SigmaPlus()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theSigmaPlusInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theSigmaPlusElasticProcess);
|
||||
aProcMan = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiSigmaPlusInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiSigmaPlusElasticProcess);
|
||||
aProcMan = G4XiMinus::XiMinus()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theXiMinusInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theXiMinusElasticProcess);
|
||||
aProcMan = G4AntiXiMinus::AntiXiMinus()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiXiMinusInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiXiMinusElasticProcess);
|
||||
aProcMan = G4XiZero::XiZero()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theXiZeroInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theXiZeroElasticProcess);
|
||||
aProcMan = G4AntiXiZero::AntiXiZero()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiXiZeroInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiXiZeroElasticProcess);
|
||||
aProcMan = G4OmegaMinus::OmegaMinus()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theOmegaMinusInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theOmegaMinusElasticProcess);
|
||||
aProcMan = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiOmegaMinusInelastic);
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiOmegaMinusElasticProcess);
|
||||
}
|
||||
}
|
||||
|
||||
void G4MiscLHEPBuilder::Build()
|
||||
{
|
||||
G4ProcessManager * aProcMan = 0;
|
||||
theElasticModel = new G4LElastic;
|
||||
wasActivated = true;
|
||||
|
||||
// anti-Proton
|
||||
aProcMan = G4AntiProton::AntiProton()->GetProcessManager();
|
||||
theLEAntiProtonModel = new G4LEAntiProtonInelastic();
|
||||
theHEAntiProtonModel = new G4HEAntiProtonInelastic();
|
||||
theAntiProtonInelastic.RegisterMe(theLEAntiProtonModel);
|
||||
theAntiProtonInelastic.RegisterMe(theHEAntiProtonModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiProtonInelastic);
|
||||
theAntiProtonElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiProtonElasticProcess);
|
||||
|
||||
// AntiNeutron
|
||||
aProcMan = G4AntiNeutron::AntiNeutron()->GetProcessManager();
|
||||
theLEAntiNeutronModel = new G4LEAntiNeutronInelastic();
|
||||
theHEAntiNeutronModel = new G4HEAntiNeutronInelastic();
|
||||
theAntiNeutronInelastic.RegisterMe(theLEAntiNeutronModel);
|
||||
theAntiNeutronInelastic.RegisterMe(theHEAntiNeutronModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiNeutronInelastic);
|
||||
theAntiNeutronElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiNeutronElasticProcess);
|
||||
|
||||
// Lambda
|
||||
aProcMan = G4Lambda::Lambda()->GetProcessManager();
|
||||
theLELambdaModel = new G4LELambdaInelastic();
|
||||
theHELambdaModel = new G4HELambdaInelastic();
|
||||
theLambdaInelastic.RegisterMe(theLELambdaModel);
|
||||
theLambdaInelastic.RegisterMe(theHELambdaModel);
|
||||
aProcMan->AddDiscreteProcess(&theLambdaInelastic);
|
||||
theLambdaElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theLambdaElasticProcess);
|
||||
|
||||
// AntiLambda
|
||||
aProcMan = G4AntiLambda::AntiLambda()->GetProcessManager();
|
||||
theLEAntiLambdaModel = new G4LEAntiLambdaInelastic();
|
||||
theHEAntiLambdaModel = new G4HEAntiLambdaInelastic();
|
||||
theAntiLambdaInelastic.RegisterMe(theLEAntiLambdaModel);
|
||||
theAntiLambdaInelastic.RegisterMe(theHEAntiLambdaModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiLambdaInelastic);
|
||||
theAntiLambdaElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiLambdaElasticProcess);
|
||||
|
||||
// SigmaMinus
|
||||
aProcMan = G4SigmaMinus::SigmaMinus()->GetProcessManager();
|
||||
theLESigmaMinusModel = new G4LESigmaMinusInelastic();
|
||||
theHESigmaMinusModel = new G4HESigmaMinusInelastic();
|
||||
theSigmaMinusInelastic.RegisterMe(theLESigmaMinusModel);
|
||||
theSigmaMinusInelastic.RegisterMe(theHESigmaMinusModel);
|
||||
aProcMan->AddDiscreteProcess(&theSigmaMinusInelastic);
|
||||
theSigmaMinusElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theSigmaMinusElasticProcess);
|
||||
|
||||
// anti-SigmaMinus
|
||||
aProcMan = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager();
|
||||
theLEAntiSigmaMinusModel = new G4LEAntiSigmaMinusInelastic();
|
||||
theHEAntiSigmaMinusModel = new G4HEAntiSigmaMinusInelastic();
|
||||
theAntiSigmaMinusInelastic.RegisterMe(theLEAntiSigmaMinusModel);
|
||||
theAntiSigmaMinusInelastic.RegisterMe(theHEAntiSigmaMinusModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiSigmaMinusInelastic);
|
||||
theAntiSigmaMinusElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiSigmaMinusElasticProcess);
|
||||
|
||||
// SigmaPlus
|
||||
aProcMan = G4SigmaPlus::SigmaPlus()->GetProcessManager();
|
||||
theLESigmaPlusModel = new G4LESigmaPlusInelastic();
|
||||
theHESigmaPlusModel = new G4HESigmaPlusInelastic();
|
||||
theSigmaPlusInelastic.RegisterMe(theLESigmaPlusModel);
|
||||
theSigmaPlusInelastic.RegisterMe(theHESigmaPlusModel);
|
||||
aProcMan->AddDiscreteProcess(&theSigmaPlusInelastic);
|
||||
theSigmaPlusElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theSigmaPlusElasticProcess);
|
||||
|
||||
// anti-SigmaPlus
|
||||
aProcMan = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager();
|
||||
theLEAntiSigmaPlusModel = new G4LEAntiSigmaPlusInelastic();
|
||||
theHEAntiSigmaPlusModel = new G4HEAntiSigmaPlusInelastic();
|
||||
theAntiSigmaPlusInelastic.RegisterMe(theLEAntiSigmaPlusModel);
|
||||
theAntiSigmaPlusInelastic.RegisterMe(theHEAntiSigmaPlusModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiSigmaPlusInelastic);
|
||||
theAntiSigmaPlusElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiSigmaPlusElasticProcess);
|
||||
|
||||
// XiMinus
|
||||
aProcMan = G4XiMinus::XiMinus()->GetProcessManager();
|
||||
theLEXiMinusModel = new G4LEXiMinusInelastic();
|
||||
theHEXiMinusModel = new G4HEXiMinusInelastic();
|
||||
theXiMinusInelastic.RegisterMe(theLEXiMinusModel);
|
||||
theXiMinusInelastic.RegisterMe(theHEXiMinusModel);
|
||||
aProcMan->AddDiscreteProcess(&theXiMinusInelastic);
|
||||
theXiMinusElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theXiMinusElasticProcess);
|
||||
|
||||
// anti-XiMinus
|
||||
aProcMan = G4AntiXiMinus::AntiXiMinus()->GetProcessManager();
|
||||
theLEAntiXiMinusModel = new G4LEAntiXiMinusInelastic();
|
||||
theHEAntiXiMinusModel = new G4HEAntiXiMinusInelastic();
|
||||
theAntiXiMinusInelastic.RegisterMe(theLEAntiXiMinusModel);
|
||||
theAntiXiMinusInelastic.RegisterMe(theHEAntiXiMinusModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiXiMinusInelastic);
|
||||
theAntiXiMinusElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiXiMinusElasticProcess);
|
||||
|
||||
// XiZero
|
||||
aProcMan = G4XiZero::XiZero()->GetProcessManager();
|
||||
theLEXiZeroModel = new G4LEXiZeroInelastic();
|
||||
theHEXiZeroModel = new G4HEXiZeroInelastic();
|
||||
theXiZeroInelastic.RegisterMe(theLEXiZeroModel);
|
||||
theXiZeroInelastic.RegisterMe(theHEXiZeroModel);
|
||||
aProcMan->AddDiscreteProcess(&theXiZeroInelastic);
|
||||
theXiZeroElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theXiZeroElasticProcess);
|
||||
|
||||
// anti-XiZero
|
||||
aProcMan = G4AntiXiZero::AntiXiZero()->GetProcessManager();
|
||||
theLEAntiXiZeroModel = new G4LEAntiXiZeroInelastic();
|
||||
theHEAntiXiZeroModel = new G4HEAntiXiZeroInelastic();
|
||||
theAntiXiZeroInelastic.RegisterMe(theLEAntiXiZeroModel);
|
||||
theAntiXiZeroInelastic.RegisterMe(theHEAntiXiZeroModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiXiZeroInelastic);
|
||||
theAntiXiZeroElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiXiZeroElasticProcess);
|
||||
|
||||
// OmegaMinus
|
||||
aProcMan = G4OmegaMinus::OmegaMinus()->GetProcessManager();
|
||||
theLEOmegaMinusModel = new G4LEOmegaMinusInelastic();
|
||||
theHEOmegaMinusModel = new G4HEOmegaMinusInelastic();
|
||||
theOmegaMinusInelastic.RegisterMe(theLEOmegaMinusModel);
|
||||
theOmegaMinusInelastic.RegisterMe(theHEOmegaMinusModel);
|
||||
aProcMan->AddDiscreteProcess(&theOmegaMinusInelastic);
|
||||
theOmegaMinusElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theOmegaMinusElasticProcess);
|
||||
|
||||
// anti-OmegaMinus
|
||||
aProcMan = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager();
|
||||
theLEAntiOmegaMinusModel = new G4LEAntiOmegaMinusInelastic();
|
||||
theHEAntiOmegaMinusModel = new G4HEAntiOmegaMinusInelastic();
|
||||
theAntiOmegaMinusInelastic.RegisterMe(theLEAntiOmegaMinusModel);
|
||||
theAntiOmegaMinusInelastic.RegisterMe(theHEAntiOmegaMinusModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiOmegaMinusInelastic);
|
||||
theAntiOmegaMinusElasticProcess.RegisterMe(theElasticModel);
|
||||
aProcMan->AddDiscreteProcess(&theAntiOmegaMinusElasticProcess);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,62 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4NeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4NeutronBuilder::
|
||||
G4NeutronBuilder(): wasActivated(false) {}
|
||||
|
||||
G4NeutronBuilder::
|
||||
~G4NeutronBuilder()
|
||||
{
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * theProcMan = G4Neutron::Neutron()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theNeutronElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theNeutronInelastic);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theNeutronCapture);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theNeutronFission);
|
||||
}
|
||||
}
|
||||
|
||||
void G4NeutronBuilder::
|
||||
Build()
|
||||
{
|
||||
wasActivated = true;
|
||||
std::vector<G4VNeutronBuilder *>::iterator i;
|
||||
for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++)
|
||||
{
|
||||
(*i)->Build(theNeutronElasticProcess);
|
||||
(*i)->Build(theNeutronInelastic);
|
||||
(*i)->Build(theNeutronCapture);
|
||||
(*i)->Build(theNeutronFission);
|
||||
}
|
||||
G4ProcessManager * theProcMan = G4Neutron::Neutron()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&theNeutronElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&theNeutronInelastic);
|
||||
theProcMan->AddDiscreteProcess(&theNeutronCapture);
|
||||
theProcMan->AddDiscreteProcess(&theNeutronFission);
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,88 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4NeutronHPBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4NeutronHPBuilder::
|
||||
G4NeutronHPBuilder()
|
||||
{
|
||||
theHPElastic = NULL;
|
||||
theHPElasticData = NULL;
|
||||
|
||||
theHPFission = NULL;
|
||||
theHPFissionData = NULL;
|
||||
|
||||
theHPCapture = NULL;
|
||||
theHPCaptureData = NULL;
|
||||
|
||||
theHPInelastic = NULL;
|
||||
theHPInelasticData = NULL;
|
||||
}
|
||||
|
||||
G4NeutronHPBuilder::
|
||||
~G4NeutronHPBuilder()
|
||||
{
|
||||
delete theHPElasticData;
|
||||
delete theHPFissionData;
|
||||
delete theHPCaptureData;
|
||||
delete theHPInelasticData;
|
||||
}
|
||||
|
||||
void G4NeutronHPBuilder::
|
||||
Build(G4HadronElasticProcess & aP)
|
||||
{
|
||||
if(theHPElastic==NULL) theHPElastic = new G4NeutronHPElastic;
|
||||
if(theHPElasticData == NULL) theHPElasticData = new G4NeutronHPElasticData;
|
||||
aP.AddDataSet(theHPElasticData);
|
||||
aP.RegisterMe(theHPElastic);
|
||||
}
|
||||
|
||||
void G4NeutronHPBuilder::
|
||||
Build(G4HadronFissionProcess & aP)
|
||||
{
|
||||
if(theHPFission == NULL) theHPFission = new G4NeutronHPFission;
|
||||
if(theHPFissionData==NULL) theHPFissionData=new G4NeutronHPFissionData;
|
||||
aP.AddDataSet(theHPFissionData);
|
||||
aP.RegisterMe(theHPFission);
|
||||
}
|
||||
|
||||
void G4NeutronHPBuilder::
|
||||
Build(G4HadronCaptureProcess & aP)
|
||||
{
|
||||
if(theHPCapture==NULL) theHPCapture = new G4NeutronHPCapture;
|
||||
if(theHPCaptureData==NULL) theHPCaptureData = new G4NeutronHPCaptureData;
|
||||
aP.AddDataSet(theHPCaptureData);
|
||||
aP.RegisterMe(theHPCapture);
|
||||
}
|
||||
|
||||
void G4NeutronHPBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
{
|
||||
if(theHPInelastic==NULL) theHPInelastic = new G4NeutronHPInelastic;
|
||||
if(theHPInelasticData==NULL) theHPInelasticData = new G4NeutronHPInelasticData;
|
||||
aP.AddDataSet(theHPInelasticData);
|
||||
aP.RegisterMe(theHPInelastic);
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,98 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4PiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4PiKBuilder::
|
||||
G4PiKBuilder(): wasActivated(false) {}
|
||||
|
||||
G4PiKBuilder::
|
||||
~G4PiKBuilder(){
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * theProcMan;
|
||||
theProcMan = G4PionPlus::PionPlus()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&thePionPlusElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&thePionPlusInelastic);
|
||||
theProcMan = G4PionMinus::PionMinus()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&thePionMinusElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&thePionMinusInelastic);
|
||||
theProcMan = G4KaonPlus::KaonPlus()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonPlusElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonPlusInelastic);
|
||||
theProcMan = G4KaonMinus::KaonMinus()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonMinusElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonMinusInelastic);
|
||||
theProcMan = G4KaonZeroLong::KaonZeroLong()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroLElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroLInelastic);
|
||||
theProcMan = G4KaonZeroShort::KaonZeroShort()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroSElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroSInelastic);
|
||||
}
|
||||
}
|
||||
|
||||
void G4PiKBuilder::
|
||||
Build()
|
||||
{
|
||||
wasActivated = true;
|
||||
std::vector<G4VPiKBuilder *>::iterator i;
|
||||
for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++)
|
||||
{
|
||||
(*i)->Build(thePionPlusElasticProcess);
|
||||
(*i)->Build(thePionMinusElasticProcess);
|
||||
(*i)->Build(theKaonPlusElasticProcess);
|
||||
(*i)->Build(theKaonMinusElasticProcess);
|
||||
(*i)->Build(theKaonZeroLElasticProcess);
|
||||
(*i)->Build(theKaonZeroSElasticProcess);
|
||||
|
||||
(*i)->Build(thePionPlusInelastic);
|
||||
(*i)->Build(thePionMinusInelastic);
|
||||
(*i)->Build(theKaonPlusInelastic);
|
||||
(*i)->Build(theKaonMinusInelastic);
|
||||
(*i)->Build(theKaonZeroLInelastic);
|
||||
(*i)->Build(theKaonZeroSInelastic);
|
||||
}
|
||||
G4ProcessManager * theProcMan;
|
||||
theProcMan = G4PionPlus::PionPlus()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&thePionPlusElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&thePionPlusInelastic);
|
||||
theProcMan = G4PionMinus::PionMinus()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&thePionMinusElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&thePionMinusInelastic);
|
||||
theProcMan = G4KaonPlus::KaonPlus()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&theKaonPlusElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&theKaonPlusInelastic);
|
||||
theProcMan = G4KaonMinus::KaonMinus()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&theKaonMinusElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&theKaonMinusInelastic);
|
||||
theProcMan = G4KaonZeroLong::KaonZeroLong()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&theKaonZeroLElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&theKaonZeroLInelastic);
|
||||
theProcMan = G4KaonZeroShort::KaonZeroShort()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&theKaonZeroSElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&theKaonZeroSInelastic);
|
||||
}
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,63 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4PrecoNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4PrecoNeutronBuilder::
|
||||
G4PrecoNeutronBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theMax = 170.*MeV;
|
||||
theModel = new G4PreCompoundModel(&theHandler);
|
||||
}
|
||||
|
||||
G4PrecoNeutronBuilder::
|
||||
~G4PrecoNeutronBuilder() {}
|
||||
|
||||
void G4PrecoNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4PrecoNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4PrecoNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4PrecoNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,53 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4PrecoProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4PrecoProtonBuilder::
|
||||
G4PrecoProtonBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theMax = 170.*MeV;
|
||||
theModel = new G4PreCompoundModel(&theHandler);
|
||||
}
|
||||
|
||||
G4PrecoProtonBuilder::
|
||||
~G4PrecoProtonBuilder() {}
|
||||
|
||||
void G4PrecoProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4PrecoProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,57 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4ProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
void G4ProtonBuilder::
|
||||
Build()
|
||||
{
|
||||
wasActivated = true;
|
||||
std::vector<G4VProtonBuilder *>::iterator i;
|
||||
for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++)
|
||||
{
|
||||
(*i)->Build(theProtonElasticProcess);
|
||||
(*i)->Build(theProtonInelastic);
|
||||
}
|
||||
G4ProcessManager * theProcMan = G4Proton::Proton()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(&theProtonElasticProcess);
|
||||
theProcMan->AddDiscreteProcess(&theProtonInelastic);
|
||||
}
|
||||
|
||||
G4ProtonBuilder::
|
||||
G4ProtonBuilder(): wasActivated(false) {}
|
||||
|
||||
G4ProtonBuilder::
|
||||
~G4ProtonBuilder()
|
||||
{
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * theProcMan = G4Proton::Proton()->GetProcessManager();
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theProtonElasticProcess);
|
||||
if(theProcMan) theProcMan->RemoveProcess(&theProtonInelastic);
|
||||
}
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,55 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4QGSCNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4QGSCNeutronBuilder::
|
||||
G4QGSCNeutronBuilder()
|
||||
{
|
||||
theMin = 8*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
theCascade = new G4StringChipsParticleLevelInterface;
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4QGSCNeutronBuilder::
|
||||
~G4QGSCNeutronBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
}
|
||||
|
||||
void G4QGSCNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,99 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4QGSCPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4QGSCPiKBuilder::
|
||||
G4QGSCPiKBuilder()
|
||||
{
|
||||
theMin = 8*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
theCascade = new G4StringChipsParticleLevelInterface;
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4QGSCPiKBuilder::
|
||||
~G4QGSCPiKBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.AddDataSet(&thePiCross);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.AddDataSet(&thePiCross);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSCPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,60 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4QGSCProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4QGSCProtonBuilder::
|
||||
G4QGSCProtonBuilder()
|
||||
{
|
||||
theMin = 8*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
theCascade = new G4StringChipsParticleLevelInterface;
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4QGSCProtonBuilder::
|
||||
~G4QGSCProtonBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
}
|
||||
|
||||
void G4QGSCProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4QGSCProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,72 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4QGSPNeutronBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4QGSPNeutronBuilder::
|
||||
G4QGSPNeutronBuilder()
|
||||
{
|
||||
theMin = 12*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(&theHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4QGSPNeutronBuilder::
|
||||
~G4QGSPNeutronBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
}
|
||||
|
||||
void G4QGSPNeutronBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4QGSPNeutronBuilder::
|
||||
Build(G4HadronFissionProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4QGSPNeutronBuilder::
|
||||
Build(G4HadronCaptureProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
void G4QGSPNeutronBuilder::
|
||||
Build(G4NeutronInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
aP.AddDataSet(&theXSec);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,101 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4QGSPPiKBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4QGSPPiKBuilder::
|
||||
G4QGSPPiKBuilder()
|
||||
{
|
||||
theMin = 12*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(&theHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
G4QGSPPiKBuilder::
|
||||
~G4QGSPPiKBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4HadronElasticProcess & ) {}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.AddDataSet(&thePiData);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess & aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,62 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4QGSPProtonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4QGSPProtonBuilder::
|
||||
G4QGSPProtonBuilder()
|
||||
{
|
||||
theMin = 12*GeV;
|
||||
theModel = new G4TheoFSGenerator;
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(&theHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetHighEnergyGenerator(&theStringModel);
|
||||
theStringDecay = new G4ExcitedStringDecay(&theFragmentation);
|
||||
theStringModel.SetFragmentationModel(theStringDecay);
|
||||
}
|
||||
|
||||
void G4QGSPProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess & aP)
|
||||
{
|
||||
aP.AddDataSet(&theXSec);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP.RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSPProtonBuilder::
|
||||
Build(G4HadronElasticProcess & )
|
||||
{
|
||||
}
|
||||
|
||||
G4QGSPProtonBuilder::
|
||||
~G4QGSPProtonBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,81 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "G4StoppingHadronBuilder.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4PionMinus.hh"
|
||||
#include "G4KaonMinus.hh"
|
||||
#include "G4AntiProton.hh"
|
||||
#include "G4AntiNeutron.hh"
|
||||
|
||||
G4StoppingHadronBuilder::
|
||||
G4StoppingHadronBuilder(): wasActivated(false) {}
|
||||
|
||||
G4StoppingHadronBuilder::
|
||||
~G4StoppingHadronBuilder()
|
||||
{
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * aProcMan = 0;
|
||||
aProcMan = G4PionMinus::PionMinusDefinition()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&thePionMinusAbsorption);
|
||||
aProcMan = G4KaonMinus::KaonMinusDefinition()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theKaonMinusAbsorption);
|
||||
aProcMan = G4AntiProton::AntiProtonDefinition()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiProtonAnnihilation);
|
||||
aProcMan = G4AntiNeutron::AntiNeutronDefinition()->GetProcessManager();
|
||||
if(aProcMan) aProcMan->RemoveProcess(&theAntiNeutronAnnihilation);
|
||||
}
|
||||
}
|
||||
|
||||
void G4StoppingHadronBuilder::Build()
|
||||
{
|
||||
G4ProcessManager * aProcMan = 0;
|
||||
wasActivated=true;
|
||||
|
||||
// PionMinus
|
||||
aProcMan = G4PionMinus::PionMinusDefinition()->GetProcessManager();
|
||||
aProcMan->AddRestProcess(&thePionMinusAbsorption, ordDefault);
|
||||
|
||||
// KaonMinus
|
||||
aProcMan = G4KaonMinus::KaonMinusDefinition()->GetProcessManager();
|
||||
aProcMan->AddRestProcess(&theKaonMinusAbsorption, ordDefault);
|
||||
|
||||
// anti-Proton
|
||||
aProcMan = G4AntiProton::AntiProtonDefinition()->GetProcessManager();
|
||||
aProcMan->AddRestProcess(&theAntiProtonAnnihilation);
|
||||
|
||||
// AntiNeutron
|
||||
aProcMan = G4AntiNeutron::AntiNeutronDefinition()->GetProcessManager();
|
||||
aProcMan->AddRestProcess(&theAntiNeutronAnnihilation);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,81 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "GeneralPhysics.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
// Bosons
|
||||
#include "G4ChargedGeantino.hh"
|
||||
#include "G4Geantino.hh"
|
||||
|
||||
GeneralPhysics::GeneralPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name), wasActivated(false)
|
||||
{
|
||||
}
|
||||
|
||||
GeneralPhysics::~GeneralPhysics()
|
||||
{
|
||||
if(wasActivated)
|
||||
{
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
if (fDecayProcess.IsApplicable(*particle) && pmanager) pmanager ->RemoveProcess(&fDecayProcess);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GeneralPhysics::ConstructParticle()
|
||||
{
|
||||
// pseudo-particles
|
||||
G4Geantino::GeantinoDefinition();
|
||||
G4ChargedGeantino::ChargedGeantinoDefinition();
|
||||
}
|
||||
|
||||
void GeneralPhysics::ConstructProcess()
|
||||
{
|
||||
// Add Decay Process
|
||||
theParticleIterator->reset();
|
||||
G4ParticleDefinition* particle=0;
|
||||
G4ProcessManager* pmanager=0;
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
particle = theParticleIterator->value();
|
||||
pmanager = particle->GetProcessManager();
|
||||
if( fDecayProcess.IsApplicable(*particle) )
|
||||
{
|
||||
pmanager -> AddProcess(&fDecayProcess);
|
||||
pmanager -> SetProcessOrdering(&fDecayProcess, idxPostStep);
|
||||
pmanager -> SetProcessOrdering(&fDecayProcess, idxAtRest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -0,0 +1,163 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "IonPhysics.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
// Nuclei
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
IonPhysics::IonPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name), wasActivated(false)
|
||||
{
|
||||
}
|
||||
|
||||
IonPhysics::~IonPhysics()
|
||||
{
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
|
||||
pManager = G4GenericIon::GenericIon()->GetProcessManager();
|
||||
//if(pManager) pManager->RemoveProcess(&theIonElasticProcess);
|
||||
//if(pManager) pManager->RemoveProcess(&fIonIonisation);
|
||||
// if(pManager) pManager->RemoveProcess(&fIonMultipleScattering);
|
||||
|
||||
pManager = G4Deuteron::Deuteron()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&theDElasticProcess);
|
||||
if(pManager) pManager->RemoveProcess(&fDeuteronProcess);
|
||||
if(pManager) pManager->RemoveProcess(&fDeuteronIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fDeuteronMultipleScattering);
|
||||
|
||||
pManager = G4Triton::Triton()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&theTElasticProcess);
|
||||
if(pManager) pManager->RemoveProcess(&fTritonProcess);
|
||||
if(pManager) pManager->RemoveProcess(&fTritonIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fTritonMultipleScattering);
|
||||
|
||||
pManager = G4Alpha::Alpha()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&theAElasticProcess);
|
||||
if(pManager) pManager->RemoveProcess(&fAlphaProcess);
|
||||
if(pManager) pManager->RemoveProcess(&fAlphaIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fAlphaMultipleScattering);
|
||||
|
||||
pManager = G4He3::He3()->GetProcessManager();
|
||||
//if(pManager) pManager->RemoveProcess(&theHe3ElasticProcess);
|
||||
//if(pManager) pManager->RemoveProcess(&fHe3Ionisation);
|
||||
//if(pManager) pManager->RemoveProcess(&fHe3MultipleScattering);
|
||||
}
|
||||
}
|
||||
|
||||
void IonPhysics::ConstructProcess()
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
|
||||
// Elastic Process
|
||||
theElasticModel = new G4LElastic();
|
||||
theIonElasticProcess.RegisterMe(theElasticModel);
|
||||
theDElasticProcess.RegisterMe(theElasticModel);
|
||||
theTElasticProcess.RegisterMe(theElasticModel);
|
||||
theAElasticProcess.RegisterMe(theElasticModel);
|
||||
theHe3ElasticProcess.RegisterMe(theElasticModel);
|
||||
|
||||
// Generic Ion
|
||||
pManager = G4GenericIon::GenericIon()->GetProcessManager();
|
||||
// add process
|
||||
pManager->AddDiscreteProcess(&theIonElasticProcess);
|
||||
pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2);
|
||||
|
||||
pManager->AddProcess(&fIonMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fIonMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fIonMultipleScattering, idxPostStep, 1);
|
||||
|
||||
// Deuteron
|
||||
pManager = G4Deuteron::Deuteron()->GetProcessManager();
|
||||
// add process
|
||||
pManager->AddDiscreteProcess(&theDElasticProcess);
|
||||
|
||||
fDeuteronModel = new G4LEDeuteronInelastic();
|
||||
fDeuteronProcess.RegisterMe(fDeuteronModel);
|
||||
pManager->AddDiscreteProcess(&fDeuteronProcess);
|
||||
|
||||
pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2);
|
||||
|
||||
pManager->AddProcess(&fDeuteronMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxPostStep, 1);
|
||||
|
||||
// Triton
|
||||
pManager = G4Triton::Triton()->GetProcessManager();
|
||||
// add process
|
||||
pManager->AddDiscreteProcess(&theTElasticProcess);
|
||||
|
||||
fTritonModel = new G4LETritonInelastic();
|
||||
fTritonProcess.RegisterMe(fTritonModel);
|
||||
pManager->AddDiscreteProcess(&fTritonProcess);
|
||||
|
||||
pManager->AddProcess(&fTritonIonisation, ordInActive, 2, 2);
|
||||
|
||||
pManager->AddProcess(&fTritonMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fTritonMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fTritonMultipleScattering, idxPostStep, 1);
|
||||
|
||||
// Alpha
|
||||
pManager = G4Alpha::Alpha()->GetProcessManager();
|
||||
// add process
|
||||
pManager->AddDiscreteProcess(&theAElasticProcess);
|
||||
|
||||
fAlphaModel = new G4LEAlphaInelastic();
|
||||
fAlphaProcess.RegisterMe(fAlphaModel);
|
||||
pManager->AddDiscreteProcess(&fAlphaProcess);
|
||||
pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2);
|
||||
|
||||
pManager->AddProcess(&fAlphaMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxPostStep, 1);
|
||||
|
||||
// He3
|
||||
pManager = G4He3::He3()->GetProcessManager();
|
||||
// add process
|
||||
pManager->AddDiscreteProcess(&theHe3ElasticProcess);
|
||||
pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2);
|
||||
|
||||
pManager->AddProcess(&fHe3MultipleScattering);
|
||||
pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep, 1);
|
||||
|
||||
wasActivated = true;
|
||||
}
|
||||
|
||||
void IonPhysics::ConstructParticle()
|
||||
{
|
||||
// Construct light ions
|
||||
G4IonConstructor pConstructor;
|
||||
pConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -0,0 +1,133 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#include "MuonPhysics.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
|
||||
#include "G4MuonPlus.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
#include "G4TauMinus.hh"
|
||||
#include "G4TauPlus.hh"
|
||||
#include "G4NeutrinoTau.hh"
|
||||
#include "G4AntiNeutrinoTau.hh"
|
||||
#include "G4NeutrinoMu.hh"
|
||||
#include "G4AntiNeutrinoMu.hh"
|
||||
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
MuonPhysics::MuonPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name)
|
||||
{
|
||||
}
|
||||
|
||||
MuonPhysics::~MuonPhysics()
|
||||
{
|
||||
if(wasActivated)
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
pManager = G4MuonPlus::MuonPlus()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&fMuPlusIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fMuPlusBremsstrahlung);
|
||||
if(pManager) pManager->RemoveProcess(&fMuPlusPairProduction);
|
||||
if(pManager) pManager->RemoveProcess(&fMuPlusMultipleScattering);
|
||||
pManager = G4MuonMinus::MuonMinus()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&fMuMinusIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fMuMinusBremsstrahlung);
|
||||
if(pManager) pManager->RemoveProcess(&fMuMinusPairProduction);
|
||||
if(pManager) pManager->RemoveProcess(&fMuMinusMultipleScattering);
|
||||
if(pManager) pManager->RemoveProcess(&fMuMinusCaptureAtRest);
|
||||
pManager = G4TauPlus::TauPlus()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&fTauPlusIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fTauPlusMultipleScattering);
|
||||
pManager = G4TauMinus::TauMinus()->GetProcessManager();
|
||||
if(pManager) pManager->RemoveProcess(&fTauMinusIonisation);
|
||||
if(pManager) pManager->RemoveProcess(&fTauMinusMultipleScattering);
|
||||
}
|
||||
}
|
||||
|
||||
void MuonPhysics::ConstructProcess()
|
||||
{
|
||||
G4ProcessManager * pManager = 0;
|
||||
|
||||
wasActivated = true;
|
||||
// Muon Plus Physics
|
||||
pManager = G4MuonPlus::MuonPlus()->GetProcessManager();
|
||||
// add processes
|
||||
pManager->AddProcess(&fMuPlusIonisation, ordInActive,2, 2);
|
||||
pManager->AddDiscreteProcess(&fMuPlusBremsstrahlung);
|
||||
pManager->AddDiscreteProcess(&fMuPlusPairProduction);
|
||||
|
||||
pManager->AddProcess(&fMuPlusMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fMuPlusMultipleScattering, idxPostStep, 1);
|
||||
|
||||
// Muon Minus Physics
|
||||
pManager = G4MuonMinus::MuonMinus()->GetProcessManager();
|
||||
// add processes
|
||||
pManager->AddProcess(&fMuMinusIonisation, ordInActive,2, 2);
|
||||
pManager->AddDiscreteProcess(&fMuMinusBremsstrahlung);
|
||||
pManager->AddDiscreteProcess(&fMuMinusPairProduction);
|
||||
|
||||
pManager->AddProcess(&fMuMinusMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fMuMinusMultipleScattering, idxPostStep, 1);
|
||||
pManager->AddRestProcess(&fMuMinusCaptureAtRest);
|
||||
|
||||
// Tau Plus Physics
|
||||
pManager = G4TauPlus::TauPlus()->GetProcessManager();
|
||||
// add processes
|
||||
pManager->AddProcess(&fTauPlusIonisation, ordInActive,2, 2);
|
||||
|
||||
pManager->AddProcess(&fTauPlusMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxPostStep, 1);
|
||||
|
||||
// Tau Minus Physics
|
||||
pManager = G4TauMinus::TauMinus()->GetProcessManager();
|
||||
// add processes
|
||||
pManager->AddProcess(&fTauMinusIonisation, ordInActive,2, 2);
|
||||
|
||||
pManager->AddProcess(&fTauMinusMultipleScattering);
|
||||
pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxAlongStep, 1);
|
||||
pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxPostStep, 1);
|
||||
}
|
||||
|
||||
void MuonPhysics::ConstructParticle()
|
||||
{
|
||||
G4TauMinus::TauMinusDefinition();
|
||||
G4TauPlus::TauPlusDefinition();
|
||||
G4MuonPlus::MuonPlusDefinition();
|
||||
G4MuonMinus::MuonMinusDefinition();
|
||||
|
||||
G4NeutrinoMu::NeutrinoMuDefinition();
|
||||
G4AntiNeutrinoMu::AntiNeutrinoMuDefinition();
|
||||
G4NeutrinoTau::NeutrinoTauDefinition();
|
||||
G4AntiNeutrinoTau::AntiNeutrinoTauDefinition();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
Reference in New Issue
Block a user