G4ParticlePropertyData.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // $Id$
00028 //
00029 // 
00030 // ------------------------------------------------------------
00031 //      GEANT 4 class header file 
00032 //
00033 //      History: 
00034 // ---------------- G4ParticlePropertyData ----------------
00035 // first implementation by H Kurashige 9 June 2003
00036 // Add   magnetic moment    by H Kurashige   Mar 2007
00037 // ------------------------------------------------------------
00038 
00039 #ifndef G4ParticlePropertyData_h
00040 #define G4ParticlePropertyData_h 1
00041 
00042 #include "globals.hh"
00043 #include "G4ios.hh"
00044 
00045 class G4ParticlePropertyTable;
00046 class G4ParticlePropertyData 
00047 {
00048   // Class Description
00049   //  This class containes properties of a particle which are subset
00050   //  of properties in G4ParticleDefinition class.
00051   //  This class is used only for G4ParticlePropertyTable.
00052   //
00053   
00054   friend class  G4ParticlePropertyTable;
00055 
00056  public: // With Description
00057  
00058   G4ParticlePropertyData(const G4String& particleName = "");
00059   // The particle name should be assigned
00060   // This particle name can not be changed except for assignment operator
00061 
00062   G4ParticlePropertyData(const G4ParticlePropertyData &right);
00063  
00064   virtual ~G4ParticlePropertyData();
00065       
00066   G4ParticlePropertyData & operator=(const G4ParticlePropertyData &right);
00067   
00068   G4int operator==(const G4ParticlePropertyData &right) const;
00069   G4int operator!=(const G4ParticlePropertyData &right) const;
00070 
00071  public: // With Description
00072   // By these following Getxxxx methods, you can get values 
00073   // for members which can not be changed
00074   const G4String& GetParticleName() const { return theParticleName; }
00075   
00076   G4double GetPDGMass() const { return thePDGMass; }
00077   G4double GetPDGWidth() const { return thePDGWidth; } 
00078   G4double GetPDGCharge() const { return thePDGCharge; }
00079   
00080   G4int    GetPDGiSpin() const { return thePDGiSpin; }
00081   G4int    GetPDGiParity() const { return thePDGiParity; }
00082   G4int    GetPDGiConjugation() const { return thePDGiConjugation; }
00083   G4int    GetPDGiIsospin() const { return thePDGiIsospin; }
00084   G4int    GetPDGiIsospin3() const { return thePDGiIsospin3; }
00085   G4int    GetPDGiGParity() const { return thePDGiGParity; }
00086  
00087   G4double GetPDGMagneticMoment() const { return thePDGMagneticMoment; }
00088    
00089   G4int    GetLeptonNumber() const { return theLeptonNumber; }
00090   G4int    GetBaryonNumber() const { return theBaryonNumber; }
00091   
00092   G4int    GetPDGEncoding() const { return thePDGEncoding; }
00093   G4int    GetAntiPDGEncoding() const { return theAntiPDGEncoding; }
00094   
00095   G4int    GetQuarkContent(G4int flavor) const;
00096   G4int    GetAntiQuarkContent(G4int flavor) const;
00097   //  return the number of quark with flavor contained in this particle. 
00098   //  The value of flavor is assigned as follows 
00099   // 1:d, 2:u, 3:s, 4:c, 5:b, 6:t
00100   
00101   G4double GetPDGLifeTime() const { return thePDGLifeTime; }
00102 
00103   // SetXXX methods 
00104   void SetPDGMass(G4double newMass);
00105   void SetPDGWidth(G4double newWidth);
00106   void SetPDGCharge(G4double newCharge);
00107   
00108   void SetPDGiSpin(G4int newSpin);
00109   void SetPDGiParity(G4int newParity);
00110   void SetPDGiConjugation(G4int newConjugation);
00111   void SetPDGiIsospin(G4int newIsospin);
00112   void SetPDGiIsospin3(G4int newIsospin3);
00113   void SetPDGiGParity(G4int newGParity);
00114 
00115   void SetPDGMagneticMoment(G4double mageticMoment);
00116   
00117   void SetLeptonNumber(G4int newLeptonNumber);
00118   void SetBaryonNumber(G4int newBaryonNumber);
00119   
00120   void SetPDGEncoding(G4int newEncoding);
00121   void SetAntiPDGEncoding(G4int newAntiEncoding);
00122   
00123   void SetQuarkContent(G4int flavor, G4int newContent);
00124   void SetAntiQuarkContent(G4int flavor, G4int newContent);
00125   void SetPDGLifeTime(G4double newLifeTime); 
00126 
00127  public: // With Description
00128   void Print() const;
00129   //  Prints information of data members.
00130 
00131  public:
00132   void  SetVerboseLevel(G4int value);
00133   G4int GetVerboseLevel() const;
00134   // controle flag for output message
00135   //  0: Silent
00136   //  1: Warning message
00137   //  2: More
00138 
00139 
00140  private:
00141   G4String theParticleName;
00142   //  The name of the particle.
00143   
00144   G4double thePDGMass;
00145   //  The mass of the particle, in units of equivalent energy.
00146   
00147   G4double thePDGWidth;
00148   //  The decay width of the particle, usually the width of a
00149   //  Breit-Wigner function, assuming that you are near the
00150   //  mass center anyway. (in units of equivalent energy)
00151   
00152   G4double thePDGCharge;
00153   //  The charge of the particle.(in units of Coulomb)
00154   
00155   //   ---- following members are quantum number
00156   //         i.e. discrete numbers can be allowded
00157   //        So, you can defined only by using integer in constructor 
00158 
00159   G4int thePDGiSpin;
00160   //  The total spin of the particle, also often denoted as
00161   //  capital J, in units of 1/2.
00162 
00163   G4int thePDGiParity;
00164   //  The parity quantum number, in units of 1. If the parity
00165   //  is not defined for this particle, we will set this to 0.
00166   
00167   G4int thePDGiConjugation;
00168   //  This charge conjugation quantum number in units of 1.
00169   
00170   G4int thePDGiGParity;
00171   //  The value of the G-parity quantum number.
00172   
00173   G4int thePDGiIsospin;
00174   G4int thePDGiIsospin3;
00175   //  The isospin and its 3rd-component in units of 1/2.
00176   
00177   G4double thePDGMagneticMoment;
00178   //  The magnetic moment.
00179 
00180   G4int theLeptonNumber;
00181   //  The lepton quantum number.
00182   
00183   G4int theBaryonNumber;
00184   //  The baryon quantum number.
00185   
00186   G4int thePDGEncoding;
00187   //  The Particle Data Group integer identifier of this particle
00188   
00189   G4int theAntiPDGEncoding;
00190   //  The Particle Data Group integer identifier of the anti-particle
00191   
00192   G4double thePDGLifeTime;
00193   //  The Particle Life Time
00194   
00195   enum {NumberOfQuarkFlavor = 6};
00196   G4int  theQuarkContent[NumberOfQuarkFlavor];
00197   G4int  theAntiQuarkContent[NumberOfQuarkFlavor];
00198   //  the number of quark (minus Sign means anti-quark) contents
00199 
00200  private:
00201   G4bool fPDGMassModified;
00202   G4bool fPDGWidthModified;
00203   G4bool fPDGChargeModified;
00204   G4bool fPDGiSpinModified;
00205   G4bool fPDGiParityModified;
00206   G4bool fPDGiConjugationModified;
00207   G4bool fPDGiGParityModified;
00208   G4bool fPDGiIsospinModified;
00209   G4bool fPDGiIsospin3Modified;
00210   G4bool fPDGIsospinModified;
00211   G4bool fPDGIsospin3Modified;
00212   G4bool fPDGMagneticMomentModified;
00213   G4bool fLeptonNumberModified;
00214   G4bool fBaryonNumberModified;
00215   G4bool fPDGEncodingModified;
00216   G4bool fAntiPDGEncodingModified;
00217   G4bool fQuarkContentModified;
00218   G4bool fAntiQuarkContentModified;
00219   G4bool fPDGLifeTimeModified;
00220 
00221  private:
00222   G4int verboseLevel;
00223 
00224 };
00225 
00226 #include "G4ParticlePropertyData.icc"
00227 
00228 #endif
00229 
00230 

Generated on Mon May 27 17:49:16 2013 for Geant4 by  doxygen 1.4.7