source: trunk/source/particles/management/src/G4ParticlePropertyData.cc @ 1355

Last change on this file since 1355 was 1340, checked in by garnier, 14 years ago

update ti head

File size: 8.8 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// $Id: G4ParticlePropertyData.cc,v 1.5 2010/10/30 07:55:00 kurasige Exp $
27//
28// class G4ParticlePropertyData
29//
30// Implementation
31//
32// History:
33// first implementation by H Kurashige 9 June 2003
34// Add   magnetic moment    by H Kurashige   Mar 2007
35
36#include "G4ios.hh"
37#include "globals.hh"
38#include "G4ParticlePropertyData.hh"
39
40
41/////////////////////////////////////////////////////////////
42G4ParticlePropertyData::~G4ParticlePropertyData()
43{
44}
45
46/////////////////////////////////////////////////////////////
47G4ParticlePropertyData::G4ParticlePropertyData(const G4String& particleName):
48  theParticleName(particleName),
49  thePDGMass(0.0),
50  thePDGWidth(0.0),
51  thePDGCharge(0.0),
52  thePDGiSpin(0),
53  thePDGiParity(0),
54  thePDGiConjugation(0),
55  thePDGiGParity(0),
56  thePDGiIsospin(0),
57  thePDGiIsospin3(0),
58  thePDGMagneticMoment(0.0),
59  theLeptonNumber(0),
60  theBaryonNumber(0),
61  thePDGEncoding(0),
62  theAntiPDGEncoding(0),
63  thePDGLifeTime(-1.0),
64  fPDGMassModified(false),
65  fPDGWidthModified(false),
66  fPDGChargeModified(false),
67  fPDGiSpinModified(false),
68  fPDGiParityModified(false),
69  fPDGiConjugationModified(false),
70  fPDGiGParityModified(false),
71  fPDGiIsospinModified(false),
72  fPDGiIsospin3Modified(false),
73  fPDGIsospinModified(false),
74  fPDGIsospin3Modified(false),
75  fPDGMagneticMomentModified(false),
76  fLeptonNumberModified(false),
77  fBaryonNumberModified(false),
78  fPDGEncodingModified(false),
79  fAntiPDGEncodingModified(false),
80  fQuarkContentModified(false),
81  fAntiQuarkContentModified(false),
82  fPDGLifeTimeModified(false),
83  verboseLevel(1)
84{
85  for (size_t flv=0; flv<NumberOfQuarkFlavor; ++flv) {
86    theQuarkContent[flv] =0;
87    theAntiQuarkContent[flv]=0;
88  }
89}
90
91
92////////////////////////
93G4ParticlePropertyData::G4ParticlePropertyData(const G4ParticlePropertyData &right):
94  fPDGMassModified(false),
95  fPDGWidthModified(false),
96  fPDGChargeModified(false),
97  fPDGiSpinModified(false),
98  fPDGiParityModified(false),
99  fPDGiConjugationModified(false),
100  fPDGiGParityModified(false),
101  fPDGiIsospinModified(false),
102  fPDGiIsospin3Modified(false),
103  fPDGIsospinModified(false),
104  fPDGIsospin3Modified(false),
105  fPDGMagneticMomentModified(false),
106  fLeptonNumberModified(false),
107  fBaryonNumberModified(false),
108  fPDGEncodingModified(false),
109  fAntiPDGEncodingModified(false),
110  fQuarkContentModified(false),
111  fAntiQuarkContentModified(false),
112  fPDGLifeTimeModified(false)
113{
114  verboseLevel      = right.verboseLevel; 
115  theParticleName   = right.theParticleName;
116  thePDGMass        = right.thePDGMass;
117  thePDGWidth       = right. thePDGWidth;
118  thePDGCharge      = right.thePDGCharge;
119  thePDGiSpin       = right.thePDGiSpin;
120  thePDGiParity     = right.thePDGiParity;
121  thePDGiConjugation   = right.thePDGiConjugation;
122  thePDGiGParity    = right.thePDGiGParity;
123  thePDGiIsospin    = right.thePDGiIsospin;
124  thePDGiIsospin3   = right.thePDGiIsospin3;
125  thePDGMagneticMoment =  right.thePDGMagneticMoment;
126  theLeptonNumber   = right.theLeptonNumber;
127  theBaryonNumber   = right.theBaryonNumber;
128  thePDGEncoding    = right.thePDGEncoding;
129  theAntiPDGEncoding   = right.theAntiPDGEncoding;
130  for (size_t flv=0; flv<NumberOfQuarkFlavor; ++flv) {
131    theQuarkContent[flv]    = right.theQuarkContent[flv];
132    theAntiQuarkContent[flv]= right.theAntiQuarkContent[flv];
133  }
134  thePDGLifeTime    = right.thePDGLifeTime;
135}
136     
137////////////////////////
138const G4ParticlePropertyData & G4ParticlePropertyData::operator=(const G4ParticlePropertyData &right)
139{
140  if (this != &right) {
141    verboseLevel      = right.verboseLevel; 
142    theParticleName   = right.theParticleName;
143    thePDGMass        = right.thePDGMass;
144    thePDGWidth       = right. thePDGWidth;
145    thePDGCharge      = right.thePDGCharge;
146    thePDGiSpin       = right.thePDGiSpin;
147    thePDGiParity     = right.thePDGiParity;
148    thePDGiConjugation  = right.thePDGiConjugation;
149    thePDGiGParity    = right.thePDGiGParity;
150    thePDGiIsospin    = right.thePDGiIsospin;
151    thePDGiIsospin3   = right.thePDGiIsospin3;
152    thePDGMagneticMoment =  right.thePDGMagneticMoment;
153    theLeptonNumber   = right.theLeptonNumber;
154    theBaryonNumber   = right.theBaryonNumber;
155    thePDGEncoding    = right.thePDGEncoding;
156    theAntiPDGEncoding  = right.theAntiPDGEncoding;
157    for (size_t flv=0; flv<NumberOfQuarkFlavor; ++flv) {
158      theQuarkContent[flv]    = right.theQuarkContent[flv];
159      theAntiQuarkContent[flv]= right.theAntiQuarkContent[flv];
160    }
161    thePDGLifeTime    = right.thePDGLifeTime;
162    fPDGMassModified           = true;
163    fPDGWidthModified          = true; 
164    fPDGChargeModified         = true;
165    fPDGiSpinModified          = true;
166    fPDGiParityModified        = true;   
167    fPDGiConjugationModified   = true; 
168    fPDGiGParityModified       = true;
169    fPDGiIsospinModified       = true; 
170    fPDGiIsospin3Modified      = true;
171    fPDGIsospinModified        = true; 
172    fPDGIsospin3Modified       = true;
173    fPDGMagneticMomentModified = true;
174    fLeptonNumberModified      = true;
175    fBaryonNumberModified      = true;
176    fPDGEncodingModified       = true;
177    fAntiPDGEncodingModified   = true;
178    fQuarkContentModified      = true;
179    fAntiQuarkContentModified  = true;
180    fPDGLifeTimeModified       = true;   
181  }
182  return *this;
183}
184 
185////////////////////////
186G4int G4ParticlePropertyData::operator==(const G4ParticlePropertyData &right) const
187{
188  return (this == &right);
189}
190
191////////////////////////
192G4int G4ParticlePropertyData::operator!=(const G4ParticlePropertyData &right) const
193{
194  return (this != &right);
195}
196
197////////////////////////
198void G4ParticlePropertyData::Print() const
199{
200#ifdef G4VERBOSE
201  G4cout << " Particle Name : " << theParticleName << G4endl;
202  G4cout << " PDG particle code : " << thePDGEncoding;
203  G4cout << " [PDG anti-particle code: " << this->GetAntiPDGEncoding() << "]"<< G4endl;
204  G4cout << " Mass [GeV/c2] : " << thePDGMass/GeV ;
205  G4cout << "     Width : " << thePDGWidth/GeV << G4endl;
206  G4cout << " Lifetime [nsec] : " << thePDGLifeTime/ns << G4endl;
207  G4cout << " Charge [e]: " << thePDGCharge/eplus << G4endl;
208  G4cout << " Spin : " << thePDGiSpin << "/2" << G4endl;
209  G4cout << " Parity : " << thePDGiParity << G4endl;
210  G4cout << " Charge conjugation : " << thePDGiConjugation << G4endl;
211  G4cout << " Isospin : (I,Iz): (" << thePDGiIsospin <<"/2";
212  G4cout << " , " << thePDGiIsospin3 << "/2 ) " << G4endl;
213  G4cout << " GParity : " << thePDGiGParity << G4endl;
214  G4cout << " MagneticMoment [MeV/T]: ";
215  if (thePDGMagneticMoment != 0.0) {
216    G4cout << thePDGMagneticMoment/MeV*tesla  << G4endl;
217  }else {
218    G4cout << "not defined " << G4endl;
219  }
220  G4cout << " Lepton number : " << theLeptonNumber;
221  G4cout << " Baryon number : " << theBaryonNumber << G4endl; 
222  G4cout << " Quark contents     (d,u,s,c,b,t) : " << theQuarkContent[0];
223  G4cout << ", " << theQuarkContent[1];
224  G4cout << ", " << theQuarkContent[2];
225  G4cout << ", " << theQuarkContent[3];
226  G4cout << ", " << theQuarkContent[4];
227  G4cout << ", " << theQuarkContent[5] << G4endl;
228  G4cout << " AntiQuark contents               : " << theAntiQuarkContent[0];
229  G4cout << ", " << theAntiQuarkContent[1];
230  G4cout << ", " << theAntiQuarkContent[2];
231  G4cout << ", " << theAntiQuarkContent[3];
232  G4cout << ", " << theAntiQuarkContent[4];
233  G4cout << ", " << theAntiQuarkContent[5] << G4endl;
234#endif
235}
236
237
238
239
240
241
242
243
244
Note: See TracBrowser for help on using the repository browser.