ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ParticlePropertyData.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ParticlePropertyData.cc
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 // class G4ParticlePropertyData
28 //
29 // Implementation
30 //
31 // History:
32 // first implementation by H Kurashige 9 June 2003
33 // Add magnetic moment by H Kurashige Mar 2007
34 
35 #include "G4ios.hh"
36 #include "globals.hh"
37 #include "G4PhysicalConstants.hh"
38 #include "G4SystemOfUnits.hh"
40 
41 
44 {
45 }
46 
49  theParticleName(particleName),
50  thePDGMass(0.0),
51  thePDGWidth(0.0),
52  thePDGCharge(0.0),
53  thePDGiSpin(0),
54  thePDGiParity(0),
55  thePDGiConjugation(0),
56  thePDGiGParity(0),
57  thePDGiIsospin(0),
58  thePDGiIsospin3(0),
59  thePDGMagneticMoment(0.0),
60  theLeptonNumber(0),
61  theBaryonNumber(0),
62  thePDGEncoding(0),
63  theAntiPDGEncoding(0),
64  thePDGLifeTime(-1.0),
65  fPDGMassModified(false),
66  fPDGWidthModified(false),
67  fPDGChargeModified(false),
68  fPDGiSpinModified(false),
69  fPDGiParityModified(false),
70  fPDGiConjugationModified(false),
71  fPDGiGParityModified(false),
72  fPDGiIsospinModified(false),
73  fPDGiIsospin3Modified(false),
74  fPDGIsospinModified(false),
75  fPDGIsospin3Modified(false),
76  fPDGMagneticMomentModified(false),
77  fLeptonNumberModified(false),
78  fBaryonNumberModified(false),
79  fPDGEncodingModified(false),
80  fAntiPDGEncodingModified(false),
81  fQuarkContentModified(false),
82  fAntiQuarkContentModified(false),
83  fPDGLifeTimeModified(false),
84  verboseLevel(1)
85 {
86  for (size_t flv=0; flv<NumberOfQuarkFlavor; ++flv) {
87  theQuarkContent[flv] =0;
88  theAntiQuarkContent[flv]=0;
89  }
90 }
91 
92 
95  fPDGMassModified(false),
96  fPDGWidthModified(false),
97  fPDGChargeModified(false),
98  fPDGiSpinModified(false),
99  fPDGiParityModified(false),
100  fPDGiConjugationModified(false),
101  fPDGiGParityModified(false),
102  fPDGiIsospinModified(false),
103  fPDGiIsospin3Modified(false),
104  fPDGIsospinModified(false),
105  fPDGIsospin3Modified(false),
106  fPDGMagneticMomentModified(false),
107  fLeptonNumberModified(false),
108  fBaryonNumberModified(false),
109  fPDGEncodingModified(false),
110  fAntiPDGEncodingModified(false),
111  fQuarkContentModified(false),
112  fAntiQuarkContentModified(false),
113  fPDGLifeTimeModified(false)
114 {
115  verboseLevel = right.verboseLevel;
117  thePDGMass = right.thePDGMass;
118  thePDGWidth = right. thePDGWidth;
119  thePDGCharge = right.thePDGCharge;
120  thePDGiSpin = right.thePDGiSpin;
131  for (size_t flv=0; flv<NumberOfQuarkFlavor; ++flv) {
132  theQuarkContent[flv] = right.theQuarkContent[flv];
133  theAntiQuarkContent[flv]= right.theAntiQuarkContent[flv];
134  }
136 }
137 
140 {
141  if (this != &right) {
142  verboseLevel = right.verboseLevel;
144  thePDGMass = right.thePDGMass;
145  thePDGWidth = right. thePDGWidth;
146  thePDGCharge = right.thePDGCharge;
147  thePDGiSpin = right.thePDGiSpin;
158  for (size_t flv=0; flv<NumberOfQuarkFlavor; ++flv) {
159  theQuarkContent[flv] = right.theQuarkContent[flv];
160  theAntiQuarkContent[flv]= right.theAntiQuarkContent[flv];
161  }
163  fPDGMassModified = true;
164  fPDGWidthModified = true;
165  fPDGChargeModified = true;
166  fPDGiSpinModified = true;
167  fPDGiParityModified = true;
168  fPDGiConjugationModified = true;
169  fPDGiGParityModified = true;
170  fPDGiIsospinModified = true;
171  fPDGiIsospin3Modified = true;
172  fPDGIsospinModified = true;
173  fPDGIsospin3Modified = true;
175  fLeptonNumberModified = true;
176  fBaryonNumberModified = true;
177  fPDGEncodingModified = true;
179  fQuarkContentModified = true;
181  fPDGLifeTimeModified = true;
182  }
183  return *this;
184 }
185 
188 {
189  return (this == &right);
190 }
191 
194 {
195  return (this != &right);
196 }
197 
200 {
201 #ifdef G4VERBOSE
202  G4cout << " Particle Name : " << theParticleName << G4endl;
203  G4cout << " PDG particle code : " << thePDGEncoding;
204  G4cout << " [PDG anti-particle code: " << this->GetAntiPDGEncoding() << "]"<< G4endl;
205  G4cout << " Mass [GeV/c2] : " << thePDGMass/GeV ;
206  G4cout << " Width : " << thePDGWidth/GeV << G4endl;
207  G4cout << " Lifetime [nsec] : " << thePDGLifeTime/ns << G4endl;
208  G4cout << " Charge [e]: " << thePDGCharge/eplus << G4endl;
209  G4cout << " Spin : " << thePDGiSpin << "/2" << G4endl;
210  G4cout << " Parity : " << thePDGiParity << G4endl;
211  G4cout << " Charge conjugation : " << thePDGiConjugation << G4endl;
212  G4cout << " Isospin : (I,Iz): (" << thePDGiIsospin <<"/2";
213  G4cout << " , " << thePDGiIsospin3 << "/2 ) " << G4endl;
214  G4cout << " GParity : " << thePDGiGParity << G4endl;
215  G4cout << " MagneticMoment [MeV/T]: ";
216  if (thePDGMagneticMoment != 0.0) {
218  }else {
219  G4cout << "not defined " << G4endl;
220  }
221  G4cout << " Lepton number : " << theLeptonNumber;
222  G4cout << " Baryon number : " << theBaryonNumber << G4endl;
223  G4cout << " Quark contents (d,u,s,c,b,t) : " << theQuarkContent[0];
224  G4cout << ", " << theQuarkContent[1];
225  G4cout << ", " << theQuarkContent[2];
226  G4cout << ", " << theQuarkContent[3];
227  G4cout << ", " << theQuarkContent[4];
228  G4cout << ", " << theQuarkContent[5] << G4endl;
229  G4cout << " AntiQuark contents : " << theAntiQuarkContent[0];
230  G4cout << ", " << theAntiQuarkContent[1];
231  G4cout << ", " << theAntiQuarkContent[2];
232  G4cout << ", " << theAntiQuarkContent[3];
233  G4cout << ", " << theAntiQuarkContent[4];
234  G4cout << ", " << theAntiQuarkContent[5] << G4endl;
235 #endif
236 }
237 
238 
239 
240 
241 
242 
243 
244 
245