ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ParticlePropertyData.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ParticlePropertyData.hh
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 //
28 //
29 // ------------------------------------------------------------
30 // GEANT 4 class header file
31 //
32 // History:
33 // ---------------- G4ParticlePropertyData ----------------
34 // first implementation by H Kurashige 9 June 2003
35 // Add magnetic moment by H Kurashige Mar 2007
36 // ------------------------------------------------------------
37 
38 #ifndef G4ParticlePropertyData_h
39 #define G4ParticlePropertyData_h 1
40 
41 #include "globals.hh"
42 #include "G4ios.hh"
43 
46 {
47  // Class Description
48  // This class containes properties of a particle which are subset
49  // of properties in G4ParticleDefinition class.
50  // This class is used only for G4ParticlePropertyTable.
51  //
52 
54 
55  public: // With Description
56 
57  G4ParticlePropertyData(const G4String& particleName = "");
58  // The particle name should be assigned
59  // This particle name can not be changed except for assignment operator
60 
62 
63  virtual ~G4ParticlePropertyData();
64 
66 
69 
70  public: // With Description
71  // By these following Getxxxx methods, you can get values
72  // for members which can not be changed
73  const G4String& GetParticleName() const { return theParticleName; }
74 
75  G4double GetPDGMass() const { return thePDGMass; }
76  G4double GetPDGWidth() const { return thePDGWidth; }
77  G4double GetPDGCharge() const { return thePDGCharge; }
78 
79  G4int GetPDGiSpin() const { return thePDGiSpin; }
80  G4int GetPDGiParity() const { return thePDGiParity; }
82  G4int GetPDGiIsospin() const { return thePDGiIsospin; }
84  G4int GetPDGiGParity() const { return thePDGiGParity; }
85 
87 
90 
91  G4int GetPDGEncoding() const { return thePDGEncoding; }
93 
94  G4int GetQuarkContent(G4int flavor) const;
95  G4int GetAntiQuarkContent(G4int flavor) const;
96  // return the number of quark with flavor contained in this particle.
97  // The value of flavor is assigned as follows
98  // 1:d, 2:u, 3:s, 4:c, 5:b, 6:t
99 
101 
102  // SetXXX methods
103  void SetPDGMass(G4double newMass);
104  void SetPDGWidth(G4double newWidth);
105  void SetPDGCharge(G4double newCharge);
106 
107  void SetPDGiSpin(G4int newSpin);
108  void SetPDGiParity(G4int newParity);
109  void SetPDGiConjugation(G4int newConjugation);
110  void SetPDGiIsospin(G4int newIsospin);
111  void SetPDGiIsospin3(G4int newIsospin3);
112  void SetPDGiGParity(G4int newGParity);
113 
114  void SetPDGMagneticMoment(G4double mageticMoment);
115 
116  void SetLeptonNumber(G4int newLeptonNumber);
117  void SetBaryonNumber(G4int newBaryonNumber);
118 
119  void SetPDGEncoding(G4int newEncoding);
120  void SetAntiPDGEncoding(G4int newAntiEncoding);
121 
122  void SetQuarkContent(G4int flavor, G4int newContent);
123  void SetAntiQuarkContent(G4int flavor, G4int newContent);
124  void SetPDGLifeTime(G4double newLifeTime);
125 
126  public: // With Description
127  void Print() const;
128  // Prints information of data members.
129 
130  public:
132  G4int GetVerboseLevel() const;
133  // controle flag for output message
134  // 0: Silent
135  // 1: Warning message
136  // 2: More
137 
138 
139  private:
141  // The name of the particle.
142 
144  // The mass of the particle, in units of equivalent energy.
145 
147  // The decay width of the particle, usually the width of a
148  // Breit-Wigner function, assuming that you are near the
149  // mass center anyway. (in units of equivalent energy)
150 
152  // The charge of the particle.(in units of Coulomb)
153 
154  // ---- following members are quantum number
155  // i.e. discrete numbers can be allowded
156  // So, you can defined only by using integer in constructor
157 
159  // The total spin of the particle, also often denoted as
160  // capital J, in units of 1/2.
161 
163  // The parity quantum number, in units of 1. If the parity
164  // is not defined for this particle, we will set this to 0.
165 
167  // This charge conjugation quantum number in units of 1.
168 
170  // The value of the G-parity quantum number.
171 
174  // The isospin and its 3rd-component in units of 1/2.
175 
177  // The magnetic moment.
178 
180  // The lepton quantum number.
181 
183  // The baryon quantum number.
184 
186  // The Particle Data Group integer identifier of this particle
187 
189  // The Particle Data Group integer identifier of the anti-particle
190 
192  // The Particle Life Time
193 
197  // the number of quark (minus Sign means anti-quark) contents
198 
199  private:
219 
220  private:
222 
223 };
224 
225 #include "G4ParticlePropertyData.icc"
226 
227 #endif
228 
229