ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
ECCE @ EIC Software
Deprecated List
Modules
Namespaces
Classes
Files
File List
acts
analysis
coresoftware
Doxygen_Assist
ecce-detectors
fun4all_eicdetectors
geant4
tree
geant4-10.6-release
config
environments
examples
source
analysis
digits_hits
error_propagation
event
externals
g3tog4
geometry
global
graphics_reps
intercoms
interfaces
materials
parameterisations
particles
persistency
physics_lists
processes
biasing
cuts
decay
electromagnetic
hadronic
cross_sections
management
models
abla
abrasion
binary_cascade
include
src
G4Absorber.cc
G4AntiProtonField.cc
G4BinaryCascade.cc
G4BinaryLightIonReaction.cc
G4FieldPropagation.cc
G4GeneratorPrecompoundInterface.cc
G4KaonMinusField.cc
G4KaonPlusField.cc
G4KaonZeroField.cc
G4KM_NucleonEqRhs.cc
G4KM_OpticalEqRhs.cc
G4NeutronField.cc
G4PionMinusField.cc
G4PionPlusField.cc
G4PionZeroField.cc
G4ProtonField.cc
G4RKFieldIntegrator.cc
G4RKPropagation.cc
G4SigmaMinusField.cc
G4SigmaPlusField.cc
G4SigmaZeroField.cc
G4VFieldPropagation.cc
G4VNuclearField.cc
cascade
coherent_elastic
de_excitation
em_dissociation
fission
gamma_nuclear
im_r_matrix
inclxx
lend
lepto_nuclear
management
particle_hp
parton_string
pre_equilibrium
qmd
quasi_elastic
radioactive_decay
rpg
theo_high_energy
util
processes
stopping
util
management
optical
parameterisation
scoring
solidstate
transportation
readout
run
track
tracking
visualization
macros
online_distribution
tutorials
doxygen_mainpage.h
File Members
External Links
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4KM_NucleonEqRhs.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4KM_NucleonEqRhs.cc
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: G4KM_NucleonEqRhs.cc
33
//
34
// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it)
35
//
36
// Creation date: 5 June 2000
37
// -------------------------------------------------------------------
38
39
#include "
G4KM_NucleonEqRhs.hh
"
40
#include "
G4VNuclearDensity.hh
"
41
42
#include "
G4PhysicalConstants.hh
"
43
#include "
G4Pow.hh
"
44
45
G4KM_NucleonEqRhs::G4KM_NucleonEqRhs
(
G4KM_DummyField
*field,
46
G4V3DNucleus
* nucleus) :
47
G4Mag_EqRhs
(field), theNucleus(nucleus)
48
{
49
theMass
= 0.;
50
A
=
theNucleus
->
GetMassNumber
();
51
factor
=
hbarc
*
hbarc
*
G4Pow::GetInstance
()->
A23
(3.*
pi2
*
A
)/3.;
52
}
53
54
55
void
G4KM_NucleonEqRhs::EvaluateRhsGivenB
(
const
G4double
y
[],
56
const
G4double
*,
57
G4double
dydx[])
const
58
{
59
G4double
yMod = std::sqrt(y[0]*y[0]+y[1]*y[1]+y[2]*y[2]);
60
G4double
e
= std::sqrt(
theMass
*
theMass
+y[3]*y[3]+y[4]*y[4]+y[5]*y[5]);
61
62
// y[0..2] is position
63
// y[3..5] is momentum (and not mom.direction)
64
65
dydx[0] =
c_light
*y[3]/
e
;
//
66
dydx[1] =
c_light
*y[4]/
e
;
// dq/dt=dH/dp = c*p/e
67
dydx[2] =
c_light
*y[5]/
e
;
//
68
69
/*
70
* // debug
71
* G4cout << " Nucleon RHS : 0..2(dpos/dt) " <<
72
* dydx[0] << " " <<
73
* dydx[1] << " " <<
74
* dydx[2] << " " << G4endl;
75
*/
76
77
78
// V=K*rho(r) ==> dydx[3] = -dV/dr*dr/dx = -K*d(rho)/dr*dr/dx.
79
// GF should be V=K*rho(r) ==> dydx[3] = -dV/dr*dr/dx = -K*d(rho)/dr*dr/dt
80
// GF and dV/dt = dE/dt ==> dp/dt = dE/dt * dp/dE = dE/dt *e/p
81
// Idem for dydx[4] and dydx[5]
82
83
G4ThreeVector
pos
(y[0],y[1],y[2]);
84
85
const
G4VNuclearDensity
* nuclearDensity=
theNucleus
->
GetNuclearDensity
();
86
87
// do not check for theMass != 0 : it is an error and core dump will signal it
88
89
G4double
density= nuclearDensity->
GetDensity
(pos);
90
G4double
deriv
(0);
91
if
(density > 0 ) deriv = (
factor
/
theMass
)/
92
G4Pow::GetInstance
()->
A13
(density)*nuclearDensity->
GetDeriv
(pos);
93
94
// dydx[3] = yMod == 0 ? 0 : -deriv*y[0]/yMod;
95
// dydx[4] = yMod == 0 ? 0 : -deriv*y[1]/yMod;
96
// dydx[5] = yMod == 0 ? 0 : -deriv*y[2]/yMod;
97
dydx[3] = yMod == 0 ? 0 : deriv*y[0]/yMod*
c_light
;
98
dydx[4] = yMod == 0 ? 0 : deriv*y[1]/yMod*
c_light
;
99
dydx[5] = yMod == 0 ? 0 : deriv*y[2]/yMod*
c_light
;
100
101
102
/*
103
* // debug
104
* G4cout << " Nucleon RHS : 3..5(dE/dt) " <<
105
* dydx[3] << " " <<
106
* dydx[4] << " " <<
107
* dydx[5] << " " << G4endl;
108
*/
109
}
110
111
// Here by design, but it is unnecessary for nuclear fields
112
void
G4KM_NucleonEqRhs::SetChargeMomentumMass
(
G4ChargeState
,
G4double
,
G4double
)
113
{
114
}
geant4
tree
geant4-10.6-release
source
processes
hadronic
models
binary_cascade
src
G4KM_NucleonEqRhs.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:39
using
1.8.2 with
ECCE GitHub integration