source: trunk/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4PreCompoundProton.hh @ 829

Last change on this file since 829 was 819, checked in by garnier, 16 years ago

import all except CVS

File size: 4.0 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer                                           *
4// *                                                                  *
5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
7// * conditions of the Geant4 Software License,  included in the file *
8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
9// * include a list of copyright holders.                             *
10// *                                                                  *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work  make  any representation or  warranty, express or implied, *
14// * regarding  this  software system or assume any liability for its *
15// * use.  Please see the license in the file  LICENSE  and URL above *
16// * for the full disclaimer and the limitation of liability.         *
17// *                                                                  *
18// * This  code  implementation is the result of  the  scientific and *
19// * technical work of the GEANT4 collaboration.                      *
20// * By using,  copying,  modifying or  distributing the software (or *
21// * any work based  on the software)  you  agree  to acknowledge its *
22// * use  in  resulting  scientific  publications,  and indicate your *
23// * acceptance of all terms of the Geant4 Software license.          *
24// ********************************************************************
25//
26//
27// $Id: G4PreCompoundProton.hh,v 1.7 2007/10/01 10:42:00 ahoward Exp $
28// GEANT4 tag $Name:  $
29//
30// by V. Lara
31
32#ifndef G4PreCompoundProton_h
33#define G4PreCompoundProton_h 1
34
35#include "G4PreCompoundNucleon.hh"
36#include "G4ReactionProduct.hh"
37#include "G4Proton.hh"
38#include "G4PreCompoundParameters.hh"
39#include "Randomize.hh"
40
41#include "G4ProtonCoulombBarrier.hh"
42
43
44class G4PreCompoundProton : public G4PreCompoundNucleon
45{
46public:
47  // default constructor
48  G4PreCompoundProton():G4PreCompoundNucleon(1,1,&theProtonCoulombBarrier,"Proton") {}
49
50  // copy constructor
51  G4PreCompoundProton(const G4PreCompoundProton &right): G4PreCompoundNucleon(right) {}
52
53  // destructor
54  ~G4PreCompoundProton() {};
55
56  // operators 
57  const G4PreCompoundProton & operator=(const G4PreCompoundProton &right) {
58    if (&right != this) this->G4PreCompoundNucleon::operator=(right);
59    return *this;
60  };
61
62  G4bool operator==(const G4PreCompoundProton &right) const
63  { return G4PreCompoundNucleon::operator==(right);}
64
65 
66  G4bool operator!=(const G4PreCompoundProton &right) const
67  { return G4PreCompoundNucleon::operator!=(right);}
68
69
70  G4ReactionProduct * GetReactionProduct() const
71  {
72    G4ReactionProduct * theReactionProduct = 
73      new G4ReactionProduct(G4Proton::ProtonDefinition());
74    theReactionProduct->SetMomentum(GetMomentum().vect());
75    theReactionProduct->SetTotalEnergy(GetMomentum().e());
76#ifdef PRECOMPOUND_TEST
77    theReactionProduct->SetCreatorModel("G4PrecompoundModel");
78#endif
79    return theReactionProduct;
80  }
81 
82private:
83
84// added Rj method according to literature and JMQ - formula from Jose Quesada
85  virtual G4double GetRj(const G4int NumberParticles, const G4int NumberCharged)
86  {
87    G4double rj = 1.0;
88    if(NumberParticles != 0) rj = static_cast<G4double>(NumberCharged)/static_cast<G4double>(NumberParticles);
89    return rj;
90  }
91
92
93  virtual G4double GetAlpha()
94  {
95    G4double aZ = static_cast<G4double>(GetRestZ());
96    G4double C = 0.0;
97    if (aZ >= 70) 
98      {
99        C = 0.10;
100      } 
101    else 
102      {
103        C = ((((0.15417e-06*aZ) - 0.29875e-04)*aZ + 0.21071e-02)*aZ - 0.66612e-01)*aZ + 0.98375;
104      }
105    return 1.0 + C;
106  }
107
108  virtual G4double GetBeta()
109  {
110    return -GetCoulombBarrier();
111  }
112 
113  virtual G4bool IsItPossible(const G4Fragment& aFragment)
114  {
115    return (aFragment.GetNumberOfCharged() >= 1);
116  }
117 
118 
119private:
120 
121  G4ProtonCoulombBarrier theProtonCoulombBarrier;
122 
123};
124
125#endif
126 
Note: See TracBrowser for help on using the repository browser.