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/models/pre_equilibrium/exciton_model/include/G4PreCompoundAlpha.hh

    r819 r962  
    2424// ********************************************************************
    2525//
     26// by V. Lara
    2627//
    27 // $Id: G4PreCompoundAlpha.hh,v 1.6 2007/10/01 10:41:59 ahoward Exp $
    28 // GEANT4 tag $Name:  $
    29 //
    30 // by V. Lara
     28//J. M. Quesada (July 08)
     29
    3130
    3231#ifndef G4PreCompoundAlpha_h
     
    3635#include "G4ReactionProduct.hh"
    3736#include "G4Alpha.hh"
    38 
    3937#include "G4AlphaCoulombBarrier.hh"
    40 
     38#include "G4PreCompoundParameters.hh"
    4139
    4240class G4PreCompoundAlpha : public G4PreCompoundIon
     
    4745
    4846  // copy constructor
    49   G4PreCompoundAlpha(const G4PreCompoundAlpha &right): G4PreCompoundIon(right) {}
     47  G4PreCompoundAlpha(const G4PreCompoundAlpha &right): G4PreCompoundIon(right){}
    5048
    5149  // destructor
     
    6664
    6765
    68   G4ReactionProduct * GetReactionProduct() const
    69   {
    70     G4ReactionProduct * theReactionProduct =
    71       new G4ReactionProduct(G4Alpha::AlphaDefinition());
    72     theReactionProduct->SetMomentum(GetMomentum().vect());
    73     theReactionProduct->SetTotalEnergy(GetMomentum().e());
    74 #ifdef PRECOMPOUND_TEST
    75     theReactionProduct->SetCreatorModel("G4PrecompoundModel");
    76 #endif
    77     return theReactionProduct;
    78   }   
    79    
     66  G4ReactionProduct * GetReactionProduct() const;
     67
    8068private:
    8169
    82 // added Rj method according to literature and JMQ
    83   virtual G4double GetRj(const G4int NumberParticles, const G4int NumberCharged)
    84   {
    85     G4double rj = 1.0;
    86     G4double denominator = NumberParticles*(NumberParticles-1)*(NumberParticles-2)*(NumberParticles-3);
    87     if(denominator !=0) rj = 6.0*static_cast<G4double>(NumberCharged*(NumberCharged-1)*(NumberParticles-NumberCharged)*(NumberParticles-NumberCharged-1))/static_cast<G4double>(denominator); //JMQ 23/8/07
     70  virtual G4double GetRj(const G4int NumberParticles, const G4int NumberCharged);
    8871
    89     return rj;
    90   }
     72  virtual G4double CrossSection(const  G4double K) ;
     73
     74  virtual G4double FactorialFactor(const G4double N, const G4double P);
     75
     76  virtual G4double CoalescenceFactor(const G4double A);
     77
     78  G4double GetOpt0(const G4double K);
     79  G4double GetOpt12(const G4double K);
     80  G4double GetOpt34(const G4double K);
     81
     82  G4double GetAlpha();
     83 
     84  G4double GetBeta();
     85
     86//data members
     87
     88      G4AlphaCoulombBarrier theAlphaCoulombBarrier;
     89      G4double ResidualA;
     90      G4double ResidualZ;
     91      G4double theA;
     92      G4double theZ;
     93      G4double ResidualAthrd;
     94      G4double FragmentA;
     95      G4double FragmentAthrd;
     96
     97};
     98#endif
    9199
    92100
    93   virtual G4double GetAlpha()
    94   {
    95     G4double C = 0.0;
    96     G4double aZ = GetZ() + GetRestZ();
    97     if (aZ <= 30)
    98       {
    99         C = 0.10;
    100       }
    101     else if (aZ <= 50)
    102       {
    103         C = 0.1 + -((aZ-50.)/20.)*0.02;
    104       }
    105     else if (aZ < 70)
    106       {
    107         C = 0.08 + -((aZ-70.)/20.)*0.02;
    108       }
    109     else
    110       {
    111         C = 0.06;
    112       }
    113     return 1.0+C;
    114   }
    115101
    116   virtual G4double GetBeta()
    117   {
    118     return -GetCoulombBarrier();
    119   }
    120102
    121   virtual G4double FactorialFactor(const G4double N, const G4double P)
    122   {
    123     return
    124       (N-4.0)*(P-3.0)*(
    125                        (((N-3.0)*(P-2.0))/2.0) *(
    126                                                  (((N-2.0)*(P-1.0))/3.0) *(
    127                                                                            (((N-1.0)*P)/2.0)
    128                                                                            )
    129                                                  )
    130                        );
    131   }
    132103
    133   virtual G4double CoalescenceFactor(const G4double A)
    134   {
    135     return 4096.0/(A*A*A);
    136   }   
    137 private:
    138 
    139   G4AlphaCoulombBarrier theAlphaCoulombBarrier;
    140 
    141 };
    142 
    143 #endif
    144104 
    145105
     106
     107
Note: See TracChangeset for help on using the changeset viewer.