Files
geant4/physics_lists/hadronic/FTFC/src/HadronPhysicsFTFC.cc
T
2016-06-09 14:36:02 +02:00

115 lines
3.7 KiB
C++

//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: HadronPhysicsFTFC.cc,v 1.2 2005/11/29 16:59:40 gunter Exp $
// GEANT4 tag $Name: geant4-08-00 $
//
//---------------------------------------------------------------------------
//
// ClassName:
//
// Author: 2002 J.P. Wellisch
//
// Modified:
// 28.11.2005 G.Folger: migration to non static particles
//
//----------------------------------------------------------------------------
//
#include "HadronPhysicsFTFC.hh"
#include "globals.hh"
#include "G4ios.hh"
#include <iomanip>
#include "G4ParticleDefinition.hh"
#include "G4ParticleTable.hh"
#include "G4MesonConstructor.hh"
#include "G4BaryonConstructor.hh"
#include "G4ShortLivedConstructor.hh"
HadronPhysicsFTFC::HadronPhysicsFTFC(const G4String& name)
: G4VPhysicsConstructor(name)
{}
void HadronPhysicsFTFC::CreateModels()
{
theNeutrons=new G4NeutronBuilder;
theNeutrons->RegisterMe(theFTFCNeutron=new G4FTFCNeutronBuilder);
theNeutrons->RegisterMe(theLEPNeutron=new G4LEPNeutronBuilder);
theLEPNeutron->SetMaxInelasticEnergy(25*GeV);
thePro=new G4ProtonBuilder;
thePro->RegisterMe(theFTFCPro=new G4FTFCProtonBuilder);
thePro->RegisterMe(theLEPPro=new G4LEPProtonBuilder);
theLEPPro->SetMaxEnergy(25*GeV);
thePiK=new G4PiKBuilder;
thePiK->RegisterMe(theFTFCPiK=new G4FTFCPiKBuilder);
thePiK->RegisterMe(theLEPPiK=new G4LEPPiKBuilder);
theLEPPiK->SetMaxEnergy(25*GeV);
theMiscLHEP=new G4MiscLHEPBuilder;
theStoppingHadron=new G4StoppingHadronBuilder;
}
HadronPhysicsFTFC::~HadronPhysicsFTFC()
{
delete theNeutrons;
delete theLEPNeutron;
delete theFTFCNeutron;
delete thePiK;
delete theLEPPiK;
delete theFTFCPiK;
delete thePro;
delete theLEPPro;
delete theFTFCPro;
delete theMiscLHEP;
delete theStoppingHadron;
}
void HadronPhysicsFTFC::ConstructParticle()
{
G4MesonConstructor pMesonConstructor;
pMesonConstructor.ConstructParticle();
G4BaryonConstructor pBaryonConstructor;
pBaryonConstructor.ConstructParticle();
G4ShortLivedConstructor pShortLivedConstructor;
pShortLivedConstructor.ConstructParticle();
}
#include "G4ProcessManager.hh"
void HadronPhysicsFTFC::ConstructProcess()
{
CreateModels();
theNeutrons->Build();
thePro->Build();
thePiK->Build();
theMiscLHEP->Build();
theStoppingHadron->Build();
}
// 2002 by J.P. Wellisch