Changeset 962 for trunk/source/processes/hadronic/stopping/src
- Timestamp:
- Apr 6, 2009, 12:30:29 PM (16 years ago)
- Location:
- trunk/source/processes/hadronic/stopping/src
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/stopping/src/G4AntiNeutronAnnihilationAtRest.cc
r819 r962 31 31 #include "G4DynamicParticle.hh" 32 32 #include "G4ParticleTypes.hh" 33 #include "G4HadronicProcessStore.hh" 33 34 #include "Randomize.hh" 34 35 #include <string.h> … … 41 42 42 43 G4AntiNeutronAnnihilationAtRest::G4AntiNeutronAnnihilationAtRest(const G4String& processName, 43 G4ProcessType aType) :44 G4ProcessType aType) : 44 45 G4VRestProcess (processName, aType), // initialization 45 46 massPionMinus(G4PionMinus::PionMinus()->GetPDGMass()/GeV), … … 63 64 G4cout << GetProcessName() << " is created "<< G4endl; 64 65 } 65 66 SetProcessSubType(fHadronAtRest); 66 67 pv = new G4GHEKinematicsVector [MAX_SECONDARIES+1]; 67 68 eve = new G4GHEKinematicsVector [MAX_SECONDARIES]; 68 69 gkin = new G4GHEKinematicsVector [MAX_SECONDARIES]; 69 70 71 G4HadronicProcessStore::Instance()->RegisterExtraProcess(this); 70 72 } 71 73 … … 74 76 G4AntiNeutronAnnihilationAtRest::~G4AntiNeutronAnnihilationAtRest() 75 77 { 78 G4HadronicProcessStore::Instance()->DeRegisterExtraProcess(this); 76 79 delete [] pv; 77 80 delete [] eve; … … 79 82 } 80 83 84 void G4AntiNeutronAnnihilationAtRest::PreparePhysicsTable(const G4ParticleDefinition& p) 85 { 86 G4HadronicProcessStore::Instance()->RegisterParticleForExtraProcess(this, &p); 87 } 88 89 void G4AntiNeutronAnnihilationAtRest::BuildPhysicsTable(const G4ParticleDefinition& p) 90 { 91 G4HadronicProcessStore::Instance()->PrintInfo(&p); 92 } 81 93 82 94 // methods............................................................................. … … 89 101 90 102 } 91 103 92 104 // Warning - this method may be optimized away if made "inline" 93 105 G4int G4AntiNeutronAnnihilationAtRest::GetNumberOfSecondaries() -
trunk/source/processes/hadronic/stopping/src/G4AntiProtonAnnihilationAtRest.cc
r819 r962 32 32 #include "G4ParticleTypes.hh" 33 33 #include "Randomize.hh" 34 #include "G4HadronicProcessStore.hh" 34 35 #include <string.h> 35 36 #include <cmath> … … 63 64 G4cout << GetProcessName() << " is created "<< G4endl; 64 65 } 65 66 SetProcessSubType(fHadronAtRest); 66 67 pv = new G4GHEKinematicsVector [MAX_SECONDARIES+1]; 67 68 eve = new G4GHEKinematicsVector [MAX_SECONDARIES]; 68 69 gkin = new G4GHEKinematicsVector [MAX_SECONDARIES]; 69 70 71 G4HadronicProcessStore::Instance()->RegisterExtraProcess(this); 70 72 } 71 73 … … 74 76 G4AntiProtonAnnihilationAtRest::~G4AntiProtonAnnihilationAtRest() 75 77 { 78 G4HadronicProcessStore::Instance()->DeRegisterExtraProcess(this); 76 79 delete [] pv; 77 80 delete [] eve; … … 79 82 } 80 83 84 void G4AntiProtonAnnihilationAtRest::PreparePhysicsTable(const G4ParticleDefinition& p) 85 { 86 G4HadronicProcessStore::Instance()->RegisterParticleForExtraProcess(this, &p); 87 } 88 89 void G4AntiProtonAnnihilationAtRest::BuildPhysicsTable(const G4ParticleDefinition& p) 90 { 91 G4HadronicProcessStore::Instance()->PrintInfo(&p); 92 } 81 93 82 94 // methods............................................................................. -
trunk/source/processes/hadronic/stopping/src/G4KaonMinusAbsorption.cc
r819 r962 32 32 #include "G4ParticleTypes.hh" 33 33 #include "Randomize.hh" 34 #include "G4HadronicProcessStore.hh" 34 35 #include <string.h> 35 36 #include <cmath> … … 61 62 G4cout << GetProcessName() << " is created "<< G4endl; 62 63 } 63 64 SetProcessSubType(fHadronAtRest); 64 65 pv = new G4GHEKinematicsVector [MAX_SECONDARIES+1]; 65 66 eve = new G4GHEKinematicsVector [MAX_SECONDARIES]; 66 67 gkin = new G4GHEKinematicsVector [MAX_SECONDARIES]; 67 68 69 G4HadronicProcessStore::Instance()->RegisterExtraProcess(this); 68 70 } 69 71 … … 72 74 G4KaonMinusAbsorption::~G4KaonMinusAbsorption() 73 75 { 76 G4HadronicProcessStore::Instance()->DeRegisterExtraProcess(this); 74 77 delete [] pv; 75 78 delete [] eve; 76 79 delete [] gkin; 77 80 } 78 81 82 void G4KaonMinusAbsorption::PreparePhysicsTable(const G4ParticleDefinition& p) 83 { 84 G4HadronicProcessStore::Instance()->RegisterParticleForExtraProcess(this, &p); 85 } 86 87 void G4KaonMinusAbsorption::BuildPhysicsTable(const G4ParticleDefinition& p) 88 { 89 G4HadronicProcessStore::Instance()->PrintInfo(&p); 90 } 79 91 80 92 // methods............................................................................. -
trunk/source/processes/hadronic/stopping/src/G4KaonMinusAbsorptionAtRest.cc
r819 r962 43 43 #include "G4StopDeexcitationAlgorithm.hh" 44 44 #include "G4ReactionKinematics.hh" 45 #include "G4HadronicProcessStore.hh" 45 46 46 47 G4KaonMinusAbsorptionAtRest::G4KaonMinusAbsorptionAtRest(const G4String& processName, … … 51 52 G4cout << GetProcessName() << " is created "<< G4endl; 52 53 } 54 SetProcessSubType(fHadronAtRest); 53 55 54 56 // see Cohn et al, PLB27(1968) 527; … … 79 81 sigmaMinusLambdaConversionRate = 0.55; 80 82 sigmaZeroLambdaConversionRate = 0.55; 83 84 G4HadronicProcessStore::Instance()->RegisterExtraProcess(this); 81 85 } 82 86 83 87 84 88 G4KaonMinusAbsorptionAtRest::~G4KaonMinusAbsorptionAtRest() 85 { } 86 89 { 90 G4HadronicProcessStore::Instance()->DeRegisterExtraProcess(this); 91 } 92 93 void G4KaonMinusAbsorptionAtRest::PreparePhysicsTable(const G4ParticleDefinition& p) 94 { 95 G4HadronicProcessStore::Instance()->RegisterParticleForExtraProcess(this, &p); 96 } 97 98 void G4KaonMinusAbsorptionAtRest::BuildPhysicsTable(const G4ParticleDefinition& p) 99 { 100 G4HadronicProcessStore::Instance()->PrintInfo(&p); 101 } 87 102 88 103 G4VParticleChange* G4KaonMinusAbsorptionAtRest::AtRestDoIt … … 182 197 G4double newA = nucleus->GetN(); 183 198 184 G4double bDiff = G4NucleiPropertiesTable::GetBindingEnergy(static_cast<G4int>(Z),static_cast<G4int>(A)) - 185 G4NucleiPropertiesTable::GetBindingEnergy(static_cast<G4int>(newZ), static_cast<G4int>(newA)); 186 187 // G4double mass = G4NucleiPropertiesTable::GetAtomicMass(static_cast<G4int>(newZ),static_cast<G4int>(newA)); 199 G4double bDiff = G4NucleiProperties::GetBindingEnergy(static_cast<G4int>(A),static_cast<G4int>(Z)) - 200 G4NucleiProperties::GetBindingEnergy(static_cast<G4int>(newA), static_cast<G4int>(newZ)); 201 188 202 G4double pNucleus = pProducts.mag(); 189 203 190 204 G4StopDeexcitationAlgorithm* nucleusAlgorithm = new G4StopTheoDeexcitation(); 191 205 G4StopDeexcitation stopDeexcitation(nucleusAlgorithm); 192 193 // G4double difference = G4KaonMinus::KaonMinus()->GetPDGMass() - productEnergy - bDiff;194 206 195 207 nucleus->AddExcitationEnergy(bDiff); … … 397 409 // Modify the Kaon mass to take nuclear binding energy into account 398 410 // .. using mas formula .. 399 // G4double nucleonBindingEnergy = nucleus->AtomicMass(iniA,iniZ)400 // - nucleus->AtomicMass(newA,newZ)401 // - nucleonMass;402 411 // .. using mass table .. 403 // G4double nucleonBindingEnergy =404 // G4NucleiPropertiesTable::GetAtomicMass(iniZ,iniA)405 // -G4NucleiPropertiesTable::GetAtomicMass(newZ,newA)406 // -nucleonMass;407 412 // equivalent to -'initialBindingEnergy+nucleus.GetBindingEnergy' ! 408 413 409 414 G4double nucleonBindingEnergy = 410 -G4NucleiProperties Table::GetBindingEnergy(static_cast<G4int>(iniZ), static_cast<G4int>(iniA) )411 +G4NucleiProperties Table::GetBindingEnergy(static_cast<G4int>(newZ), static_cast<G4int>(newA) );415 -G4NucleiProperties::GetBindingEnergy(static_cast<G4int>(iniA), static_cast<G4int>(iniZ) ) 416 +G4NucleiProperties::GetBindingEnergy(static_cast<G4int>(newA), static_cast<G4int>(newZ) ); 412 417 413 418 G4DynamicParticle modifiedHadron = (*stoppedHadron); … … 523 528 // ExcitationEnergy. 524 529 // .. using mass formula .. 525 // G4double massDifference = nucleus->AtomicMass(A,Z)526 // - nucleus->AtomicMass(A,newZ)527 // - nucleonMassDifference;528 530 // .. using mass table .. 529 // G4double massDifference =530 // G4NucleiPropertiesTable::GetAtomicMass(Z,A)531 // -G4NucleiPropertiesTable::GetAtomicMass(newZ,A)532 // -nucleonMass;533 531 // equivalent to -'initialBindingEnergy+nucleus.GetBindingEnergy' ! 534 //G4double massDifference = 535 // -G4NucleiPropertiesTable::GetBindingEnergy(Z,A) 536 // +G4NucleiPropertiesTable::GetBindingEnergy(newZ,A); 537 538 532 539 533 // Add energy and momentum to nucleus, change Z,A 540 // nucleus->AddExcitationEnergy(outNucleon->GetKineticEnergy()+massDifference);541 534 nucleus->AddExcitationEnergy(outNucleon.GetKineticEnergy()); 542 535 nucleus->AddMomentum(outNucleon.GetMomentum()); -
trunk/source/processes/hadronic/stopping/src/G4MuMinusCaptureCascade.cc
r819 r962 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuMinusCaptureCascade.cc,v 1.1 5.2.1 2008/05/05 09:14:52vnivanch Exp $27 // GEANT4 tag $Name: geant4-09-0 1-patch-02 $26 // $Id: G4MuMinusCaptureCascade.cc,v 1.16 2008/05/05 09:09:06 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // G4MuonMinusCaptureAtRest physics process -
trunk/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc
r819 r962 24 24 // ******************************************************************** 25 25 // 26 // $Id: G4MuonMinusCaptureAtRest.cc,v 1. 48 2007/11/19 16:49:25vnivanch Exp $27 // GEANT4 tag $Name: $26 // $Id: G4MuonMinusCaptureAtRest.cc,v 1.54 2009/01/24 11:55:38 vnivanch Exp $ 27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // G4MuonMinusCaptureAtRest physics process … … 33 33 // 34 34 // Modifications: 35 // 18/08/2000 V.Ivanchenko Update description 35 // 18/08/2000 V.Ivanchenko Update description 36 36 // 12/12/2003 H.P.Wellisch Completly rewrite mu-nuclear part 37 37 // 17/05/2006 V.Ivanchenko Cleanup 38 38 // 15/11/2006 V.Ivanchenko Review and rewrite all kinematics 39 39 // 24/01/2007 V.Ivanchenko Force to work with integer Z and A 40 // 23/01/2009 V.Ivanchenko Add deregistration 40 41 // 41 42 //----------------------------------------------------------------------------- … … 53 54 #include "G4Fancy3DNucleus.hh" 54 55 #include "G4ExcitationHandler.hh" 56 #include "G4HadronicProcessStore.hh" 55 57 56 58 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... … … 61 63 isInitialised(false) 62 64 { 65 SetProcessSubType(fHadronAtRest); 63 66 Cascade = new G4GHEKinematicsVector [17]; 64 67 pSelector = new G4StopElementSelector(); … … 66 69 theN = new G4Fancy3DNucleus(); 67 70 theHandler = new G4ExcitationHandler(); 71 G4HadronicProcessStore::Instance()->RegisterExtraProcess(this); 68 72 } 69 73 … … 72 76 G4MuonMinusCaptureAtRest::~G4MuonMinusCaptureAtRest() 73 77 { 78 G4HadronicProcessStore::Instance()->DeRegisterExtraProcess(this); 74 79 delete [] Cascade; 75 80 delete pSelector; … … 84 89 { 85 90 return ( &p == G4MuonMinus::MuonMinus() ); 91 } 92 93 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 94 95 void G4MuonMinusCaptureAtRest::PreparePhysicsTable(const G4ParticleDefinition& p) 96 { 97 G4HadronicProcessStore::Instance()->RegisterParticleForExtraProcess(this, &p); 98 } 99 100 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 101 102 void G4MuonMinusCaptureAtRest::BuildPhysicsTable(const G4ParticleDefinition& p) 103 { 104 G4HadronicProcessStore::Instance()->PrintInfo(&p); 86 105 } 87 106 -
trunk/source/processes/hadronic/stopping/src/G4NeutronCaptureAtRest.cc
r819 r962 32 32 #include "G4ParticleTypes.hh" 33 33 #include "Randomize.hh" 34 #include "G4HadronicProcessStore.hh" 34 35 #include <string.h> 35 36 #include <cmath> … … 54 55 G4cout << GetProcessName() << " is created "<< G4endl; 55 56 } 56 57 SetProcessSubType(fHadronAtRest); 57 58 pv = new G4GHEKinematicsVector [MAX_SECONDARIES+1]; 58 59 eve = new G4GHEKinematicsVector [MAX_SECONDARIES]; 59 60 gkin = new G4GHEKinematicsVector [MAX_SECONDARIES]; 60 61 62 G4HadronicProcessStore::Instance()->RegisterExtraProcess(this); 61 63 } 62 64 … … 65 67 G4NeutronCaptureAtRest::~G4NeutronCaptureAtRest() 66 68 { 69 G4HadronicProcessStore::Instance()->DeRegisterExtraProcess(this); 67 70 delete [] pv; 68 71 delete [] eve; … … 70 73 } 71 74 75 void G4NeutronCaptureAtRest::PreparePhysicsTable(const G4ParticleDefinition& p) 76 { 77 G4HadronicProcessStore::Instance()->RegisterParticleForExtraProcess(this, &p); 78 } 79 80 void G4NeutronCaptureAtRest::BuildPhysicsTable(const G4ParticleDefinition& p) 81 { 82 G4HadronicProcessStore::Instance()->PrintInfo(&p); 83 } 72 84 73 85 // methods............................................................................. -
trunk/source/processes/hadronic/stopping/src/G4PiMinusAbsorptionAtRest.cc
r819 r962 57 57 #include "G4ThreeVector.hh" 58 58 #include "G4LorentzVector.hh" 59 #include "G4HadronicProcessStore.hh" 59 60 60 61 // Constructor 61 62 62 63 G4PiMinusAbsorptionAtRest::G4PiMinusAbsorptionAtRest(const G4String& processName, 63 G4ProcessType aType) :64 G4ProcessType aType) : 64 65 G4VRestProcess (processName, aType) 65 66 { 66 // _stopAbsorption = 0; 67 // _stopDeexcitation = 0; 67 SetProcessSubType(fHadronAtRest); 68 68 69 69 _indexDeexcitation = 0; … … 71 71 if (verboseLevel>0) 72 72 { G4cout << GetProcessName() << " is created "<< G4endl; } 73 G4HadronicProcessStore::Instance()->RegisterExtraProcess(this); 73 74 } 74 75 … … 77 78 78 79 G4PiMinusAbsorptionAtRest::~G4PiMinusAbsorptionAtRest() 79 {} 80 80 { 81 G4HadronicProcessStore::Instance()->DeRegisterExtraProcess(this); 82 } 83 84 void G4PiMinusAbsorptionAtRest::PreparePhysicsTable(const G4ParticleDefinition& p) 85 { 86 G4HadronicProcessStore::Instance()->RegisterParticleForExtraProcess(this, &p); 87 } 88 89 void G4PiMinusAbsorptionAtRest::BuildPhysicsTable(const G4ParticleDefinition& p) 90 { 91 G4HadronicProcessStore::Instance()->PrintInfo(&p); 92 } 81 93 82 94 G4VParticleChange* G4PiMinusAbsorptionAtRest::AtRestDoIt(const G4Track& track, const G4Step& ) -
trunk/source/processes/hadronic/stopping/src/G4PiMinusStopAbsorption.cc
r819 r962 38 38 #include "globals.hh" 39 39 #include "Randomize.hh" 40 #include "G4NucleiPropertiesTable.hh"41 40 #include "G4NucleiProperties.hh" 42 41 #include "G4ParticleTypes.hh" … … 94 93 } 95 94 96 G4double binding = G4NucleiProperties Table::GetBindingEnergy(static_cast<G4int>(_nucleusZ) ,static_cast<G4int>(_nucleusA)) / _nucleusA;95 G4double binding = G4NucleiProperties::GetBindingEnergy(static_cast<G4int>(_nucleusA) ,static_cast<G4int>(_nucleusZ)) / _nucleusA; 97 96 G4double mass = G4NucleiProperties::GetNuclearMass(static_cast<G4int>(newA),static_cast<G4int>(newZ)); 98 97 … … 185 184 } 186 185 187 G4double productBinding = (G4NucleiProperties Table::GetBindingEnergy(static_cast<G4int>(_nucleusZ),static_cast<G4int>(_nucleusA)) / _nucleusA) * nAbsorptionProducts;186 G4double productBinding = (G4NucleiProperties::GetBindingEnergy(static_cast<G4int>(_nucleusA),static_cast<G4int>(_nucleusZ)) / _nucleusA) * nAbsorptionProducts; 188 187 G4double mass = G4NucleiProperties::GetNuclearMass(_nucleusA - (nP + nN),_nucleusZ - nP); 189 188 G4double pNucleus = pProducts.mag(); 190 189 G4double eNucleus = std::sqrt(pNucleus*pNucleus + mass*mass); 191 190 G4double tNucleus = eNucleus - mass; 192 G4double temp = G4NucleiPropertiesTable::GetBindingEnergy(static_cast<G4int>(_nucleusZ - nP),static_cast<G4int>(_nucleusA - (nP + nN))) - 193 G4NucleiPropertiesTable::GetBindingEnergy(static_cast<G4int>(_nucleusZ),static_cast<G4int>(_nucleusA)); 191 G4double temp = 192 G4NucleiProperties::GetBindingEnergy(static_cast<G4int>(_nucleusA - (nP + nN)),static_cast<G4int>(_nucleusZ - nP)) - 193 G4NucleiProperties::GetBindingEnergy(static_cast<G4int>(_nucleusA),static_cast<G4int>(_nucleusZ)); 194 194 energy = productEnergy + productBinding + tNucleus; 195 195 -
trunk/source/processes/hadronic/stopping/src/G4PionMinusAbsorptionAtRest.cc
r819 r962 32 32 #include "G4ParticleTypes.hh" 33 33 #include "Randomize.hh" 34 #include "G4HadronicProcessStore.hh" 34 35 #include <string.h> 35 36 #include <cmath> … … 56 57 G4cout << GetProcessName() << " is created "<< G4endl; 57 58 } 58 59 SetProcessSubType(fHadronAtRest); 59 60 pv = new G4GHEKinematicsVector [MAX_SECONDARIES+1]; 60 61 eve = new G4GHEKinematicsVector [MAX_SECONDARIES]; 61 62 gkin = new G4GHEKinematicsVector [MAX_SECONDARIES]; 62 63 64 G4HadronicProcessStore::Instance()->RegisterExtraProcess(this); 63 65 } 64 66 … … 67 69 G4PionMinusAbsorptionAtRest::~G4PionMinusAbsorptionAtRest() 68 70 { 71 G4HadronicProcessStore::Instance()->DeRegisterExtraProcess(this); 69 72 delete [] pv; 70 73 delete [] eve; … … 72 75 } 73 76 77 void G4PionMinusAbsorptionAtRest::PreparePhysicsTable(const G4ParticleDefinition& p) 78 { 79 G4HadronicProcessStore::Instance()->RegisterParticleForExtraProcess(this, &p); 80 } 81 82 void G4PionMinusAbsorptionAtRest::BuildPhysicsTable(const G4ParticleDefinition& p) 83 { 84 G4HadronicProcessStore::Instance()->PrintInfo(&p); 85 } 74 86 75 87 // methods............................................................................. -
trunk/source/processes/hadronic/stopping/src/G4StopElementSelector.cc
r819 r962 25 25 // 26 26 // $Id: G4StopElementSelector.cc,v 1.16 2007/10/02 18:27:43 vnivanch Exp $ 27 // GEANT4 tag $Name: $27 // GEANT4 tag $Name: geant4-09-02-ref-02 $ 28 28 // 29 29 // File: G4StopElementSelector -
trunk/source/processes/hadronic/stopping/src/G4StopTheoDeexcitation.cc
r819 r962 42 42 #include "G4ThreeVector.hh" 43 43 #include "G4LorentzVector.hh" 44 #include "G4NucleiProperties Table.hh"44 #include "G4NucleiProperties.hh" 45 45 #include "G4Fragment.hh" 46 46 #include "G4ExcitationHandler.hh" … … 69 69 // theHandler.SetMaxAandZForFermiBreakUp(2, 1); 70 70 // Min excitation energy (per nucleon) for use MultiFrag 71 // theHandler.SetMinEForMultiFrag(3*MeV); 71 72 72 theHandler.SetMinEForMultiFrag(300*GeV); 73 73 74 74 // Deexcite the nucleus 75 75 76 G4double atomicMass = G4NucleiProperties Table::GetAtomicMass(static_cast<G4int>(Z),static_cast<G4int>(A));76 G4double atomicMass = G4NucleiProperties::GetNuclearMass(static_cast<G4int>(A),static_cast<G4int>(Z)); 77 77 G4double m = atomicMass + excitation; 78 78 G4double pMag = p.mag(); … … 80 80 G4Fragment theExcitedNucleus(static_cast<G4int>(A),static_cast<G4int>(Z),initialMomentum); 81 81 82 // theExcitedNucleus.SetA(A);83 // theExcitedNucleus.SetZ(Z);84 // theExcitedNucleus.SetExcitationEnergy(excitation);85 // theExcitedNucleus.SetMomentum(initialMomentum);86 87 // G4cout << "Theo input " << A << " " << Z << " "88 // << pMag << " " << atomicMass << G4endl89 // << "Theo - " << excitation << " " << initialMomentum.mag() << G4endl90 // << "Fragment - " << theExcitedNucleus.GetExcitationEnergy() << " "91 // << theExcitedNucleus.GetMomentum().mag() << G4endl;92 93 82 return theHandler.BreakItUp(theExcitedNucleus); 94 83 }
Note: See TracChangeset
for help on using the changeset viewer.