Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/particles/management/src/G4ParticlePropertyData.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  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 // G4ParticlePropertyData class implementation
 27 //
 28 // Author: H.Kurashige, 9 June 2003
 29 // --------------------------------------------------------------------
 30 
 31 #include "G4ParticlePropertyData.hh"
 32 
 33 #include "G4PhysicalConstants.hh"
 34 #include "G4SystemOfUnits.hh"
 35 #include "G4ios.hh"
 36 #include "globals.hh"
 37 
 38 G4ParticlePropertyData::G4ParticlePropertyData(const G4String& particleName)
 39   : theParticleName(particleName)
 40 {
 41   for (std::size_t flv = 0; flv < NumberOfQuarkFlavor; ++flv) {
 42     theQuarkContent[flv] = 0;
 43     theAntiQuarkContent[flv] = 0;
 44   }
 45 }
 46 
 47 G4ParticlePropertyData::G4ParticlePropertyData(const G4ParticlePropertyData& right)
 48 {
 49   verboseLevel = right.verboseLevel;
 50   theParticleName = right.theParticleName;
 51   thePDGMass = right.thePDGMass;
 52   thePDGWidth = right.thePDGWidth;
 53   thePDGCharge = right.thePDGCharge;
 54   thePDGiSpin = right.thePDGiSpin;
 55   thePDGiParity = right.thePDGiParity;
 56   thePDGiConjugation = right.thePDGiConjugation;
 57   thePDGiGParity = right.thePDGiGParity;
 58   thePDGiIsospin = right.thePDGiIsospin;
 59   thePDGiIsospin3 = right.thePDGiIsospin3;
 60   thePDGMagneticMoment = right.thePDGMagneticMoment;
 61   theLeptonNumber = right.theLeptonNumber;
 62   theBaryonNumber = right.theBaryonNumber;
 63   thePDGEncoding = right.thePDGEncoding;
 64   theAntiPDGEncoding = right.theAntiPDGEncoding;
 65   for (std::size_t flv = 0; flv < NumberOfQuarkFlavor; ++flv) {
 66     theQuarkContent[flv] = right.theQuarkContent[flv];
 67     theAntiQuarkContent[flv] = right.theAntiQuarkContent[flv];
 68   }
 69   thePDGLifeTime = right.thePDGLifeTime;
 70 }
 71 
 72 G4ParticlePropertyData& G4ParticlePropertyData::operator=(const G4ParticlePropertyData& right)
 73 {
 74   if (this != &right) {
 75     verboseLevel = right.verboseLevel;
 76     theParticleName = right.theParticleName;
 77     thePDGMass = right.thePDGMass;
 78     thePDGWidth = right.thePDGWidth;
 79     thePDGCharge = right.thePDGCharge;
 80     thePDGiSpin = right.thePDGiSpin;
 81     thePDGiParity = right.thePDGiParity;
 82     thePDGiConjugation = right.thePDGiConjugation;
 83     thePDGiGParity = right.thePDGiGParity;
 84     thePDGiIsospin = right.thePDGiIsospin;
 85     thePDGiIsospin3 = right.thePDGiIsospin3;
 86     thePDGMagneticMoment = right.thePDGMagneticMoment;
 87     theLeptonNumber = right.theLeptonNumber;
 88     theBaryonNumber = right.theBaryonNumber;
 89     thePDGEncoding = right.thePDGEncoding;
 90     theAntiPDGEncoding = right.theAntiPDGEncoding;
 91     for (std::size_t flv = 0; flv < NumberOfQuarkFlavor; ++flv) {
 92       theQuarkContent[flv] = right.theQuarkContent[flv];
 93       theAntiQuarkContent[flv] = right.theAntiQuarkContent[flv];
 94     }
 95     thePDGLifeTime = right.thePDGLifeTime;
 96     fPDGMassModified = true;
 97     fPDGWidthModified = true;
 98     fPDGChargeModified = true;
 99     fPDGiSpinModified = true;
100     fPDGiParityModified = true;
101     fPDGiConjugationModified = true;
102     fPDGiGParityModified = true;
103     fPDGiIsospinModified = true;
104     fPDGiIsospin3Modified = true;
105     fPDGIsospinModified = true;
106     fPDGIsospin3Modified = true;
107     fPDGMagneticMomentModified = true;
108     fLeptonNumberModified = true;
109     fBaryonNumberModified = true;
110     fPDGEncodingModified = true;
111     fAntiPDGEncodingModified = true;
112     fQuarkContentModified = true;
113     fAntiQuarkContentModified = true;
114     fPDGLifeTimeModified = true;
115   }
116   return *this;
117 }
118 
119 G4bool G4ParticlePropertyData::operator==(const G4ParticlePropertyData& right) const
120 {
121   return (this == &right);
122 }
123 
124 G4bool G4ParticlePropertyData::operator!=(const G4ParticlePropertyData& right) const
125 {
126   return (this != &right);
127 }
128 
129 void G4ParticlePropertyData::Print() const
130 {
131 #ifdef G4VERBOSE
132   G4cout << " Particle Name : " << theParticleName << G4endl;
133   G4cout << " PDG particle code : " << thePDGEncoding;
134   G4cout << " [PDG anti-particle code: " << this->GetAntiPDGEncoding() << "]" << G4endl;
135   G4cout << " Mass [GeV/c2] : " << thePDGMass / GeV;
136   G4cout << "     Width : " << thePDGWidth / GeV << G4endl;
137   G4cout << " Lifetime [nsec] : " << thePDGLifeTime / ns << G4endl;
138   G4cout << " Charge [e]: " << thePDGCharge / eplus << G4endl;
139   G4cout << " Spin : " << thePDGiSpin << "/2" << G4endl;
140   G4cout << " Parity : " << thePDGiParity << G4endl;
141   G4cout << " Charge conjugation : " << thePDGiConjugation << G4endl;
142   G4cout << " Isospin : (I,Iz): (" << thePDGiIsospin << "/2";
143   G4cout << " , " << thePDGiIsospin3 << "/2 ) " << G4endl;
144   G4cout << " GParity : " << thePDGiGParity << G4endl;
145   G4cout << " MagneticMoment [MeV/T]: ";
146   if (thePDGMagneticMoment != 0.0) {
147     G4cout << thePDGMagneticMoment / MeV * tesla << G4endl;
148   }
149   else {
150     G4cout << "not defined " << G4endl;
151   }
152   G4cout << " Lepton number : " << theLeptonNumber;
153   G4cout << " Baryon number : " << theBaryonNumber << G4endl;
154   G4cout << " Quark contents     (d,u,s,c,b,t) : " << theQuarkContent[0];
155   G4cout << ", " << theQuarkContent[1];
156   G4cout << ", " << theQuarkContent[2];
157   G4cout << ", " << theQuarkContent[3];
158   G4cout << ", " << theQuarkContent[4];
159   G4cout << ", " << theQuarkContent[5] << G4endl;
160   G4cout << " AntiQuark contents               : " << theAntiQuarkContent[0];
161   G4cout << ", " << theAntiQuarkContent[1];
162   G4cout << ", " << theAntiQuarkContent[2];
163   G4cout << ", " << theAntiQuarkContent[3];
164   G4cout << ", " << theAntiQuarkContent[4];
165   G4cout << ", " << theAntiQuarkContent[5] << G4endl;
166 #endif
167 }
168