Ignore:
Timestamp:
Nov 5, 2010, 3:45:55 PM (14 years ago)
Author:
garnier
Message:

update ti head

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/cross_sections/include/G4IonProtonCrossSection.hh

    r819 r1340  
    2424// ********************************************************************
    2525//
    26 #ifndef G4IonProtonCrossSection_h
    27 #define G4IonProtonCrossSection_h
    28 
    29 #include "globals.hh"
    30 #include "G4Proton.hh"
    31 // Class Description
     26// $Id: G4IonProtonCrossSection.hh,v 1.12 2010/10/15 21:05:10 dennis Exp $
     27// GEANT4 tag $Name: hadr-cross-V09-03-12 $
     28//
     29// -------------------------------------------------------------------
     30//
     31// GEANT4 Class header file
     32//
     33// File name:    G4IonProtonCrossSection
     34//
     35//
    3236// Cross-sections for ion proton scattering up to 20 GeV, getting the low
    3337// energy threshold behaviour right.
    3438// H.P. Wellisch (TRIUMF), D. Axen (British Columbia U.). 1996.
    3539// Published in Phys.Rev.C54:1329-1332,1996
    36 // Class Description - End
     40//
     41// Original by H.P.Wellisch 28 June 2001
     42//
     43// Modifications:
     44// 30-07-2010 V.Ivanchenko move virtual methods to source,
     45//                         add constructor and destructor,
     46//                         make G4ProtonInelasticCrossSection class member,
     47//                         fix bug in kinematics
     48//
     49
     50#ifndef G4IonProtonCrossSection_h
     51#define G4IonProtonCrossSection_h 1
    3752
    3853#include "G4VCrossSectionDataSet.hh"
    39 #include "G4ProtonInelasticCrossSection.hh"
     54#include "globals.hh"
     55
     56class G4ProtonInelasticCrossSection;
    4057
    4158class G4IonProtonCrossSection : public G4VCrossSectionDataSet
    4259{
    43    public:
     60public:
    4461
    45    virtual
    46    G4bool IsZAApplicable(const G4DynamicParticle* aPart, G4double /*ZZ*/,
    47                          G4double AA)
    48    {
    49      G4bool result = false;
    50      if((AA < 1.1) &&
    51         ( aPart->GetKineticEnergy()/aPart->GetDefinition()
    52                                          ->GetBaryonNumber() < 20*GeV &&
    53           aPart->GetDefinition()->GetBaryonNumber() > 4)
    54        ) result = true;
    55      return result;
    56    }
     62  G4IonProtonCrossSection();
    5763
    58    virtual
    59    G4bool IsApplicable(const G4DynamicParticle* aPart, const G4Element* anEle)
    60    {
    61      return IsZAApplicable(aPart, 0., anEle->GetN());
    62    }
     64  virtual ~G4IonProtonCrossSection();
    6365
    64    virtual
    65    G4double GetCrossSection(const G4DynamicParticle* aPart,
    66                             const G4Element*, G4double )
    67    {
    68      return GetIsoZACrossSection(aPart, 0., 0., 0.);
    69    }
     66  virtual
     67  G4bool IsApplicable(const G4DynamicParticle* aPart, const G4Element* anEle);
    7068
    71    virtual
    72    G4double GetIsoZACrossSection(const G4DynamicParticle* aPart,
    73                                  G4double /*ZZ*/, G4double /*AA*/,
    74                                  G4double /*temperature*/)
    75    {
    76      G4ProtonInelasticCrossSection theForward;
    77      return theForward.GetCrossSection(aPart->GetKineticEnergy(),
    78                                   aPart->GetDefinition()->GetBaryonNumber(),
    79                                   aPart->GetDefinition()->GetPDGCharge());
    80    }
     69  virtual
     70  G4bool IsIsoApplicable(const G4DynamicParticle* aPart,
     71                         G4int Z, G4int A);
    8172
     73  virtual
     74  G4double GetCrossSection(const G4DynamicParticle* aPart,
     75                           const G4Element*, G4double);
     76 
     77  virtual
     78  G4double GetZandACrossSection(const G4DynamicParticle* aPart,
     79                                G4int Z=1, G4int A=1, G4double T=0.);
    8280
    83    virtual
    84    void BuildPhysicsTable(const G4ParticleDefinition&)
    85    {}
     81  virtual void BuildPhysicsTable(const G4ParticleDefinition&);
    8682
    87    virtual
    88    void DumpPhysicsTable(const G4ParticleDefinition&)
    89    {G4cout << "G4IonProtonCrossSection: uses formula"<<G4endl;}
     83  virtual void DumpPhysicsTable(const G4ParticleDefinition&);
     84
     85private: // Without Description
     86
     87  G4IonProtonCrossSection & operator=(const G4IonProtonCrossSection &right);
     88  G4IonProtonCrossSection(const G4IonProtonCrossSection&);
     89
     90  G4ProtonInelasticCrossSection* theForward;
    9091
    9192};
Note: See TracChangeset for help on using the changeset viewer.