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