Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ChipsKaonZeroInelasticXS.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// GEANT4 tag $Name: not supported by cvs2svn $
29//
30//
31// G4 Physics class: G4ChipsKaonZeroInelasticXS for gamma+A cross sections
32// Created: M.V. Kossov, CERN/ITEP(Moscow), 20-Dec-03
33// The last update: M.V. Kossov, CERN/ITEP (Moscow) 15-Feb-04
34//
35// ****************************************************************************************
36// Short description: Cross-sections extracted (by W.Pokorski) from the CHIPS package for
37// K(zero)-nuclear interactions. Original author: M. Kossov
38// -------------------------------------------------------------------------------------
39//
40
42#include "G4DynamicParticle.hh"
44#include "G4KaonZero.hh"
45#include "G4KaonZeroLong.hh"
46#include "G4KaonZeroShort.hh"
47#include "G4AntiKaonZero.hh"
48
49// factory
51//
53
54// Initialization of the
55G4double* G4ChipsKaonZeroInelasticXS::lastLEN=0;// Pointer to the lastArray of LowEn CS
56G4double* G4ChipsKaonZeroInelasticXS::lastHEN=0;// Pointer to the lastArray of HighEnCS
57G4int G4ChipsKaonZeroInelasticXS::lastN=0; // The last N of calculated nucleus
58G4int G4ChipsKaonZeroInelasticXS::lastZ=0; // The last Z of calculated nucleus
59G4double G4ChipsKaonZeroInelasticXS::lastP=0.; // Last used in cross section Momentum
60G4double G4ChipsKaonZeroInelasticXS::lastTH=0.;// Last threshold momentum
61G4double G4ChipsKaonZeroInelasticXS::lastCS=0.;// Last value of the Cross Section
62G4int G4ChipsKaonZeroInelasticXS::lastI=0; // The last position in the DAMDB
63
64
66{
69}
70
71
73{
74}
75
77 const G4Element*,
78 const G4Material*)
79{
80 G4ParticleDefinition* particle = Pt->GetDefinition();
81
82 if(particle == G4KaonZeroLong::KaonZeroLong() ||
83 particle == G4KaonZeroShort::KaonZeroShort() ||
84 particle == G4KaonZero::KaonZero() ||
85 particle == G4AntiKaonZero::AntiKaonZero() )
86 {
87 return true;
88 }
89 return false;
90}
91
92
93
94// The main member function giving the collision cross section (P is in IU, CS is in mb)
95// Make pMom in independent units ! (Now it is MeV)
96
98 const G4Isotope*,
99 const G4Element*,
100 const G4Material*)
101{
102 G4double pMom=Pt->GetTotalMomentum();
103 G4int N = A - tgZ;
104
105 return GetChipsCrossSection(pMom, tgZ, N, 311);
106}
107
109{
110 return (theKMinusCS->GetChipsCrossSection(mom,Z,N,pdg)
111 +theKPlusCS->GetChipsCrossSection(mom,Z,N,pdg))/2;
112}
#define G4_DECLARE_XS_FACTORY(cross_section)
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
static G4AntiKaonZero * AntiKaonZero()
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
virtual G4double GetIsoCrossSection(const G4DynamicParticle *, G4int tgZ, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
virtual G4bool IsIsoApplicable(const G4DynamicParticle *Pt, G4int Z, G4int A, const G4Element *elm, const G4Material *mat)
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
static G4CrossSectionDataSetRegistry * Instance()
G4ParticleDefinition * GetDefinition() const
G4double GetTotalMomentum() const
static G4KaonZeroLong * KaonZeroLong()
static G4KaonZeroShort * KaonZeroShort()
static G4KaonZero * KaonZero()
Definition: G4KaonZero.cc:104