#include <G4QStoppingPhysics.hh>
Inheritance diagram for G4QStoppingPhysics:
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 () |
Definition at line 49 of file G4QStoppingPhysics.hh.
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 }
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 }