Ignore:
Timestamp:
Apr 6, 2009, 12:30:29 PM (15 years ago)
Author:
garnier
Message:

update processes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/stopping/src/G4KaonMinusAbsorptionAtRest.cc

    r819 r962  
    4343#include "G4StopDeexcitationAlgorithm.hh"
    4444#include "G4ReactionKinematics.hh"
     45#include "G4HadronicProcessStore.hh"
    4546
    4647G4KaonMinusAbsorptionAtRest::G4KaonMinusAbsorptionAtRest(const G4String& processName,
     
    5152    G4cout << GetProcessName() << " is created "<< G4endl;
    5253  }
     54  SetProcessSubType(fHadronAtRest);
    5355
    5456  // see Cohn et al, PLB27(1968) 527;
     
    7981  sigmaMinusLambdaConversionRate = 0.55;
    8082  sigmaZeroLambdaConversionRate = 0.55;
     83
     84  G4HadronicProcessStore::Instance()->RegisterExtraProcess(this);
    8185}
    8286
    8387
    8488G4KaonMinusAbsorptionAtRest::~G4KaonMinusAbsorptionAtRest()
    85 { }
    86 
     89{
     90  G4HadronicProcessStore::Instance()->DeRegisterExtraProcess(this);
     91}
     92
     93void G4KaonMinusAbsorptionAtRest::PreparePhysicsTable(const G4ParticleDefinition& p)
     94{
     95  G4HadronicProcessStore::Instance()->RegisterParticleForExtraProcess(this, &p);
     96}
     97
     98void G4KaonMinusAbsorptionAtRest::BuildPhysicsTable(const G4ParticleDefinition& p)
     99{
     100  G4HadronicProcessStore::Instance()->PrintInfo(&p);
     101}
    87102
    88103G4VParticleChange* G4KaonMinusAbsorptionAtRest::AtRestDoIt
     
    182197  G4double newA = nucleus->GetN();
    183198
    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
    188202  G4double pNucleus = pProducts.mag();
    189203 
    190204  G4StopDeexcitationAlgorithm* nucleusAlgorithm = new G4StopTheoDeexcitation();
    191205  G4StopDeexcitation stopDeexcitation(nucleusAlgorithm);
    192 
    193   // G4double difference = G4KaonMinus::KaonMinus()->GetPDGMass() - productEnergy - bDiff;
    194206
    195207  nucleus->AddExcitationEnergy(bDiff);
     
    397409  // Modify the Kaon mass to take nuclear binding energy into account 
    398410  // .. using mas formula ..
    399   //   G4double nucleonBindingEnergy =  nucleus->AtomicMass(iniA,iniZ)
    400   //                                  - nucleus->AtomicMass(newA,newZ)
    401   //                                  - nucleonMass;
    402411  // .. using mass table ..
    403   //   G4double nucleonBindingEnergy = 
    404   //            G4NucleiPropertiesTable::GetAtomicMass(iniZ,iniA)
    405   //           -G4NucleiPropertiesTable::GetAtomicMass(newZ,newA)
    406   //           -nucleonMass;
    407412  // equivalent to -'initialBindingEnergy+nucleus.GetBindingEnergy' !
    408413
    409414  G4double nucleonBindingEnergy =
    410     -G4NucleiPropertiesTable::GetBindingEnergy(static_cast<G4int>(iniZ), static_cast<G4int>(iniA) )
    411     +G4NucleiPropertiesTable::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) );
    412417 
    413418  G4DynamicParticle modifiedHadron = (*stoppedHadron);
     
    523528  // ExcitationEnergy.
    524529  // .. using mass formula ..
    525   //   G4double massDifference =   nucleus->AtomicMass(A,Z)
    526   //                           - nucleus->AtomicMass(A,newZ)
    527   //                           - nucleonMassDifference;
    528530  // .. using mass table ..
    529   // G4double massDifference =
    530   //            G4NucleiPropertiesTable::GetAtomicMass(Z,A)
    531   //           -G4NucleiPropertiesTable::GetAtomicMass(newZ,A)
    532   //           -nucleonMass;
    533531  // equivalent to -'initialBindingEnergy+nucleus.GetBindingEnergy' !
    534   //G4double massDifference =
    535   //  -G4NucleiPropertiesTable::GetBindingEnergy(Z,A)
    536   //  +G4NucleiPropertiesTable::GetBindingEnergy(newZ,A);
    537  
    538  
     532
    539533  // Add energy and momentum to nucleus, change Z,A
    540   //  nucleus->AddExcitationEnergy(outNucleon->GetKineticEnergy()+massDifference);
    541534  nucleus->AddExcitationEnergy(outNucleon.GetKineticEnergy());
    542535  nucleus->AddMomentum(outNucleon.GetMomentum());
Note: See TracChangeset for help on using the changeset viewer.