Ignore:
Timestamp:
Dec 22, 2010, 3:52:27 PM (13 years ago)
Author:
garnier
Message:

geant4 tag 9.4

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMChannel.hh

    r1340 r1347  
    2525//
    2626//
    27 // $Id: G4GEMChannel.hh,v 1.5 2009/09/15 12:54:16 vnivanch Exp $
    28 // GEANT4 tag $Name: geant4-09-03-ref-09 $
     27// $Id: G4GEMChannel.hh,v 1.7 2010/11/18 16:21:17 vnivanch Exp $
     28// GEANT4 tag $Name: geant4-09-04-ref-00 $
    2929//
    3030// Hadronic Process: Nuclear De-excitations
     
    4848//#define debug
    4949
     50class G4Pow;
     51
    5052class G4GEMChannel : public G4VEvaporationChannel
    5153{
    5254public:
    53     // Available constructors
    54     G4GEMChannel(const G4int theA, const G4int theZ,
    55                  G4GEMProbability * aEmissionStrategy,
    56                  G4VCoulombBarrier * aCoulombBarrier);
     55
     56  G4GEMChannel(const G4int theA, const G4int theZ, const G4String & aName,
     57               G4GEMProbability * aEmissionStrategy,
     58               G4VCoulombBarrier * aCoulombBarrier);
     59
     60  // destructor
     61  virtual ~G4GEMChannel();
    5762   
    58     G4GEMChannel(const G4int theA, const G4int theZ, const G4String & aName,
    59                  G4GEMProbability * aEmissionStrategy,
    60                  G4VCoulombBarrier * aCoulombBarrier);
     63  void Initialize(const G4Fragment & fragment);
     64
     65  G4FragmentVector * BreakUp(const G4Fragment & theNucleus);
     66
     67  inline void SetLevelDensityParameter(G4VLevelDensityParameter * aLevelDensity)
     68  {
     69    if (MyOwnLevelDensity) { delete theLevelDensityPtr; }
     70    theLevelDensityPtr = aLevelDensity;
     71    MyOwnLevelDensity = false;
     72  }
     73
     74  inline G4double GetEmissionProbability(void) const
     75  { return EmissionProbability; }
     76 
     77  inline G4double GetMaximalKineticEnergy(void) const
     78  { return MaximalKineticEnergy; }
     79 
     80private:
    6181   
    62     G4GEMChannel(const G4int theA, const G4int theZ, const G4String * aName,
    63                  G4GEMProbability * aEmissionStrategy,
    64                  G4VCoulombBarrier * aCoulombBarrier);
    65    
    66 public:
    67     // destructor
    68     ~G4GEMChannel();
    69  
    70     void SetEmissionStrategy(G4GEMProbability * aEmissionStrategy)
    71         {
    72             theEvaporationProbabilityPtr = aEmissionStrategy;
    73         }
    74  
    75     void SetCoulombBarrierStrategy(G4VCoulombBarrier * aCoulombBarrier)
    76         {
    77             theCoulombBarrierPtr = aCoulombBarrier;
    78         }
     82  // Calculate Binding Energy for separate fragment from nucleus
     83  G4double CalcBindingEnergy(G4int anA, G4int aZ);
     84
     85  // Calculate maximal kinetic energy that can be carried by fragment (in MeV)
     86  G4double CalcMaximalKineticEnergy(G4double U);
     87
     88  // Samples fragment kinetic energy.
     89  G4double CalcKineticEnergy(const G4Fragment & fragment);
     90
     91  // This has to be removed and put in Random Generator
     92  G4ThreeVector IsotropicVector(G4double Magnitude  = 1.0);
     93
     94  G4GEMChannel(const G4GEMChannel & right); 
     95  const G4GEMChannel & operator=(const G4GEMChannel & right);
     96  G4bool operator==(const G4GEMChannel & right) const;
     97  G4bool operator!=(const G4GEMChannel & right) const;
    7998 
    8099protected:
    81     // default constructor
    82     G4GEMChannel() {};
    83  
     100  G4GEMChannel();
     101
     102  // Data Members ************
     103
    84104private:
    85     // copy constructor
    86     G4GEMChannel(const G4GEMChannel & right);
    87  
    88 private:
    89     const G4GEMChannel & operator=(const G4GEMChannel & right);
    90  
    91 public:
    92     G4bool operator==(const G4GEMChannel & right) const;
    93     G4bool operator!=(const G4GEMChannel & right) const;
    94105
    95 public:
    96     void Initialize(const G4Fragment & fragment);
     106  // This data member define the channel.
     107  // They are intializated at object creation (constructor) time.
     108   
     109  // Atomic Number
     110  G4int A;
     111   
     112  // Charge
     113  G4int Z;
    97114
    98     G4FragmentVector * BreakUp(const G4Fragment & theNucleus);
     115  G4double EvaporatedMass;
     116  G4double ResidualMass;
    99117
    100     inline void SetLevelDensityParameter(G4VLevelDensityParameter * aLevelDensity)
    101         {
    102             if (MyOwnLevelDensity) delete theLevelDensityPtr;
    103             theLevelDensityPtr = aLevelDensity;
    104             MyOwnLevelDensity = false;
    105         }
    106  
    107 public:
     118  G4Pow* fG4pow;
     119   
     120  // For evaporation probability calcualtion
     121  G4GEMProbability * theEvaporationProbabilityPtr;
     122   
     123  // For Level Density calculation
     124  G4bool MyOwnLevelDensity;
     125  G4VLevelDensityParameter * theLevelDensityPtr;
     126   
     127  // For Coulomb Barrier calculation
     128  G4VCoulombBarrier * theCoulombBarrierPtr;
     129  G4double CoulombBarrier;
     130   
     131  //---------------------------------------------------
     132   
     133  // These values depend on the nucleus that is being evaporated.
     134  // They are calculated through the Initialize method which takes as parameters
     135  // the atomic number, charge and excitation energy of nucleus.
     136   
     137  // Residual Atomic Number
     138  G4int ResidualA;
     139
     140  // Residual Charge
     141  G4int ResidualZ;
     142   
     143  // Emission Probability
     144  G4double EmissionProbability;
     145
     146  // Maximal Kinetic Energy that can be carried by fragment
     147  G4double MaximalKineticEnergy;
    108148
    109149
    110     inline G4double GetEmissionProbability(void) const
    111         {
    112             return EmissionProbability;
    113         }
    114  
    115  
    116     inline G4double GetMaximalKineticEnergy(void) const
    117         {
    118             return MaximalKineticEnergy;
    119         }
    120  
    121     // ----------------------
    122    
    123 private:
    124    
    125     // Calculate Binding Energy for separate fragment from nucleus
    126     G4double CalcBindingEnergy(const G4int anA, const G4int aZ);
    127 
    128     // Calculate maximal kinetic energy that can be carried by fragment (in MeV)
    129     G4double CalcMaximalKineticEnergy(const G4double U);
    130 
    131     // Samples fragment kinetic energy.
    132     G4double CalcKineticEnergy(const G4Fragment & fragment);
    133 
    134     // This has to be removed and put in Random Generator
    135     G4ThreeVector IsotropicVector(const G4double Magnitude  = 1.0);
    136 
    137         // Data Members
    138         // ************
    139 private:
    140 
    141     // This data member define the channel.
    142   // They are intializated at object creation (constructor) time.
    143    
    144     // Atomic Number
    145     G4int A;
    146    
    147     // Charge
    148     G4int Z;
    149    
    150 
    151     // For evaporation probability calcualtion
    152     G4GEMProbability * theEvaporationProbabilityPtr;
    153    
    154     // For Level Density calculation
    155     G4bool MyOwnLevelDensity;
    156     G4VLevelDensityParameter * theLevelDensityPtr;
    157    
    158     // For Coulomb Barrier calculation
    159     G4VCoulombBarrier * theCoulombBarrierPtr;
    160     G4double CoulombBarrier;
    161    
    162     //---------------------------------------------------
    163    
    164     // These values depend on the nucleus that is being evaporated.
    165     // They are calculated through the Initialize method which takes as parameters
    166     // the atomic number, charge and excitation energy of nucleus.
    167    
    168     // Residual Atomic Number
    169     G4int AResidual;
    170 
    171     // Residual Charge
    172     G4int ZResidual;
    173    
    174     // Emission Probability
    175     G4double EmissionProbability;
    176 
    177 
    178     // Maximal Kinetic Energy that can be carried by fragment
    179     G4double MaximalKineticEnergy;
    180150};
    181151
Note: See TracChangeset for help on using the changeset viewer.