Geant4.10
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4.10.00.p01
source
processes
hadronic
models
binary_cascade
src
G4SigmaZeroField.cc
Go to the documentation of this file.
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
// -------------------------------------------------------------------
28
// GEANT 4 class implementation file
29
//
30
// CERN, Geneva, Switzerland
31
//
32
// File name: G4SigmaZeroField.cc
33
//
34
// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it)
35
//
36
// Creation date: 5 June 2000
37
// -------------------------------------------------------------------
38
39
#include "
G4SigmaZeroField.hh
"
40
#include "
G4PhysicalConstants.hh
"
41
#include "
G4NucleiProperties.hh
"
42
#include "
G4VNuclearDensity.hh
"
43
#include "
G4FermiMomentum.hh
"
44
#include "
G4SigmaZero.hh
"
45
#include "
G4HadTmpUtil.hh
"
46
47
G4SigmaZeroField::G4SigmaZeroField
(
G4V3DNucleus
* nucleus,
G4double
coeff)
48
:
G4VNuclearField
(nucleus)
49
{
50
theCoeff = coeff;
51
}
52
53
G4SigmaZeroField::~G4SigmaZeroField
()
54
{ }
55
56
G4double
G4SigmaZeroField::GetField
(
const
G4ThreeVector
& aPosition)
57
{
58
// Field is 0 out of the nucleus!
59
if
(aPosition.
mag
() >=
radius
)
return
0.0;
60
61
G4double
sigmaZeroMass =
G4SigmaZero::SigmaZero
()->
GetPDGMass
();
62
63
G4int
A =
theNucleus
->
GetMassNumber
();
64
G4int
Z =
theNucleus
->
GetCharge
();
65
G4double
bindingEnergy
=
G4NucleiProperties::GetBindingEnergy
(A, Z);
66
G4double
nucleusMass = Z*
proton_mass_c2
+(A-Z)*
neutron_mass_c2
+bindingEnergy;
67
G4double
reducedMass = sigmaZeroMass*nucleusMass/(sigmaZeroMass+nucleusMass);
68
69
const
G4VNuclearDensity
* nuclearDensity=
theNucleus
->
GetNuclearDensity
();
70
G4double
density
= nuclearDensity->
GetDensity
(aPosition);
71
72
return
-2.*
pi
*
hbarc
*
hbarc
/reducedMass*(2.0)*theCoeff*
density
;
73
}
74
75
76
G4double
G4SigmaZeroField::GetBarrier
()
77
{
78
return
0.;
79
}
80
CLHEP::Hep3Vector
Definition:
ThreeVector.h:41
python.hepunit.pi
float pi
Definition:
hepunit.py:247
G4V3DNucleus::GetCharge
virtual G4int GetCharge()=0
G4VNuclearDensity.hh
G4V3DNucleus::GetNuclearDensity
virtual const G4VNuclearDensity * GetNuclearDensity() const =0
G4SigmaZeroField::G4SigmaZeroField
G4SigmaZeroField(G4V3DNucleus *nucleus, G4double coeff=0.36 *CLHEP::fermi)
Definition:
G4SigmaZeroField.cc:47
G4V3DNucleus
Definition:
G4V3DNucleus.hh:41
G4V3DNucleus::GetMassNumber
virtual G4int GetMassNumber()=0
G4int
int G4int
Definition:
G4Types.hh:78
G4SigmaZero.hh
G4SigmaZero::SigmaZero
static G4SigmaZero * SigmaZero()
Definition:
G4SigmaZero.cc:99
G4FermiMomentum.hh
G4SigmaZeroField.hh
G4NucleiProperties.hh
density
G4double density
Definition:
TRTMaterials.hh:39
G4SigmaZeroField::GetBarrier
virtual G4double GetBarrier()
Definition:
G4SigmaZeroField.cc:76
python.hepunit.proton_mass_c2
float proton_mass_c2
Definition:
hepunit.py:275
G4VNuclearField
Definition:
G4VNuclearField.hh:35
G4PhysicalConstants.hh
python.hepunit.neutron_mass_c2
float neutron_mass_c2
Definition:
hepunit.py:276
G4VNuclearField::radius
const G4double radius
Definition:
G4VNuclearField.hh:48
G4VNuclearDensity
Definition:
G4VNuclearDensity.hh:36
G4ParticleDefinition::GetPDGMass
G4double GetPDGMass() const
Definition:
G4ParticleDefinition.hh:161
G4VNuclearDensity::GetDensity
G4double GetDensity(const G4ThreeVector &aPosition) const
Definition:
G4VNuclearDensity.hh:43
python.hepunit.hbarc
hbarc
Definition:
hepunit.py:265
G4NucleiProperties::GetBindingEnergy
static G4double GetBindingEnergy(const G4int A, const G4int Z)
Definition:
G4NucleiProperties.cc:223
G4VNuclearField::theNucleus
G4V3DNucleus * theNucleus
Definition:
G4VNuclearField.hh:47
G4SigmaZeroField::~G4SigmaZeroField
virtual ~G4SigmaZeroField()
Definition:
G4SigmaZeroField.cc:53
G4SigmaZeroField::GetField
virtual G4double GetField(const G4ThreeVector &aPosition)
Definition:
G4SigmaZeroField.cc:56
G4double
double G4double
Definition:
G4Types.hh:76
G4InuclSpecialFunctions::bindingEnergy
G4double bindingEnergy(G4int A, G4int Z)
Definition:
bindingEnergy.cc:37
CLHEP::Hep3Vector::mag
double mag() const
G4HadTmpUtil.hh
Generated on Wed Apr 30 2014 15:55:04 for Geant4.10 by
1.8.7