Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
source
processes
hadronic
models
chiral_inv_phase_space
processes
include
G4QAtomicElectronScattering.hh
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
// $Id$
27
//
28
// ---------------- G4QAtomicElectronScattering header ----------------
29
// by Mikhail Kossov, December 2003.
30
// Header of G4QAtomicElectronScattering class of the CHIPS Simulation Branch in GEANT4
31
// -------------------------------------------------------------------------------
32
// This is a unique CHIPS class for the Nuclear Interactions with Atomic electrons.
33
// -------------------------------------------------------------------------------
34
// ****************************************************************************************
35
// ********* This HEADER is temporary moved from the photolepton_hadron directory *********
36
// ******* DO NOT MAKE ANY CHANGE! With time it'll move back to photolepton...(M.K.) ******
37
// ****************************************************************************************
38
// Short description: CHIPS is re3sponsible for photo- and lepto-nuclear
39
// reactions. In particular for thr electron-nuclear reactions. At High
40
// Energies the nucleons (including neutrons) and nuclear fragments can
41
// interact with atomic electrons (reversed electro-nuclear reaction -
42
// antilab), while they are missing the nucler-nuclear (ion-ion) reac-
43
// tions. This nucleo-electron process comes "for-free" in CHIPS, as the
44
// cross-sections of the interaction is known from the electro-nuclear
45
// reactions. The only problem is to move the output from the antilab to
46
// lab system. This is what this process is aiming to do. It can be used
47
// for the ion transport in Geant4.
48
// ---------------------------------------------------------------------
49
50
#ifndef G4QAtomicElectronScattering_hh
51
#define G4QAtomicElectronScattering_hh
52
53
// GEANT4 Headers
54
#include "
globals.hh
"
55
#include "
G4ios.hh
"
56
#include "
Randomize.hh
"
57
#include "
G4VDiscreteProcess.hh
"
58
#include "
G4Track.hh
"
59
#include "
G4Step.hh
"
60
#include "
G4ParticleTypes.hh
"
61
#include "
G4VParticleChange.hh
"
62
#include "
G4ParticleDefinition.hh
"
63
#include "
G4DynamicParticle.hh
"
64
#include "
G4ThreeVector.hh
"
65
#include "
G4LorentzVector.hh
"
66
67
// CHIPS Headers
68
#include "
G4QEnvironment.hh
"
69
#include "
G4VQCrossSection.hh
"
70
#include "
G4QIsotope.hh
"
71
#include "
G4QElectronNuclearCrossSection.hh
"
72
#include "
G4QPhotonNuclearCrossSection.hh
"
73
#include "
G4QMuonNuclearCrossSection.hh
"
74
#include "
G4QTauNuclearCrossSection.hh
"
75
#include "
G4QPDGToG4Particle.hh
"
76
77
class
G4QAtomicElectronScattering
:
public
G4VDiscreteProcess
78
{
79
public
:
80
81
// Constructor
82
G4QAtomicElectronScattering
(
const
G4String
& processName =
"CHIPSNuclearCollision"
);
83
84
// Destructor
85
~G4QAtomicElectronScattering
();
86
87
G4bool
IsApplicable
(
const
G4ParticleDefinition
& particle);
88
89
G4double
GetMeanFreePath
(
const
G4Track
& aTrack,
G4double
previousStepSize,
90
G4ForceCondition
*
condition
);
91
// It returns the MeanFreePath of the process for the current track :
92
// (energy, material)
93
// The previousStepSize and G4ForceCondition* are not used.
94
// This function overloads a virtual function of the base class.
95
// It is invoked by the ProcessManager of the Particle.
96
97
98
G4VParticleChange
*
PostStepDoIt
(
const
G4Track
& aTrack,
const
G4Step
& aStep);
99
// It computes the final state of the process (at end of step),
100
// returned as a ParticleChange object.
101
// This function overloads a virtual function of the base class.
102
// It is invoked by the ProcessManager of the Particle.
103
104
105
G4LorentzVector
GetEnegryMomentumConservation
();
106
107
G4int
GetNumberOfNeutronsInTarget
();
108
109
// Static functions
110
static
void
SetManual
();
111
static
void
SetStandard
();
112
static
void
SetParameters
(
G4double
temper=180.,
G4double
ssin2g=.1,
G4double
etaetap=.3,
113
G4double
fN=0.,
G4double
fD=0.,
G4double
cP=1.,
G4double
mR=1.,
114
G4int
npCHIPSWorld=234,
G4double
solAn=.5,
G4bool
efFlag=
false
,
115
G4double
piTh=141.4,
G4double
mpi2=20000.,
G4double
dinum=1880.);
116
117
private
:
118
119
// Hide assignment operator as private
120
G4QAtomicElectronScattering
& operator=(
const
G4QAtomicElectronScattering
&
right
);
121
122
// Copy constructor
123
G4QAtomicElectronScattering
(
const
G4QAtomicElectronScattering
&);
124
125
// BODY
126
// Static Parameters
127
static
G4bool
manualFlag;
// If false then standard parameters are used
128
static
G4int
nPartCWorld;
// The#of particles for hadronization (limit of A of fragm.)
129
// -> Parameters of the G4Quasmon class:
130
static
G4double
Temperature;
// Quasmon Temperature
131
static
G4double
SSin2Gluons;
// Percent of ssbar sea in a constituen gluon
132
static
G4double
EtaEtaprime;
// Part of eta-prime in all etas
133
// -> Parameters of the G4QNucleus class:
134
static
G4double
freeNuc;
// probability of the quasi-free baryon on surface
135
static
G4double
freeDib;
// probability of the quasi-free dibaryon on surface
136
static
G4double
clustProb;
// clusterization probability in dense region
137
static
G4double
mediRatio;
// relative vacuum hadronization probability
138
// -> Parameters of the G4QEnvironment class:
139
static
G4bool
EnergyFlux;
// Flag for Energy Flux use instead of Multy Quasmon
140
static
G4double
SolidAngle;
// Part of Solid Angle to capture secondaries(@@A-dep)
141
static
G4double
PiPrThresh;
// Pion Production Threshold for gammas
142
static
G4double
M2ShiftVir;
// Shift for M2=-Q2=m_pi^2 of the virtual gamma
143
static
G4double
DiNuclMass;
// Double Nucleon Mass for virtual normalization
144
//
145
// Working parameters
146
G4VQCrossSection
* theCS;
147
G4LorentzVector
EnMomConservation;
// Residual of Energy/Momentum Cons.
148
G4int
nOfNeutrons;
// #of neutrons in the target nucleus
149
150
// Modifires for the reaction
151
G4double
Time;
// Time shift of the capture reaction
152
G4double
EnergyDeposition;
// Energy deposited in the reaction
153
};
154
#endif
155
Generated on Sat May 25 2013 14:33:50 for Geant4 by
1.8.4