Ignore:
Timestamp:
Jun 18, 2010, 11:42:07 AM (14 years ago)
Author:
garnier
Message:

update geant4-09-04-beta-cand-01 interfaces-V09-03-09 vis-V09-03-08

Location:
trunk/source/processes/hadronic/util/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/util/src/G4HadronicWhiteBoard.cc

    r819 r1315  
    4949G4double G4HadronicWhiteBoard::GetPy(){return thePy;}
    5050G4double G4HadronicWhiteBoard::GetPz(){return thePz;}
    51 G4double G4HadronicWhiteBoard::GetA(){return theA;}
    52 G4double G4HadronicWhiteBoard::GetZ(){return theZ;}
     51G4int G4HadronicWhiteBoard::GetA(){return theA;}
     52G4int G4HadronicWhiteBoard::GetZ(){return theZ;}
    5353
    5454 
     
    6868{
    6969  theTarget = aTarget;
    70   theA = theTarget.GetN();
    71   theZ = theTarget.GetZ();
     70  theA = theTarget.GetA_asInt();
     71  theZ = theTarget.GetZ_asInt();
    7272}
    7373
  • trunk/source/processes/hadronic/util/src/G4LightMedia.cc

    r819 r1315  
    4444    G4ParticleDefinition* aPiZero = G4PionZero::PionZero();
    4545   
    46     const G4double atomicNumber = targetNucleus.GetZ();
     46    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    4747   
    4848    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    8383    G4ParticleDefinition* aKaonZL = G4KaonZeroLong::KaonZeroLong();
    8484   
    85     const G4double atomicNumber = targetNucleus.GetZ();
     85    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    8686   
    8787    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    117117    G4ParticleDefinition* aKaonZL = G4KaonZeroLong::KaonZeroLong();
    118118   
    119     const G4double atomicNumber = targetNucleus.GetZ();
     119    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    120120   
    121121    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    176176    G4ParticleDefinition* aNeutron = G4Neutron::Neutron();
    177177   
    178     const G4double atomicNumber = targetNucleus.GetZ();
     178    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    179179   
    180180    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    203203    G4ParticleDefinition* anAntiNeutron = G4AntiNeutron::AntiNeutron();
    204204   
    205     const G4double atomicNumber = targetNucleus.GetZ();
     205    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    206206   
    207207    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    229229    G4ParticleDefinition* aProton = G4Proton::Proton();
    230230   
    231     const G4double atomicNumber = targetNucleus.GetZ();
     231    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    232232   
    233233    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    256256    G4ParticleDefinition* anAntiProton = G4AntiProton::AntiProton();
    257257   
    258     const G4double atomicNumber = targetNucleus.GetZ();
     258    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    259259   
    260260    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    286286    G4ParticleDefinition* aSigmaZero = G4SigmaZero::SigmaZero();
    287287   
    288     const G4double atomicNumber = targetNucleus.GetZ();
     288    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    289289   
    290290    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    364364    G4ParticleDefinition* anAntiSigmaZero = G4AntiSigmaZero::AntiSigmaZero();
    365365   
    366     const G4double atomicNumber = targetNucleus.GetZ();
     366    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    367367   
    368368    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    443443    G4ParticleDefinition* aSigmaZero = G4SigmaZero::SigmaZero();
    444444   
    445     const G4double atomicNumber = targetNucleus.GetZ();
     445    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    446446   
    447447    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    505505    G4ParticleDefinition* aSigmaZero = G4SigmaZero::SigmaZero();
    506506   
    507     const G4double atomicNumber = targetNucleus.GetZ();
     507    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    508508   
    509509    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    567567    G4ParticleDefinition* anAntiSigmaZero = G4AntiSigmaZero::AntiSigmaZero();
    568568   
    569     const G4double atomicNumber = targetNucleus.GetZ();
     569    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    570570   
    571571    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    626626    G4ParticleDefinition* anAntiSigmaZero = G4AntiSigmaZero::AntiSigmaZero();
    627627   
    628     const G4double atomicNumber = targetNucleus.GetZ();
     628    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    629629   
    630630    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    689689    G4ParticleDefinition* aXiMinus = G4XiMinus::XiMinus();
    690690   
    691     const G4double atomicNumber = targetNucleus.GetZ();
     691    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    692692   
    693693    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    773773    G4ParticleDefinition* aXiZero = G4XiZero::XiZero();
    774774   
    775     const G4double atomicNumber = targetNucleus.GetZ();
     775    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    776776   
    777777    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    862862    G4ParticleDefinition* aXiMinus = G4XiMinus::XiMinus();
    863863   
    864     const G4double atomicNumber = targetNucleus.GetZ();
     864    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    865865   
    866866    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    950950    G4ParticleDefinition* aXiZero = G4XiZero::XiZero();
    951951   
    952     const G4double atomicNumber = targetNucleus.GetZ();
     952    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    953953   
    954954    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    10361036    G4ParticleDefinition* aXiZero = G4XiZero::XiZero();
    10371037   
    1038     const G4double atomicNumber = targetNucleus.GetZ();
     1038    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    10391039   
    10401040    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
     
    11371137    G4ParticleDefinition* aXiZero = G4XiZero::XiZero();
    11381138   
    1139     const G4double atomicNumber = targetNucleus.GetZ();
     1139    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    11401140   
    11411141    G4DynamicParticle* targetParticle = targetNucleus.ReturnTargetParticle();
  • trunk/source/processes/hadronic/util/src/G4Nucleus.cc

    r819 r1315  
    3838 // HPW added utilities for low energy neutron transport. (12.04.1998)
    3939 // M.G. Pia, 2 Oct 1998: modified GetFermiMomentum to avoid memory leaks
     40 // G.Folger, spring 2010:  add integer A/Z interface
    4041 
    4142#include "G4Nucleus.hh"
     
    5758
    5859G4Nucleus::G4Nucleus( const G4double A, const G4double Z )
     60{
     61  SetParameters( A, Z );
     62  pnBlackTrackEnergy = 0.0;
     63  dtaBlackTrackEnergy = 0.0;
     64  pnBlackTrackEnergyfromAnnihilation = 0.0;
     65  dtaBlackTrackEnergyfromAnnihilation = 0.0;
     66  excitationEnergy = 0.0;
     67  momentum = G4ThreeVector(0.,0.,0.);
     68  fermiMomentum = 1.52*hbarc/fermi;
     69  theTemp = 293.16*kelvin;
     70}
     71
     72G4Nucleus::G4Nucleus( const G4int A, const G4int Z )
    5973{
    6074  SetParameters( A, Z );
     
    136150  {
    137151    G4double random = G4UniformRand();
    138     G4double sum = 0;
     152    G4double sum = aMaterial->GetTotNbOfAtomsPerVolume();
    139153    const G4ElementVector *theElementVector = aMaterial->GetElementVector();
    140     unsigned int i;
    141     for(i=0; i<aMaterial->GetNumberOfElements(); ++i )
    142     {
    143       sum += aMaterial->GetAtomicNumDensityVector()[i];
    144     }
    145     G4double running = 0;
    146     for(i=0; i<aMaterial->GetNumberOfElements(); ++i )
    147     {
    148       running += aMaterial->GetAtomicNumDensityVector()[i];
    149       if( running/sum > random ) {
    150         aEff = (*theElementVector)[i]->GetA()*mole/g;
    151         zEff = (*theElementVector)[i]->GetZ();
     154    G4double running(0);
     155    G4Element* element(0);
     156    for(unsigned int i=0; i<aMaterial->GetNumberOfElements(); ++i )
     157    {
     158      running += aMaterial->GetVecNbOfAtomsPerVolume()[i];
     159      if( running > random*sum ) {
     160        element=(*theElementVector)[i];
    152161        break;
    153162      }
    154163    }
     164    if ( element->GetNumberOfIsotopes() > 0 ) {
     165      G4double randomAbundance = G4UniformRand();
     166      G4double sumAbundance = element->GetRelativeAbundanceVector()[0];
     167      unsigned int iso=0;
     168      while ( iso < element->GetNumberOfIsotopes() &&
     169               sumAbundance < randomAbundance ) {
     170         ++iso;
     171         sumAbundance += element->GetRelativeAbundanceVector()[iso];
     172      }
     173      theA=element->GetIsotope(iso)->GetN();
     174      theZ=element->GetIsotope(iso)->GetZ();
     175      aEff=theA;
     176      zEff=theZ;
     177    } else {   
     178      aEff = element->GetN();
     179      zEff = element->GetZ();
     180      theZ = G4int(zEff + 0.5);
     181      theA = G4int(aEff + 0.5);   
     182    }
    155183  }
    156184 
     
    158186  G4Nucleus::SetParameters( const G4double A, const G4double Z )
    159187  {
    160     G4int myZ = G4int(Z + 0.5);
    161     G4int myA = G4int(A + 0.5);   
    162     if( myA<1 || myZ<0 || myZ>myA )
     188    theZ = G4int(Z + 0.5);
     189    theA = G4int(A + 0.5);   
     190    if( theA<1 || theZ<0 || theZ>theA )
     191    {
     192      throw G4HadronicException(__FILE__, __LINE__,
     193                               "G4Nucleus::SetParameters called with non-physical parameters");
     194    }
     195    aEff = A;  // atomic weight
     196    zEff = Z;  // atomic number
     197  }
     198
     199 void
     200  G4Nucleus::SetParameters( const G4int A, const G4int Z )
     201  {
     202    theZ = Z;
     203    theA = A;   
     204    if( theA<1 || theZ<0 || theZ>theA )
    163205    {
    164206      throw G4HadronicException(__FILE__, __LINE__,
     
    184226 G4double
    185227  G4Nucleus::AtomicMass( const G4double A, const G4double Z ) const
     228  {
     229    // Now returns (atomic mass - electron masses)
     230    return G4NucleiProperties::GetNuclearMass(A, Z);
     231  }
     232 
     233 G4double
     234  G4Nucleus::AtomicMass( const G4int A, const G4int Z ) const
    186235  {
    187236    // Now returns (atomic mass - electron masses)
  • trunk/source/processes/hadronic/util/src/G4ReactionDynamics.cc

    r962 r1315  
    184184      veryForward = true;
    185185    }
    186     const G4double atomicWeight = targetNucleus.GetN();
    187     const G4double atomicNumber = targetNucleus.GetZ();
     186    const G4double atomicWeight = G4double(targetNucleus.GetA_asInt());
     187    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    188188    const G4double protonMass = aProton->GetPDGMass()/MeV;
    189189
     
    11241124
    11251125    G4int PinNucleus = std::max(0,
    1126       G4int(targetNucleus.GetZ()) - protonsInFinalState);
     1126      targetNucleus.GetZ_asInt() - protonsInFinalState);
    11271127    G4int NinNucleus = std::max(0,
    1128       G4int(targetNucleus.GetN()-targetNucleus.GetZ()) - neutronsInFinalState);
     1128      targetNucleus.GetN_asInt() - neutronsInFinalState);
    11291129
    11301130    pseudoParticle[3].SetMomentum( 0.0, 0.0, pOriginal*GeV );
     
    13561356    for (G4int i = 0; i < vecLen; i++) eAvailable -= vec[i]->GetMass()/GeV;
    13571357
    1358     const G4double atomicWeight = targetNucleus.GetN();
    1359     const G4double atomicNumber = targetNucleus.GetZ();
     1358    const G4double atomicWeight = G4double(targetNucleus.GetA_asInt());
     1359    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    13601360    const G4double pOriginal = modifiedOriginal.GetTotalMomentum()/GeV;
    13611361   
     
    15021502    }
    15031503
    1504     const G4double atomicWeight = targetNucleus.GetN();
    1505     const G4double atomicNumber = targetNucleus.GetZ();
     1504    const G4double atomicWeight = G4double(targetNucleus.GetA_asInt());
     1505    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    15061506    //
    15071507    // particles have been distributed in forward and backward hemispheres
     
    20332033
    20342034    G4int PinNucleus = std::max(0,
    2035       G4int(targetNucleus.GetZ()) - protonsInFinalState);
     2035      targetNucleus.GetZ_asInt() - protonsInFinalState);
    20362036    G4int NinNucleus = std::max(0,
    2037       G4int(targetNucleus.GetN()-targetNucleus.GetZ()) - neutronsInFinalState);
     2037      targetNucleus.GetN_asInt() - neutronsInFinalState);
    20382038    //
    20392039    //  for various reasons, the energy balance is not sufficient,
     
    22702270
    22712271    targetMass = targetParticle.GetMass()/GeV;
    2272     const G4double atomicWeight = targetNucleus.GetN();
     2272    const G4double atomicWeight = G4double(targetNucleus.GetA_asInt());
    22732273   
    22742274    G4double etCurrent = currentParticle.GetTotalEnergy()/GeV;
     
    24302430
    24312431    G4int PinNucleus = std::max(0,
    2432       G4int(targetNucleus.GetZ()) - protonsInFinalState);
     2432      targetNucleus.GetZ_asInt() - protonsInFinalState);
    24332433    G4int NinNucleus = std::max(0,
    2434       G4int(targetNucleus.GetN()-targetNucleus.GetZ()) - neutronsInFinalState);
     2434      targetNucleus.GetN_asInt() - neutronsInFinalState);
    24352435
    24362436      // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen);
     
    28202820    //    inclusive distributions, but it is necessary for momentum conservation
    28212821    //
    2822     const G4double atomicWeight = targetNucleus.GetN();
     2822    const G4double atomicWeight = G4double(targetNucleus.GetA_asInt());
    28232823    const G4double logWeight = std::log(atomicWeight);
    28242824   
     
    30963096   
    30973097    const G4double ekOriginal = modifiedOriginal.GetKineticEnergy()/MeV;
    3098     const G4double atomicWeight = targetNucleus.GetN();
    3099     const G4double atomicNumber = targetNucleus.GetZ();
     3098    const G4double atomicWeight = G4double(targetNucleus.GetA_asInt());
     3099    const G4double atomicNumber = G4double(targetNucleus.GetZ_asInt());
    31003100   
    31013101    const G4double ika1 = 3.6;
     
    38363836    if( currentParticle.GetDefinition() == aNeutron )
    38373837    {
    3838       const G4double A = targetNucleus.GetN();    // atomic weight
     3838      const G4double A = G4double(targetNucleus.GetA_asInt());    // atomic weight
    38393839      if( G4UniformRand() > ((A-1.0)/230.0)*((A-1.0)/230.0) )
    38403840        qval[0] = 0.0;
Note: See TracChangeset for help on using the changeset viewer.