G4QStoppingPhysics Class Reference

#include <G4QStoppingPhysics.hh>

Inheritance diagram for G4QStoppingPhysics:

G4VPhysicsConstructor

Public Member Functions

 G4QStoppingPhysics (G4int ver=1)
 G4QStoppingPhysics (const G4String &name, G4int ver=1, G4bool UseMuonMinusCapture=true)
virtual ~G4QStoppingPhysics ()
virtual void ConstructParticle ()
virtual void ConstructProcess ()

Detailed Description

Definition at line 49 of file G4QStoppingPhysics.hh.


Constructor & Destructor Documentation

G4QStoppingPhysics::G4QStoppingPhysics ( G4int  ver = 1  ) 

Definition at line 56 of file G4QStoppingPhysics.cc.

References G4cout, G4endl, and G4HadronicDeprecate.

00057   :  G4VPhysicsConstructor("stopping")
00058     , muProcess(0), hProcess(0)
00059 , verbose(ver), wasActivated(false) ,
00060      useMuonMinusCapture(true)
00061 {
00062   G4HadronicDeprecate("G4QStoppingPhysics");
00063   if(verbose > 1) G4cout << "### G4QStoppingPhysics" << G4endl;
00064 }

G4QStoppingPhysics::G4QStoppingPhysics ( const G4String name,
G4int  ver = 1,
G4bool  UseMuonMinusCapture = true 
)

Definition at line 66 of file G4QStoppingPhysics.cc.

References G4cout, G4endl, and G4HadronicDeprecate.

00068   :  G4VPhysicsConstructor(name)
00069     , muProcess(0), hProcess(0)
00070     , verbose(ver), wasActivated(false) ,
00071      useMuonMinusCapture(UseMuonMinusCapture)
00072 {
00073   G4HadronicDeprecate("G4QStoppingPhysics");
00074   if(verbose > 1) G4cout << "### G4QStoppingPhysics" << G4endl;
00075 }

G4QStoppingPhysics::~G4QStoppingPhysics (  )  [virtual]

Definition at line 77 of file G4QStoppingPhysics.cc.

00078 {
00079   if(wasActivated) {
00080     if ( muProcess ) delete muProcess;
00081     delete hProcess;
00082   }
00083 }


Member Function Documentation

void G4QStoppingPhysics::ConstructParticle (  )  [virtual]

Implements G4VPhysicsConstructor.

Definition at line 85 of file G4QStoppingPhysics.cc.

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

00086 {
00087 // G4cout << "G4QStoppingPhysics::ConstructParticle" << G4endl;
00088   G4LeptonConstructor pLeptonConstructor;
00089   pLeptonConstructor.ConstructParticle();
00090 
00091   G4MesonConstructor pMesonConstructor;
00092   pMesonConstructor.ConstructParticle();
00093 
00094   G4BaryonConstructor pBaryonConstructor;
00095   pBaryonConstructor.ConstructParticle();
00096 
00097 }

void G4QStoppingPhysics::ConstructProcess (  )  [virtual]

Implements G4VPhysicsConstructor.

Definition at line 99 of file G4QStoppingPhysics.cc.

References G4ProcessManager::AddRestProcess(), G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetPDGMass(), G4ParticleDefinition::GetProcessManager(), G4QCaptureAtRest::IsApplicable(), G4ParticleDefinition::IsShortLived(), G4MuonMinus::MuonMinus(), G4ParticleTableIterator< K, V >::reset(), G4VPhysicsConstructor::theParticleIterator, and G4ParticleTableIterator< K, V >::value().

00100 {
00101   if(verbose > 1) G4cout << "### G4QStoppingPhysics::ConstructProcess " 
00102                           << wasActivated << G4endl;
00103   if(wasActivated) return;
00104   wasActivated = true;
00105 
00106   if ( useMuonMinusCapture )
00107   {
00108      muProcess = new G4MuonMinusCaptureAtRest();
00109   } else {
00110      muProcess = 0;
00111   }   
00112   hProcess = new G4QCaptureAtRest();
00113 
00114   G4double mThreshold = 130.*MeV;
00115 
00116   // Add Stopping Process
00117   G4ParticleDefinition* particle=0;
00118   G4ProcessManager* pmanager=0;
00119 
00120   theParticleIterator->reset();
00121   while( (*theParticleIterator)() )
00122   {
00123     particle = theParticleIterator->value();
00124     pmanager = particle->GetProcessManager();
00125     if(particle == G4MuonMinus::MuonMinus()) {
00126       if ( useMuonMinusCapture ) 
00127       {
00128          pmanager->AddRestProcess(muProcess);
00129          if(verbose > 1)
00130           G4cout << "### QStoppingPhysics added G4MuonMinusCaptureAtRest for " 
00131                  << particle->GetParticleName() << G4endl;
00132       } else {
00133          pmanager->AddRestProcess(hProcess);
00134          if(verbose > 1)
00135           G4cout << "### QStoppingPhysics added G4QCaptureAtRest for " 
00136                  << particle->GetParticleName() << G4endl;
00137       }  
00138     }
00139     if(particle->GetPDGCharge() < 0.0 && 
00140        particle->GetPDGMass() > mThreshold &&
00141        !particle->IsShortLived() &&
00142        hProcess->IsApplicable(*particle) ) 
00143     { 
00144       pmanager->AddRestProcess(hProcess);
00145       if(verbose > 1)
00146         G4cout << "### QStoppingPhysics added for " 
00147                << particle->GetParticleName() << G4endl;
00148     }
00149   }
00150 }


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