G4HadronQElasticPhysics Class Reference

#include <G4HadronQElasticPhysics.hh>

Inheritance diagram for G4HadronQElasticPhysics:

G4VPhysicsConstructor

Public Member Functions

 G4HadronQElasticPhysics (G4int ver=1)
 G4HadronQElasticPhysics (const G4String &name, G4int ver)
virtual ~G4HadronQElasticPhysics ()
virtual void ConstructParticle ()
virtual void ConstructProcess ()

Detailed Description

Definition at line 45 of file G4HadronQElasticPhysics.hh.


Constructor & Destructor Documentation

G4HadronQElasticPhysics::G4HadronQElasticPhysics ( G4int  ver = 1  ) 

Definition at line 69 of file G4HadronQElasticPhysics.cc.

References G4cout, G4endl, and G4VPhysicsConstructor::GetPhysicsName().

00070   : G4VPhysicsConstructor("hElasticCHIPS_LHEP"), verbose(ver),
00071     wasActivated(false)
00072 {
00073   if(verbose > 1) { 
00074     G4cout << "### G4HadronQElasticPhysics: " << GetPhysicsName() 
00075            << G4endl; 
00076   }
00077 }

G4HadronQElasticPhysics::G4HadronQElasticPhysics ( const G4String name,
G4int  ver 
)

Definition at line 79 of file G4HadronQElasticPhysics.cc.

References G4cout, G4endl, and G4VPhysicsConstructor::GetPhysicsName().

00080   : G4VPhysicsConstructor("hElasticCHIPS_LHEP"), verbose(ver),
00081     wasActivated(false)
00082 {
00083   if(verbose > 1) { 
00084     G4cout << "### G4HadronQElasticPhysics: " << GetPhysicsName() 
00085            << G4endl; 
00086   }
00087 }

G4HadronQElasticPhysics::~G4HadronQElasticPhysics (  )  [virtual]

Definition at line 89 of file G4HadronQElasticPhysics.cc.

00090 {}


Member Function Documentation

void G4HadronQElasticPhysics::ConstructParticle (  )  [virtual]

Implements G4VPhysicsConstructor.

Definition at line 92 of file G4HadronQElasticPhysics.cc.

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

00093 {
00094   G4MesonConstructor pMesonConstructor;
00095   pMesonConstructor.ConstructParticle();
00096 
00097   G4BaryonConstructor pBaryonConstructor;
00098   pBaryonConstructor.ConstructParticle();
00099 
00100   //  Construct light ions
00101   G4IonConstructor pConstructor;
00102   pConstructor.ConstructParticle();  
00103 }

void G4HadronQElasticPhysics::ConstructProcess (  )  [virtual]

Implements G4VPhysicsConstructor.

Definition at line 105 of file G4HadronQElasticPhysics.cc.

References G4HadronicProcess::AddDataSet(), G4ProcessManager::AddDiscreteProcess(), G4cout, G4endl, G4AntiNuclElastic::GetComponentCrossSection(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetProcessManager(), G4HadronicProcess::RegisterMe(), G4ParticleTableIterator< K, V >::reset(), G4HadronicInteraction::SetMaxEnergy(), G4HadronicInteraction::SetMinEnergy(), G4VPhysicsConstructor::theParticleIterator, and G4ParticleTableIterator< K, V >::value().

00106 {
00107   if(wasActivated) { return; }
00108   wasActivated = true;
00109 
00110   if(verbose > 1) {
00111     G4cout << "### HadronQElasticPhysics::ConstructProcess" << G4endl;
00112   }
00113 
00114   G4HadronElastic* lhep0 = new G4HadronElastic();  
00115   G4HadronElastic* lhep1 = new G4HadronElastic();
00116   G4double elimitAntiNuc = 100*CLHEP::MeV;
00117   lhep1->SetMaxEnergy(elimitAntiNuc);
00118   G4AntiNuclElastic* anuc = new G4AntiNuclElastic();
00119   anuc->SetMinEnergy(elimitAntiNuc);
00120   G4CrossSectionElastic* anucxs = 
00121     new G4CrossSectionElastic(anuc->GetComponentCrossSection());
00122 
00123   theParticleIterator->reset();
00124   while( (*theParticleIterator)() )
00125   {
00126     G4ParticleDefinition* particle = theParticleIterator->value();
00127     G4ProcessManager* pmanager = particle->GetProcessManager();
00128     G4String pname = particle->GetParticleName();
00129     if(pname == "anti_lambda"  ||
00130        pname == "anti_neutron" ||
00131        pname == "anti_omega-"  || 
00132        pname == "anti_sigma-"  || 
00133        pname == "anti_sigma+"  || 
00134        pname == "anti_xi-"  || 
00135        pname == "anti_xi0"  || 
00136        pname == "kaon-"     || 
00137        pname == "kaon+"     || 
00138        pname == "kaon0S"    || 
00139        pname == "kaon0L"    || 
00140        pname == "lambda"    || 
00141        pname == "omega-"    || 
00142        pname == "pi-"       || 
00143        pname == "pi+"       || 
00144        pname == "sigma-"    || 
00145        pname == "sigma+"    || 
00146        pname == "xi-"       || 
00147        pname == "alpha"     ||
00148        pname == "deuteron"  ||
00149        pname == "triton" 
00150       ) {
00151 
00152       G4HadronElasticProcess* hel = new G4HadronElasticProcess();
00153       hel->RegisterMe(lhep0);
00154       pmanager->AddDiscreteProcess(hel);
00155 
00156     } else if(pname == "neutron" || pname == "proton") {   
00157 
00158       G4QElastic* process = new G4QElastic();  
00159       pmanager->AddDiscreteProcess(process);
00160 
00161       if(verbose > 0)
00162         G4cout << "### QElastic added for " 
00163                << particle->GetParticleName() << G4endl;
00164 
00165     } else if(
00166        pname == "anti_proton"    || 
00167        pname == "anti_alpha"     ||
00168        pname == "anti_deuteron"  ||
00169        pname == "anti_triton"    ||
00170        pname == "anti_He3"       
00171       ) {
00172 
00173       G4HadronElasticProcess* hel = new G4HadronElasticProcess();
00174       hel->AddDataSet(anucxs);
00175       hel->RegisterMe(lhep1);
00176       hel->RegisterMe(anuc);
00177       pmanager->AddDiscreteProcess(hel);
00178 
00179     }
00180  
00181   }
00182 }


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