source: trunk/source/particles/management/include/G4ParticlePropertyData.hh@ 941

Last change on this file since 941 was 850, checked in by garnier, 17 years ago

geant4.8.2 beta

File size: 7.9 KB
Line 
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// $Id: G4ParticlePropertyData.hh,v 1.3 2007/03/11 07:17:35 kurasige Exp $
28// GEANT4 tag $Name: HEAD $
29//
30//
31// ------------------------------------------------------------
32// GEANT 4 class header file
33//
34// History:
35// ---------------- G4ParticlePropertyData ----------------
36// first implementation by H Kurashige 9 June 2003
37// Add magnetic moment by H Kurashige Mar 2007
38// ------------------------------------------------------------
39
40#ifndef G4ParticlePropertyData_h
41#define G4ParticlePropertyData_h 1
42
43#include "globals.hh"
44#include "G4ios.hh"
45
46class G4ParticlePropertyTable;
47class G4ParticlePropertyData
48{
49 // Class Description
50 // This class containes properties of a particle which are subset
51 // of properties in G4ParticleDefinition class.
52 // This class is used only for G4ParticlePropertyTable.
53 //
54
55 friend class G4ParticlePropertyTable;
56
57 public: // With Description
58
59 G4ParticlePropertyData(const G4String& particleName = "");
60 // The particle name should be assigned
61 // This particle name can not be changed except for assignment operator
62
63 G4ParticlePropertyData(const G4ParticlePropertyData &right);
64
65 virtual ~G4ParticlePropertyData();
66
67 const G4ParticlePropertyData & operator=(const G4ParticlePropertyData &right);
68
69 G4int operator==(const G4ParticlePropertyData &right) const;
70 G4int operator!=(const G4ParticlePropertyData &right) const;
71
72 public: // With Description
73 // By these following Getxxxx methods, you can get values
74 // for members which can not be changed
75 const G4String& GetParticleName() const { return theParticleName; }
76
77 G4double GetPDGMass() const { return thePDGMass; }
78 G4double GetPDGWidth() const { return thePDGWidth; }
79 G4double GetPDGCharge() const { return thePDGCharge; }
80
81 G4int GetPDGiSpin() const { return thePDGiSpin; }
82 G4int GetPDGiParity() const { return thePDGiParity; }
83 G4int GetPDGiConjugation() const { return thePDGiConjugation; }
84 G4int GetPDGiIsospin() const { return thePDGiIsospin; }
85 G4int GetPDGiIsospin3() const { return thePDGiIsospin3; }
86 G4int GetPDGiGParity() const { return thePDGiGParity; }
87
88 G4double GetPDGMagneticMoment() const { return thePDGMagneticMoment; }
89
90 G4int GetLeptonNumber() const { return theLeptonNumber; }
91 G4int GetBaryonNumber() const { return theBaryonNumber; }
92
93 G4int GetPDGEncoding() const { return thePDGEncoding; }
94 G4int GetAntiPDGEncoding() const { return theAntiPDGEncoding; }
95
96 G4int GetQuarkContent(G4int flavor) const;
97 G4int GetAntiQuarkContent(G4int flavor) const;
98 // return the number of quark with flavor contained in this particle.
99 // The value of flavor is assigned as follows
100 // 1:d, 2:u, 3:s, 4:c, 5:b, 6:t
101
102 G4double GetPDGLifeTime() const { return thePDGLifeTime; }
103
104 // SetXXX methods
105 void SetPDGMass(G4double newMass);
106 void SetPDGWidth(G4double newWidth);
107 void SetPDGCharge(G4double newCharge);
108
109 void SetPDGiSpin(G4int newSpin);
110 void SetPDGiParity(G4int newParity);
111 void SetPDGiConjugation(G4int newConjugation);
112 void SetPDGiIsospin(G4int newIsospin);
113 void SetPDGiIsospin3(G4int newIsospin3);
114 void SetPDGiGParity(G4int newGParity);
115
116 void SetPDGMagneticMoment(G4double mageticMoment);
117
118 void SetLeptonNumber(G4int newLeptonNumber);
119 void SetBaryonNumber(G4int newBaryonNumber);
120
121 void SetPDGEncoding(G4int newEncoding);
122 void SetAntiPDGEncoding(G4int newAntiEncoding);
123
124 void SetQuarkContent(G4int flavor, G4int newContent);
125 void SetAntiQuarkContent(G4int flavor, G4int newContent);
126 void SetPDGLifeTime(G4double newLifeTime);
127
128 public: // With Description
129 void Print() const;
130 // Prints information of data members.
131
132 public:
133 void SetVerboseLevel(G4int value);
134 G4int GetVerboseLevel() const;
135 // controle flag for output message
136 // 0: Silent
137 // 1: Warning message
138 // 2: More
139
140
141 private:
142 G4String theParticleName;
143 // The name of the particle.
144
145 G4double thePDGMass;
146 // The mass of the particle, in units of equivalent energy.
147
148 G4double thePDGWidth;
149 // The decay width of the particle, usually the width of a
150 // Breit-Wigner function, assuming that you are near the
151 // mass center anyway. (in units of equivalent energy)
152
153 G4double thePDGCharge;
154 // The charge of the particle.(in units of Coulomb)
155
156 // ---- following members are quantum number
157 // i.e. discrete numbers can be allowded
158 // So, you can defined only by using integer in constructor
159
160 G4int thePDGiSpin;
161 // The total spin of the particle, also often denoted as
162 // capital J, in units of 1/2.
163
164 G4int thePDGiParity;
165 // The parity quantum number, in units of 1. If the parity
166 // is not defined for this particle, we will set this to 0.
167
168 G4int thePDGiConjugation;
169 // This charge conjugation quantum number in units of 1.
170
171 G4int thePDGiGParity;
172 // The value of the G-parity quantum number.
173
174 G4int thePDGiIsospin;
175 G4int thePDGiIsospin3;
176 // The isospin and its 3rd-component in units of 1/2.
177
178 G4double thePDGMagneticMoment;
179 // The magnetic moment.
180
181 G4int theLeptonNumber;
182 // The lepton quantum number.
183
184 G4int theBaryonNumber;
185 // The baryon quantum number.
186
187 G4int thePDGEncoding;
188 // The Particle Data Group integer identifier of this particle
189
190 G4int theAntiPDGEncoding;
191 // The Particle Data Group integer identifier of the anti-particle
192
193 G4double thePDGLifeTime;
194 // The Particle Life Time
195
196 enum {NumberOfQuarkFlavor = 6};
197 G4int theQuarkContent[NumberOfQuarkFlavor];
198 G4int theAntiQuarkContent[NumberOfQuarkFlavor];
199 // the number of quark (minus Sign means anti-quark) contents
200
201 private:
202 G4bool fPDGMassModified;
203 G4bool fPDGWidthModified;
204 G4bool fPDGChargeModified;
205 G4bool fPDGiSpinModified;
206 G4bool fPDGiParityModified;
207 G4bool fPDGiConjugationModified;
208 G4bool fPDGiGParityModified;
209 G4bool fPDGiIsospinModified;
210 G4bool fPDGiIsospin3Modified;
211 G4bool fPDGIsospinModified;
212 G4bool fPDGIsospin3Modified;
213 G4bool fPDGMagneticMomentModified;
214 G4bool fLeptonNumberModified;
215 G4bool fBaryonNumberModified;
216 G4bool fPDGEncodingModified;
217 G4bool fAntiPDGEncodingModified;
218 G4bool fQuarkContentModified;
219 G4bool fAntiQuarkContentModified;
220 G4bool fPDGLifeTimeModified;
221
222 private:
223 G4int verboseLevel;
224
225};
226
227#include "G4ParticlePropertyData.icc"
228
229#endif
230
231
Note: See TracBrowser for help on using the repository browser.