G4StepLimiterBuilder Class Reference

#include <G4StepLimiterBuilder.hh>

Inheritance diagram for G4StepLimiterBuilder:

G4VPhysicsConstructor

Public Member Functions

 G4StepLimiterBuilder (const G4String &name="stepLimiter")
virtual ~G4StepLimiterBuilder ()
virtual void ConstructParticle ()
virtual void ConstructProcess ()

Detailed Description

Definition at line 43 of file G4StepLimiterBuilder.hh.


Constructor & Destructor Documentation

G4StepLimiterBuilder::G4StepLimiterBuilder ( const G4String name = "stepLimiter"  ) 

Definition at line 57 of file G4StepLimiterBuilder.cc.

00058    :  G4VPhysicsConstructor(name)
00059 {
00060   fStepLimiter = new G4StepLimiter();
00061   fUserSpecialCuts = new G4UserSpecialCuts();
00062 }

G4StepLimiterBuilder::~G4StepLimiterBuilder (  )  [virtual]

Definition at line 66 of file G4StepLimiterBuilder.cc.

00067 {
00068   delete fStepLimiter;
00069   delete fUserSpecialCuts;
00070 }


Member Function Documentation

void G4StepLimiterBuilder::ConstructParticle (  )  [virtual]

Implements G4VPhysicsConstructor.

Definition at line 74 of file G4StepLimiterBuilder.cc.

00075 {}

void G4StepLimiterBuilder::ConstructProcess (  )  [virtual]

Implements G4VPhysicsConstructor.

Definition at line 79 of file G4StepLimiterBuilder.cc.

References G4ProcessManager::AddDiscreteProcess(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetProcessManager(), G4ParticleDefinition::IsShortLived(), G4ParticleTableIterator< K, V >::reset(), G4VPhysicsConstructor::theParticleIterator, and G4ParticleTableIterator< K, V >::value().

00080 {
00081   theParticleIterator->reset();
00082 
00083   while ((*theParticleIterator)()) {
00084     G4ParticleDefinition* particle = theParticleIterator->value();
00085     G4ProcessManager* pmanager = particle->GetProcessManager();
00086     G4double charge = particle->GetPDGCharge();
00087 
00088     if(!particle->IsShortLived()) {
00089       if (charge != 0.0) {
00090         // All charged particles should have a step limiter
00091         // to make sure that the steps do not get too long.
00092         pmanager->AddDiscreteProcess(fStepLimiter);
00093         pmanager->AddDiscreteProcess(fUserSpecialCuts);
00094       } else {
00095         // Energy cuts for all other neutral particles
00096         pmanager->AddDiscreteProcess(fUserSpecialCuts);
00097       }
00098     }
00099   }
00100 }


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