HadronPhysicsFTFP_BERT_TRV Class Reference

#include <HadronPhysicsFTFP_BERT_TRV.hh>

Inheritance diagram for HadronPhysicsFTFP_BERT_TRV:

G4VPhysicsConstructor

Public Member Functions

 HadronPhysicsFTFP_BERT_TRV (G4int verbose=1)
 HadronPhysicsFTFP_BERT_TRV (const G4String &name, G4bool quasiElastic=false)
virtual ~HadronPhysicsFTFP_BERT_TRV ()
virtual void ConstructParticle ()
virtual void ConstructProcess ()

Detailed Description

Definition at line 67 of file HadronPhysicsFTFP_BERT_TRV.hh.


Constructor & Destructor Documentation

HadronPhysicsFTFP_BERT_TRV::HadronPhysicsFTFP_BERT_TRV ( G4int  verbose = 1  ) 

Definition at line 70 of file HadronPhysicsFTFP_BERT_TRV.cc.

00071     :  G4VPhysicsConstructor("hInelastic FTFP_BERT_TRV")
00072     , theNeutrons(0)
00073     , theBertiniNeutron(0)
00074     , theFTFPNeutron(0)
00075     , thePiK(0)
00076     , theBertiniPiK(0)
00077     , theFTFPPiK(0)
00078     , thePro(0)
00079     , theBertiniPro(0)
00080     , theFTFPPro(0)
00081     , theHyperon(0)
00082     , theAntiBaryon(0)
00083     , theFTFPAntiBaryon(0)
00084     , QuasiElastic(false)
00085     , ChipsKaonMinus(0)
00086     , ChipsKaonPlus(0)
00087     , ChipsKaonZero(0)
00088     , xsNeutronInelasticXS(0)
00089     , xsNeutronCaptureXS(0)
00090 {}

HadronPhysicsFTFP_BERT_TRV::HadronPhysicsFTFP_BERT_TRV ( const G4String name,
G4bool  quasiElastic = false 
)

Definition at line 92 of file HadronPhysicsFTFP_BERT_TRV.cc.

00093     :  G4VPhysicsConstructor(name)
00094     , theNeutrons(0)
00095     , theBertiniNeutron(0)
00096     , theFTFPNeutron(0)
00097     , thePiK(0)
00098     , theBertiniPiK(0)
00099     , theFTFPPiK(0)
00100     , thePro(0)
00101     , theBertiniPro(0)
00102     , theFTFPPro(0)
00103     , theHyperon(0)
00104     , theAntiBaryon(0)
00105     , theFTFPAntiBaryon(0)
00106     , QuasiElastic(quasiElastic)
00107     , ChipsKaonMinus(0)
00108     , ChipsKaonPlus(0)
00109     , ChipsKaonZero(0)
00110     , xsNeutronInelasticXS(0)
00111     , xsNeutronCaptureXS(0)
00112 {}

HadronPhysicsFTFP_BERT_TRV::~HadronPhysicsFTFP_BERT_TRV (  )  [virtual]

Definition at line 155 of file HadronPhysicsFTFP_BERT_TRV.cc.

00156 {
00157   delete theNeutrons;
00158   delete theBertiniNeutron;
00159   delete theFTFPNeutron;
00160     
00161   delete thePiK;
00162   delete theBertiniPiK;
00163   delete theFTFPPiK;
00164     
00165   delete thePro;
00166   delete theBertiniPro;
00167   delete theFTFPPro;    
00168     
00169   delete theHyperon;
00170   delete theAntiBaryon;
00171   delete theFTFPAntiBaryon;
00172 
00173   delete xsNeutronInelasticXS;
00174   delete xsNeutronCaptureXS; 
00175 }


Member Function Documentation

void HadronPhysicsFTFP_BERT_TRV::ConstructParticle (  )  [virtual]

Implements G4VPhysicsConstructor.

Definition at line 177 of file HadronPhysicsFTFP_BERT_TRV.cc.

References G4ShortLivedConstructor::ConstructParticle(), G4BaryonConstructor::ConstructParticle(), and G4MesonConstructor::ConstructParticle().

00178 {
00179   G4MesonConstructor pMesonConstructor;
00180   pMesonConstructor.ConstructParticle();
00181 
00182   G4BaryonConstructor pBaryonConstructor;
00183   pBaryonConstructor.ConstructParticle();
00184 
00185   G4ShortLivedConstructor pShortLivedConstructor;
00186   pShortLivedConstructor.ConstructParticle();  
00187 }

void HadronPhysicsFTFP_BERT_TRV::ConstructProcess (  )  [virtual]

Implements G4VPhysicsConstructor.

Definition at line 190 of file HadronPhysicsFTFP_BERT_TRV.cc.

References G4HadronicProcess::AddDataSet(), G4ProcessManager::AddDiscreteProcess(), G4AntiBarionBuilder::Build(), G4HyperonFTFPBuilder::Build(), G4PiKBuilder::Build(), G4ProtonBuilder::Build(), G4NeutronBuilder::Build(), G4ChipsKaonZeroInelasticXS::Default_Name(), G4ChipsKaonPlusInelasticXS::Default_Name(), G4ChipsKaonMinusInelasticXS::Default_Name(), fCapture, fFission, G4PhysListUtil::FindInelasticProcess(), G4CrossSectionDataSetRegistry::GetCrossSectionDataSet(), G4ProcessManager::GetProcessList(), G4ParticleDefinition::GetProcessManager(), G4CrossSectionDataSetRegistry::Instance(), G4KaonMinus::KaonMinus(), G4KaonPlus::KaonPlus(), G4KaonZeroLong::KaonZeroLong(), G4KaonZeroShort::KaonZeroShort(), G4Neutron::Neutron(), G4HadronicProcess::RegisterMe(), and G4ProcessVector::size().

00191 {
00192   CreateModels();
00193   theNeutrons->Build();
00194   thePro->Build();
00195   thePiK->Build();
00196 
00197   theHyperon->Build();
00198   theAntiBaryon->Build();
00199 
00200   // --- Kaons ---
00201   // Use Chips cross sections
00202   ChipsKaonMinus = G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonMinusInelasticXS::Default_Name());
00203   ChipsKaonPlus = G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonPlusInelasticXS::Default_Name());
00204   ChipsKaonZero = G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonZeroInelasticXS::Default_Name());
00205   
00206   G4PhysListUtil::FindInelasticProcess(G4KaonMinus::KaonMinus())->AddDataSet(ChipsKaonMinus);
00207   G4PhysListUtil::FindInelasticProcess(G4KaonPlus::KaonPlus())->AddDataSet(ChipsKaonPlus);
00208   G4PhysListUtil::FindInelasticProcess(G4KaonZeroShort::KaonZeroShort())->AddDataSet(ChipsKaonZero);
00209   G4PhysListUtil::FindInelasticProcess(G4KaonZeroLong::KaonZeroLong())->AddDataSet(ChipsKaonZero);
00210 
00211   // --- Neutrons ---
00212   // Use the same cross sections and neutron capture as in QBBC.
00213   // Need also to assigned a model (Gheisha) to fission.
00214   xsNeutronInelasticXS = new G4NeutronInelasticXS();  
00215   G4PhysListUtil::FindInelasticProcess(G4Neutron::Neutron())->AddDataSet(xsNeutronInelasticXS);
00216 
00217   G4HadronicProcess* capture = 0;
00218   G4HadronicProcess* fission = 0;
00219   G4ProcessManager* pmanager = G4Neutron::Neutron()->GetProcessManager();
00220   G4ProcessVector*  pv = pmanager->GetProcessList();
00221   for ( size_t i=0; i < static_cast<size_t>(pv->size()); ++i ) {
00222     if ( fCapture == ((*pv)[i])->GetProcessSubType() ) {
00223       capture = static_cast<G4HadronicProcess*>((*pv)[i]);
00224     } else if ( fFission == ((*pv)[i])->GetProcessSubType() ) {
00225       fission = static_cast<G4HadronicProcess*>((*pv)[i]);
00226     }
00227   }
00228   if ( ! capture ) {
00229     capture = new G4HadronCaptureProcess("nCapture");
00230     pmanager->AddDiscreteProcess(capture);
00231   }
00232   xsNeutronCaptureXS = new G4NeutronCaptureXS();
00233   capture->AddDataSet(xsNeutronCaptureXS);
00234   capture->RegisterMe(new G4NeutronRadCapture());
00235   if ( ! fission ) {
00236     fission = new G4HadronFissionProcess("nFission");
00237     pmanager->AddDiscreteProcess(fission);
00238   }
00239   fission->RegisterMe(new G4LFission());
00240 
00241 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:54:02 2013 for Geant4 by  doxygen 1.4.7