Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4NuclearLevel.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// -------------------------------------------------------------------
29// GEANT 4 class file
30//
31// For information related to this code contact:
32// CERN, IT Division, ASD group
33// CERN, Geneva, Switzerland
34//
35// File name: G4NuclearLevel
36//
37// Author: Maria Grazia Pia ([email protected])
38//
39// Creation date: 25 October 1998
40//
41// Modifications:
42// 06 Oct 2010, M. Kelsey ([email protected])
43// Add friendship for G4NuclearLevelManager; define private
44// constructors without vectors.
45//
46// 21 Nov. 2001, Fan Lei ([email protected])
47// Added K->N+ internal conversion coefficiencies and their access
48// functions
49//
50// 15 April 1999, Alessandro Brunengo ([email protected])
51// Added half-life, angular momentum, parity, emissioni type
52// reading from experimental data.
53//
54// 28 October 2010, V.Ivanchenko moved copy constructor to source, cleanup
55//
56//
57// -------------------------------------------------------------------
58
59#ifndef G4NUCLEARLEVEL_HH
60#define G4NUCLEARLEVEL_HH 1
61
62#include "globals.hh"
63#include <vector>
64
66{
67
68public:
69 G4NuclearLevel(G4double energy, G4double halfLife,
70 G4double angularMomentum, const std::vector<G4double>& eGamma,
71 const std::vector<G4double>& wGamma, const std::vector<G4double>& polarities,
72 const std::vector<G4double>& kCC, const std::vector<G4double>& l1CC,
73 const std::vector<G4double>& l2CC, const std::vector<G4double>& l3CC,
74 const std::vector<G4double>& m1CC, const std::vector<G4double>& m2CC,
75 const std::vector<G4double>& m3CC, const std::vector<G4double>& m4CC,
76 const std::vector<G4double>& m5CC, const std::vector<G4double>& nPlusCC,
77 const std::vector<G4double>& totalCC);
78
80
81 const std::vector<G4double>& GammaEnergies() const;
82
83 const std::vector<G4double>& GammaWeights() const;
84
85 const std::vector<G4double>& GammaProbabilities() const;
86
87 const std::vector<G4double>& GammaCumulativeProbabilities() const;
88
89 const std::vector<G4double>& GammaPolarities() const;
90
91 const std::vector<G4double>& KConvertionProbabilities() const;
92
93 const std::vector<G4double>& L1ConvertionProbabilities() const;
94
95 const std::vector<G4double>& L2ConvertionProbabilities() const;
96
97 const std::vector<G4double>& L3ConvertionProbabilities() const;
98
99 const std::vector<G4double>& M1ConvertionProbabilities() const;
100
101 const std::vector<G4double>& M2ConvertionProbabilities() const;
102
103 const std::vector<G4double>& M3ConvertionProbabilities() const;
104
105 const std::vector<G4double>& M4ConvertionProbabilities() const;
106
107 const std::vector<G4double>& M5ConvertionProbabilities() const;
108
109 const std::vector<G4double>& NPlusConvertionProbabilities() const;
110
111 const std::vector<G4double>& TotalConvertionProbabilities() const;
112
113 G4double Energy() const;
114
116
117 G4double HalfLife() const;
118
119 G4int NumberOfGammas() const;
120
121 void PrintAll() const;
122
123 G4bool operator==(const G4NuclearLevel &right) const;
124 G4bool operator!=(const G4NuclearLevel &right) const;
125 G4bool operator<(const G4NuclearLevel &right) const;
127
128 G4NuclearLevel(const G4NuclearLevel &right);
129
130private:
131
133
135
136 G4NuclearLevel(G4double energy, G4double halfLife,
137 G4double angularMomentum);
138
139 void Finalize();
140
141 void MakeProbabilities();
142 void MakeCumProb();
143
144 G4int Increment(G4int aF);
145
146 std::vector<G4double> _energies;
147 std::vector<G4double> _weights;
148 std::vector<G4double> _prob;
149 std::vector<G4double> _cumProb;
150 std::vector<G4double> _polarities;
151 std::vector<G4double> _kCC;
152 std::vector<G4double> _l1CC;
153 std::vector<G4double> _l2CC;
154 std::vector<G4double> _l3CC;
155 std::vector<G4double> _m1CC;
156 std::vector<G4double> _m2CC;
157 std::vector<G4double> _m3CC;
158 std::vector<G4double> _m4CC;
159 std::vector<G4double> _m5CC;
160 std::vector<G4double> _nPlusCC;
161 std::vector<G4double> _totalCC;
162
163 G4double _energy;
164 G4double _halfLife;
165 G4double _angularMomentum;
166 G4int _nGammas;
167};
168
169#endif
170
171
172
173
174
175
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
const std::vector< G4double > & M4ConvertionProbabilities() const
const std::vector< G4double > & GammaEnergies() const
G4double HalfLife() const
const std::vector< G4double > & M1ConvertionProbabilities() const
void PrintAll() const
const std::vector< G4double > & L3ConvertionProbabilities() const
G4double AngularMomentum() const
const std::vector< G4double > & L1ConvertionProbabilities() const
G4NuclearLevel & operator=(const G4NuclearLevel &right)
const std::vector< G4double > & M5ConvertionProbabilities() const
const std::vector< G4double > & GammaWeights() const
const std::vector< G4double > & GammaProbabilities() const
const std::vector< G4double > & L2ConvertionProbabilities() const
const std::vector< G4double > & GammaCumulativeProbabilities() const
G4double Energy() const
const std::vector< G4double > & TotalConvertionProbabilities() const
G4bool operator!=(const G4NuclearLevel &right) const
const std::vector< G4double > & GammaPolarities() const
const std::vector< G4double > & NPlusConvertionProbabilities() const
G4int NumberOfGammas() const
const std::vector< G4double > & KConvertionProbabilities() const
G4bool operator==(const G4NuclearLevel &right) const
const std::vector< G4double > & M3ConvertionProbabilities() const
const std::vector< G4double > & M2ConvertionProbabilities() const
G4bool operator<(const G4NuclearLevel &right) const