Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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: G4NuclearLevel.hh 67983 2013-03-13 10:42:03Z gcosmo $
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 (pia@genova.infn.it)
38 //
39 // Creation date: 25 October 1998
40 //
41 // Modifications:
42 // 06 Oct 2010, M. Kelsey (kelsey@slac.stanford.edu)
43 // Add friendship for G4NuclearLevelManager; define private
44 // constructors without vectors.
45 //
46 // 21 Nov. 2001, Fan Lei (flei@space.qinetiq.com)
47 // Added K->N+ internal conversion coefficiencies and their access
48 // functions
49 //
50 // 15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it)
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 
68 public:
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 
115  G4double AngularMomentum() const;
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;
126  G4NuclearLevel& operator=(const G4NuclearLevel &right);
127 
128  G4NuclearLevel(const G4NuclearLevel &right);
129 
130 private:
131 
132  friend class G4NuclearLevelManager;
133 
134  G4NuclearLevel();
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 
const std::vector< G4double > & L2ConvertionProbabilities() const
G4bool operator<(const G4NuclearLevel &right) const
const std::vector< G4double > & NPlusConvertionProbabilities() const
const std::vector< G4double > & M1ConvertionProbabilities() const
G4double HalfLife() const
const std::vector< G4double > & M4ConvertionProbabilities() const
G4int NumberOfGammas() const
G4double Energy() const
const std::vector< G4double > & M2ConvertionProbabilities() const
const std::vector< G4double > & KConvertionProbabilities() const
const std::vector< G4double > & L1ConvertionProbabilities() const
int G4int
Definition: G4Types.hh:78
const std::vector< G4double > & M5ConvertionProbabilities() const
const std::vector< G4double > & GammaEnergies() const
double precision function energy(A, Z)
Definition: dpm25nuc6.f:4106
void PrintAll() const
G4bool operator==(const G4NuclearLevel &right) const
bool G4bool
Definition: G4Types.hh:79
const std::vector< G4double > & L3ConvertionProbabilities() const
const std::vector< G4double > & M3ConvertionProbabilities() const
G4double AngularMomentum() const
void Finalize()
Definition: errprop.cc:236
const std::vector< G4double > & GammaWeights() const
const std::vector< G4double > & TotalConvertionProbabilities() const
const std::vector< G4double > & GammaProbabilities() const
double G4double
Definition: G4Types.hh:76
const std::vector< G4double > & GammaCumulativeProbabilities() const
G4bool operator!=(const G4NuclearLevel &right) const
const std::vector< G4double > & GammaPolarities() const
G4NuclearLevel & operator=(const G4NuclearLevel &right)