Import Geant4 9.4.0 source tree
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BertiniPionBuilder.cc,v 1.1 2010/11/19 16:21:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4BertiniPionBuilder
|
||||
//
|
||||
// Author: 2010 G.Folger
|
||||
// devired from G4BertiniPiKBuilder
|
||||
//
|
||||
// Modified:
|
||||
// 02.04.2009 V.Ivanchenko remove add cross section, string builderis reponsible
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4BertiniPionBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4BertiniPionBuilder::
|
||||
G4BertiniPionBuilder()
|
||||
{
|
||||
thePiData = new G4PiNuclearCrossSection;
|
||||
theMin = 0*GeV;
|
||||
theMax = 9.9*GeV;
|
||||
theModel = new G4CascadeInterface;
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
G4BertiniPionBuilder::~G4BertiniPionBuilder()
|
||||
{
|
||||
}
|
||||
|
||||
void G4BertiniPionBuilder::
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4BertiniPionBuilder::
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
aP->RegisterMe(theModel);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
}
|
||||
|
||||
void G4BertiniPionBuilder::
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4ChargeExchangePhysics.cc,v 1.1 2008/11/20 12:38:11 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4ChargeExchangePhysics.cc,v 1.2 2010/06/03 14:37:24 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -58,6 +58,14 @@ G4ChargeExchangePhysics::G4ChargeExchangePhysics(G4int ver, G4bool glauber)
|
||||
model = 0;
|
||||
}
|
||||
|
||||
G4ChargeExchangePhysics::G4ChargeExchangePhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("chargeExchange"), verbose(ver), glFlag(false),
|
||||
wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) G4cout << "### ChargeExchangePhysics" << G4endl;
|
||||
model = 0;
|
||||
}
|
||||
|
||||
G4ChargeExchangePhysics::~G4ChargeExchangePhysics()
|
||||
{
|
||||
delete model;
|
||||
|
||||
@@ -0,0 +1,82 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// Author: 2010 G.Folger
|
||||
// devired from G4LEPPiKBuilder
|
||||
//
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4ChipsKaonBuilder.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4ChipsKaonBuilder::G4ChipsKaonBuilder(G4int ver)
|
||||
: verb(ver)
|
||||
{
|
||||
theInelastic = new G4QInelastic();
|
||||
}
|
||||
|
||||
G4ChipsKaonBuilder::
|
||||
~G4ChipsKaonBuilder()
|
||||
{
|
||||
delete theInelastic;
|
||||
}
|
||||
|
||||
void G4ChipsKaonBuilder::Build()
|
||||
{
|
||||
static G4bool onceOnly(true);
|
||||
if ( onceOnly )
|
||||
{
|
||||
if (verb > 0 )
|
||||
{G4cout << "Info - G4ChipsKaonBuilder::Build() not adding elastic" <<
|
||||
G4endl;}
|
||||
|
||||
attachProcess(G4KaonPlus::KaonPlus());
|
||||
attachProcess(G4KaonMinus::KaonMinus());
|
||||
attachProcess(G4KaonZeroShort::KaonZeroShort());
|
||||
attachProcess(G4KaonZeroLong::KaonZeroLong());
|
||||
onceOnly=false;
|
||||
}
|
||||
}
|
||||
|
||||
void G4ChipsKaonBuilder::attachProcess(G4ParticleDefinition * pDef)
|
||||
{
|
||||
if ( verb > 0 ) {
|
||||
G4cout << " Using G4Qinelastic for " << pDef->GetParticleName()
|
||||
<< G4endl;
|
||||
}
|
||||
G4ProcessManager* pMan = pDef->GetProcessManager();
|
||||
pMan->AddDiscreteProcess(theInelastic);
|
||||
}
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DecayPhysics.cc,v 1.1 2006/10/31 11:35:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4DecayPhysics.cc,v 1.2 2010/06/03 14:37:24 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -54,6 +54,10 @@
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
|
||||
G4DecayPhysics::G4DecayPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("Decay"), verbose(ver), wasActivated(false)
|
||||
{}
|
||||
|
||||
G4DecayPhysics::G4DecayPhysics(const G4String& name, G4int ver)
|
||||
: G4VPhysicsConstructor(name), verbose(ver), wasActivated(false)
|
||||
{}
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmDNAPhysics.cc,v 1.2 2009/11/01 13:21:13 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4EmDNAPhysics.cc,v 1.8 2010/11/25 07:44:55 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
|
||||
#include "G4EmDNAPhysics.hh"
|
||||
|
||||
@@ -38,19 +38,11 @@
|
||||
#include "G4DNAScreenedRutherfordElasticModel.hh"
|
||||
|
||||
#include "G4DNAExcitation.hh"
|
||||
#include "G4DNAEmfietzoglouExcitationModel.hh"
|
||||
#include "G4DNAMillerGreenExcitationModel.hh"
|
||||
#include "G4DNABornExcitationModel.hh"
|
||||
|
||||
#include "G4DNAAttachment.hh"
|
||||
#include "G4DNAVibExcitation.hh"
|
||||
#include "G4DNAIonisation.hh"
|
||||
#include "G4DNABornIonisationModel.hh"
|
||||
#include "G4DNARuddIonisationModel.hh"
|
||||
|
||||
#include "G4DNAChargeDecrease.hh"
|
||||
#include "G4DNADingfelderChargeDecreaseModel.hh"
|
||||
|
||||
#include "G4DNAChargeIncrease.hh"
|
||||
#include "G4DNADingfelderChargeIncreaseModel.hh"
|
||||
|
||||
// particles
|
||||
|
||||
@@ -61,6 +53,7 @@
|
||||
// e+
|
||||
#include "G4Positron.hh"
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4GoudsmitSaundersonMscModel.hh"
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
@@ -78,9 +71,14 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics::G4EmDNAPhysics(
|
||||
G4int ver, const G4String& name)
|
||||
: G4VPhysicsConstructor(name), verbose(ver)
|
||||
G4EmDNAPhysics::G4EmDNAPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmDNAPhysics"), verbose(ver)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmDNAPhysics::G4EmDNAPhysics(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmDNAPhysics"), verbose(ver)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -131,10 +129,10 @@ void G4EmDNAPhysics::ConstructProcess()
|
||||
// *** Elastic scattering (two alternative models available) ***
|
||||
|
||||
G4DNAElastic* theDNAElasticProcess = new G4DNAElastic();
|
||||
theDNAElasticProcess->SetModel(new G4DNAScreenedRutherfordElasticModel());
|
||||
// theDNAElasticProcess->SetModel(new G4DNAChampionElasticModel());
|
||||
|
||||
// or alternative model
|
||||
// theDNAElasticProcess->SetModel(new G4DNAChampionElasticModel());
|
||||
theDNAElasticProcess->SetModel(new G4DNAScreenedRutherfordElasticModel());
|
||||
|
||||
pmanager->AddDiscreteProcess(theDNAElasticProcess);
|
||||
|
||||
@@ -144,6 +142,12 @@ void G4EmDNAPhysics::ConstructProcess()
|
||||
// *** Ionisation ***
|
||||
pmanager->AddDiscreteProcess(new G4DNAIonisation());
|
||||
|
||||
// *** Vibrational excitation ***
|
||||
pmanager->AddDiscreteProcess(new G4DNAVibExcitation());
|
||||
|
||||
// *** Attachment ***
|
||||
pmanager->AddDiscreteProcess(new G4DNAAttachment());
|
||||
|
||||
|
||||
} else if ( particleName == "proton" ) {
|
||||
pmanager->AddDiscreteProcess(new G4DNAExcitation());
|
||||
@@ -151,6 +155,7 @@ void G4EmDNAPhysics::ConstructProcess()
|
||||
pmanager->AddDiscreteProcess(new G4DNAChargeDecrease());
|
||||
|
||||
} else if ( particleName == "hydrogen" ) {
|
||||
pmanager->AddDiscreteProcess(new G4DNAExcitation());
|
||||
pmanager->AddDiscreteProcess(new G4DNAIonisation());
|
||||
pmanager->AddDiscreteProcess(new G4DNAChargeIncrease());
|
||||
|
||||
@@ -184,6 +189,7 @@ void G4EmDNAPhysics::ConstructProcess()
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
msc->AddEmModel(0, new G4GoudsmitSaundersonMscModel());
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmExtraPhysics.cc,v 1.3 2008/01/08 10:36:32 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4EmExtraPhysics.cc,v 1.4 2010/06/02 17:21:29 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -52,11 +52,20 @@
|
||||
#include "G4MuonMinus.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4EmExtraPhysics::G4EmExtraPhysics(const G4String& name):
|
||||
G4VPhysicsConstructor(name), wasBuilt(false), gnActivated(false), munActivated(false),
|
||||
synActivated(false), synchOn(false), gammNucOn(true), muNucOn(false),
|
||||
theElectronSynch(0), thePositronSynch(0), theGNPhysics(0), theMuNuc1(0),
|
||||
theMuNuc2(0)
|
||||
G4EmExtraPhysics::G4EmExtraPhysics(G4int ver):
|
||||
G4VPhysicsConstructor("G4GammaLeptoNuclearPhys"), wasBuilt(false), gnActivated(false),
|
||||
munActivated(false), synActivated(false), synchOn(false), gammNucOn(true), muNucOn(false),
|
||||
theElectronSynch(0), thePositronSynch(0), theGNPhysics(0), theMuNuc1(0), theMuNuc2(0),
|
||||
verbose(ver)
|
||||
{
|
||||
theMessenger = new G4EmMessenger(this);
|
||||
}
|
||||
|
||||
G4EmExtraPhysics::G4EmExtraPhysics(const G4String&):
|
||||
G4VPhysicsConstructor("G4GammaLeptoNuclearPhys"), wasBuilt(false), gnActivated(false),
|
||||
munActivated(false), synActivated(false), synchOn(false), gammNucOn(true), muNucOn(false),
|
||||
theElectronSynch(0), thePositronSynch(0), theGNPhysics(0), theMuNuc1(0), theMuNuc2(0),
|
||||
verbose(1)
|
||||
{
|
||||
theMessenger = new G4EmMessenger(this);
|
||||
}
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmLivermorePhysics.cc,v 1.7 2009/11/24 12:53:22 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4EmLivermorePhysics.cc,v 1.12 2010/10/10 15:18:34 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
|
||||
#include "G4EmLivermorePhysics.hh"
|
||||
|
||||
@@ -79,12 +79,14 @@
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4alphaIonisation.hh"
|
||||
#include "G4IonParametrisedLossModel.hh"
|
||||
#include "G4NuclearStopping.hh"
|
||||
|
||||
// msc models
|
||||
#include "G4UrbanMscModel93.hh"
|
||||
#include "G4WentzelVIModel.hh"
|
||||
#include "G4GoudsmitSaundersonMscModel.hh"
|
||||
#include "G4CoulombScattering.hh"
|
||||
|
||||
//
|
||||
@@ -113,9 +115,16 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLivermorePhysics::G4EmLivermorePhysics(
|
||||
G4int ver, const G4String& name)
|
||||
: G4VPhysicsConstructor(name), verbose(ver)
|
||||
G4EmLivermorePhysics::G4EmLivermorePhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmLivermorePhysics"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLivermorePhysics::G4EmLivermorePhysics(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmLivermorePhysics"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
@@ -210,7 +219,8 @@ void G4EmLivermorePhysics::ConstructProcess()
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
//msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->AddEmModel(0, new G4GoudsmitSaundersonMscModel());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
@@ -218,7 +228,7 @@ void G4EmLivermorePhysics::ConstructProcess()
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
G4LivermoreIonisationModel* theIoniLivermore = new
|
||||
G4LivermoreIonisationModel();
|
||||
theIoniLivermore->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
theIoniLivermore->SetHighEnergyLimit(1*MeV);
|
||||
eIoni->AddEmModel(0, theIoniLivermore, new G4UniversalFluctuation() );
|
||||
eIoni->SetStepFunction(0.2, 100*um); //
|
||||
pmanager->AddProcess(eIoni, -1, 2, 2);
|
||||
@@ -236,7 +246,8 @@ void G4EmLivermorePhysics::ConstructProcess()
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
//msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->AddEmModel(0, new G4GoudsmitSaundersonMscModel());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
@@ -309,6 +320,9 @@ void G4EmLivermorePhysics::ConstructProcess()
|
||||
particleName == "D-" ||
|
||||
particleName == "Ds+" ||
|
||||
particleName == "Ds-" ||
|
||||
particleName == "anti_He3" ||
|
||||
particleName == "anti_alpha" ||
|
||||
particleName == "anti_deuteron" ||
|
||||
particleName == "anti_lambda_c+" ||
|
||||
particleName == "anti_omega-" ||
|
||||
particleName == "anti_proton" ||
|
||||
@@ -316,6 +330,7 @@ void G4EmLivermorePhysics::ConstructProcess()
|
||||
particleName == "anti_sigma_c++" ||
|
||||
particleName == "anti_sigma+" ||
|
||||
particleName == "anti_sigma-" ||
|
||||
particleName == "anti_triton" ||
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmLivermorePolarizedPhysics.cc,v 1.6 2009/11/24 12:53:22 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4EmLivermorePolarizedPhysics.cc,v 1.12 2010/11/10 17:33:02 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
|
||||
#include "G4EmLivermorePolarizedPhysics.hh"
|
||||
|
||||
@@ -36,13 +36,13 @@
|
||||
// gamma
|
||||
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
#include "G4LivermorePhotoElectricModel.hh"
|
||||
#include "G4LivermorePolarizedPhotoElectricModel.hh"
|
||||
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4LivermorePolarizedComptonModel.hh"
|
||||
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4LivermoreGammaConversionModel.hh"
|
||||
#include "G4LivermorePolarizedGammaConversionModel.hh"
|
||||
|
||||
#include "G4RayleighScattering.hh"
|
||||
#include "G4LivermorePolarizedRayleighModel.hh"
|
||||
@@ -79,12 +79,14 @@
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4alphaIonisation.hh"
|
||||
#include "G4IonParametrisedLossModel.hh"
|
||||
#include "G4NuclearStopping.hh"
|
||||
|
||||
// msc models
|
||||
#include "G4UrbanMscModel93.hh"
|
||||
#include "G4WentzelVIModel.hh"
|
||||
#include "G4GoudsmitSaundersonMscModel.hh"
|
||||
#include "G4CoulombScattering.hh"
|
||||
|
||||
//
|
||||
@@ -113,9 +115,16 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLivermorePolarizedPhysics::G4EmLivermorePolarizedPhysics(
|
||||
G4int ver, const G4String& name)
|
||||
: G4VPhysicsConstructor(name), verbose(ver)
|
||||
G4EmLivermorePolarizedPhysics::G4EmLivermorePolarizedPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmLivermorePolarizedPhysics"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmLivermorePolarizedPhysics::G4EmLivermorePolarizedPhysics(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmLivermorePolarizedPhysics"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
@@ -181,7 +190,7 @@ void G4EmLivermorePolarizedPhysics::ConstructProcess()
|
||||
if (particleName == "gamma") {
|
||||
|
||||
G4PhotoElectricEffect* thePhotoElectricEffect = new G4PhotoElectricEffect();
|
||||
G4LivermorePhotoElectricModel* theLivermorePhotoElectricModel = new G4LivermorePhotoElectricModel();
|
||||
G4LivermorePolarizedPhotoElectricModel* theLivermorePhotoElectricModel = new G4LivermorePolarizedPhotoElectricModel();
|
||||
theLivermorePhotoElectricModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
thePhotoElectricEffect->AddEmModel(0, theLivermorePhotoElectricModel);
|
||||
pmanager->AddDiscreteProcess(thePhotoElectricEffect);
|
||||
@@ -193,7 +202,7 @@ void G4EmLivermorePolarizedPhysics::ConstructProcess()
|
||||
pmanager->AddDiscreteProcess(theComptonScattering);
|
||||
|
||||
G4GammaConversion* theGammaConversion = new G4GammaConversion();
|
||||
G4LivermoreGammaConversionModel* theLivermoreGammaConversionModel = new G4LivermoreGammaConversionModel();
|
||||
G4LivermorePolarizedGammaConversionModel* theLivermoreGammaConversionModel = new G4LivermorePolarizedGammaConversionModel();
|
||||
theLivermoreGammaConversionModel->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
theGammaConversion->AddEmModel(0, theLivermoreGammaConversionModel);
|
||||
pmanager->AddDiscreteProcess(theGammaConversion);
|
||||
@@ -207,7 +216,8 @@ void G4EmLivermorePolarizedPhysics::ConstructProcess()
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
//msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->AddEmModel(0, new G4GoudsmitSaundersonMscModel());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
@@ -215,7 +225,7 @@ void G4EmLivermorePolarizedPhysics::ConstructProcess()
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
G4LivermoreIonisationModel* theIoniLivermore = new
|
||||
G4LivermoreIonisationModel();
|
||||
theIoniLivermore->SetHighEnergyLimit(LivermoreHighEnergyLimit);
|
||||
theIoniLivermore->SetHighEnergyLimit(1*MeV);
|
||||
eIoni->AddEmModel(0, theIoniLivermore, new G4UniversalFluctuation() );
|
||||
eIoni->SetStepFunction(0.2, 100*um); //
|
||||
pmanager->AddProcess(eIoni, -1, 2, 2);
|
||||
@@ -233,7 +243,8 @@ void G4EmLivermorePolarizedPhysics::ConstructProcess()
|
||||
// Identical to G4EmStandardPhysics_option3
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
//msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->AddEmModel(0, new G4GoudsmitSaundersonMscModel());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
@@ -306,6 +317,9 @@ void G4EmLivermorePolarizedPhysics::ConstructProcess()
|
||||
particleName == "D-" ||
|
||||
particleName == "Ds+" ||
|
||||
particleName == "Ds-" ||
|
||||
particleName == "anti_He3" ||
|
||||
particleName == "anti_alpha" ||
|
||||
particleName == "anti_deuteron" ||
|
||||
particleName == "anti_lambda_c+" ||
|
||||
particleName == "anti_omega-" ||
|
||||
particleName == "anti_proton" ||
|
||||
@@ -313,6 +327,7 @@ void G4EmLivermorePolarizedPhysics::ConstructProcess()
|
||||
particleName == "anti_sigma_c++" ||
|
||||
particleName == "anti_sigma+" ||
|
||||
particleName == "anti_sigma-" ||
|
||||
particleName == "anti_triton" ||
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmPenelopePhysics.cc,v 1.7 2009/11/24 12:53:22 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4EmPenelopePhysics.cc,v 1.12 2010/10/10 15:18:34 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
|
||||
#include "G4EmPenelopePhysics.hh"
|
||||
|
||||
@@ -80,12 +80,14 @@
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4alphaIonisation.hh"
|
||||
#include "G4IonParametrisedLossModel.hh"
|
||||
#include "G4NuclearStopping.hh"
|
||||
|
||||
// msc models
|
||||
#include "G4UrbanMscModel93.hh"
|
||||
#include "G4WentzelVIModel.hh"
|
||||
#include "G4GoudsmitSaundersonMscModel.hh"
|
||||
#include "G4CoulombScattering.hh"
|
||||
|
||||
//
|
||||
@@ -114,9 +116,16 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmPenelopePhysics::G4EmPenelopePhysics(
|
||||
G4int ver, const G4String& name)
|
||||
: G4VPhysicsConstructor(name), verbose(ver)
|
||||
G4EmPenelopePhysics::G4EmPenelopePhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmPenelopePhysics"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmPenelopePhysics::G4EmPenelopePhysics(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmPenelopePhysics"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
@@ -215,7 +224,8 @@ void G4EmPenelopePhysics::ConstructProcess()
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
//msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->AddEmModel(0, new G4GoudsmitSaundersonMscModel());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
@@ -239,7 +249,8 @@ void G4EmPenelopePhysics::ConstructProcess()
|
||||
} else if (particleName == "e+") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
//msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->AddEmModel(0, new G4GoudsmitSaundersonMscModel());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
|
||||
@@ -330,6 +341,9 @@ void G4EmPenelopePhysics::ConstructProcess()
|
||||
particleName == "D-" ||
|
||||
particleName == "Ds+" ||
|
||||
particleName == "Ds-" ||
|
||||
particleName == "anti_He3" ||
|
||||
particleName == "anti_alpha" ||
|
||||
particleName == "anti_deuteron" ||
|
||||
particleName == "anti_lambda_c+" ||
|
||||
particleName == "anti_omega-" ||
|
||||
particleName == "anti_proton" ||
|
||||
@@ -337,6 +351,7 @@ void G4EmPenelopePhysics::ConstructProcess()
|
||||
particleName == "anti_sigma_c++" ||
|
||||
particleName == "anti_sigma+" ||
|
||||
particleName == "anti_sigma-" ||
|
||||
particleName == "anti_triton" ||
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics.cc,v 1.20 2009/10/30 18:36:15 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4EmStandardPhysics.cc,v 1.24 2010/10/10 15:18:34 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -56,6 +56,8 @@
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4MuMultipleScattering.hh"
|
||||
#include "G4hMultipleScattering.hh"
|
||||
#include "G4CoulombScattering.hh"
|
||||
#include "G4WentzelVIModel.hh"
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
@@ -69,6 +71,7 @@
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4alphaIonisation.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
@@ -89,8 +92,16 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics::G4EmStandardPhysics(G4int ver, const G4String& name)
|
||||
: G4VPhysicsConstructor(name), verbose(ver)
|
||||
G4EmStandardPhysics::G4EmStandardPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmStandard"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics::G4EmStandardPhysics(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmStandard"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
@@ -168,10 +179,13 @@ void G4EmStandardPhysics::ConstructProcess()
|
||||
} else if (particleName == "mu+" ||
|
||||
particleName == "mu-" ) {
|
||||
|
||||
pmanager->AddProcess(new G4MuMultipleScattering,-1, 1, 1);
|
||||
pmanager->AddProcess(new G4MuIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4);
|
||||
G4MuMultipleScattering* msc = new G4MuMultipleScattering();
|
||||
msc->AddEmModel(0, new G4WentzelVIModel());
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4MuIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4);
|
||||
pmanager->AddDiscreteProcess(new G4CoulombScattering());
|
||||
|
||||
} else if (particleName == "alpha" ||
|
||||
particleName == "He3") {
|
||||
@@ -201,6 +215,9 @@ void G4EmStandardPhysics::ConstructProcess()
|
||||
particleName == "D-" ||
|
||||
particleName == "Ds+" ||
|
||||
particleName == "Ds-" ||
|
||||
particleName == "anti_He3" ||
|
||||
particleName == "anti_alpha" ||
|
||||
particleName == "anti_deuteron" ||
|
||||
particleName == "anti_lambda_c+" ||
|
||||
particleName == "anti_omega-" ||
|
||||
particleName == "anti_proton" ||
|
||||
@@ -208,6 +225,7 @@ void G4EmStandardPhysics::ConstructProcess()
|
||||
particleName == "anti_sigma_c++" ||
|
||||
particleName == "anti_sigma+" ||
|
||||
particleName == "anti_sigma-" ||
|
||||
particleName == "anti_triton" ||
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
@@ -229,6 +247,7 @@ void G4EmStandardPhysics::ConstructProcess()
|
||||
}
|
||||
G4EmProcessOptions opt;
|
||||
opt.SetVerbose(verbose);
|
||||
opt.SetPolarAngleLimit(0.2);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option1.cc,v 1.15 2009/10/30 18:36:15 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4EmStandardPhysics_option1.cc,v 1.21 2010/11/20 21:07:26 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -41,6 +41,8 @@
|
||||
// 13.02.2007 V.Ivanchenko set skin=0.0
|
||||
// 15.05.2007 V.Ivanchenko rename to _option1
|
||||
// 21.04.2008 V.Ivanchenko add long-lived D and B mesons
|
||||
// 19.11.2010 V.Ivanchenko added WentzelVI model for muons;
|
||||
// disable ApplyCut option for compatibility with 9.2
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -58,7 +60,8 @@
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4MuMultipleScattering.hh"
|
||||
#include "G4hMultipleScattering.hh"
|
||||
#include "G4MscStepLimitType.hh"
|
||||
#include "G4CoulombScattering.hh"
|
||||
#include "G4WentzelVIModel.hh"
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
@@ -72,6 +75,7 @@
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4alphaIonisation.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
#include "G4Electron.hh"
|
||||
@@ -92,9 +96,16 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option1::G4EmStandardPhysics_option1(
|
||||
G4int ver, const G4String& name)
|
||||
: G4VPhysicsConstructor(name), verbose(ver)
|
||||
G4EmStandardPhysics_option1::G4EmStandardPhysics_option1(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt1"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option1::G4EmStandardPhysics_option1(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt1"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
@@ -180,10 +191,13 @@ void G4EmStandardPhysics_option1::ConstructProcess()
|
||||
} else if (particleName == "mu+" ||
|
||||
particleName == "mu-" ) {
|
||||
|
||||
pmanager->AddProcess(new G4MuMultipleScattering,-1, 1, 1);
|
||||
pmanager->AddProcess(new G4MuIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4);
|
||||
G4MuMultipleScattering* msc = new G4MuMultipleScattering();
|
||||
msc->AddEmModel(0, new G4WentzelVIModel());
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4MuIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4MuBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4MuPairProduction, -1,-4, 4);
|
||||
pmanager->AddDiscreteProcess(new G4CoulombScattering());
|
||||
|
||||
} else if (particleName == "alpha" ||
|
||||
particleName == "He3") {
|
||||
@@ -213,6 +227,9 @@ void G4EmStandardPhysics_option1::ConstructProcess()
|
||||
particleName == "D-" ||
|
||||
particleName == "Ds+" ||
|
||||
particleName == "Ds-" ||
|
||||
particleName == "anti_He3" ||
|
||||
particleName == "anti_alpha" ||
|
||||
particleName == "anti_deuteron" ||
|
||||
particleName == "anti_lambda_c+" ||
|
||||
particleName == "anti_omega-" ||
|
||||
particleName == "anti_proton" ||
|
||||
@@ -220,6 +237,7 @@ void G4EmStandardPhysics_option1::ConstructProcess()
|
||||
particleName == "anti_sigma_c++" ||
|
||||
particleName == "anti_sigma+" ||
|
||||
particleName == "anti_sigma-" ||
|
||||
particleName == "anti_triton" ||
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option2.cc,v 1.20 2009/11/24 12:53:22 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4EmStandardPhysics_option2.cc,v 1.29 2010/11/21 15:47:03 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -56,6 +56,8 @@
|
||||
#include "G4ComptonScattering.hh"
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
#include "G4PEEffectFluoModel.hh"
|
||||
#include "G4KleinNishinaModel.hh"
|
||||
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4hMultipleScattering.hh"
|
||||
@@ -67,7 +69,10 @@
|
||||
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4eBremsstrahlungModel.hh"
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
#include "G4Generator2BS.hh"
|
||||
#include "G4UAtomicDeexcitation.hh"
|
||||
|
||||
#include "G4MuIonisation.hh"
|
||||
#include "G4MuBremsstrahlung.hh"
|
||||
@@ -77,6 +82,7 @@
|
||||
|
||||
#include "G4hIonisation.hh"
|
||||
#include "G4ionIonisation.hh"
|
||||
#include "G4alphaIonisation.hh"
|
||||
//#include "G4IonParametrisedLossModel.hh"
|
||||
|
||||
#include "G4Gamma.hh"
|
||||
@@ -98,9 +104,16 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option2::G4EmStandardPhysics_option2(
|
||||
G4int ver, const G4String& name)
|
||||
: G4VPhysicsConstructor(name), verbose(ver)
|
||||
G4EmStandardPhysics_option2::G4EmStandardPhysics_option2(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt2"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option2::G4EmStandardPhysics_option2(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt2"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
@@ -158,28 +171,46 @@ void G4EmStandardPhysics_option2::ConstructProcess()
|
||||
|
||||
if (particleName == "gamma") {
|
||||
|
||||
pmanager->AddDiscreteProcess(new G4PhotoElectricEffect);
|
||||
pmanager->AddDiscreteProcess(new G4ComptonScattering);
|
||||
G4PhotoElectricEffect* pe = new G4PhotoElectricEffect;
|
||||
pe->SetModel(new G4PEEffectFluoModel());
|
||||
G4ComptonScattering* cs = new G4ComptonScattering;
|
||||
cs->SetModel(new G4KleinNishinaModel());
|
||||
pmanager->AddDiscreteProcess(pe);
|
||||
pmanager->AddDiscreteProcess(cs);
|
||||
pmanager->AddDiscreteProcess(new G4GammaConversion);
|
||||
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
//msc->AddEmModel(0, new G4WentzelVIModel());
|
||||
//msc->SetRangeFactor(0.04);
|
||||
//msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
// msc->AddEmModel(0, new G4GoudsmitSaundersonMscModel());
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
G4eBremsstrahlung* brem = new G4eBremsstrahlung();
|
||||
G4eBremsstrahlungModel* br = new G4eBremsstrahlungModel();
|
||||
br->SetAngularDistribution(new G4Generator2BS());
|
||||
brem->SetEmModel(br);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4eIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(brem, -1, 3, 3);
|
||||
//pmanager->AddDiscreteProcess(new G4CoulombScattering());
|
||||
|
||||
} else if (particleName == "e+") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
//msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
//msc->AddEmModel(0, new G4WentzelVIModel());
|
||||
//msc->SetRangeFactor(0.04);
|
||||
// msc->AddEmModel(0, new G4GoudsmitSaundersonMscModel());
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
G4eBremsstrahlung* brem = new G4eBremsstrahlung();
|
||||
G4eBremsstrahlungModel* br = new G4eBremsstrahlungModel();
|
||||
br->SetAngularDistribution(new G4Generator2BS());
|
||||
brem->SetEmModel(br);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4eIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4eBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(brem, -1, 3, 3);
|
||||
pmanager->AddProcess(new G4eplusAnnihilation, 0,-1, 4);
|
||||
//pmanager->AddDiscreteProcess(new G4CoulombScattering());
|
||||
|
||||
} else if (particleName == "mu+" ||
|
||||
particleName == "mu-" ) {
|
||||
@@ -213,7 +244,9 @@ void G4EmStandardPhysics_option2::ConstructProcess()
|
||||
particleName == "kaon-" ||
|
||||
particleName == "proton" ) {
|
||||
|
||||
pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
|
||||
G4hMultipleScattering* msc = new G4hMultipleScattering();
|
||||
msc->AddEmModel(0, new G4WentzelVIModel());
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
pmanager->AddProcess(new G4hIonisation, -1, 2, 2);
|
||||
pmanager->AddProcess(new G4hBremsstrahlung, -1,-3, 3);
|
||||
pmanager->AddProcess(new G4hPairProduction, -1,-4, 4);
|
||||
@@ -224,6 +257,9 @@ void G4EmStandardPhysics_option2::ConstructProcess()
|
||||
particleName == "D-" ||
|
||||
particleName == "Ds+" ||
|
||||
particleName == "Ds-" ||
|
||||
particleName == "anti_He3" ||
|
||||
particleName == "anti_alpha" ||
|
||||
particleName == "anti_deuteron" ||
|
||||
particleName == "anti_lambda_c+" ||
|
||||
particleName == "anti_omega-" ||
|
||||
particleName == "anti_proton" ||
|
||||
@@ -231,6 +267,7 @@ void G4EmStandardPhysics_option2::ConstructProcess()
|
||||
particleName == "anti_sigma_c++" ||
|
||||
particleName == "anti_sigma+" ||
|
||||
particleName == "anti_sigma-" ||
|
||||
particleName == "anti_triton" ||
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
@@ -257,18 +294,19 @@ void G4EmStandardPhysics_option2::ConstructProcess()
|
||||
opt.SetVerbose(verbose);
|
||||
opt.SetApplyCuts(true);
|
||||
|
||||
// Physics tables
|
||||
// Scattering options
|
||||
//
|
||||
//opt.SetMinEnergy(0.1*keV);
|
||||
// opt.SetMaxEnergy(10*TeV);
|
||||
//opt.SetDEDXBinning(77);
|
||||
//opt.SetLambdaBinning(77);
|
||||
//opt.SetSplineFlag(true);
|
||||
opt.SetPolarAngleLimit(0.2);
|
||||
|
||||
// Ionization
|
||||
//
|
||||
//opt.SetSubCutoff(true);
|
||||
|
||||
// Deexcitation
|
||||
//
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4EmStandardPhysics_option3.cc,v 1.18 2009/11/24 12:53:22 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4EmStandardPhysics_option3.cc,v 1.24 2010/11/21 15:47:03 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -50,6 +50,8 @@
|
||||
#include "G4GammaConversion.hh"
|
||||
#include "G4PhotoElectricEffect.hh"
|
||||
#include "G4RayleighScattering.hh"
|
||||
#include "G4PEEffectFluoModel.hh"
|
||||
#include "G4KleinNishinaModel.hh"
|
||||
|
||||
#include "G4eMultipleScattering.hh"
|
||||
#include "G4MuMultipleScattering.hh"
|
||||
@@ -62,6 +64,7 @@
|
||||
#include "G4eIonisation.hh"
|
||||
#include "G4eBremsstrahlung.hh"
|
||||
#include "G4eplusAnnihilation.hh"
|
||||
#include "G4UAtomicDeexcitation.hh"
|
||||
|
||||
#include "G4MuIonisation.hh"
|
||||
#include "G4MuBremsstrahlung.hh"
|
||||
@@ -93,9 +96,16 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option3::G4EmStandardPhysics_option3(
|
||||
G4int ver, const G4String& name)
|
||||
: G4VPhysicsConstructor(name), verbose(ver)
|
||||
G4EmStandardPhysics_option3::G4EmStandardPhysics_option3(G4int ver)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt3"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4EmStandardPhysics_option3::G4EmStandardPhysics_option3(G4int ver, const G4String&)
|
||||
: G4VPhysicsConstructor("G4EmStandard_opt3"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
@@ -153,15 +163,19 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
|
||||
if (particleName == "gamma") {
|
||||
|
||||
pmanager->AddDiscreteProcess(new G4PhotoElectricEffect);
|
||||
pmanager->AddDiscreteProcess(new G4ComptonScattering);
|
||||
G4PhotoElectricEffect* pe = new G4PhotoElectricEffect;
|
||||
pe->SetModel(new G4PEEffectFluoModel());
|
||||
G4ComptonScattering* cs = new G4ComptonScattering;
|
||||
cs->SetModel(new G4KleinNishinaModel());
|
||||
pmanager->AddDiscreteProcess(pe);
|
||||
pmanager->AddDiscreteProcess(cs);
|
||||
pmanager->AddDiscreteProcess(new G4GammaConversion);
|
||||
pmanager->AddDiscreteProcess(new G4RayleighScattering);
|
||||
//pmanager->AddDiscreteProcess(new G4RayleighScattering);
|
||||
|
||||
} else if (particleName == "e-") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
//msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
@@ -172,7 +186,7 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
} else if (particleName == "e+") {
|
||||
|
||||
G4eMultipleScattering* msc = new G4eMultipleScattering();
|
||||
msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
//msc->AddEmModel(0, new G4UrbanMscModel93());
|
||||
msc->SetStepLimitType(fUseDistanceToBoundary);
|
||||
pmanager->AddProcess(msc, -1, 1, 1);
|
||||
G4eIonisation* eIoni = new G4eIonisation();
|
||||
@@ -231,6 +245,9 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
particleName == "D-" ||
|
||||
particleName == "Ds+" ||
|
||||
particleName == "Ds-" ||
|
||||
particleName == "anti_He3" ||
|
||||
particleName == "anti_alpha" ||
|
||||
particleName == "anti_deuteron" ||
|
||||
particleName == "anti_lambda_c+" ||
|
||||
particleName == "anti_omega-" ||
|
||||
particleName == "anti_proton" ||
|
||||
@@ -238,6 +255,7 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
particleName == "anti_sigma_c++" ||
|
||||
particleName == "anti_sigma+" ||
|
||||
particleName == "anti_sigma-" ||
|
||||
particleName == "anti_triton" ||
|
||||
particleName == "anti_xi_c+" ||
|
||||
particleName == "anti_xi-" ||
|
||||
particleName == "deuteron" ||
|
||||
@@ -265,8 +283,7 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
|
||||
// Multiple Coulomb scattering
|
||||
//
|
||||
//opt.SetMscStepLimitation(fUseDistanceToBoundary);
|
||||
//opt.SetMscRangeFactor(0.02);
|
||||
opt.SetPolarAngleLimit(0.2);
|
||||
|
||||
// Physics tables
|
||||
//
|
||||
@@ -274,12 +291,15 @@ void G4EmStandardPhysics_option3::ConstructProcess()
|
||||
opt.SetMaxEnergy(10*TeV);
|
||||
opt.SetDEDXBinning(220);
|
||||
opt.SetLambdaBinning(220);
|
||||
//opt.SetSplineFlag(true);
|
||||
opt.SetPolarAngleLimit(0.2);
|
||||
|
||||
// Ionization
|
||||
//
|
||||
//opt.SetSubCutoff(true);
|
||||
|
||||
// Deexcitation
|
||||
G4VAtomDeexcitation* de = new G4UAtomicDeexcitation();
|
||||
G4LossTableManager::Instance()->SetAtomDeexcitation(de);
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFBinaryNeutronBuilder.cc,v 1.4 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4FTFBinaryNeutronBuilder.cc,v 1.5 2010/11/18 14:52:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -33,6 +33,8 @@
|
||||
// Author: 2008 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 18.11.2010 G.Folger, use G4CrossSectionPairGG for relativistic rise of cross
|
||||
// section at high energies.
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -42,6 +44,7 @@
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4CrossSectionPairGG.hh"
|
||||
|
||||
G4FTFBinaryNeutronBuilder::
|
||||
G4FTFBinaryNeutronBuilder(G4bool quasiElastic)
|
||||
@@ -96,5 +99,6 @@ Build(G4NeutronInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(new G4NeutronInelasticCrossSection);
|
||||
aP->AddDataSet(new G4CrossSectionPairGG(
|
||||
new G4NeutronInelasticCrossSection(), 91*GeV));
|
||||
}
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFBinaryPiKBuilder.cc,v 1.3 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4FTFBinaryPiKBuilder.cc,v 1.4 2010/11/18 14:52:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -33,6 +33,8 @@
|
||||
// Author: 2008 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 18.11.2010 G.Folger, use G4CrossSectionPairGG for relativistic rise of cross
|
||||
// section at high energies.
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -41,87 +43,89 @@
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4PiNuclearCrossSection.hh"
|
||||
#include "G4CrossSectionPairGG.hh"
|
||||
|
||||
G4FTFBinaryPiKBuilder::
|
||||
G4FTFBinaryPiKBuilder(G4bool quasiElastic)
|
||||
{
|
||||
thePiData = new G4PiNuclearCrossSection;
|
||||
theMin = 4*GeV;
|
||||
theModel = new G4TheoFSGenerator("FTFB");
|
||||
{
|
||||
thePiData = new G4CrossSectionPairGG(new G4PiNuclearCrossSection(), 91*GeV);
|
||||
theMin = 4*GeV;
|
||||
theModel = new G4TheoFSGenerator("FTFB");
|
||||
|
||||
theStringModel = new G4FTFModel;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
theStringModel = new G4FTFModel;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4BinaryCascade;
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
theCascade = new G4BinaryCascade;
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
if (quasiElastic)
|
||||
{
|
||||
theQuasiElastic=new G4QuasiElasticChannel;
|
||||
theModel->SetQuasiElasticChannel(theQuasiElastic);
|
||||
} else
|
||||
{ theQuasiElastic=0;}
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
if (quasiElastic)
|
||||
{
|
||||
theQuasiElastic=new G4QuasiElasticChannel;
|
||||
theModel->SetQuasiElasticChannel(theQuasiElastic);
|
||||
} else
|
||||
{ theQuasiElastic=0;}
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
}
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
}
|
||||
|
||||
G4FTFBinaryPiKBuilder:: ~G4FTFBinaryPiKBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete theModel;
|
||||
if ( theQuasiElastic ) delete theQuasiElastic;
|
||||
}
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete theModel;
|
||||
if ( theQuasiElastic ) delete theQuasiElastic;
|
||||
}
|
||||
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
void G4FTFBinaryPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFBinaryProtonBuilder.cc,v 1.3 2009/03/31 18:38:33 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4FTFBinaryProtonBuilder.cc,v 1.4 2010/11/18 14:52:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -33,6 +33,8 @@
|
||||
// Author: 2008 G.Folger
|
||||
//
|
||||
// Modified:
|
||||
// 18.11.2010 G.Folger, use G4CrossSectionPairGG for relativistic rise of cross
|
||||
// section at high energies.
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -42,6 +44,7 @@
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
#include "G4CrossSectionPairGG.hh"
|
||||
|
||||
G4FTFBinaryProtonBuilder::
|
||||
G4FTFBinaryProtonBuilder(G4bool quasiElastic)
|
||||
@@ -76,7 +79,8 @@ Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(new G4ProtonInelasticCrossSection);
|
||||
aP->AddDataSet(new G4CrossSectionPairGG(
|
||||
new G4ProtonInelasticCrossSection(), 91*GeV));
|
||||
}
|
||||
|
||||
G4FTFBinaryProtonBuilder::
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFBuilder.cc,v 1.2 2009/11/25 19:33:18 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4FTFBuilder.cc,v 1.3 2009/12/29 17:54:25 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -45,15 +45,16 @@
|
||||
#include "G4GeneratorPrecompoundInterface.hh"
|
||||
#include "G4LundStringFragmentation.hh"
|
||||
#include "G4BinaryCascade.hh"
|
||||
#include "G4PreCompoundModel.hh"
|
||||
|
||||
|
||||
G4FTFBuilder::G4FTFBuilder(const G4String& aName) : G4VHadronModelBuilder(aName)
|
||||
G4FTFBuilder::G4FTFBuilder(const G4String& aName, G4PreCompoundModel* p)
|
||||
: G4VHadronModelBuilder(aName), thePreCompound(p)
|
||||
{}
|
||||
|
||||
G4FTFBuilder::~G4FTFBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
//delete theStringModel; // is deleted by the model
|
||||
}
|
||||
|
||||
G4HadronicInteraction* G4FTFBuilder::BuildModel()
|
||||
@@ -64,14 +65,22 @@ G4HadronicInteraction* G4FTFBuilder::BuildModel()
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
theFTFModel->SetHighEnergyGenerator(theStringModel);
|
||||
|
||||
if(GetName() == "FTFP") {
|
||||
theFTFModel->SetTransport(new G4GeneratorPrecompoundInterface());
|
||||
} else if(GetName() == "FTFC") {
|
||||
if(!thePreCompound) {
|
||||
thePreCompound = new G4PreCompoundModel(new G4ExcitationHandler());
|
||||
}
|
||||
|
||||
if(GetName() == "FTFC") {
|
||||
theFTFModel->SetTransport(new G4QStringChipsParticleLevelInterface());
|
||||
|
||||
} else if(GetName() == "FTFB") {
|
||||
theFTFModel->SetTransport(new G4BinaryCascade());
|
||||
G4BinaryCascade* bic = new G4BinaryCascade();
|
||||
bic->SetDeExcitation(thePreCompound);
|
||||
theFTFModel->SetTransport(bic);
|
||||
|
||||
} else {
|
||||
theFTFModel->SetTransport(new G4GeneratorPrecompoundInterface());
|
||||
G4GeneratorPrecompoundInterface* pint = new G4GeneratorPrecompoundInterface();
|
||||
pint->SetDeExcitation(thePreCompound);
|
||||
theFTFModel->SetTransport(pint);
|
||||
}
|
||||
|
||||
return theFTFModel;
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFPNeutronBuilder.cc,v 1.5 2009/04/23 18:54:57 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4FTFPNeutronBuilder.cc,v 1.7 2010/11/18 14:52:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -33,6 +33,8 @@
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 18.11.2010 G.Folger, use G4CrossSectionPairGG for relativistic rise of cross
|
||||
// section at high energies.
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -42,6 +44,7 @@
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4CrossSectionPairGG.hh"
|
||||
|
||||
G4FTFPNeutronBuilder::
|
||||
G4FTFPNeutronBuilder(G4bool quasiElastic)
|
||||
@@ -51,11 +54,11 @@ G4FTFPNeutronBuilder(G4bool quasiElastic)
|
||||
theModel = new G4TheoFSGenerator("FTFP");
|
||||
|
||||
theStringModel = new G4FTFModel;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation);
|
||||
theStringDecay = new G4ExcitedStringDecay(theLund = new G4LundStringFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
thePreEquilib = new G4PreCompoundModel(theHandler = new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
@@ -80,6 +83,8 @@ G4FTFPNeutronBuilder::
|
||||
delete thePreEquilib;
|
||||
delete theCascade;
|
||||
if ( theQuasiElastic ) delete theQuasiElastic;
|
||||
delete theHandler;
|
||||
delete theLund;
|
||||
}
|
||||
|
||||
void G4FTFPNeutronBuilder::
|
||||
@@ -103,7 +108,8 @@ Build(G4NeutronInelasticProcess * aP)
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(new G4NeutronInelasticCrossSection);
|
||||
aP->AddDataSet(new G4CrossSectionPairGG(
|
||||
new G4NeutronInelasticCrossSection(), 91*GeV));
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFPPiKBuilder.cc,v 1.5 2009/04/23 18:54:57 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4FTFPPiKBuilder.cc,v 1.7 2010/11/18 14:52:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -33,6 +33,8 @@
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 18.11.2010 G.Folger, use G4CrossSectionPairGG for relativistic rise of cross
|
||||
// section at high energies.
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -41,96 +43,100 @@
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4PiNuclearCrossSection.hh"
|
||||
#include "G4CrossSectionPairGG.hh"
|
||||
|
||||
G4FTFPPiKBuilder::
|
||||
G4FTFPPiKBuilder(G4bool quasiElastic)
|
||||
{
|
||||
thePiData = new G4PiNuclearCrossSection;
|
||||
theMin = 4*GeV;
|
||||
theMax = 100*TeV;
|
||||
theModel = new G4TheoFSGenerator("FTFP");
|
||||
{
|
||||
thePiData = new G4CrossSectionPairGG(new G4PiNuclearCrossSection(), 91*GeV);
|
||||
theMin = 4*GeV;
|
||||
theMax = 100*TeV;
|
||||
theModel = new G4TheoFSGenerator("FTFP");
|
||||
|
||||
theStringModel = new G4FTFModel;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
theStringModel = new G4FTFModel;
|
||||
theStringDecay = new G4ExcitedStringDecay(theLund = new G4LundStringFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(theHandler = new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
if (quasiElastic)
|
||||
{
|
||||
theQuasiElastic=new G4QuasiElasticChannel;
|
||||
theModel->SetQuasiElasticChannel(theQuasiElastic);
|
||||
} else
|
||||
{ theQuasiElastic=0;}
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
if (quasiElastic)
|
||||
{
|
||||
theQuasiElastic=new G4QuasiElasticChannel;
|
||||
theModel->SetQuasiElasticChannel(theQuasiElastic);
|
||||
} else
|
||||
{ theQuasiElastic=0;}
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
}
|
||||
theModel->SetTransport(theCascade);
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
}
|
||||
|
||||
G4FTFPPiKBuilder:: ~G4FTFPPiKBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete theModel;
|
||||
if ( theQuasiElastic ) delete theQuasiElastic;
|
||||
}
|
||||
G4FTFPPiKBuilder::~G4FTFPPiKBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete theModel;
|
||||
if ( theQuasiElastic ) delete theQuasiElastic;
|
||||
delete theHandler;
|
||||
delete theLund;
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonZeroLInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4FTFPPiKBuilder::
|
||||
Build(G4KaonZeroSInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4FTFPProtonBuilder.cc,v 1.6 2009/04/23 18:54:57 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4FTFPProtonBuilder.cc,v 1.8 2010/11/18 14:52:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -33,6 +33,8 @@
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 18.11.2010 G.Folger, use G4CrossSectionPairGG for relativistic rise of cross
|
||||
// section at high energies.
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -42,6 +44,7 @@
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
#include "G4CrossSectionPairGG.hh"
|
||||
|
||||
G4FTFPProtonBuilder::
|
||||
G4FTFPProtonBuilder(G4bool quasiElastic)
|
||||
@@ -51,11 +54,11 @@ G4FTFPProtonBuilder(G4bool quasiElastic)
|
||||
theModel = new G4TheoFSGenerator("FTFP");
|
||||
|
||||
theStringModel = new G4FTFModel;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4LundStringFragmentation);
|
||||
theStringDecay = new G4ExcitedStringDecay(theLund = new G4LundStringFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
thePreEquilib = new G4PreCompoundModel(theHandler = new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
@@ -77,7 +80,8 @@ Build(G4ProtonInelasticProcess * aP)
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(new G4ProtonInelasticCrossSection);
|
||||
aP->AddDataSet(new G4CrossSectionPairGG(
|
||||
new G4ProtonInelasticCrossSection(), 91*GeV));
|
||||
}
|
||||
|
||||
G4FTFPProtonBuilder::
|
||||
@@ -88,6 +92,8 @@ G4FTFPProtonBuilder::
|
||||
delete theModel;
|
||||
delete theCascade;
|
||||
if ( theQuasiElastic ) delete theQuasiElastic;
|
||||
delete theHandler;
|
||||
delete theLund;
|
||||
}
|
||||
|
||||
void G4FTFPProtonBuilder::
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronDElasticPhysics.cc,v 1.3 2008/05/19 10:21:34 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4HadronDElasticPhysics.cc,v 1.7 2010/07/29 10:52:14 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -42,36 +42,58 @@
|
||||
// 19.02.2007 A.Howard set QModelLowLimit and LowestEnergyLimit to zero
|
||||
// for neutrons
|
||||
// 06.03.2007 V.Ivanchenko use updated interface to G4UElasticCrossSection
|
||||
// 03.06.2010 V.Ivanchenko cleanup constructors and ConstructProcess method
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Diffuse optical model for sampling scattering
|
||||
// BBG cross sections for p, pi+-
|
||||
// XS cross sections for n
|
||||
// LHEP cross sections for other particles
|
||||
|
||||
#include "G4HadronDElasticPhysics.hh"
|
||||
|
||||
#include "G4HadronicProcess.hh"
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronicInteraction.hh"
|
||||
#include "G4DiffuseElastic.hh"
|
||||
#include "G4HadronElastic.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4HadronicProcess.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
#include "G4Neutron.hh"
|
||||
|
||||
#include "G4VQCrossSection.hh"
|
||||
#include "G4UElasticCrossSection.hh"
|
||||
#include "G4WHadronElasticProcess.hh"
|
||||
#include "G4VHadronElastic.hh"
|
||||
#include "G4CHIPSElastic.hh"
|
||||
#include "G4ElasticHadrNucleusHE.hh"
|
||||
#include "G4BGGNucleonElasticXS.hh"
|
||||
#include "G4BGGPionElasticXS.hh"
|
||||
#include "G4NeutronElasticXS.hh"
|
||||
|
||||
#include "G4DiffuseElastic.hh"
|
||||
|
||||
#include "G4NeutronElasticXS.hh"
|
||||
#include "G4BGGNucleonElasticXS.hh"
|
||||
#include "G4BGGPionElasticXS.hh"
|
||||
|
||||
G4HadronDElasticPhysics::G4HadronDElasticPhysics(G4int ver, G4bool hp)
|
||||
: G4VPhysicsConstructor("DElastic"), mname("DElastic"), verbose(ver),
|
||||
hpFlag(hp), wasActivated(false)
|
||||
G4HadronDElasticPhysics::G4HadronDElasticPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("hElasticDIFFUSE"), verbose(ver),
|
||||
wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) G4cout << "### HadronDElasticPhysics" << G4endl;
|
||||
if(verbose > 1) {
|
||||
G4cout << "### G4HadronDElasticPhysics: " << GetPhysicsName()
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
G4HadronDElasticPhysics::G4HadronDElasticPhysics(G4int ver, G4bool)
|
||||
: G4VPhysicsConstructor("hElasticDIFFUSE"), verbose(ver),
|
||||
wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) {
|
||||
G4cout << "### G4HadronDElasticPhysics: " << GetPhysicsName()
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
G4HadronDElasticPhysics::~G4HadronDElasticPhysics()
|
||||
@@ -96,19 +118,24 @@ void G4HadronDElasticPhysics::ConstructProcess()
|
||||
if(wasActivated) return;
|
||||
wasActivated = true;
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### HadronDElasticPhysics Construct Processes with the model <"
|
||||
<< mname << ">" << G4endl;
|
||||
//G4double elimit = 1.0*GeV;
|
||||
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronDElasticPhysics Construct Processes " << G4endl;
|
||||
}
|
||||
|
||||
//G4VHadronElastic* plep0 = new G4VHadronElastic();
|
||||
//G4VHadronElastic* plep1 = new G4VHadronElastic();
|
||||
//plep1->SetMaxEnergy(elimit);
|
||||
|
||||
// G4CHIPSElastic* chipsp = new G4CHIPSElastic();
|
||||
// G4CHIPSElastic* chipsn = new G4CHIPSElastic();
|
||||
|
||||
//G4ElasticHadrNucleusHE* he = new G4ElasticHadrNucleusHE();
|
||||
//he->SetMinEnergy(elimit);
|
||||
|
||||
G4UHadronElasticProcess* hel = 0;
|
||||
G4DiffuseElastic* model = 0;
|
||||
|
||||
G4double elimit = 11.0*MeV;
|
||||
|
||||
G4HadronElastic* he = new G4HadronElastic();
|
||||
G4VQCrossSection* man = he->GetCS();
|
||||
he->SetMaxEnergy(elimit);
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
@@ -139,36 +166,23 @@ void G4HadronDElasticPhysics::ConstructProcess()
|
||||
pname == "triton") {
|
||||
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
hel = new G4UHadronElasticProcess("hElastic");
|
||||
hel->SetQElasticCrossSection(man);
|
||||
G4WHadronElasticProcess* hel = new G4WHadronElasticProcess();
|
||||
if(pname == "proton") {
|
||||
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
} else if (pname == "pi+" || pname == "pi-") {
|
||||
hel->AddDataSet(new G4BGGPionElasticXS(particle));
|
||||
} else {
|
||||
hel->AddDataSet(new G4UElasticCrossSection(particle));
|
||||
}
|
||||
model = new G4DiffuseElastic(particle);
|
||||
hel->RegisterMe(model);
|
||||
hel->RegisterMe(he);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
|
||||
// neutron case
|
||||
} else if(pname == "neutron") {
|
||||
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
hel = new G4UHadronElasticProcess("hElastic");
|
||||
hel->SetQElasticCrossSection(man);
|
||||
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
G4WHadronElasticProcess* hel = new G4WHadronElasticProcess();
|
||||
hel->AddDataSet(new G4NeutronElasticXS());
|
||||
model = new G4DiffuseElastic(particle);
|
||||
if(hpFlag) {
|
||||
model->SetMinEnergy(19.5*MeV);
|
||||
G4NeutronHPElastic* modelHP = new G4NeutronHPElastic();
|
||||
hel->RegisterMe(modelHP);
|
||||
hel->AddDataSet(new G4NeutronHPElasticData());
|
||||
} else {
|
||||
hel->RegisterMe(he);
|
||||
}
|
||||
hel->RegisterMe(model);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
|
||||
|
||||
@@ -23,36 +23,33 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronElasticPhysics.cc,v 1.9 2008/12/01 16:57:22 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4HadronElasticPhysics.cc,v 1.16 2010/09/24 12:54:13 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4HadronElasticPhysics
|
||||
// ClassName: G4HadronElasticPhysics
|
||||
//
|
||||
// Author: 11 April 2006 V. Ivanchenko
|
||||
// Author: 23 November 2006 V. Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
// 05.07.2006 V.Ivanchenko define process by particle name;
|
||||
// fix problem of initialisation of HP
|
||||
// 24.07.2006 V.Ivanchenko add G4NeutronHPElasticData
|
||||
// 10.08.2006 V.Ivanchenko separate neutrons from other particles
|
||||
// 17.11.2006 V.Ivanchenko do not redefine G4HadronElastic default parameters
|
||||
// 19.02.2007 V.Ivanchenko set QModelLowLimit and LowestEnergyLimit to zero
|
||||
// 19.02.2007 A.Howard set QModelLowLimit and LowestEnergyLimit to zero
|
||||
// for neutrons
|
||||
// 06.03.2007 V.Ivanchenko use updated interface to G4UElasticCrossSection
|
||||
// 21.03.2007 V.Ivanchenko Use G4BGGNucleonElasticXS and G4BGGPionElasticXS;
|
||||
// Reduce thresholds for HE and Q-models to zero
|
||||
// 03.06.2010 V.Ivanchenko cleanup constructors and ConstructProcess method
|
||||
// 29.07.2010 V.Ivanchenko rename this class from G4HadronHElasticPhysics to
|
||||
// G4HadronElasticPhysics, old version of the class
|
||||
// is renamed to G4HadronElasticPhysics93
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// CHIPS for sampling scattering for p and n
|
||||
// Glauber model for samplimg of high energy pi+- (E > 1GeV)
|
||||
// LHEP sampling model for the other particle
|
||||
// BBG cross sections for p, n and pi+-
|
||||
// LHEP cross sections for other particles
|
||||
|
||||
#include "G4HadronElasticPhysics.hh"
|
||||
|
||||
#include "G4HadronicProcess.hh"
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronicInteraction.hh"
|
||||
#include "G4LElastic.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
@@ -61,32 +58,42 @@
|
||||
#include "G4IonConstructor.hh"
|
||||
#include "G4Neutron.hh"
|
||||
|
||||
#include "G4VQCrossSection.hh"
|
||||
#include "G4UElasticCrossSection.hh"
|
||||
#include "G4WHadronElasticProcess.hh"
|
||||
#include "G4VHadronElastic.hh"
|
||||
#include "G4CHIPSElastic.hh"
|
||||
#include "G4ElasticHadrNucleusHE.hh"
|
||||
#include "G4BGGNucleonElasticXS.hh"
|
||||
#include "G4BGGPionElasticXS.hh"
|
||||
#include "G4NeutronElasticXS.hh"
|
||||
#include "G4CHIPSElasticXS.hh"
|
||||
|
||||
G4HadronElasticPhysics::G4HadronElasticPhysics(
|
||||
const G4String& name, G4int ver, G4bool hp, G4bool glauber)
|
||||
: G4VPhysicsConstructor(name), mname(name), verbose(ver), hpFlag(hp),
|
||||
glFlag(glauber),wasActivated(false)
|
||||
G4HadronElasticPhysics::G4HadronElasticPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("hElasticWEL_CHIPS"), verbose(ver),
|
||||
wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) G4cout << "### HadronElasticPhysics" << G4endl;
|
||||
model = 0;
|
||||
neutronModel = 0;
|
||||
neutronHPModel = 0;
|
||||
if(verbose > 1) {
|
||||
G4cout << "### G4HadronElasticPhysics: " << GetPhysicsName()
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
G4HadronElasticPhysics::G4HadronElasticPhysics(const G4String&,
|
||||
G4int ver, G4bool, const G4String&)
|
||||
: G4VPhysicsConstructor("hElasticWEL_CHIPS"), verbose(ver),
|
||||
wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) {
|
||||
G4cout << "### G4HadronElasticPhysics: " << GetPhysicsName()
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
G4HadronElasticPhysics::~G4HadronElasticPhysics()
|
||||
{
|
||||
delete model;
|
||||
delete neutronModel;
|
||||
delete neutronHPModel;
|
||||
}
|
||||
{}
|
||||
|
||||
void G4HadronElasticPhysics::ConstructParticle()
|
||||
{
|
||||
// G4cout << "G4HadronElasticPhysics::ConstructParticle" << G4endl;
|
||||
// G4cout << "G4HadronElasticPhysics::ConstructParticle" << G4endl;
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
@@ -100,31 +107,29 @@ void G4HadronElasticPhysics::ConstructParticle()
|
||||
|
||||
void G4HadronElasticPhysics::ConstructProcess()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
if(wasActivated) { return; }
|
||||
wasActivated = true;
|
||||
|
||||
G4double elimit = 1.0*GeV;
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysics Construct Processes with the model <"
|
||||
<< mname << ">" << G4endl;
|
||||
G4cout << "### HadronElasticPhysics Construct Processes with HE limit "
|
||||
<< elimit << " MeV" << G4endl;
|
||||
}
|
||||
G4HadronicProcess* hel = 0;
|
||||
G4VQCrossSection* man = 0;
|
||||
|
||||
if(mname == "elastic") {
|
||||
G4HadronElastic* he = new G4HadronElastic();
|
||||
model = he;
|
||||
man = he->GetCS();
|
||||
he->SetQModelLowLimit(0.0);
|
||||
he->SetLowestEnergyLimit(0.0);
|
||||
} else {
|
||||
model = new G4LElastic();
|
||||
}
|
||||
G4VHadronElastic* plep0 = new G4VHadronElastic();
|
||||
G4VHadronElastic* plep1 = new G4VHadronElastic();
|
||||
plep1->SetMaxEnergy(elimit);
|
||||
|
||||
G4CHIPSElastic* chipsp = new G4CHIPSElastic();
|
||||
G4CHIPSElastic* chipsn = new G4CHIPSElastic();
|
||||
|
||||
G4ElasticHadrNucleusHE* he = new G4ElasticHadrNucleusHE();
|
||||
he->SetMinEnergy(elimit);
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String pname = particle->GetParticleName();
|
||||
if(pname == "anti_lambda" ||
|
||||
pname == "anti_neutron" ||
|
||||
@@ -140,6 +145,9 @@ void G4HadronElasticPhysics::ConstructProcess()
|
||||
pname == "kaon0L" ||
|
||||
pname == "lambda" ||
|
||||
pname == "omega-" ||
|
||||
pname == "pi-" ||
|
||||
pname == "pi+" ||
|
||||
pname == "proton" ||
|
||||
pname == "sigma-" ||
|
||||
pname == "sigma+" ||
|
||||
pname == "xi-" ||
|
||||
@@ -147,83 +155,40 @@ void G4HadronElasticPhysics::ConstructProcess()
|
||||
pname == "deuteron" ||
|
||||
pname == "triton") {
|
||||
|
||||
if(mname == "elastic") {
|
||||
G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
|
||||
h->SetQElasticCrossSection(man);
|
||||
hel = h;
|
||||
if(glFlag) hel->AddDataSet(new G4UElasticCrossSection(particle));
|
||||
} else {
|
||||
hel = new G4HadronElasticProcess("hElastic");
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4WHadronElasticProcess* hel = new G4WHadronElasticProcess();
|
||||
if(pname == "proton") {
|
||||
//hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
hel->AddDataSet(new G4CHIPSElasticXS());
|
||||
hel->RegisterMe(chipsp);
|
||||
} else if (pname == "pi+" || pname == "pi-") {
|
||||
hel->AddDataSet(new G4BGGPionElasticXS(particle));
|
||||
hel->RegisterMe(plep1);
|
||||
hel->RegisterMe(he);
|
||||
} else {
|
||||
hel->RegisterMe(plep0);
|
||||
}
|
||||
hel->RegisterMe(model);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1)
|
||||
G4cout << "### HadronElasticPhysics added for "
|
||||
<< particle->GetParticleName() << G4endl;
|
||||
|
||||
// proton case
|
||||
} else if(pname == "proton") {
|
||||
if(mname == "elastic") {
|
||||
G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
|
||||
h->SetQElasticCrossSection(man);
|
||||
hel = h;
|
||||
if(glFlag) hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
} else {
|
||||
hel = new G4HadronElasticProcess("hElastic");
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
hel->RegisterMe(model);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1)
|
||||
G4cout << "### HadronElasticPhysics added for "
|
||||
<< particle->GetParticleName() << G4endl;
|
||||
|
||||
// neutron case
|
||||
} else if(pname == "neutron") {
|
||||
|
||||
if(mname == "elastic") {
|
||||
G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
|
||||
G4HadronElastic* nhe = new G4HadronElastic();
|
||||
nhe->SetQModelLowLimit(0.0);
|
||||
nhe->SetLowestEnergyLimit(0.0);
|
||||
neutronModel = nhe;
|
||||
h->SetQElasticCrossSection(nhe->GetCS());
|
||||
hel = h;
|
||||
if(glFlag) hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
} else {
|
||||
hel = new G4HadronElasticProcess("hElastic");
|
||||
neutronModel = new G4LElastic();
|
||||
}
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4WHadronElasticProcess* hel = new G4WHadronElasticProcess();
|
||||
//hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
hel->AddDataSet(new G4CHIPSElasticXS());
|
||||
hel->RegisterMe(chipsn);
|
||||
|
||||
if(hpFlag) {
|
||||
neutronModel->SetMinEnergy(19.5*MeV);
|
||||
neutronHPModel = new G4NeutronHPElastic();
|
||||
hel->RegisterMe(neutronHPModel);
|
||||
hel->AddDataSet(new G4NeutronHPElasticData());
|
||||
}
|
||||
|
||||
hel->RegisterMe(neutronModel);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### HadronElasticPhysics added for "
|
||||
<< particle->GetParticleName() << G4endl;
|
||||
|
||||
// pion case
|
||||
} else if(pname == "pi+" || pname == "pi-") {
|
||||
if(mname == "elastic") {
|
||||
G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
|
||||
h->SetQElasticCrossSection(man);
|
||||
hel = h;
|
||||
if(glFlag) hel->AddDataSet(new G4BGGPionElasticXS(particle));
|
||||
} else {
|
||||
hel = new G4HadronElasticProcess("hElastic");
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
hel->RegisterMe(model);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### HadronElasticPhysics added for "
|
||||
<< particle->GetParticleName() << G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,241 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronElasticPhysics93.cc,v 1.1 2010/07/29 10:52:14 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4HadronElasticPhysics93
|
||||
//
|
||||
// Author: 11 April 2006 V. Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
// 05.07.2006 V.Ivanchenko define process by particle name;
|
||||
// fix problem of initialisation of HP
|
||||
// 24.07.2006 V.Ivanchenko add G4NeutronHPElasticData
|
||||
// 10.08.2006 V.Ivanchenko separate neutrons from other particles
|
||||
// 17.11.2006 V.Ivanchenko do not redefine G4HadronElastic default parameters
|
||||
// 19.02.2007 V.Ivanchenko set QModelLowLimit and LowestEnergyLimit to zero
|
||||
// 19.02.2007 A.Howard set QModelLowLimit and LowestEnergyLimit to zero
|
||||
// for neutrons
|
||||
// 06.03.2007 V.Ivanchenko use updated interface to G4UElasticCrossSection
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4HadronElasticPhysics93.hh"
|
||||
|
||||
#include "G4HadronicProcess.hh"
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronicInteraction.hh"
|
||||
#include "G4LElastic.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
#include "G4Neutron.hh"
|
||||
|
||||
#include "G4VQCrossSection.hh"
|
||||
#include "G4UElasticCrossSection.hh"
|
||||
#include "G4BGGNucleonElasticXS.hh"
|
||||
#include "G4BGGPionElasticXS.hh"
|
||||
|
||||
G4HadronElasticPhysics93::G4HadronElasticPhysics93(G4int ver)
|
||||
: G4VPhysicsConstructor("elastic"), mname("elastic"),verbose(ver),
|
||||
hpFlag(false), glFlag(false),wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) G4cout << "### HadronElasticPhysics93" << G4endl;
|
||||
model = 0;
|
||||
neutronModel = 0;
|
||||
neutronHPModel = 0;
|
||||
}
|
||||
|
||||
G4HadronElasticPhysics93::G4HadronElasticPhysics93(
|
||||
const G4String& name, G4int ver, G4bool hp, G4bool glauber)
|
||||
: G4VPhysicsConstructor(name), mname(name), verbose(ver), hpFlag(hp),
|
||||
glFlag(glauber),wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) G4cout << "### HadronElasticPhysics93" << G4endl;
|
||||
model = 0;
|
||||
neutronModel = 0;
|
||||
neutronHPModel = 0;
|
||||
}
|
||||
|
||||
G4HadronElasticPhysics93::~G4HadronElasticPhysics93()
|
||||
{
|
||||
delete model;
|
||||
delete neutronModel;
|
||||
delete neutronHPModel;
|
||||
}
|
||||
|
||||
void G4HadronElasticPhysics93::ConstructParticle()
|
||||
{
|
||||
// G4cout << "G4HadronElasticPhysics93::ConstructParticle" << G4endl;
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
// Construct light ions
|
||||
G4IonConstructor pConstructor;
|
||||
pConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
void G4HadronElasticPhysics93::ConstructProcess()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
wasActivated = true;
|
||||
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysics93 Construct Processes with the model <"
|
||||
<< mname << ">" << G4endl;
|
||||
}
|
||||
G4HadronicProcess* hel = 0;
|
||||
G4VQCrossSection* man = 0;
|
||||
|
||||
if(mname == "elastic") {
|
||||
G4HadronElastic* he = new G4HadronElastic();
|
||||
model = he;
|
||||
man = he->GetCS();
|
||||
he->SetQModelLowLimit(0.0);
|
||||
he->SetLowestEnergyLimit(0.0);
|
||||
} else {
|
||||
model = new G4LElastic();
|
||||
}
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String pname = particle->GetParticleName();
|
||||
if(pname == "anti_lambda" ||
|
||||
pname == "anti_neutron" ||
|
||||
pname == "anti_omega-" ||
|
||||
pname == "anti_proton" ||
|
||||
pname == "anti_sigma-" ||
|
||||
pname == "anti_sigma+" ||
|
||||
pname == "anti_xi-" ||
|
||||
pname == "anti_xi0" ||
|
||||
pname == "kaon-" ||
|
||||
pname == "kaon+" ||
|
||||
pname == "kaon0S" ||
|
||||
pname == "kaon0L" ||
|
||||
pname == "lambda" ||
|
||||
pname == "omega-" ||
|
||||
pname == "sigma-" ||
|
||||
pname == "sigma+" ||
|
||||
pname == "xi-" ||
|
||||
pname == "alpha" ||
|
||||
pname == "deuteron" ||
|
||||
pname == "triton") {
|
||||
|
||||
if(mname == "elastic") {
|
||||
G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
|
||||
h->SetQElasticCrossSection(man);
|
||||
hel = h;
|
||||
if(glFlag) hel->AddDataSet(new G4UElasticCrossSection(particle));
|
||||
} else {
|
||||
hel = new G4HadronElasticProcess("hElastic");
|
||||
}
|
||||
hel->RegisterMe(model);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1)
|
||||
G4cout << "### HadronElasticPhysics93 added for "
|
||||
<< particle->GetParticleName() << G4endl;
|
||||
|
||||
// proton case
|
||||
} else if(pname == "proton") {
|
||||
if(mname == "elastic") {
|
||||
G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
|
||||
h->SetQElasticCrossSection(man);
|
||||
hel = h;
|
||||
if(glFlag) hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
} else {
|
||||
hel = new G4HadronElasticProcess("hElastic");
|
||||
}
|
||||
hel->RegisterMe(model);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1)
|
||||
G4cout << "### HadronElasticPhysics93 added for "
|
||||
<< particle->GetParticleName() << G4endl;
|
||||
|
||||
// neutron case
|
||||
} else if(pname == "neutron") {
|
||||
|
||||
if(mname == "elastic") {
|
||||
G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
|
||||
G4HadronElastic* nhe = new G4HadronElastic();
|
||||
nhe->SetQModelLowLimit(0.0);
|
||||
nhe->SetLowestEnergyLimit(0.0);
|
||||
neutronModel = nhe;
|
||||
h->SetQElasticCrossSection(nhe->GetCS());
|
||||
hel = h;
|
||||
if(glFlag) hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
} else {
|
||||
hel = new G4HadronElasticProcess("hElastic");
|
||||
neutronModel = new G4LElastic();
|
||||
}
|
||||
|
||||
if(hpFlag) {
|
||||
neutronModel->SetMinEnergy(19.5*MeV);
|
||||
neutronHPModel = new G4NeutronHPElastic();
|
||||
hel->RegisterMe(neutronHPModel);
|
||||
hel->AddDataSet(new G4NeutronHPElasticData());
|
||||
}
|
||||
|
||||
hel->RegisterMe(neutronModel);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### HadronElasticPhysics93 added for "
|
||||
<< particle->GetParticleName() << G4endl;
|
||||
|
||||
// pion case
|
||||
} else if(pname == "pi+" || pname == "pi-") {
|
||||
if(mname == "elastic") {
|
||||
G4UHadronElasticProcess* h = new G4UHadronElasticProcess("hElastic");
|
||||
h->SetQElasticCrossSection(man);
|
||||
hel = h;
|
||||
if(glFlag) hel->AddDataSet(new G4BGGPionElasticXS(particle));
|
||||
} else {
|
||||
hel = new G4HadronElasticProcess("hElastic");
|
||||
}
|
||||
hel->RegisterMe(model);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
|
||||
if(verbose > 1)
|
||||
G4cout << "### HadronElasticPhysics93 added for "
|
||||
<< particle->GetParticleName() << G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,191 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronElasticPhysicsHP.cc,v 1.3 2010/09/23 18:53:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4HadronElasticPhysicsHP
|
||||
//
|
||||
// Author: 3 June 2010 V. Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// CHIPS for sampling scattering for p and n
|
||||
// HP model for n with E < 20 MeV
|
||||
// Glauber model for samplimg of high energy pi+- (E > 1GeV)
|
||||
// LHEP sampling model for the other particle
|
||||
// BBG cross sections for n, p and pi+-
|
||||
// HP cross sections for n n with E < 20 MeV
|
||||
// LHEP cross sections for other particles
|
||||
|
||||
#include "G4HadronElasticPhysicsHP.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
#include "G4Neutron.hh"
|
||||
|
||||
#include "G4WHadronElasticProcess.hh"
|
||||
#include "G4VHadronElastic.hh"
|
||||
#include "G4CHIPSElastic.hh"
|
||||
#include "G4ElasticHadrNucleusHE.hh"
|
||||
#include "G4NeutronHPElastic.hh"
|
||||
#include "G4UElasticCrossSection.hh"
|
||||
#include "G4BGGNucleonElasticXS.hh"
|
||||
#include "G4BGGPionElasticXS.hh"
|
||||
#include "G4NeutronElasticXS.hh"
|
||||
#include "G4CHIPSElasticXS.hh"
|
||||
|
||||
#include "G4NeutronHPElastic.hh"
|
||||
#include "G4NeutronHPElasticData.hh"
|
||||
|
||||
G4HadronElasticPhysicsHP::G4HadronElasticPhysicsHP(G4int ver)
|
||||
: G4VPhysicsConstructor("hElasticWEL_CHIPS_HP"), verbose(ver),
|
||||
wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) {
|
||||
G4cout << "### G4HadronElasticPhysicsHP: " << GetPhysicsName()
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
G4HadronElasticPhysicsHP::~G4HadronElasticPhysicsHP()
|
||||
{}
|
||||
|
||||
void G4HadronElasticPhysicsHP::ConstructParticle()
|
||||
{
|
||||
// G4cout << "G4HadronElasticPhysics::ConstructParticle" << G4endl;
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
// Construct light ions
|
||||
G4IonConstructor pConstructor;
|
||||
pConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
void G4HadronElasticPhysicsHP::ConstructProcess()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
wasActivated = true;
|
||||
|
||||
G4double elimit = 1.0*GeV;
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysicsHP Construct Processes with HE limit "
|
||||
<< elimit << " MeV" << G4endl;
|
||||
}
|
||||
|
||||
G4VHadronElastic* plep0 = new G4VHadronElastic();
|
||||
G4VHadronElastic* plep1 = new G4VHadronElastic();
|
||||
plep1->SetMaxEnergy(elimit);
|
||||
|
||||
G4CHIPSElastic* chipsp = new G4CHIPSElastic();
|
||||
G4CHIPSElastic* chipsn = new G4CHIPSElastic();
|
||||
|
||||
G4ElasticHadrNucleusHE* he = new G4ElasticHadrNucleusHE();
|
||||
he->SetMinEnergy(elimit);
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4String pname = particle->GetParticleName();
|
||||
if(pname == "anti_lambda" ||
|
||||
pname == "anti_neutron" ||
|
||||
pname == "anti_omega-" ||
|
||||
pname == "anti_proton" ||
|
||||
pname == "anti_sigma-" ||
|
||||
pname == "anti_sigma+" ||
|
||||
pname == "anti_xi-" ||
|
||||
pname == "anti_xi0" ||
|
||||
pname == "kaon-" ||
|
||||
pname == "kaon+" ||
|
||||
pname == "kaon0S" ||
|
||||
pname == "kaon0L" ||
|
||||
pname == "lambda" ||
|
||||
pname == "omega-" ||
|
||||
pname == "pi-" ||
|
||||
pname == "pi+" ||
|
||||
pname == "proton" ||
|
||||
pname == "sigma-" ||
|
||||
pname == "sigma+" ||
|
||||
pname == "xi-" ||
|
||||
pname == "alpha" ||
|
||||
pname == "deuteron" ||
|
||||
pname == "triton") {
|
||||
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4WHadronElasticProcess* hel = new G4WHadronElasticProcess();
|
||||
if(pname == "proton") {
|
||||
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
hel->AddDataSet(new G4CHIPSElasticXS());
|
||||
hel->RegisterMe(chipsp);
|
||||
} else if (pname == "pi+" || pname == "pi-") {
|
||||
hel->AddDataSet(new G4BGGPionElasticXS(particle));
|
||||
hel->RegisterMe(plep1);
|
||||
hel->RegisterMe(he);
|
||||
} else {
|
||||
hel->RegisterMe(plep0);
|
||||
}
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysicsHP: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
|
||||
// neutron case
|
||||
} else if(pname == "neutron") {
|
||||
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4WHadronElasticProcess* hel = new G4WHadronElasticProcess();
|
||||
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
hel->AddDataSet(new G4CHIPSElasticXS());
|
||||
hel->RegisterMe(chipsn);
|
||||
|
||||
chipsn->SetMinEnergy(19.5*MeV);
|
||||
G4NeutronHPElastic* hp = new G4NeutronHPElastic();
|
||||
hel->RegisterMe(hp);
|
||||
hel->AddDataSet(new G4NeutronHPElasticData());
|
||||
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysicsHP: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronElasticPhysicsLHEP.cc,v 1.2 2010/06/03 14:28:32 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4HadronElasticPhysicsLHEP
|
||||
//
|
||||
// Author: 3 June 2010 V. Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// LHEP x-sectios and sampling
|
||||
|
||||
#include "G4HadronElasticPhysicsLHEP.hh"
|
||||
|
||||
#include "G4HadronicProcess.hh"
|
||||
#include "G4HadronElasticProcess.hh"
|
||||
#include "G4HadronicInteraction.hh"
|
||||
#include "G4LElastic.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
#include "G4Neutron.hh"
|
||||
|
||||
G4HadronElasticPhysicsLHEP::G4HadronElasticPhysicsLHEP(G4int ver)
|
||||
: G4VPhysicsConstructor("hElasticLHEP"), verbose(ver),
|
||||
wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) {
|
||||
G4cout << "### G4HadronElasticPhysicsLHEP: " << GetPhysicsName()
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
G4HadronElasticPhysicsLHEP::~G4HadronElasticPhysicsLHEP()
|
||||
{}
|
||||
|
||||
void G4HadronElasticPhysicsLHEP::ConstructParticle()
|
||||
{
|
||||
// G4cout << "G4HadronElasticPhysicsLHEP::ConstructParticle" << G4endl;
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
// Construct light ions
|
||||
G4IonConstructor pConstructor;
|
||||
pConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
void G4HadronElasticPhysicsLHEP::ConstructProcess()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
wasActivated = true;
|
||||
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysicsLHEP Construct Processes"
|
||||
<< G4endl;
|
||||
}
|
||||
G4HadronicProcess* hel = 0;
|
||||
G4HadronicInteraction* model = new G4LElastic();
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4String pname = particle->GetParticleName();
|
||||
if(pname == "anti_lambda" ||
|
||||
pname == "anti_neutron" ||
|
||||
pname == "anti_omega-" ||
|
||||
pname == "anti_proton" ||
|
||||
pname == "anti_sigma-" ||
|
||||
pname == "anti_sigma+" ||
|
||||
pname == "anti_xi-" ||
|
||||
pname == "anti_xi0" ||
|
||||
pname == "kaon-" ||
|
||||
pname == "kaon+" ||
|
||||
pname == "kaon0S" ||
|
||||
pname == "kaon0L" ||
|
||||
pname == "lambda" ||
|
||||
pname == "omega-" ||
|
||||
pname == "sigma-" ||
|
||||
pname == "sigma+" ||
|
||||
pname == "xi-" ||
|
||||
pname == "neutron" ||
|
||||
pname == "proton" ||
|
||||
pname == "pi+" ||
|
||||
pname == "pi-" ||
|
||||
pname == "alpha" ||
|
||||
pname == "deuteron" ||
|
||||
pname == "triton") {
|
||||
|
||||
hel = new G4HadronElasticProcess("hElasticLHEP");
|
||||
hel->RegisterMe(model);
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysicsLHEP added for "
|
||||
<< particle->GetParticleName() << G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,177 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronElasticPhysicsXS.cc,v 1.2 2010/06/03 14:28:32 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4HadronElasticPhysicsXS
|
||||
//
|
||||
// Author: 3 June 2010 V. Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// CHIPS for sampling scattering for p and n
|
||||
// Glauber model for samplimg of high energy pi+- (E > 1GeV)
|
||||
// LHEP sampling model for the other particle
|
||||
// BBG cross sections for p and pi+-
|
||||
// XS cross sections for neutrons
|
||||
// LHEP cross sections for other particles
|
||||
|
||||
#include "G4HadronElasticPhysicsXS.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
#include "G4Neutron.hh"
|
||||
|
||||
#include "G4WHadronElasticProcess.hh"
|
||||
#include "G4VHadronElastic.hh"
|
||||
#include "G4CHIPSElastic.hh"
|
||||
#include "G4ElasticHadrNucleusHE.hh"
|
||||
#include "G4BGGNucleonElasticXS.hh"
|
||||
#include "G4BGGPionElasticXS.hh"
|
||||
#include "G4NeutronElasticXS.hh"
|
||||
|
||||
G4HadronElasticPhysicsXS::G4HadronElasticPhysicsXS(G4int ver)
|
||||
: G4VPhysicsConstructor("hElasticWEL_CHIPS_XS"), verbose(ver),
|
||||
wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) {
|
||||
G4cout << "### G4HadronElasticPhysicsHP: " << GetPhysicsName()
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
G4HadronElasticPhysicsXS::~G4HadronElasticPhysicsXS()
|
||||
{}
|
||||
|
||||
void G4HadronElasticPhysicsXS::ConstructParticle()
|
||||
{
|
||||
// G4cout << "G4HadronElasticPhysics::ConstructParticle" << G4endl;
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
// Construct light ions
|
||||
G4IonConstructor pConstructor;
|
||||
pConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
void G4HadronElasticPhysicsXS::ConstructProcess()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
wasActivated = true;
|
||||
|
||||
G4double elimit = 1.0*GeV;
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysics Construct Processes with HE limit "
|
||||
<< elimit << " MeV" << G4endl;
|
||||
}
|
||||
|
||||
G4VHadronElastic* plep0 = new G4VHadronElastic();
|
||||
G4VHadronElastic* plep1 = new G4VHadronElastic();
|
||||
plep1->SetMaxEnergy(elimit);
|
||||
|
||||
G4CHIPSElastic* chipsp = new G4CHIPSElastic();
|
||||
G4CHIPSElastic* chipsn = new G4CHIPSElastic();
|
||||
|
||||
G4ElasticHadrNucleusHE* he = new G4ElasticHadrNucleusHE();
|
||||
he->SetMinEnergy(elimit);
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4String pname = particle->GetParticleName();
|
||||
if(pname == "anti_lambda" ||
|
||||
pname == "anti_neutron" ||
|
||||
pname == "anti_omega-" ||
|
||||
pname == "anti_proton" ||
|
||||
pname == "anti_sigma-" ||
|
||||
pname == "anti_sigma+" ||
|
||||
pname == "anti_xi-" ||
|
||||
pname == "anti_xi0" ||
|
||||
pname == "kaon-" ||
|
||||
pname == "kaon+" ||
|
||||
pname == "kaon0S" ||
|
||||
pname == "kaon0L" ||
|
||||
pname == "lambda" ||
|
||||
pname == "omega-" ||
|
||||
pname == "pi-" ||
|
||||
pname == "pi+" ||
|
||||
pname == "proton" ||
|
||||
pname == "sigma-" ||
|
||||
pname == "sigma+" ||
|
||||
pname == "xi-" ||
|
||||
pname == "alpha" ||
|
||||
pname == "deuteron" ||
|
||||
pname == "triton") {
|
||||
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4WHadronElasticProcess* hel = new G4WHadronElasticProcess();
|
||||
if(pname == "proton") {
|
||||
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
hel->RegisterMe(chipsp);
|
||||
} else if (pname == "pi+" || pname == "pi-") {
|
||||
hel->AddDataSet(new G4BGGPionElasticXS(particle));
|
||||
hel->RegisterMe(plep1);
|
||||
hel->RegisterMe(he);
|
||||
} else {
|
||||
hel->RegisterMe(plep0);
|
||||
}
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysicsXS: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
|
||||
// neutron case
|
||||
} else if(pname == "neutron") {
|
||||
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4WHadronElasticProcess* hel = new G4WHadronElasticProcess();
|
||||
hel->AddDataSet(new G4NeutronElasticXS());
|
||||
hel->RegisterMe(chipsn);
|
||||
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronElasticPhysicsXS: " << hel->GetProcessName()
|
||||
<< " added for " << particle->GetParticleName() << G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronHElasticPhysics.cc,v 1.7 2009/11/28 17:35:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4HadronHElasticPhysics.cc,v 1.10 2010/07/29 10:52:14 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -35,9 +35,15 @@
|
||||
// Modified:
|
||||
// 21.03.07 (V.Ivanchenko) Use G4BGGNucleonElasticXS and G4BGGPionElasticXS;
|
||||
// Reduce thresholds for HE and Q-models to zero
|
||||
// 03.06.2010 V.Ivanchenko cleanup constructors and ConstructProcess method
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// CHIPS for sampling scattering for p and n
|
||||
// Glauber model for samplimg of high energy pi+- (E > 1GeV)
|
||||
// LHEP sampling model for the other particle
|
||||
// BBG cross sections for p, n and pi+-
|
||||
// LHEP cross sections for other particles
|
||||
|
||||
#include "G4HadronHElasticPhysics.hh"
|
||||
|
||||
@@ -53,18 +59,28 @@
|
||||
#include "G4VHadronElastic.hh"
|
||||
#include "G4CHIPSElastic.hh"
|
||||
#include "G4ElasticHadrNucleusHE.hh"
|
||||
#include "G4NeutronHPElastic.hh"
|
||||
#include "G4UElasticCrossSection.hh"
|
||||
#include "G4BGGNucleonElasticXS.hh"
|
||||
#include "G4BGGPionElasticXS.hh"
|
||||
#include "G4NeutronElasticXS.hh"
|
||||
|
||||
G4HadronHElasticPhysics::G4HadronHElasticPhysics(G4int ver, G4bool hp,
|
||||
const G4String& type)
|
||||
: G4VPhysicsConstructor("HElastic"), verbose(ver),
|
||||
hpFlag(hp), wasActivated(false), subtype(type)
|
||||
G4HadronHElasticPhysics::G4HadronHElasticPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("hElasticWEL_CHIPS"), verbose(ver),
|
||||
wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) G4cout << "### HadronHElasticPhysics" << G4endl;
|
||||
// if(verbose > 1) {
|
||||
G4cout << "### G4HadronHElasticPhysics: " << GetPhysicsName()
|
||||
<< " is obsolete and soon will be removed" << G4endl;
|
||||
}
|
||||
|
||||
G4HadronHElasticPhysics::G4HadronHElasticPhysics(G4int ver, G4bool,
|
||||
const G4String&)
|
||||
: G4VPhysicsConstructor("hElasticWEL_CHIPS"), verbose(ver),
|
||||
wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) {
|
||||
G4cout << "### G4HadronHElasticPhysics: " << GetPhysicsName()
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
G4HadronHElasticPhysics::~G4HadronHElasticPhysics()
|
||||
@@ -86,7 +102,7 @@ void G4HadronHElasticPhysics::ConstructParticle()
|
||||
|
||||
void G4HadronHElasticPhysics::ConstructProcess()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
if(wasActivated) { return; }
|
||||
wasActivated = true;
|
||||
|
||||
G4double elimit = 1.0*GeV;
|
||||
@@ -144,7 +160,6 @@ void G4HadronHElasticPhysics::ConstructProcess()
|
||||
hel->RegisterMe(plep1);
|
||||
hel->RegisterMe(he);
|
||||
} else {
|
||||
//hel->AddDataSet(new G4UElasticCrossSection(particle));
|
||||
hel->RegisterMe(plep0);
|
||||
}
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
@@ -158,19 +173,9 @@ void G4HadronHElasticPhysics::ConstructProcess()
|
||||
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
G4WHadronElasticProcess* hel = new G4WHadronElasticProcess();
|
||||
if(subtype == "QBBC_XGGSN") {
|
||||
hel->AddDataSet(new G4NeutronElasticXS());
|
||||
} else {
|
||||
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
}
|
||||
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
|
||||
hel->RegisterMe(chipsn);
|
||||
|
||||
if(hpFlag) {
|
||||
chipsn->SetMinEnergy(19.5*MeV);
|
||||
G4NeutronHPElastic* hp = new G4NeutronHPElastic();
|
||||
hel->RegisterMe(hp);
|
||||
hel->AddDataSet(new G4NeutronHPElasticData());
|
||||
}
|
||||
pmanager->AddDiscreteProcess(hel);
|
||||
|
||||
if(verbose > 1) {
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4HadronQElasticPhysics.cc,v 1.7 2008/05/19 10:21:34 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4HadronQElasticPhysics.cc,v 1.9 2010/06/03 14:28:32 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -33,9 +33,12 @@
|
||||
// Author: 17 Nov 2006 V.Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
// 03.06.2010 V.Ivanchenko cleanup constructors and ConstructProcess method
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// CHIPS x-sections and generator (G4QElastic) for n and p
|
||||
// LHEP x-section and generator for the rest
|
||||
|
||||
#include "G4HadronQElasticPhysics.hh"
|
||||
|
||||
@@ -53,11 +56,25 @@
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
G4HadronQElasticPhysics::G4HadronQElasticPhysics(
|
||||
const G4String& name, G4int ver)
|
||||
: G4VPhysicsConstructor(name), verbose(ver), wasActivated(false)
|
||||
G4HadronQElasticPhysics::G4HadronQElasticPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("hElasticCHIPS_LHEP"), verbose(ver),
|
||||
wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) G4cout << "### HadronQElasticPhysics" << G4endl;
|
||||
if(verbose > 1) {
|
||||
G4cout << "### G4HadronQElasticPhysics: " << GetPhysicsName()
|
||||
<< G4endl;
|
||||
}
|
||||
model = 0;
|
||||
}
|
||||
|
||||
G4HadronQElasticPhysics::G4HadronQElasticPhysics(const G4String&, G4int ver)
|
||||
: G4VPhysicsConstructor("hElasticCHIPS_UELAST"), verbose(ver),
|
||||
wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) {
|
||||
G4cout << "### G4HadronQElasticPhysics: " << GetPhysicsName()
|
||||
<< G4endl;
|
||||
}
|
||||
model = 0;
|
||||
}
|
||||
|
||||
@@ -81,15 +98,15 @@ void G4HadronQElasticPhysics::ConstructParticle()
|
||||
|
||||
void G4HadronQElasticPhysics::ConstructProcess()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
if(wasActivated) { return; }
|
||||
wasActivated = true;
|
||||
|
||||
G4double elimit = DBL_MAX;
|
||||
|
||||
if(verbose > 1)
|
||||
if(verbose > 1) {
|
||||
G4cout << "### HadronQElasticPhysics: use HE limit " << elimit << " MeV"
|
||||
<< G4endl;
|
||||
|
||||
}
|
||||
process = new G4QElastic();
|
||||
|
||||
model = new G4HadronElastic();
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4IonBinaryCascadePhysics.cc,v 1.2 2009/02/16 10:15:35 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4IonBinaryCascadePhysics.cc,v 1.4 2010/07/30 14:20:08 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -50,6 +50,7 @@
|
||||
#include "G4TripathiCrossSection.hh"
|
||||
#include "G4TripathiLightCrossSection.hh"
|
||||
#include "G4IonsShenCrossSection.hh"
|
||||
#include "G4IonProtonCrossSection.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
@@ -58,9 +59,18 @@
|
||||
// Nuclei
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
G4IonBinaryCascadePhysics::G4IonBinaryCascadePhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("IonBinaryCascade"), verbose(ver), wasActivated(false)
|
||||
{
|
||||
emax = 20.*GeV;
|
||||
emaxLHEP = 1.*TeV;
|
||||
eminBIC = 0.*MeV;
|
||||
if(verbose > 1) G4cout << "### G4IonBinaryCascadePhysics" << G4endl;
|
||||
}
|
||||
|
||||
G4IonBinaryCascadePhysics::G4IonBinaryCascadePhysics(const G4String& name,
|
||||
G4int verb)
|
||||
: G4VPhysicsConstructor(name), verbose(verb), wasActivated(false)
|
||||
G4int ver)
|
||||
: G4VPhysicsConstructor(name), verbose(ver), wasActivated(false)
|
||||
{
|
||||
emax = 20.*GeV;
|
||||
emaxLHEP = 1.*TeV;
|
||||
@@ -74,6 +84,7 @@ G4IonBinaryCascadePhysics::~G4IonBinaryCascadePhysics()
|
||||
delete fTripathi;
|
||||
delete fTripathiLight;
|
||||
delete fShen;
|
||||
delete fIonH;
|
||||
delete fLEDModel;
|
||||
delete fLETModel;
|
||||
delete fLEAModel;
|
||||
@@ -87,7 +98,7 @@ G4IonBinaryCascadePhysics::~G4IonBinaryCascadePhysics()
|
||||
|
||||
void G4IonBinaryCascadePhysics::ConstructProcess()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
if(wasActivated) { return; }
|
||||
wasActivated = true;
|
||||
|
||||
G4BinaryLightIonReaction* fBC= new G4BinaryLightIonReaction();
|
||||
@@ -95,6 +106,7 @@ void G4IonBinaryCascadePhysics::ConstructProcess()
|
||||
fShen = new G4IonsShenCrossSection;
|
||||
fTripathi = new G4TripathiCrossSection;
|
||||
fTripathiLight = new G4TripathiLightCrossSection;
|
||||
fIonH = new G4IonProtonCrossSection;
|
||||
|
||||
fLEDModel = new G4LEDeuteronInelastic();
|
||||
fLETModel = new G4LETritonInelastic();
|
||||
@@ -120,6 +132,7 @@ void G4IonBinaryCascadePhysics::AddProcess(const G4String& name,
|
||||
hadi->AddDataSet(fShen);
|
||||
hadi->AddDataSet(fTripathi);
|
||||
hadi->AddDataSet(fTripathiLight);
|
||||
if(p == G4GenericIon::GenericIon()) { hadi->AddDataSet(fIonH); }
|
||||
hmodel->SetMinEnergy(eminBIC);
|
||||
hmodel->SetMaxEnergy(emax);
|
||||
hadi->RegisterMe(hmodel);
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4IonInclAblaPhysics.cc,v 1.1 2009/07/19 18:24:03 kaitanie Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4IonInclAblaPhysics.cc,v 1.2 2010/06/03 15:03:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -58,9 +58,22 @@
|
||||
// Nuclei
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
G4IonInclAblaPhysics::G4IonInclAblaPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("IonInclAbla"), verbose(ver), wasActivated(false)
|
||||
{
|
||||
// INCL/ABLA light ion maximum energy is 3.0 GeV/nucleon
|
||||
emax_d = 2 * 3.0 * GeV;
|
||||
emax_t = 3 * 3.0 * GeV;
|
||||
emax_he3 = 3 * 3.0 * GeV;
|
||||
emax_alpha = 4 * 3.0 * GeV;
|
||||
emaxLHEP = 1.*TeV;
|
||||
emin = 0.*MeV;
|
||||
if(verbose > 1) G4cout << "### G4IonInclAblaPhysics" << G4endl;
|
||||
}
|
||||
|
||||
G4IonInclAblaPhysics::G4IonInclAblaPhysics(const G4String& name,
|
||||
G4int verb)
|
||||
: G4VPhysicsConstructor(name), verbose(verb), wasActivated(false)
|
||||
G4int ver)
|
||||
: G4VPhysicsConstructor(name), verbose(ver), wasActivated(false)
|
||||
{
|
||||
// INCL/ABLA light ion maximum energy is 3.0 GeV/nucleon
|
||||
emax_d = 2 * 3.0 * GeV;
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4IonPhysics.cc,v 1.1 2006/10/31 11:35:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4IonPhysics.cc,v 1.2 2010/06/03 14:37:24 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -55,6 +55,12 @@
|
||||
// Nuclei
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
G4IonPhysics::G4IonPhysics(G4int)
|
||||
: G4VPhysicsConstructor("IonPhysics")
|
||||
, wasActivated(false)
|
||||
{
|
||||
}
|
||||
|
||||
G4IonPhysics::G4IonPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name), wasActivated(false)
|
||||
{
|
||||
@@ -111,7 +117,3 @@ void G4IonPhysics::ConstructProcess()
|
||||
G4IonConstructor pConstructor;
|
||||
pConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4IonQMDPhysics.cc,v 1.1 2009/11/27 17:25:15 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4IonQMDPhysics.cc,v 1.4 2010/09/30 21:23:05 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -59,9 +59,20 @@
|
||||
// Nuclei
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
G4IonQMDPhysics::G4IonQMDPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("IonQMD"), verbose(ver), wasActivated(false)
|
||||
{
|
||||
eminBIC = 0.*MeV;
|
||||
eminQMD = 100.*MeV;
|
||||
emaxQMD = 10.*GeV;
|
||||
emaxLHEP = 1.*TeV;
|
||||
overlap = 10*MeV;
|
||||
if(verbose > 1) G4cout << "### G4IonQMDPhysics" << G4endl;
|
||||
}
|
||||
|
||||
G4IonQMDPhysics::G4IonQMDPhysics(const G4String& name,
|
||||
G4int verb)
|
||||
: G4VPhysicsConstructor(name), verbose(verb), wasActivated(false)
|
||||
G4int ver)
|
||||
: G4VPhysicsConstructor(name), verbose(ver), wasActivated(false)
|
||||
{
|
||||
eminBIC = 0.*MeV;
|
||||
eminQMD = 100.*MeV;
|
||||
@@ -106,10 +117,10 @@ void G4IonQMDPhysics::ConstructProcess()
|
||||
fLETModel = new G4LETritonInelastic();
|
||||
fLEAModel = new G4LEAlphaInelastic();
|
||||
|
||||
AddProcess("dInelastic", G4Deuteron::Deuteron(), fBC,0, fLEDModel);
|
||||
AddProcess("tInelastic",G4Triton::Triton(), fBC,0, fLETModel);
|
||||
AddProcess("He3Inelastic",G4He3::He3(), fBC,0, 0);
|
||||
AddProcess("alphaInelastic", G4Alpha::Alpha(), fBC,0, fLEAModel);
|
||||
AddProcess("dInelastic", G4Deuteron::Deuteron(), fBC, fQMD, fLEDModel );
|
||||
AddProcess("tInelastic",G4Triton::Triton(), fBC, fQMD, fLETModel );
|
||||
AddProcess("He3Inelastic",G4He3::He3(), fBC, fQMD, 0 );
|
||||
AddProcess("alphaInelastic", G4Alpha::Alpha(), fBC, fQMD, fLEAModel );
|
||||
AddProcess("ionInelastic",G4GenericIon::GenericIon(), fBC, fQMD, 0);
|
||||
|
||||
}
|
||||
@@ -135,7 +146,7 @@ void G4IonQMDPhysics::AddProcess(const G4String& name,
|
||||
|
||||
if(QMD) {
|
||||
QMD->SetMinEnergy(eminQMD);
|
||||
BIC->SetMaxEnergy(eminQMD-overlap);
|
||||
BIC->SetMaxEnergy(eminQMD+overlap);
|
||||
QMD->SetMaxEnergy(emaxQMD);
|
||||
hadi->RegisterMe(QMD);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4KaonBuilder.cc,v 1.1 2010/11/19 16:21:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4KaonBuilder
|
||||
//
|
||||
// Author: 2010 G.Folger
|
||||
// devired from G4PiKBuilder
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4KaonBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4KaonBuilder::
|
||||
G4KaonBuilder(): wasActivated(false)
|
||||
{
|
||||
theKaonPlusInelastic=new G4KaonPlusInelasticProcess;
|
||||
theKaonMinusInelastic=new G4KaonMinusInelasticProcess;
|
||||
theKaonZeroLInelastic=new G4KaonZeroLInelasticProcess;
|
||||
theKaonZeroSInelastic=new G4KaonZeroSInelasticProcess;
|
||||
}
|
||||
|
||||
G4KaonBuilder::
|
||||
~G4KaonBuilder(){
|
||||
delete theKaonPlusInelastic;
|
||||
delete theKaonMinusInelastic;
|
||||
delete theKaonZeroLInelastic;
|
||||
delete theKaonZeroSInelastic;
|
||||
}
|
||||
|
||||
void G4KaonBuilder::
|
||||
Build()
|
||||
{
|
||||
wasActivated = true;
|
||||
|
||||
std::vector<G4VKaonBuilder *>::iterator i;
|
||||
for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++)
|
||||
{
|
||||
(*i)->Build(theKaonPlusInelastic);
|
||||
(*i)->Build(theKaonMinusInelastic);
|
||||
(*i)->Build(theKaonZeroLInelastic);
|
||||
(*i)->Build(theKaonZeroSInelastic);
|
||||
}
|
||||
G4ProcessManager * theProcMan;
|
||||
|
||||
theProcMan = G4KaonPlus::KaonPlus()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(theKaonPlusInelastic);
|
||||
|
||||
theProcMan = G4KaonMinus::KaonMinus()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(theKaonMinusInelastic);
|
||||
|
||||
theProcMan = G4KaonZeroLong::KaonZeroLong()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(theKaonZeroLInelastic);
|
||||
|
||||
theProcMan = G4KaonZeroShort::KaonZeroShort()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(theKaonZeroSInelastic);
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4LEPPionBuilder
|
||||
//
|
||||
// Author: 2010 G.Folger
|
||||
// devired from G4LEPPiKBuilder
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4LEPPionBuilder.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4LEPPionBuilder::
|
||||
G4LEPPionBuilder()
|
||||
{
|
||||
theMin = 0;
|
||||
theMax = 55*GeV;
|
||||
}
|
||||
|
||||
G4LEPPionBuilder::
|
||||
~G4LEPPionBuilder()
|
||||
{
|
||||
delete theLEPionPlusModel;
|
||||
}
|
||||
|
||||
void G4LEPPionBuilder::
|
||||
Build(G4HadronElasticProcess *)
|
||||
{
|
||||
G4cout << "Info - G4LEPPionBuilder::Build() not adding elastic" << G4endl;
|
||||
}
|
||||
|
||||
void G4LEPPionBuilder::
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
theLEPionPlusModel = new G4LEPionPlusInelastic();
|
||||
theLEPionPlusModel->SetMinEnergy(theMin);
|
||||
theLEPionPlusModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theLEPionPlusModel);
|
||||
}
|
||||
|
||||
void G4LEPPionBuilder::
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
theLEPionMinusModel = new G4LEPionMinusInelastic();
|
||||
theLEPionMinusModel->SetMinEnergy(theMin);
|
||||
theLEPionMinusModel->SetMaxEnergy(theMax);
|
||||
aP->RegisterMe(theLEPionMinusModel);
|
||||
}
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LHEPStoppingPhysics.cc,v 1.1 2006/10/31 11:35:03 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4LHEPStoppingPhysics.cc,v 1.2 2010/06/03 15:03:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -56,6 +56,10 @@
|
||||
#include "G4AntiProtonAnnihilationAtRest.hh"
|
||||
#include "G4AntiNeutronAnnihilationAtRest.hh"
|
||||
|
||||
G4LHEPStoppingPhysics::G4LHEPStoppingPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("LHEP Stopping"), verbose(ver), wasActivated(false)
|
||||
{}
|
||||
|
||||
G4LHEPStoppingPhysics::G4LHEPStoppingPhysics(const G4String& nam, G4int ver)
|
||||
: G4VPhysicsConstructor(nam), verbose(ver), wasActivated(false)
|
||||
{}
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4MiscCHIPSBuilder
|
||||
//
|
||||
// Author: 2010, G.Folger
|
||||
//
|
||||
// created by modifying G4QInelasticCHIPSBuilder to apply only to MISC particles
|
||||
// -----------------------------------------------------------------------------
|
||||
#include "G4MiscCHIPSBuilder.hh"
|
||||
|
||||
G4MiscCHIPSBuilder::G4MiscCHIPSBuilder(G4int ver):
|
||||
verbose(ver), wasActivated(false)
|
||||
{
|
||||
// pointer to the particle table
|
||||
theParticleTable = G4ParticleTable::GetParticleTable();
|
||||
theParticleIterator = theParticleTable->GetIterator();
|
||||
}
|
||||
|
||||
G4MiscCHIPSBuilder::~G4MiscCHIPSBuilder()
|
||||
{
|
||||
if(wasActivated) delete inelastic;
|
||||
}
|
||||
|
||||
void G4MiscCHIPSBuilder::Build()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
|
||||
wasActivated = true;
|
||||
theParticleIterator->reset();
|
||||
inelastic = new G4QInelastic();
|
||||
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4String pname = particle->GetParticleName();
|
||||
if(pname == "kaon-" || pname == "kaon+" || pname == "kaon0S" || pname == "kaon0L" ||
|
||||
pname == "pi-" || pname == "pi+" || pname == "neutron" || pname == "proton" )
|
||||
{
|
||||
if(verbose>1)G4cout<<"** G4MiscCHIPSBuilder: "<<pname<<" already defined"<<G4endl;
|
||||
}
|
||||
else if( pname == "lambda" || pname == "sigma+" || pname == "sigma0" ||
|
||||
pname == "sigma-" || pname == "xi0" || pname == "xi-" || pname == "omega-" ||
|
||||
pname == "anti_proton" || pname == "anti_neutron" || pname == "anti_lambda" ||
|
||||
pname == "anti_sigma+" || pname == "anti_sigma0" || pname == "anti_sigma-" ||
|
||||
pname == "anti_xi0" || pname == "anti_xi-" || pname == "anti_omega-" )
|
||||
{
|
||||
if(verbose>1)G4cout<< "__G4QInelCHIPSBuilder: "<< pname <<" is defined here"<<G4endl;
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
pmanager->AddDiscreteProcess(inelastic);
|
||||
if(verbose>1) G4cout<<"###> G4MiscCHIPSBuilder: "<<inelastic->GetProcessName()
|
||||
<<" is added for "<<pname<<G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4NeutronCrossSectionXS.cc,v 1.4 2010/07/29 10:52:14 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4NeutronCrossSectionXS
|
||||
//
|
||||
// Author: 3 June 2010 V. Ivanchenko
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
// Inelastic and capture cross section from XS database added
|
||||
// on top of existing Physics List
|
||||
|
||||
#include "G4NeutronCrossSectionXS.hh"
|
||||
#include "G4DataQuestionaire.hh"
|
||||
|
||||
#include "G4NeutronInelasticXS.hh"
|
||||
#include "G4NeutronCaptureXS.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4HadronicProcess.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProcessVector.hh"
|
||||
#include "G4HadronicProcessType.hh"
|
||||
|
||||
#include "G4Neutron.hh"
|
||||
|
||||
G4NeutronCrossSectionXS::G4NeutronCrossSectionXS(G4int ver) :
|
||||
G4VPhysicsConstructor("NeutronXS"), verbose(ver)
|
||||
{
|
||||
G4DataQuestionaire q(no,no,no,no,no,neutronxs);
|
||||
}
|
||||
|
||||
G4NeutronCrossSectionXS::~G4NeutronCrossSectionXS()
|
||||
{}
|
||||
|
||||
void G4NeutronCrossSectionXS::ConstructParticle()
|
||||
{
|
||||
G4Neutron::Neutron();
|
||||
}
|
||||
|
||||
void G4NeutronCrossSectionXS::ConstructProcess()
|
||||
{
|
||||
|
||||
G4NeutronInelasticXS* xinel = new G4NeutronInelasticXS();
|
||||
G4NeutronCaptureXS* xcap = new G4NeutronCaptureXS();
|
||||
|
||||
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
|
||||
if(verbose > 1) {
|
||||
G4cout << "### G4NeutronCrossSectionXS: use alternative neutron X-sections"
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
G4ProcessVector* pv = neutron->GetProcessManager()->GetProcessList();
|
||||
G4int n = pv->size();
|
||||
G4HadronicProcess* had = 0;
|
||||
for(G4int i=0; i<n; i++) {
|
||||
if(fHadronInelastic == ((*pv)[i])->GetProcessSubType()) {
|
||||
had = static_cast<G4HadronicProcess*>((*pv)[i]);
|
||||
had->AddDataSet(xinel);
|
||||
} else if(fCapture == ((*pv)[i])->GetProcessSubType()) {
|
||||
had = static_cast<G4HadronicProcess*>((*pv)[i]);
|
||||
had->AddDataSet(xcap);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4NeutronTrackingCut.cc,v 1.5 2008/09/17 18:19:15 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4NeutronTrackingCut.cc,v 1.6 2010/06/04 15:28:35 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -44,6 +44,14 @@
|
||||
#include "G4Neutron.hh"
|
||||
#include "G4NeutronKiller.hh"
|
||||
|
||||
G4NeutronTrackingCut::G4NeutronTrackingCut(G4int ver)
|
||||
: G4VPhysicsConstructor("neutronTrackingCut")
|
||||
, verbose(ver), wasActivated(false)
|
||||
{
|
||||
timeLimit = 10.*microsecond;
|
||||
kineticEnergyLimit = 0.0;
|
||||
}
|
||||
|
||||
G4NeutronTrackingCut::G4NeutronTrackingCut(const G4String& name, G4int ver)
|
||||
: G4VPhysicsConstructor(name), verbose(ver), wasActivated(false)
|
||||
{
|
||||
|
||||
@@ -41,6 +41,30 @@
|
||||
#include "G4EmSaturation.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
G4OpticalPhysics::G4OpticalPhysics(G4int verbose)
|
||||
: G4VPhysicsConstructor("Optical")
|
||||
,
|
||||
wasActivated(false),
|
||||
|
||||
fScintillationProcess(0),
|
||||
fCerenkovProcess(0),
|
||||
fOpWLSProcess(0),
|
||||
fOpAbsorptionProcess(0),
|
||||
fOpRayleighScatteringProcess(0),
|
||||
fOpMieHGScatteringProcess(0),
|
||||
fOpBoundaryProcess(0),
|
||||
fMaxNumPhotons(100),
|
||||
fMaxBetaChange(10.0),
|
||||
fYieldFactor(1.),
|
||||
fExcitationRatio(0.0),
|
||||
fSurfaceModel(unified),
|
||||
fProfile("delta"),
|
||||
fTrackSecondariesFirst(true),
|
||||
fScintillationByParticleType(false)
|
||||
{
|
||||
verboseLevel = verbose;
|
||||
fMessenger = new G4OpticalPhysicsMessenger(this);
|
||||
}
|
||||
|
||||
G4OpticalPhysics::G4OpticalPhysics(G4int verbose, const G4String& name)
|
||||
: G4VPhysicsConstructor(name),
|
||||
@@ -51,6 +75,7 @@ G4OpticalPhysics::G4OpticalPhysics(G4int verbose, const G4String& name)
|
||||
fOpWLSProcess(0),
|
||||
fOpAbsorptionProcess(0),
|
||||
fOpRayleighScatteringProcess(0),
|
||||
fOpMieHGScatteringProcess(0),
|
||||
fOpBoundaryProcess(0),
|
||||
fMaxNumPhotons(100),
|
||||
fMaxBetaChange(10.0),
|
||||
@@ -58,7 +83,8 @@ G4OpticalPhysics::G4OpticalPhysics(G4int verbose, const G4String& name)
|
||||
fExcitationRatio(0.0),
|
||||
fSurfaceModel(unified),
|
||||
fProfile("delta"),
|
||||
fTrackSecondariesFirst(true)
|
||||
fTrackSecondariesFirst(true),
|
||||
fScintillationByParticleType(false)
|
||||
{
|
||||
verboseLevel = verbose;
|
||||
fMessenger = new G4OpticalPhysicsMessenger(this);
|
||||
@@ -78,6 +104,7 @@ G4OpticalPhysics::~G4OpticalPhysics()
|
||||
|
||||
delete fOpAbsorptionProcess;
|
||||
delete fOpRayleighScatteringProcess;
|
||||
delete fOpMieHGScatteringProcess;
|
||||
delete fOpBoundaryProcess;
|
||||
|
||||
}
|
||||
@@ -113,6 +140,7 @@ void G4OpticalPhysics::ConstructProcess()
|
||||
|
||||
fOpAbsorptionProcess = new G4OpAbsorption();
|
||||
fOpRayleighScatteringProcess = new G4OpRayleigh();
|
||||
fOpMieHGScatteringProcess = new G4OpMieHG();
|
||||
|
||||
fOpBoundaryProcess = new G4OpBoundaryProcess();
|
||||
fOpBoundaryProcess->SetModel(fSurfaceModel);
|
||||
@@ -128,10 +156,12 @@ void G4OpticalPhysics::ConstructProcess()
|
||||
o << "Optical Photon without a Process Manager";
|
||||
G4Exception("G4OpticalPhysics::ConstructProcess()","",
|
||||
FatalException,o.str().c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
pManager->AddDiscreteProcess(fOpAbsorptionProcess);
|
||||
pManager->AddDiscreteProcess(fOpRayleighScatteringProcess);
|
||||
pManager->AddDiscreteProcess(fOpMieHGScatteringProcess);
|
||||
pManager->AddDiscreteProcess(fOpBoundaryProcess);
|
||||
pManager->AddDiscreteProcess(fOpWLSProcess);
|
||||
|
||||
@@ -139,6 +169,7 @@ void G4OpticalPhysics::ConstructProcess()
|
||||
fScintillationProcess->SetScintillationYieldFactor(fYieldFactor);
|
||||
fScintillationProcess->SetScintillationExcitationRatio(fExcitationRatio);
|
||||
fScintillationProcess->SetTrackSecondariesFirst(fTrackSecondariesFirst);
|
||||
fScintillationProcess->SetScintillationByParticleType(fScintillationByParticleType);
|
||||
|
||||
// Use Birks Correction in the Scintillation process
|
||||
|
||||
@@ -249,6 +280,14 @@ void G4OpticalPhysics::AddScintillationSaturation(G4EmSaturation* saturation)
|
||||
fScintillationProcess->AddSaturation(saturation);
|
||||
}
|
||||
|
||||
void G4OpticalPhysics::SetScintillationByParticleType(G4bool scintillationByParticleType)
|
||||
{
|
||||
fScintillationByParticleType = scintillationByParticleType;
|
||||
|
||||
if (fScintillationProcess)
|
||||
fScintillationProcess->SetScintillationByParticleType(scintillationByParticleType);
|
||||
}
|
||||
|
||||
void G4OpticalPhysics::SetTrackSecondariesFirst(G4bool trackSecondariesFirst)
|
||||
{
|
||||
fTrackSecondariesFirst = trackSecondariesFirst;
|
||||
|
||||
@@ -54,6 +54,7 @@ G4OpticalPhysicsMessenger::G4OpticalPhysicsMessenger(
|
||||
fSetCerenkovMaxPhotonsCmd(0),
|
||||
fSetCerenkovMaxBetaChangeCmd(0),
|
||||
fSetScintillationYieldFactorCmd(0),
|
||||
fSetScintillationByParticleTypeCmd(0),
|
||||
fSetOpticalSurfaceModelCmd(0),
|
||||
fSetWLSTimeProfileCmd(0),
|
||||
fSetTrackSecondariesFirstCmd(0)
|
||||
@@ -105,6 +106,12 @@ G4OpticalPhysicsMessenger::G4OpticalPhysicsMessenger(
|
||||
fSetScintillationYieldFactorCmd->SetRange("ScintillationYieldFactor>=0");
|
||||
fSetScintillationYieldFactorCmd->AvailableForStates(G4State_Idle,G4State_GeomClosed,G4State_EventProc);
|
||||
|
||||
fSetScintillationByParticleTypeCmd
|
||||
= new G4UIcmdWithABool("/optics_engine/setScintillationByParticleType", this);
|
||||
fSetScintillationByParticleTypeCmd->SetGuidance("Activate/Inactivate scintillation process by particle type");
|
||||
fSetScintillationByParticleTypeCmd->SetParameterName("ScintillationByParticleTypeActivation", false);
|
||||
fSetScintillationByParticleTypeCmd->AvailableForStates(G4State_Idle,G4State_GeomClosed,G4State_EventProc);
|
||||
|
||||
fSetOpticalSurfaceModelCmd
|
||||
= new G4UIcmdWithAString("/optics_engine/setOpticalSurfaceModel", this);
|
||||
fSetOpticalSurfaceModelCmd
|
||||
@@ -140,6 +147,7 @@ G4OpticalPhysicsMessenger::~G4OpticalPhysicsMessenger()
|
||||
delete fSetCerenkovMaxPhotonsCmd;
|
||||
delete fSetCerenkovMaxBetaChangeCmd;
|
||||
delete fSetScintillationYieldFactorCmd;
|
||||
delete fSetScintillationByParticleTypeCmd;
|
||||
delete fSetOpticalSurfaceModelCmd;
|
||||
delete fSetWLSTimeProfileCmd;
|
||||
delete fSetTrackSecondariesFirstCmd;
|
||||
@@ -159,6 +167,8 @@ void G4OpticalPhysicsMessenger::SetNewValue(G4UIcommand* command, G4String newVa
|
||||
GetOpAbsorptionProcess();
|
||||
else if ( newValue == "OpRayleigh" ) fSelectedProcess = fOpticalPhysics->
|
||||
GetOpRayleighProcess();
|
||||
else if ( newValue == "OpMieHG" ) fSelectedProcess = fOpticalPhysics->
|
||||
GetOpMieHGProcess();
|
||||
else if ( newValue == "OpBoundary" ) fSelectedProcess = fOpticalPhysics->
|
||||
GetOpBoundaryProcess();
|
||||
else if ( newValue == "OpWLS" ) fSelectedProcess = fOpticalPhysics->
|
||||
@@ -207,7 +217,12 @@ void G4OpticalPhysicsMessenger::SetNewValue(G4UIcommand* command, G4String newVa
|
||||
fOpticalPhysics
|
||||
->SetScintillationYieldFactor(
|
||||
fSetScintillationYieldFactorCmd->GetNewDoubleValue(newValue));
|
||||
}
|
||||
}
|
||||
else if (command == fSetScintillationByParticleTypeCmd) {
|
||||
fOpticalPhysics
|
||||
->SetScintillationByParticleType(
|
||||
fSetScintillationByParticleTypeCmd->GetNewBoolValue(newValue));
|
||||
}
|
||||
else if (command == fSetOpticalSurfaceModelCmd) {
|
||||
if ( newValue == "glisur" ) {
|
||||
fOpticalPhysics
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PionBuilder.cc,v 1.1 2010/11/19 16:21:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4PionBuilder
|
||||
//
|
||||
// Author: 2010 G.Folger
|
||||
// devired from G4PiKBuilder
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4PionBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
G4PionBuilder::
|
||||
G4PionBuilder(): wasActivated(false)
|
||||
{
|
||||
thePionPlusInelastic=new G4PionPlusInelasticProcess;
|
||||
thePionMinusInelastic=new G4PionMinusInelasticProcess;
|
||||
}
|
||||
|
||||
G4PionBuilder::
|
||||
~G4PionBuilder(){
|
||||
delete thePionPlusInelastic;
|
||||
delete thePionMinusInelastic;
|
||||
}
|
||||
|
||||
void G4PionBuilder::
|
||||
Build()
|
||||
{
|
||||
wasActivated = true;
|
||||
|
||||
std::vector<G4VPionBuilder *>::iterator i;
|
||||
for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++)
|
||||
{
|
||||
(*i)->Build(thePionPlusInelastic);
|
||||
(*i)->Build(thePionMinusInelastic);
|
||||
}
|
||||
G4ProcessManager * theProcMan;
|
||||
|
||||
theProcMan = G4PionPlus::PionPlus()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(thePionPlusInelastic);
|
||||
|
||||
theProcMan = G4PionMinus::PionMinus()->GetProcessManager();
|
||||
theProcMan->AddDiscreteProcess(thePionMinusInelastic);
|
||||
}
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QAtomicPhysics.cc,v 1.1 2009/11/20 10:24:28 mkossov Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4QAtomicPhysics.cc,v 1.2 2010/06/03 14:37:24 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -89,6 +89,12 @@
|
||||
#include "G4Alpha.hh"
|
||||
#include "G4GenericIon.hh"
|
||||
|
||||
G4QAtomicPhysics::G4QAtomicPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("CHIPS Atomic"), verbose(ver)
|
||||
{
|
||||
G4LossTableManager::Instance();
|
||||
}
|
||||
|
||||
G4QAtomicPhysics::G4QAtomicPhysics(G4int ver, const G4String& name)
|
||||
: G4VPhysicsConstructor(name), verbose(ver)
|
||||
{
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QCaptureAtRestPhysics.cc,v 1.1 2009/11/16 19:12:10 mkossov Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4QCaptureAtRestPhysics.cc,v 1.2 2010/06/03 15:03:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -39,6 +39,13 @@
|
||||
|
||||
#include "G4QCaptureAtRestPhysics.hh"
|
||||
|
||||
G4QCaptureAtRestPhysics::G4QCaptureAtRestPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("CHIPS nuclear_capture")
|
||||
, verbose(ver), wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) G4cout << "###> G4QCaptureAtRestPhysics is initialized" << G4endl;
|
||||
}
|
||||
|
||||
G4QCaptureAtRestPhysics::G4QCaptureAtRestPhysics(const G4String& name, G4int ver)
|
||||
: G4VPhysicsConstructor(name), verbose(ver), wasActivated(false)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QElasticPhysics.cc,v 1.2 2010/06/04 10:44:07 mkossov Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QElasticPhysics
|
||||
//
|
||||
// Author: 3 Nov 2010 M. Kosov
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4QElasticPhysics.hh"
|
||||
|
||||
#include "G4UHadronElasticProcess.hh"
|
||||
#include "G4HadronicInteraction.hh"
|
||||
#include "G4HadronElastic.hh"
|
||||
#include "G4QElastic.hh"
|
||||
|
||||
#include "G4VQCrossSection.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
|
||||
#include "G4MesonConstructor.hh"
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4IonConstructor.hh"
|
||||
|
||||
G4QElasticPhysics::G4QElasticPhysics(const G4String& name, G4int ver)
|
||||
: G4VPhysicsConstructor(name), verbose(ver), wasActivated(false)
|
||||
{
|
||||
if(verbose > 1) G4cout << "### QElasticPhysics is initialized" << G4endl;
|
||||
model = 0;
|
||||
}
|
||||
|
||||
void G4QElasticPhysics::ConstructParticle()
|
||||
{
|
||||
G4MesonConstructor pMesonConstructor;
|
||||
pMesonConstructor.ConstructParticle();
|
||||
|
||||
G4BaryonConstructor pBaryonConstructor;
|
||||
pBaryonConstructor.ConstructParticle();
|
||||
|
||||
// Construct light ions
|
||||
G4IonConstructor pConstructor;
|
||||
pConstructor.ConstructParticle();
|
||||
}
|
||||
|
||||
void G4QElasticPhysics::ConstructProcess()
|
||||
{
|
||||
if(wasActivated) return;
|
||||
wasActivated = true;
|
||||
|
||||
process = new G4QElastic();
|
||||
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
G4String pname = particle->GetParticleName();
|
||||
G4ProcessManager* pmanager = particle->GetProcessManager();
|
||||
if(pname == "anti_neutron" ||
|
||||
pname == "anti_proton" ||
|
||||
pname == "anti_lambda" ||
|
||||
pname == "anti_sigma-" ||
|
||||
pname == "anti_sigma0" ||
|
||||
pname == "anti_sigma+" ||
|
||||
pname == "anti_xi-" ||
|
||||
pname == "anti_xi0" ||
|
||||
pname == "anti_omega-" ||
|
||||
pname == "pi-" ||
|
||||
pname == "pi+" ||
|
||||
pname == "kaon-" ||
|
||||
pname == "kaon+" ||
|
||||
pname == "kaon0S" ||
|
||||
pname == "kaon0L" ||
|
||||
pname == "lambda" ||
|
||||
pname == "sigma-" ||
|
||||
pname == "sigma0" ||
|
||||
pname == "sigma+" ||
|
||||
pname == "xi-" ||
|
||||
pname == "xi0" ||
|
||||
pname == "omega-" )
|
||||
{
|
||||
pmanager->AddDiscreteProcess(process);
|
||||
if(verbose>0) G4cout<<"### G4QElastic process is added for particle="<<pname<<G4endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSBinaryNeutronBuilder.cc,v 1.3 2009/03/31 11:03:50 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4QGSBinaryNeutronBuilder.cc,v 1.4 2010/11/18 14:52:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -41,6 +41,7 @@
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4CrossSectionPairGG.hh"
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
|
||||
G4QGSBinaryNeutronBuilder::
|
||||
@@ -99,6 +100,7 @@ Build(G4NeutronInelasticProcess * aP)
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(new G4NeutronInelasticCrossSection);
|
||||
aP->AddDataSet(new G4CrossSectionPairGG(
|
||||
new G4NeutronInelasticCrossSection(), 91*GeV));
|
||||
}
|
||||
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSBinaryPiKBuilder.cc,v 1.3 2009/03/31 11:03:50 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4QGSBinaryPiKBuilder.cc,v 1.4 2010/11/18 14:52:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -41,11 +41,13 @@
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4PiNuclearCrossSection.hh"
|
||||
#include "G4CrossSectionPairGG.hh"
|
||||
|
||||
G4QGSBinaryPiKBuilder::
|
||||
G4QGSBinaryPiKBuilder(G4bool quasiElastic)
|
||||
{
|
||||
thePiData = new G4PiNuclearCrossSection;
|
||||
thePiData = new G4CrossSectionPairGG(new G4PiNuclearCrossSection(), 91*GeV);
|
||||
|
||||
theMin = 12*GeV;
|
||||
theModel = new G4TheoFSGenerator("QGSB");
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSBinaryProtonBuilder.cc,v 1.3 2009/03/31 11:03:50 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4QGSBinaryProtonBuilder.cc,v 1.4 2010/11/18 14:52:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -42,6 +42,7 @@
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
#include "G4CrossSectionPairGG.hh"
|
||||
|
||||
G4QGSBinaryProtonBuilder::
|
||||
G4QGSBinaryProtonBuilder(G4bool quasiElastic)
|
||||
@@ -71,7 +72,8 @@ void G4QGSBinaryProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
// G4cout << "adding inelastic Proton in QGSBinary" << G4endl;
|
||||
aP->AddDataSet(new G4ProtonInelasticCrossSection);
|
||||
aP->AddDataSet(new G4CrossSectionPairGG(
|
||||
new G4ProtonInelasticCrossSection(), 91*GeV));
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSBuilder.cc,v 1.1 2009/10/04 16:29:54 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4QGSBuilder.cc,v 1.3 2010/06/19 11:12:58 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -47,10 +47,14 @@
|
||||
#include "G4QGSMFragmentation.hh"
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
#include "G4BinaryCascade.hh"
|
||||
#include "G4PreCompoundModel.hh"
|
||||
#include "G4ExcitationHandler.hh"
|
||||
|
||||
|
||||
G4QGSBuilder::G4QGSBuilder(const G4String& aName, G4bool quasiel, G4bool diff)
|
||||
: G4VHadronModelBuilder(aName), quasielFlag(quasiel), diffFlag(diff)
|
||||
G4QGSBuilder::G4QGSBuilder(const G4String& aName, G4PreCompoundModel* p,
|
||||
G4bool quasiel, G4bool diff)
|
||||
: G4VHadronModelBuilder(aName), thePreCompound(p),
|
||||
quasielFlag(quasiel), diffFlag(diff)
|
||||
{
|
||||
theProjectileDiffraction = 0;
|
||||
theQuasiElastic = 0;
|
||||
@@ -62,13 +66,15 @@ G4QGSBuilder::~G4QGSBuilder()
|
||||
delete theQuasiElastic;
|
||||
delete theQGStringDecay;
|
||||
delete theQGStringModel;
|
||||
delete theQGSM;
|
||||
}
|
||||
|
||||
G4HadronicInteraction* G4QGSBuilder::BuildModel()
|
||||
{
|
||||
G4TheoFSGenerator* theQGSModel = new G4TheoFSGenerator(GetName());
|
||||
theQGStringModel = new G4QGSModel< G4QGSParticipants >;
|
||||
theQGStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation());
|
||||
theQGSM = new G4QGSMFragmentation();
|
||||
theQGStringDecay = new G4ExcitedStringDecay(theQGSM);
|
||||
theQGStringModel->SetFragmentationModel(theQGStringDecay);
|
||||
theQGSModel->SetHighEnergyGenerator(theQGStringModel);
|
||||
|
||||
@@ -81,14 +87,22 @@ G4HadronicInteraction* G4QGSBuilder::BuildModel()
|
||||
theQGSModel->SetProjectileDiffraction(theProjectileDiffraction);
|
||||
}
|
||||
|
||||
if(GetName() == "QGSP") {
|
||||
theQGSModel->SetTransport(new G4GeneratorPrecompoundInterface());
|
||||
} else if(GetName() == "QGSC") {
|
||||
if(!thePreCompound) {
|
||||
thePreCompound = new G4PreCompoundModel(new G4ExcitationHandler());
|
||||
}
|
||||
|
||||
if(GetName() == "QGSC") {
|
||||
theQGSModel->SetTransport(new G4QStringChipsParticleLevelInterface());
|
||||
|
||||
} else if(GetName() == "QGSB") {
|
||||
theQGSModel->SetTransport(new G4BinaryCascade());
|
||||
G4BinaryCascade* bic = new G4BinaryCascade();
|
||||
bic->SetDeExcitation(thePreCompound);
|
||||
theQGSModel->SetTransport(bic);
|
||||
|
||||
} else {
|
||||
theQGSModel->SetTransport(new G4GeneratorPrecompoundInterface());
|
||||
G4GeneratorPrecompoundInterface* pint = new G4GeneratorPrecompoundInterface();
|
||||
pint->SetDeExcitation(thePreCompound);
|
||||
theQGSModel->SetTransport(pint);
|
||||
}
|
||||
|
||||
return theQGSModel;
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSPNeutronBuilder.cc,v 1.5 2009/03/31 11:03:50 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4QGSPNeutronBuilder.cc,v 1.8 2010/11/18 14:52:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -33,6 +33,8 @@
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 17.11.2010 G.Folger, use G4CrossSectionPairGG for relativistic rise of cross
|
||||
// section at high energies.
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -42,6 +44,7 @@
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4NeutronInelasticCrossSection.hh"
|
||||
#include "G4CrossSectionPairGG.hh"
|
||||
|
||||
G4QGSPNeutronBuilder::
|
||||
G4QGSPNeutronBuilder(G4bool quasiElastic, G4bool projectileDiffraction)
|
||||
@@ -50,11 +53,11 @@ G4QGSPNeutronBuilder(G4bool quasiElastic, G4bool projectileDiffraction)
|
||||
theModel = new G4TheoFSGenerator("QGSP");
|
||||
|
||||
theStringModel = new G4QGSModel< G4QGSParticipants >;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation);
|
||||
theStringDecay = new G4ExcitedStringDecay(theQGSM = new G4QGSMFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
thePreEquilib = new G4PreCompoundModel(theHandler = new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
@@ -73,8 +76,7 @@ G4QGSPNeutronBuilder(G4bool quasiElastic, G4bool projectileDiffraction)
|
||||
{ theProjectileDiffraction=0;}
|
||||
}
|
||||
|
||||
G4QGSPNeutronBuilder::
|
||||
~G4QGSPNeutronBuilder()
|
||||
G4QGSPNeutronBuilder::~G4QGSPNeutronBuilder()
|
||||
{
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
@@ -83,6 +85,8 @@ G4QGSPNeutronBuilder::
|
||||
if ( theQuasiElastic ) delete theQuasiElastic;
|
||||
if ( theProjectileDiffraction ) delete theProjectileDiffraction;
|
||||
delete theModel;
|
||||
delete theQGSM;
|
||||
delete theHandler;
|
||||
}
|
||||
|
||||
void G4QGSPNeutronBuilder::
|
||||
@@ -106,7 +110,8 @@ Build(G4NeutronInelasticProcess * aP)
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
aP->AddDataSet(new G4NeutronInelasticCrossSection);
|
||||
aP->AddDataSet(new G4CrossSectionPairGG(
|
||||
new G4NeutronInelasticCrossSection(), 91*GeV));
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSPPiKBuilder.cc,v 1.5 2009/03/31 11:03:50 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4QGSPPiKBuilder.cc,v 1.8 2010/11/18 14:52:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -33,6 +33,8 @@
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 17.11.2010 G.Folger, use G4CrossSectionPairGG for relativistic rise of cross
|
||||
// section at high energies.
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -42,21 +44,22 @@
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4PiNuclearCrossSection.hh"
|
||||
#include "G4CrossSectionPairGG.hh"
|
||||
|
||||
G4QGSPPiKBuilder::
|
||||
G4QGSPPiKBuilder(G4bool quasiElastic, G4bool projectileDiffraction)
|
||||
{
|
||||
thePiData = new G4PiNuclearCrossSection();
|
||||
thePiData = new G4CrossSectionPairGG(new G4PiNuclearCrossSection(), 91*GeV);
|
||||
theMin = 12*GeV;
|
||||
theModel = new G4TheoFSGenerator("QGSP");
|
||||
|
||||
theStringModel = new G4QGSModel< G4QGSParticipants >;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation);
|
||||
theStringDecay = new G4ExcitedStringDecay(theQGSM = new G4QGSMFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
thePreEquilib = new G4PreCompoundModel(theHandler = new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
@@ -75,7 +78,7 @@ G4QGSPPiKBuilder(G4bool quasiElastic, G4bool projectileDiffraction)
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
}
|
||||
|
||||
|
||||
G4QGSPPiKBuilder::
|
||||
~G4QGSPPiKBuilder()
|
||||
{
|
||||
@@ -86,6 +89,8 @@ G4QGSPPiKBuilder::
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete theModel;
|
||||
delete theQGSM;
|
||||
delete theHandler;
|
||||
}
|
||||
|
||||
void G4QGSPPiKBuilder::
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSPPionBuilder.cc,v 1.1 2010/11/19 16:21:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QGSPPionBuilder
|
||||
//
|
||||
// Author: 2010 G.Folger
|
||||
// devired from G4QGSPPiKBuilder
|
||||
//
|
||||
// Modified:
|
||||
// 17.11.2010 G.Folger, use G4CrossSectionPairGG for relativistic rise of cross
|
||||
// section at high energies.
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4QGSPPionBuilder.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4PiNuclearCrossSection.hh"
|
||||
#include "G4CrossSectionPairGG.hh"
|
||||
|
||||
G4QGSPPionBuilder::
|
||||
G4QGSPPionBuilder(G4bool quasiElastic, G4bool projectileDiffraction)
|
||||
{
|
||||
thePiData = new G4CrossSectionPairGG(new G4PiNuclearCrossSection(), 91*GeV);
|
||||
theMin = 12*GeV;
|
||||
theModel = new G4TheoFSGenerator("QGSP");
|
||||
|
||||
theStringModel = new G4QGSModel< G4QGSParticipants >;
|
||||
theStringDecay = new G4ExcitedStringDecay(theQGSM = new G4QGSMFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(theHandler = new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetHighEnergyGenerator(theStringModel);
|
||||
if (quasiElastic)
|
||||
{
|
||||
theQuasiElastic=new G4QuasiElasticChannel;
|
||||
theModel->SetQuasiElasticChannel(theQuasiElastic);
|
||||
} else
|
||||
{ theQuasiElastic=0;}
|
||||
if ( projectileDiffraction )
|
||||
{
|
||||
theProjectileDiffraction=new G4ProjectileDiffractiveChannel;
|
||||
theModel->SetProjectileDiffraction(theProjectileDiffraction);
|
||||
} else
|
||||
{ theProjectileDiffraction=0;}
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
}
|
||||
|
||||
G4QGSPPionBuilder::
|
||||
~G4QGSPPionBuilder()
|
||||
{
|
||||
delete theCascade;
|
||||
delete thePreEquilib;
|
||||
if ( theQuasiElastic ) delete theQuasiElastic;
|
||||
if ( theProjectileDiffraction ) delete theProjectileDiffraction;
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete theModel;
|
||||
delete theQGSM;
|
||||
delete theHandler;
|
||||
}
|
||||
|
||||
void G4QGSPPionBuilder::
|
||||
Build(G4HadronElasticProcess * ) {}
|
||||
|
||||
void G4QGSPPionBuilder::
|
||||
Build(G4PionPlusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
void G4QGSPPionBuilder::
|
||||
Build(G4PionMinusInelasticProcess * aP)
|
||||
{
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->AddDataSet(thePiData);
|
||||
aP->RegisterMe(theModel);
|
||||
}
|
||||
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QGSPProtonBuilder.cc,v 1.5 2009/03/31 11:03:50 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4QGSPProtonBuilder.cc,v 1.8 2010/11/18 14:52:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -33,6 +33,8 @@
|
||||
// Author: 2002 J.P. Wellisch
|
||||
//
|
||||
// Modified:
|
||||
// 17.11.2010 G.Folger, use G4CrossSectionPairGG for relativistic rise of cross
|
||||
// section at high energies.
|
||||
// 30.03.2009 V.Ivanchenko create cross section by new
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -42,6 +44,7 @@
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ProcessManager.hh"
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
#include "G4CrossSectionPairGG.hh"
|
||||
|
||||
G4QGSPProtonBuilder::
|
||||
G4QGSPProtonBuilder(G4bool quasiElastic, G4bool projectileDiffraction)
|
||||
@@ -50,11 +53,11 @@ G4QGSPProtonBuilder(G4bool quasiElastic, G4bool projectileDiffraction)
|
||||
theModel = new G4TheoFSGenerator("QGSP");
|
||||
|
||||
theStringModel = new G4QGSModel< G4QGSParticipants >;
|
||||
theStringDecay = new G4ExcitedStringDecay(new G4QGSMFragmentation);
|
||||
theStringDecay = new G4ExcitedStringDecay(theQGSM = new G4QGSMFragmentation);
|
||||
theStringModel->SetFragmentationModel(theStringDecay);
|
||||
|
||||
theCascade = new G4GeneratorPrecompoundInterface;
|
||||
thePreEquilib = new G4PreCompoundModel(new G4ExcitationHandler);
|
||||
thePreEquilib = new G4PreCompoundModel(theHandler = new G4ExcitationHandler);
|
||||
theCascade->SetDeExcitation(thePreEquilib);
|
||||
|
||||
theModel->SetTransport(theCascade);
|
||||
@@ -77,7 +80,8 @@ void G4QGSPProtonBuilder::
|
||||
Build(G4ProtonInelasticProcess * aP)
|
||||
{
|
||||
// G4cout << "adding inelastic Proton in QGSP" << G4endl;
|
||||
aP->AddDataSet(new G4ProtonInelasticCrossSection());
|
||||
aP->AddDataSet(new G4CrossSectionPairGG(
|
||||
new G4ProtonInelasticCrossSection(), 91*GeV));
|
||||
theModel->SetMinEnergy(theMin);
|
||||
theModel->SetMaxEnergy(100*TeV);
|
||||
aP->RegisterMe(theModel);
|
||||
@@ -97,6 +101,8 @@ G4QGSPProtonBuilder::~G4QGSPProtonBuilder()
|
||||
delete theStringDecay;
|
||||
delete theStringModel;
|
||||
delete theModel;
|
||||
delete theQGSM;
|
||||
delete theHandler;
|
||||
}
|
||||
|
||||
// 2002 by J.P. Wellisch
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QIonPhysics.cc,v 1.1 2010/06/03 09:31:41 mkossov Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4QIonPhysics
|
||||
//
|
||||
// Author: 03/06/2010, M. Kossov
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "G4QIonPhysics.hh"
|
||||
|
||||
G4QIonPhysics::G4QIonPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name), wasActivated(false){}
|
||||
|
||||
void G4QIonPhysics::ConstructProcess()
|
||||
{
|
||||
G4ProcessManager* pManager = 0;
|
||||
fQAAInelasticProcess = new G4QLowEnergy();
|
||||
fQAAElasticProcess = new G4QIonIonElastic();
|
||||
|
||||
// Deuteron
|
||||
pManager = G4Deuteron::Deuteron()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(fQAAInelasticProcess);
|
||||
pManager->AddDiscreteProcess(fQAAElasticProcess);
|
||||
|
||||
// Triton
|
||||
pManager = G4Triton::Triton()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(fQAAInelasticProcess);
|
||||
pManager->AddDiscreteProcess(fQAAElasticProcess);
|
||||
|
||||
// He3
|
||||
pManager = G4He3::He3()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(fQAAInelasticProcess);
|
||||
pManager->AddDiscreteProcess(fQAAElasticProcess);
|
||||
|
||||
// Alpha
|
||||
pManager = G4Alpha::Alpha()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(fQAAInelasticProcess);
|
||||
pManager->AddDiscreteProcess(fQAAElasticProcess);
|
||||
|
||||
// GenericIon
|
||||
pManager = G4GenericIon::GenericIon()->GetProcessManager();
|
||||
pManager->AddDiscreteProcess(fQAAInelasticProcess);
|
||||
pManager->AddDiscreteProcess(fQAAElasticProcess);
|
||||
|
||||
wasActivated = true;
|
||||
}
|
||||
|
||||
void G4QIonPhysics::ConstructParticle()
|
||||
{
|
||||
// Construct light ions
|
||||
G4IonConstructor pConstructor;
|
||||
pConstructor.ConstructParticle();
|
||||
}
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QNeutrinoPhysics.cc,v 1.3 2009/11/30 18:44:49 mkossov Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4QNeutrinoPhysics.cc,v 1.4 2010/06/03 14:37:24 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -39,6 +39,15 @@
|
||||
|
||||
#include "G4QNeutrinoPhysics.hh"
|
||||
|
||||
G4QNeutrinoPhysics::G4QNeutrinoPhysics(G4int):
|
||||
G4VPhysicsConstructor("CHIPS neutrino-nuclear"), wasBuilt(false), nuEleActivated(false),
|
||||
nuMuoActivated(false), nuTauActivated(false), nuEleOn(false),
|
||||
nuMuoOn(false), nuTauOn(false), nuNucBias(1.), inelastic(0)
|
||||
{
|
||||
theMessenger = G4QMessenger::GetPointer();
|
||||
theMessenger->Add(this);
|
||||
}
|
||||
|
||||
G4QNeutrinoPhysics::G4QNeutrinoPhysics(const G4String& name):
|
||||
G4VPhysicsConstructor(name), wasBuilt(false), nuEleActivated(false),
|
||||
nuMuoActivated(false), nuTauActivated(false), nuEleOn(false),
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QPhotoNuclearPhysics.cc,v 1.2 2009/11/16 19:12:10 mkossov Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4QPhotoNuclearPhysics.cc,v 1.5 2010/06/13 20:41:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -40,6 +40,16 @@
|
||||
#include "G4QPhotoNuclearPhysics.hh"
|
||||
|
||||
|
||||
G4QPhotoNuclearPhysics::G4QPhotoNuclearPhysics(G4int):
|
||||
G4VPhysicsConstructor("CHIPS photo-nuclear"), wasBuilt(false), SynchRActivated(false),
|
||||
GamNucActivated(false), EleNucActivated(false), MuoNucActivated(false),
|
||||
TauNucActivated(false), synchrOn(true), synchrMinGam(227.), gamNucOn(true),
|
||||
eleNucOn(true), muoNucOn(true), tauNucOn(true), photoNucBias(1.)
|
||||
{
|
||||
theMessenger = G4QMessenger::GetPointer();
|
||||
theMessenger->Add(this);
|
||||
}
|
||||
|
||||
G4QPhotoNuclearPhysics::G4QPhotoNuclearPhysics(const G4String& name):
|
||||
G4VPhysicsConstructor(name), wasBuilt(false), SynchRActivated(false),
|
||||
GamNucActivated(false), EleNucActivated(false), MuoNucActivated(false),
|
||||
@@ -193,6 +203,7 @@ void G4QPhotoNuclearPhysics::BuildSynchRad()
|
||||
if(SynchRActivated) return;
|
||||
SynchRActivated = true;
|
||||
synchrad = new G4QSynchRad();
|
||||
theParticleIterator->reset();
|
||||
while( (*theParticleIterator)() )
|
||||
{
|
||||
G4ParticleDefinition* particle = theParticleIterator->value();
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4QStoppingPhysics.cc,v 1.2 2007/04/26 16:03:18 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4QStoppingPhysics.cc,v 1.5 2010/06/03 16:28:39 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -49,6 +49,13 @@
|
||||
#include "G4BaryonConstructor.hh"
|
||||
#include "G4MuonMinus.hh"
|
||||
|
||||
G4QStoppingPhysics::G4QStoppingPhysics(G4int ver)
|
||||
: G4VPhysicsConstructor("stopping"), verbose(ver), wasActivated(false) ,
|
||||
useMuonMinusCaptureAtRest(true)
|
||||
{
|
||||
if(verbose > 1) G4cout << "### G4QStoppingPhysics" << G4endl;
|
||||
}
|
||||
|
||||
G4QStoppingPhysics::G4QStoppingPhysics(const G4String& name, G4int ver,
|
||||
G4bool UseMuonMinusCapture)
|
||||
: G4VPhysicsConstructor(name), verbose(ver), wasActivated(false) ,
|
||||
|
||||
@@ -35,6 +35,10 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4RadioactiveDecayPhysics::G4RadioactiveDecayPhysics(G4int)
|
||||
: G4VPhysicsConstructor("G4RadioactiveDecay"), theRadioactiveDecay(0)
|
||||
{}
|
||||
|
||||
G4RadioactiveDecayPhysics::G4RadioactiveDecayPhysics(const G4String& name)
|
||||
: G4VPhysicsConstructor(name), theRadioactiveDecay(0)
|
||||
{}
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VKaonBuilder.cc,v 1.1 2010/11/19 16:21:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4VKaonBuilder
|
||||
//
|
||||
// Author: 2010 G.Folger
|
||||
// devired from G4VPiKBuilder
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4VKaonBuilder.hh"
|
||||
|
||||
G4VKaonBuilder::G4VKaonBuilder()
|
||||
{}
|
||||
|
||||
G4VKaonBuilder::~G4VKaonBuilder()
|
||||
{}
|
||||
@@ -0,0 +1,46 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VPionBuilder.cc,v 1.1 2010/11/19 16:21:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4VPionBuilder
|
||||
//
|
||||
// Author: 2010 G.Folger
|
||||
// devired from G4VPiKBuilder
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#include "G4VPionBuilder.hh"
|
||||
|
||||
G4VPionBuilder::G4VPionBuilder()
|
||||
{}
|
||||
|
||||
G4VPionBuilder::~G4VPionBuilder()
|
||||
{}
|
||||
Reference in New Issue
Block a user