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

Last change on this file since 824 was 824, checked in by garnier, 16 years ago

import all except CVS

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.3 2007/03/11 07:17:35 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  fPDGMassModified(false),
64  fPDGWidthModified(false),
65  fPDGChargeModified(false),
66  fPDGiSpinModified(false),
67  fPDGiParityModified(false),
68  fPDGiConjugationModified(false),
69  fPDGiGParityModified(false),
70  fPDGiIsospinModified(false),
71  fPDGiIsospin3Modified(false),
72  fPDGIsospinModified(false),
73  fPDGIsospin3Modified(false),
74  fPDGMagneticMomentModified(false),
75  fLeptonNumberModified(false),
76  fBaryonNumberModified(false),
77  fPDGEncodingModified(false),
78  fAntiPDGEncodingModified(false),
79  fQuarkContentModified(false),
80  fAntiQuarkContentModified(false),
81  fPDGLifeTimeModified(false),
82  verboseLevel(1)
83{
84  for (size_t flv=0; flv<NumberOfQuarkFlavor; ++flv) {
85    theQuarkContent[flv] =0;
86    theAntiQuarkContent[flv]=0;
87  }
88}
89
90
91////////////////////////
92G4ParticlePropertyData::G4ParticlePropertyData(const G4ParticlePropertyData &right):
93  fPDGMassModified(false),
94  fPDGWidthModified(false),
95  fPDGChargeModified(false),
96  fPDGiSpinModified(false),
97  fPDGiParityModified(false),
98  fPDGiConjugationModified(false),
99  fPDGiGParityModified(false),
100  fPDGiIsospinModified(false),
101  fPDGiIsospin3Modified(false),
102  fPDGIsospinModified(false),
103  fPDGIsospin3Modified(false),
104  fPDGMagneticMomentModified(false),
105  fLeptonNumberModified(false),
106  fBaryonNumberModified(false),
107  fPDGEncodingModified(false),
108  fAntiPDGEncodingModified(false),
109  fQuarkContentModified(false),
110  fAntiQuarkContentModified(false),
111  fPDGLifeTimeModified(false)
112{
113  verboseLevel      = right.verboseLevel; 
114  theParticleName   = right.theParticleName;
115  thePDGMass        = right.thePDGMass;
116  thePDGWidth       = right. thePDGWidth;
117  thePDGCharge      = right.thePDGCharge;
118  thePDGiSpin       = right.thePDGiSpin;
119  thePDGiParity     = right.thePDGiParity;
120  thePDGiConjugation   = right.thePDGiConjugation;
121  thePDGiGParity    = right.thePDGiGParity;
122  thePDGiIsospin    = right.thePDGiIsospin;
123  thePDGiIsospin3   = right.thePDGiIsospin3;
124  thePDGMagneticMoment =  right.thePDGMagneticMoment;
125  theLeptonNumber   = right.theLeptonNumber;
126  theBaryonNumber   = right.theBaryonNumber;
127  thePDGEncoding    = right.thePDGEncoding;
128  theAntiPDGEncoding   = right.theAntiPDGEncoding;
129  for (size_t flv=0; flv<NumberOfQuarkFlavor; ++flv) {
130    theQuarkContent[flv]    = right.theQuarkContent[flv];
131    theAntiQuarkContent[flv]= right.theAntiQuarkContent[flv];
132  }
133  thePDGLifeTime    = right.thePDGLifeTime;
134}
135     
136////////////////////////
137const G4ParticlePropertyData & G4ParticlePropertyData::operator=(const G4ParticlePropertyData &right)
138{
139  if (this != &right) {
140    verboseLevel      = right.verboseLevel; 
141    theParticleName   = right.theParticleName;
142    thePDGMass        = right.thePDGMass;
143    thePDGWidth       = right. thePDGWidth;
144    thePDGCharge      = right.thePDGCharge;
145    thePDGiSpin       = right.thePDGiSpin;
146    thePDGiParity     = right.thePDGiParity;
147    thePDGiConjugation  = right.thePDGiConjugation;
148    thePDGiGParity    = right.thePDGiGParity;
149    thePDGiIsospin    = right.thePDGiIsospin;
150    thePDGiIsospin3   = right.thePDGiIsospin3;
151    thePDGMagneticMoment =  right.thePDGMagneticMoment;
152    theLeptonNumber   = right.theLeptonNumber;
153    theBaryonNumber   = right.theBaryonNumber;
154    thePDGEncoding    = right.thePDGEncoding;
155    theAntiPDGEncoding  = right.theAntiPDGEncoding;
156    for (size_t flv=0; flv<NumberOfQuarkFlavor; ++flv) {
157      theQuarkContent[flv]    = right.theQuarkContent[flv];
158      theAntiQuarkContent[flv]= right.theAntiQuarkContent[flv];
159    }
160    thePDGLifeTime    = right.thePDGLifeTime;
161    fPDGMassModified           = true;
162    fPDGWidthModified          = true; 
163    fPDGChargeModified         = true;
164    fPDGiSpinModified          = true;
165    fPDGiParityModified        = true;   
166    fPDGiConjugationModified   = true; 
167    fPDGiGParityModified       = true;
168    fPDGiIsospinModified       = true; 
169    fPDGiIsospin3Modified      = true;
170    fPDGIsospinModified        = true; 
171    fPDGIsospin3Modified       = true;
172    fPDGMagneticMomentModified = true;
173    fLeptonNumberModified      = true;
174    fBaryonNumberModified      = true;
175    fPDGEncodingModified       = true;
176    fAntiPDGEncodingModified   = true;
177    fQuarkContentModified      = true;
178    fAntiQuarkContentModified  = true;
179    fPDGLifeTimeModified       = true;   
180  }
181  return *this;
182}
183 
184////////////////////////
185G4int G4ParticlePropertyData::operator==(const G4ParticlePropertyData &right) const
186{
187  return (this == &right);
188}
189
190////////////////////////
191G4int G4ParticlePropertyData::operator!=(const G4ParticlePropertyData &right) const
192{
193  return (this != &right);
194}
195
196////////////////////////
197void G4ParticlePropertyData::Print() const
198{
199  G4cout << " Particle Name : " << theParticleName << G4endl;
200  G4cout << " PDG particle code : " << thePDGEncoding;
201  G4cout << " [PDG anti-particle code: " << this->GetAntiPDGEncoding() << "]"<< G4endl;
202  G4cout << " Mass [GeV/c2] : " << thePDGMass/GeV ;
203  G4cout << "     Width : " << thePDGWidth/GeV << G4endl;
204  G4cout << " Lifetime [nsec] : " << thePDGLifeTime/ns << G4endl;
205  G4cout << " Charge [e]: " << thePDGCharge/eplus << G4endl;
206  G4cout << " Spin : " << thePDGiSpin << "/2" << G4endl;
207  G4cout << " Parity : " << thePDGiParity << G4endl;
208  G4cout << " Charge conjugation : " << thePDGiConjugation << G4endl;
209  G4cout << " Isospin : (I,Iz): (" << thePDGiIsospin <<"/2";
210  G4cout << " , " << thePDGiIsospin3 << "/2 ) " << G4endl;
211  G4cout << " GParity : " << thePDGiGParity << G4endl;
212  G4cout << " MagneticMoment [MeV/T]: ";
213  if (thePDGMagneticMoment != 0.0) {
214    G4cout << thePDGMagneticMoment/MeV*tesla  << G4endl;
215  }else {
216    G4cout << "not defined " << G4endl;
217  }
218  G4cout << " Lepton number : " << theLeptonNumber;
219  G4cout << " Baryon number : " << theBaryonNumber << G4endl; 
220  G4cout << " Quark contents     (d,u,s,c,b,t) : " << theQuarkContent[0];
221  G4cout << ", " << theQuarkContent[1];
222  G4cout << ", " << theQuarkContent[2];
223  G4cout << ", " << theQuarkContent[3];
224  G4cout << ", " << theQuarkContent[4];
225  G4cout << ", " << theQuarkContent[5] << G4endl;
226  G4cout << " AntiQuark contents               : " << theAntiQuarkContent[0];
227  G4cout << ", " << theAntiQuarkContent[1];
228  G4cout << ", " << theAntiQuarkContent[2];
229  G4cout << ", " << theAntiQuarkContent[3];
230  G4cout << ", " << theAntiQuarkContent[4];
231  G4cout << ", " << theAntiQuarkContent[5] << G4endl;
232}
233
234
235
236
237
238
239
240
241
Note: See TracBrowser for help on using the repository browser.