Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4UPiNuclearCrossSection.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// Calculation of the total, elastic and inelastic cross-sections
27// based on Barashenkov parametrisations of pion data
28//
29// 16.08.06 V.Ivanchenko - first implementation
30// 22.01.07 V.Ivanchenko - add cross section interfaces with Z and A
31// 05.03.07 V.Ivanchenko - add IfZAApplicable
32//
33
34
35#ifndef G4UPiNuclearCrossSection_h
36#define G4UPiNuclearCrossSection_h
37
39#include "G4DynamicParticle.hh"
40#include "G4DataVector.hh"
41#include "G4HadTmpUtil.hh"
42#include "globals.hh"
43#include <vector>
44
45class G4PhysicsTable;
46
48{
49public:
50
52
54
55 virtual
57 G4int Z, const G4Material*);
58
60 G4int Z, G4int A);
61
63 G4int Z, G4int A);
64
66
68
69 virtual void CrossSectionDescription(std::ostream&) const;
70
71private:
72
73 void AddDataSet(const G4String& p, const G4double* tot,
74 const G4double* in, const G4double* e, G4int n);
75
76 G4double Interpolate(G4int Z, G4int A, G4double ekin,
78
79 G4int NZ;
80 std::vector<G4int> theZ;
81 G4DataVector theA;
82 G4PhysicsTable* piPlusElastic;
83 G4PhysicsTable* piPlusInelastic;
84 G4PhysicsTable* piMinusElastic;
85 G4PhysicsTable* piMinusInelastic;
86
87 G4double aPower;
88 G4double elow;
89 G4double elowest;
90 G4double APower[93];
91
92 const G4ParticleDefinition* piPlus;
93 const G4ParticleDefinition* piMinus;
94 G4bool isInitialized;
95};
96
97#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
G4double GetInelasticCrossSection(const G4DynamicParticle *aParticle, G4int Z, G4int A)
void BuildPhysicsTable(const G4ParticleDefinition &)
G4double GetElasticCrossSection(const G4DynamicParticle *aParticle, G4int Z, G4int A)
virtual G4bool IsElementApplicable(const G4DynamicParticle *aParticle, G4int Z, const G4Material *)
virtual void CrossSectionDescription(std::ostream &) const
void DumpPhysicsTable(const G4ParticleDefinition &)