Geant4_10
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
source
source
processes
hadronic
cross_sections
src
G4ChipsKaonZeroElasticXS.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
// The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
28
//
29
//
30
// G4 Physics class: G4ChipsKaonZeroElasticXS for gamma+A cross sections
31
// Created: M.V. Kossov, CERN/ITEP(Moscow), 20-Dec-03
32
// The last update: M.V. Kossov, CERN/ITEP (Moscow) 15-Feb-04
33
//
34
// ****************************************************************************************
35
// Short description: Cross-sections extracted (by W.Pokorski) from the CHIPS package for
36
// K(zero)-nuclear interactions. Original author: M. Kossov
37
// -------------------------------------------------------------------------------------
38
//
39
40
#include "
G4ChipsKaonZeroElasticXS.hh
"
41
#include "
G4DynamicParticle.hh
"
42
#include "
G4ParticleDefinition.hh
"
43
#include "
G4KaonZero.hh
"
44
#include "
G4KaonZeroLong.hh
"
45
#include "
G4KaonZeroShort.hh
"
46
#include "
G4AntiKaonZero.hh
"
47
#include "
G4CrossSectionDataSetRegistry.hh
"
48
49
// factory
50
#include "
G4CrossSectionFactory.hh
"
51
//
52
G4_DECLARE_XS_FACTORY
(
G4ChipsKaonZeroElasticXS
);
53
54
55
56
G4ChipsKaonZeroElasticXS::G4ChipsKaonZeroElasticXS
():
G4VCrossSectionDataSet
(Default_Name())
57
{
58
59
lastLEN=0;
// Pointer to the lastArray of LowEn CS
60
lastHEN=0;
// Pointer to the lastArray of HighEnCS
61
lastN=0;
// The last N of calculated nucleus
62
lastZ=0;
// The last Z of calculated nucleus
63
lastP=0.;
// Last used in cross section Momentum
64
lastTH=0.;
// Last threshold momentum
65
lastCS=0.;
// Last value of the Cross Section
66
lastI=0;
// The last position in the DAMDB
67
68
theKMinusCS = (
G4ChipsKaonMinusElasticXS
*)
G4CrossSectionDataSetRegistry::Instance
()->
GetCrossSectionDataSet
(
G4ChipsKaonMinusElasticXS::Default_Name
());;
69
theKPlusCS = (
G4ChipsKaonPlusElasticXS
*)
G4CrossSectionDataSetRegistry::Instance
()->
GetCrossSectionDataSet
(
G4ChipsKaonPlusElasticXS::Default_Name
());
70
}
71
72
73
G4ChipsKaonZeroElasticXS::~G4ChipsKaonZeroElasticXS
()
74
{
75
}
76
77
G4bool
G4ChipsKaonZeroElasticXS::IsIsoApplicable
(
const
G4DynamicParticle
* Pt,
G4int
,
G4int
,
78
const
G4Element
*,
79
const
G4Material
*)
80
{
81
G4ParticleDefinition
* particle = Pt->
GetDefinition
();
82
83
if
(particle ==
G4KaonZeroLong::KaonZeroLong
() ||
84
particle ==
G4KaonZeroShort::KaonZeroShort
() ||
85
particle ==
G4KaonZero::KaonZero
() ||
86
particle ==
G4AntiKaonZero::AntiKaonZero
() )
87
{
88
return
true
;
89
}
90
return
false
;
91
}
92
93
94
95
// The main member function giving the collision cross section (P is in IU, CS is in mb)
96
// Make pMom in independent units ! (Now it is MeV)
97
98
G4double
G4ChipsKaonZeroElasticXS::GetIsoCrossSection
(
const
G4DynamicParticle
* Pt,
G4int
tgZ,
G4int
A,
99
const
G4Isotope
*,
100
const
G4Element
*,
101
const
G4Material
*)
102
{
103
G4double
pMom=Pt->
GetTotalMomentum
();
104
G4int
N
= A - tgZ;
105
106
return
GetChipsCrossSection
(pMom, tgZ, N, 311);
107
}
108
109
G4double
G4ChipsKaonZeroElasticXS::GetChipsCrossSection
(
G4double
mom,
G4int
Z
,
G4int
N
,
G4int
pdg)
110
{
111
return
(theKMinusCS->
GetChipsCrossSection
(mom,Z,N,pdg)
112
+theKPlusCS->
GetChipsCrossSection
(mom,Z,N,pdg))/2;
113
}
114
115
G4KaonZero::KaonZero
static G4KaonZero * KaonZero()
Definition:
G4KaonZero.cc:104
G4CrossSectionDataSetRegistry::GetCrossSectionDataSet
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
Definition:
G4CrossSectionDataSetRegistry.cc:140
G4ChipsKaonZeroElasticXS::IsIsoApplicable
virtual G4bool IsIsoApplicable(const G4DynamicParticle *Pt, G4int Z, G4int A, const G4Element *elm, const G4Material *mat)
Definition:
G4ChipsKaonZeroElasticXS.cc:77
G4ChipsKaonZeroElasticXS::GetChipsCrossSection
G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
Definition:
G4ChipsKaonZeroElasticXS.cc:109
G4ChipsKaonZeroElasticXS::GetIsoCrossSection
virtual G4double GetIsoCrossSection(const G4DynamicParticle *, G4int tgZ, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
Definition:
G4ChipsKaonZeroElasticXS.cc:98
G4CrossSectionFactory.hh
G4Material
Definition:
G4Material.hh:118
G4DynamicParticle
Definition:
G4DynamicParticle.hh:73
G4KaonZeroLong::KaonZeroLong
static G4KaonZeroLong * KaonZeroLong()
Definition:
G4KaonZeroLong.cc:115
G4Element
Definition:
G4Element.hh:97
G4DynamicParticle.hh
G4CrossSectionDataSetRegistry.hh
G4DynamicParticle::GetDefinition
G4ParticleDefinition * GetDefinition() const
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:111
G4VCrossSectionDataSet
Definition:
G4VCrossSectionDataSet.hh:70
G4int
int G4int
Definition:
G4Types.hh:78
G4ChipsKaonZeroElasticXS::~G4ChipsKaonZeroElasticXS
~G4ChipsKaonZeroElasticXS()
Definition:
G4ChipsKaonZeroElasticXS.cc:73
G4DynamicParticle::GetTotalMomentum
G4double GetTotalMomentum() const
G4KaonZeroLong.hh
G4ChipsKaonMinusElasticXS
Definition:
G4ChipsKaonMinusElasticXS.hh:46
Z
Float_t Z
Definition:
plot.C:39
G4KaonZeroShort::KaonZeroShort
static G4KaonZeroShort * KaonZeroShort()
Definition:
G4KaonZeroShort.cc:104
G4bool
bool G4bool
Definition:
G4Types.hh:79
G4Isotope
Definition:
G4Isotope.hh:72
G4CrossSectionDataSetRegistry::Instance
static G4CrossSectionDataSetRegistry * Instance()
Definition:
G4CrossSectionDataSetRegistry.cc:77
G4ChipsKaonPlusElasticXS::Default_Name
static const char * Default_Name()
Definition:
G4ChipsKaonPlusElasticXS.hh:54
G4ParticleDefinition.hh
G4ChipsKaonMinusElasticXS::GetChipsCrossSection
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
Definition:
G4ChipsKaonMinusElasticXS.cc:180
G4ChipsKaonZeroElasticXS.hh
G4KaonZero.hh
G4_DECLARE_XS_FACTORY
#define G4_DECLARE_XS_FACTORY(cross_section)
Definition:
G4CrossSectionFactory.hh:123
G4AntiKaonZero::AntiKaonZero
static G4AntiKaonZero * AntiKaonZero()
Definition:
G4AntiKaonZero.cc:103
G4ChipsKaonPlusElasticXS::GetChipsCrossSection
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
Definition:
G4ChipsKaonPlusElasticXS.cc:182
G4ChipsKaonPlusElasticXS
Definition:
G4ChipsKaonPlusElasticXS.hh:46
N
**D E S C R I P T I O N
Definition:
HEPEvtcom.cc:77
G4ChipsKaonMinusElasticXS::Default_Name
static const char * Default_Name()
Definition:
G4ChipsKaonMinusElasticXS.hh:55
G4AntiKaonZero.hh
G4double
double G4double
Definition:
G4Types.hh:76
G4KaonZeroShort.hh
G4ChipsKaonZeroElasticXS
Definition:
G4ChipsKaonZeroElasticXS.hh:49
G4ChipsKaonZeroElasticXS::G4ChipsKaonZeroElasticXS
G4ChipsKaonZeroElasticXS()
Definition:
G4ChipsKaonZeroElasticXS.cc:56
Generated on Sat Dec 14 2013 14:34:40 for Geant4_10 by
1.8.5