Geant4 Cross Reference |
1 // 1 // 2 // ******************************************* 2 // ******************************************************************** 3 // * License and Disclaimer 3 // * License and Disclaimer * 4 // * 4 // * * 5 // * The Geant4 software is copyright of th 5 // * The Geant4 software is copyright of the Copyright Holders of * 6 // * the Geant4 Collaboration. It is provided 6 // * the Geant4 Collaboration. It is provided under the terms and * 7 // * conditions of the Geant4 Software License 7 // * conditions of the Geant4 Software License, included in the file * 8 // * LICENSE and available at http://cern.ch/ 8 // * LICENSE and available at http://cern.ch/geant4/license . These * 9 // * include a list of copyright holders. 9 // * include a list of copyright holders. * 10 // * 10 // * * 11 // * Neither the authors of this software syst 11 // * Neither the authors of this software system, nor their employing * 12 // * institutes,nor the agencies providing fin 12 // * institutes,nor the agencies providing financial support for this * 13 // * work make any representation or warran 13 // * work make any representation or warranty, express or implied, * 14 // * regarding this software system or assum 14 // * regarding this software system or assume any liability for its * 15 // * use. Please see the license in the file 15 // * use. Please see the license in the file LICENSE and URL above * 16 // * for the full disclaimer and the limitatio 16 // * for the full disclaimer and the limitation of liability. * 17 // * 17 // * * 18 // * This code implementation is the result 18 // * This code implementation is the result of the scientific and * 19 // * technical work of the GEANT4 collaboratio 19 // * technical work of the GEANT4 collaboration. * 20 // * By using, copying, modifying or distri 20 // * By using, copying, modifying or distributing the software (or * 21 // * any work based on the software) you ag 21 // * any work based on the software) you agree to acknowledge its * 22 // * use in resulting scientific publicati 22 // * use in resulting scientific publications, and indicate your * 23 // * acceptance of all terms of the Geant4 Sof 23 // * acceptance of all terms of the Geant4 Software license. * 24 // ******************************************* 24 // ******************************************************************** 25 // 25 // 26 // G4ParticleDefinition << 27 // 26 // 28 // Class description: << 27 // $Id: G4ParticleDefinition.hh,v 1.31 2007/03/11 07:17:35 kurasige Exp $ >> 28 // GEANT4 tag $Name: geant4-09-01 $ 29 // 29 // 30 // This class contains all the static data of << 30 // 31 // It uses the process manager in order to col << 31 // ------------------------------------------------------------ 32 // this kind of particle can undertake. << 32 // GEANT 4 class header file 33 << 33 // 34 // Authors: G.Cosmo, 2 December 1995 - Design, << 34 // History: first implementation, based on object model of 35 // M.Asai, 29 January 1996 - First im << 35 // 2nd December 1995, G.Cosmo 36 // History: << 36 // ---------------- G4ParticleDefinition ---------------- 37 // - 1996-2003, H.Kurashige - Revisions << 37 // first implementation by Makoto Asai, 29 January 1996 38 // - 11.03.2003, H.Kurashige - Restructuring f << 38 // revised by G.Cosmo, 29 February 1996 39 // - 25.01.2013, G.Cosmo, A.Dotti - Introduced << 39 // revised by H.Kurashige, 19 April 1996 40 // - 15.06.2017, K.L.Genser - Added support fo << 40 // revised by H.Kurashige, 4 July 1996 41 // ------------------------------------------- << 41 // added GetEnergyCuts() and GetLengthCuts() by G.Cosmo, 11 July 1996 42 #ifndef G4ParticleDefinition_hh << 42 // added Set/GetVerboseLevel() H.Kurashige 11 Nov. 1997 43 #define G4ParticleDefinition_hh 1 << 43 // added SetCuts() and ResetCuts H.Kurashige 15 Nov.1996 44 << 44 // change SetProcessManager as public H.Kurashige 06 June 1998 45 #include "G4PDefManager.hh" << 45 // added GetEnergyThreshold H.Kurashige 08 June 1998 46 #include "G4ios.hh" << 46 // added ShortLived flag and ApplyCuts flag H.Kurashige 27 June 1998 47 #include "globals.hh" << 47 // fixed some improper codings H.Kurashige 08 Apr. 1999 >> 48 // added sub-type H.Kurashige 15 Feb. 2000 >> 49 // added RestoreCuts H.Kurashige 09 Mar. 2001 >> 50 // restructuring for Cuts per Region by Hisaya 11 MAr.2003 >> 51 // added MagneticMoment Mar. 2007 >> 52 // ------------------------------------------------------------ 48 53 49 #include <CLHEP/Units/PhysicalConstants.h> << 54 #ifndef G4ParticleDefinition_h >> 55 #define G4ParticleDefinition_h 1 50 56 >> 57 #include "globals.hh" >> 58 #include "G4ios.hh" 51 #include <vector> 59 #include <vector> 52 60 53 class G4ProcessManager; 61 class G4ProcessManager; 54 class G4DecayTable; 62 class G4DecayTable; 55 class G4ParticleTable; 63 class G4ParticleTable; 56 class G4ParticlePropertyTable; 64 class G4ParticlePropertyTable; 57 class G4VTrackingManager; << 58 << 59 using G4ParticleDefinitionSubInstanceManager = << 60 65 61 class G4ParticleDefinition << 66 class G4ParticleDefinition 62 { 67 { 63 friend class G4ParticlePropertyTable; << 68 // Class Description 64 << 69 // This class containes all the static data of a particle. 65 public: << 70 // It also has uses a process manager in order to collect 66 // Only one type of constructor can be use << 71 // all the processes this kind of particle can undertake. 67 // If you want to create new particle, you << 72 // 68 // at construction. Most of members seen a << 73 69 // (except last 3 arguments concerning wit << 74 friend class G4ParticlePropertyTable; 70 // and can not be changed later. (No "SET" << 75 71 // Each type of particle must be construct << 76 public: // With Description 72 // of special class derived from G4Particl << 77 // Only one type of constructor can be used for G4ParticleDefinition. 73 // See G4ParticleTypes for detail << 78 // If you want to create new particle, you must set name of the particle 74 // clang-format off << 79 // at construction. Most of members seen as arguments of the constructor 75 G4ParticleDefinition(const G4String& aName << 80 // (except last 3 arguments concerning with decay ) are "constant" 76 G4int iSpin, G4int iP << 81 // and can not be changed later. (No "SET" methods are available) 77 G4int iIsospinZ, G4in << 82 // Each type of particle must be constructed as a unique static object 78 G4int baryon, G4int e << 83 // of special class derived from G4ParticleDefinition. 79 G4DecayTable* decayta << 84 // see G4ParticleTypes for detail 80 const G4String& subTy << 85 81 G4double magneticMome << 86 G4ParticleDefinition(const G4String& aName, 82 // clang-format on << 87 G4double mass, 83 << 88 G4double width, 84 virtual ~G4ParticleDefinition(); << 89 G4double charge, 85 << 90 G4int iSpin, 86 // Can not use "copy constructor", equalit << 91 G4int iParity, 87 G4ParticleDefinition(const G4ParticleDefin << 92 G4int iConjugation, 88 G4ParticleDefinition& operator=(const G4Pa << 93 G4int iIsospin, 89 << 94 G4int iIsospinZ, 90 G4bool operator==(const G4ParticleDefiniti << 95 G4int gParity, 91 G4bool operator!=(const G4ParticleDefiniti << 96 const G4String& pType, 92 << 97 G4int lepton, 93 // With the following Getxxxx methods, one << 98 G4int baryon, 94 // for members which can not be changed << 99 G4int encoding, 95 << 100 G4bool stable, 96 const G4String& GetParticleName() const { << 101 G4double lifetime, 97 << 102 G4DecayTable *decaytable, 98 G4double GetPDGMass() const { return thePD << 103 G4bool shortlived = false, 99 G4double GetPDGWidth() const { return theP << 104 const G4String& subType ="", 100 G4double GetPDGCharge() const { return the << 105 G4int anti_encoding =0, 101 << 106 G4double magneticMoment = 0.0); 102 G4double GetPDGSpin() const { return thePD << 107 103 G4int GetPDGiSpin() const { return thePDGi << 108 virtual ~G4ParticleDefinition(); 104 G4int GetPDGiParity() const { return thePD << 109 105 G4int GetPDGiConjugation() const { return << 110 public: // With Description 106 G4double GetPDGIsospin() const { return th << 111 // By these following Getxxxx methods, you can get values 107 G4double GetPDGIsospin3() const { return t << 112 // for members which can not be changed 108 G4int GetPDGiIsospin() const { return theP << 113 // 109 G4int GetPDGiIsospin3() const { return the << 114 const G4String& GetParticleName() const { return theParticleName; } 110 G4int GetPDGiGParity() const { return theP << 115 111 << 116 G4double GetPDGMass() const { return thePDGMass; } 112 G4double GetPDGMagneticMoment() const { re << 117 G4double GetPDGWidth() const { return thePDGWidth; } 113 inline void SetPDGMagneticMoment(G4double << 118 G4double GetPDGCharge() const { return thePDGCharge; } 114 << 119 115 // Gives the anomaly of magnetic moment fo << 120 G4double GetPDGSpin() const { return thePDGSpin; } 116 G4double CalculateAnomaly() const; << 121 G4int GetPDGiSpin() const { return thePDGiSpin; } 117 << 122 G4int GetPDGiParity() const { return thePDGiParity; } 118 const G4String& GetParticleType() const { << 123 G4int GetPDGiConjugation() const { return thePDGiConjugation; } 119 const G4String& GetParticleSubType() const << 124 G4double GetPDGIsospin() const { return thePDGIsospin; } 120 G4int GetLeptonNumber() const { return the << 125 G4double GetPDGIsospin3() const { return thePDGIsospin3; } 121 G4int GetBaryonNumber() const { return the << 126 G4int GetPDGiIsospin() const { return thePDGiIsospin; } 122 << 127 G4int GetPDGiIsospin3() const { return thePDGiIsospin3; } 123 G4int GetPDGEncoding() const { return theP << 128 G4int GetPDGiGParity() const { return thePDGiGParity; } 124 G4int GetAntiPDGEncoding() const { return << 129 125 inline void SetAntiPDGEncoding(G4int aEnco << 130 G4double GetPDGMagneticMoment() const { return thePDGMagneticMoment; } 126 << 131 void SetPDGMagneticMoment(G4double mageticMoment); 127 // Returns the number of quark with flavor << 132 128 // The value of flavor is assigned as foll << 133 const G4String& GetParticleType() const { return theParticleType; } 129 // 1:d, 2:u, 3:s, 4:c, 5:b, 6:t << 134 const G4String& GetParticleSubType() const { return theParticleSubType; } 130 inline G4int GetQuarkContent(G4int flavor) << 135 G4int GetLeptonNumber() const { return theLeptonNumber; } 131 inline G4int GetAntiQuarkContent(G4int fla << 136 G4int GetBaryonNumber() const { return theBaryonNumber; } 132 << 137 133 G4bool IsShortLived() const { return fShor << 138 G4int GetPDGEncoding() const { return thePDGEncoding; } 134 << 139 G4int GetAntiPDGEncoding() const { return theAntiPDGEncoding; } 135 inline G4bool GetPDGStable() const; << 140 void SetAntiPDGEncoding(G4int aEncoding); 136 void SetPDGStable(const G4bool aFlag) { th << 141 137 << 142 138 inline G4double GetPDGLifeTime() const; << 143 G4int GetQuarkContent(G4int flavor) const; 139 void SetPDGLifeTime(G4double aLifeTime) { << 144 G4int GetAntiQuarkContent(G4int flavor) const; 140 << 145 // return the number of quark with flavor contained in this particle. 141 // Get life time of a generic ion through << 146 // The value of flavor is assigned as follows 142 inline G4double GetIonLifeTime() const; << 147 // 1:d, 2:u, 3:s, 4:c, 5:b, 6:t 143 << 148 144 // Set/Get Decay Table << 149 145 // !! Decay Table can be modified !! << 150 public: // With Description 146 inline G4DecayTable* GetDecayTable() const << 151 // ShortLived flag 147 inline void SetDecayTable(G4DecayTable* aD << 152 G4bool IsShortLived() const { return fShortLivedFlag; } 148 << 153 149 // Set/Get Process Manager << 154 G4bool GetPDGStable() const { return thePDGStable; } 150 // !! Process Manager can be modified !! << 155 void SetPDGStable(const G4bool aFlag) { thePDGStable=aFlag; } 151 G4ProcessManager* GetProcessManager() cons << 156 152 void SetProcessManager(G4ProcessManager* a << 157 G4double GetPDGLifeTime() const { return thePDGLifeTime; } 153 << 158 void SetPDGLifeTime(G4double aLifeTime) { thePDGLifeTime = aLifeTime; } 154 // Set/Get Tracking Manager; nullptr means << 159 155 // !! Tracking Manager can be modified ! << 160 public:// With Description 156 G4VTrackingManager* GetTrackingManager() c << 161 G4DecayTable* GetDecayTable(); 157 void SetTrackingManager(G4VTrackingManager << 162 void SetDecayTable(G4DecayTable* aDecayTable); 158 << 163 // Set/Get Decay Table 159 // Get pointer to the particle table << 164 // !! Decay Table can be modified !! 160 inline G4ParticleTable* GetParticleTable() << 165 161 << 166 public: // With Description 162 // Get AtomicNumber and AtomicMass << 167 G4ProcessManager* GetProcessManager() const; 163 // These properties are defined for nucleu << 168 void SetProcessManager(G4ProcessManager* aProcessManager); 164 inline G4int GetAtomicNumber() const; << 169 // Set/Get Process Manager 165 inline G4int GetAtomicMass() const; << 170 // !! Process Manager can be modified !! 166 << 167 // Prints information of data members. << 168 void DumpTable() const; << 169 << 170 // Control flag for output message << 171 // 0: Silent << 172 // 1: Warning message << 173 // 2: More << 174 inline void SetVerboseLevel(G4int value); << 175 inline G4int GetVerboseLevel() const; << 176 << 177 void SetApplyCutsFlag(G4bool); << 178 inline G4bool GetApplyCutsFlag() const; << 179 << 180 // True only if the particle is G4Ions << 181 // (it means that theProcessManager is sam << 182 inline G4bool IsGeneralIon() const; << 183 << 184 // True only if the particle is a G4Muonic << 185 // (it means that theProcessManager is sam << 186 inline G4bool IsMuonicAtom() const; << 187 << 188 // Returns the process manager master poin << 189 inline G4ProcessManager* GetMasterProcessM << 190 << 191 // Sets the shadow master pointer (not to << 192 inline void SetMasterProcessManager(G4Proc << 193 << 194 // Returns the instance ID << 195 inline G4int GetInstanceID() const; << 196 << 197 // Returns the private data instance manag << 198 static const G4PDefManager& GetSubInstance << 199 << 200 // Clear memory allocated by sub-instance << 201 static void Clean(); << 202 << 203 void SetParticleDefinitionID(G4int id = -1 << 204 inline G4int GetParticleDefinitionID() con << 205 << 206 // The first two methods return "false" an << 207 // if the particle is not an hypernucleus; << 208 // "true" and the number of Lambdas bound << 209 // Similarly, the last two methods return << 210 // respectively, if the particle is not an << 211 // else, they return "true" and the number << 212 // bound in the anti-nucleus. << 213 // Notice that, for the time being, we are << 214 // (anti-)Lambda is the only type of (anti << 215 // in all (anti-)hypernuclei. << 216 inline G4bool IsHypernucleus() const; << 217 inline G4int GetNumberOfLambdasInHypernucl << 218 inline G4bool IsAntiHypernucleus() const; << 219 inline G4int GetNumberOfAntiLambdasInAntiH << 220 << 221 protected: << 222 // Cannot be used << 223 G4ParticleDefinition(); << 224 << 225 // Calculates quark and anti-quark content << 226 // return value is the PDG encoding for th << 227 // It means error if the return value is d << 228 // this->thePDGEncoding. << 229 G4int FillQuarkContents(); << 230 << 231 inline void SetParticleSubType(const G4Str << 232 << 233 inline void SetAtomicNumber(G4int); << 234 inline void SetAtomicMass(G4int); << 235 << 236 enum << 237 { << 238 NumberOfQuarkFlavor = 6 << 239 }; << 240 << 241 // the number of quark (minus Sign means << 242 // The value of flavor is assigned as fol << 243 // 0:d, 1:u, 2:s, 3:c, 4:b, 5:t << 244 G4int theQuarkContent[NumberOfQuarkFlavor] << 245 G4int theAntiQuarkContent[NumberOfQuarkFla << 246 << 247 G4bool isGeneralIon = false; << 248 G4bool isMuonicAtom = false; << 249 << 250 private: << 251 // --- Shadow of master pointers << 252 << 253 // Each worker thread can access this fiel << 254 // through this pointer. << 255 G4ProcessManager* theProcessManagerShadow << 256 << 257 // This field is used as instance ID. << 258 G4int g4particleDefinitionInstanceID = 0; << 259 << 260 // This field helps to use the class G4PDe << 261 G4PART_DLL static G4PDefManager subInstanc << 262 << 263 // --- Following values can not be change << 264 // --- i.e. No Setxxxx Methods for them << 265 << 266 // The name of the particle. << 267 // Each object must have its specific name << 268 G4String theParticleName = ""; << 269 171 270 // --- Following member values must be de << 172 G4ParticleTable* GetParticleTable(); >> 173 // get pointer to the particle table 271 174 272 // The mass of the particle, in units of e << 175 void DumpTable() const; 273 G4double thePDGMass = 0.0; << 176 // Prints information of data members. 274 177 275 // The decay width of the particle, usuall << 178 protected: 276 // Breit-Wigner function, assuming that yo << 179 G4int FillQuarkContents(); 277 // mass center anyway. (in units of equiva << 180 // calculate quark and anti-quark contents 278 G4double thePDGWidth = 0.0; << 181 // return value is PDG encoding for this particle. 279 << 182 // It means error if the return value is deffernt from 280 // The charge of the particle.(in units of << 183 // this->thePDGEncoding. 281 G4double thePDGCharge = 0.0; << 184 282 << 185 void SetParticleSubType(const G4String& subtype); 283 // --- Following members are quantum num << 186 284 // i.e. discrete numbers can be allo << 187 public: // With Description 285 // So, you can define them only by u << 188 // Get AtomicNumber and AtomicMass 286 << 189 // These properties are defined for nucleus 287 // The total spin of the particle, also of << 190 G4int GetAtomicNumber() const; 288 // capital J, in units of 1/2. << 191 G4int GetAtomicMass() const; 289 G4int thePDGiSpin = 0; << 290 << 291 // The total spin of the particle, in unit << 292 G4double thePDGSpin = 0.0; << 293 << 294 // The parity quantum number, in units of << 295 // is not defined for this particle, we wi << 296 G4int thePDGiParity = 0; << 297 << 298 // This charge conjugation quantum number << 299 G4int thePDGiConjugation = 0; << 300 << 301 // The value of the G-parity quantum numbe << 302 G4int thePDGiGParity = 0; << 303 << 304 // The isospin and its 3rd-component in un << 305 G4int thePDGiIsospin = 0; << 306 G4int thePDGiIsospin3 = 0; << 307 << 308 // The isospin quantum number in units of << 309 G4double thePDGIsospin = 0.0; << 310 G4double thePDGIsospin3 = 0.0; << 311 << 312 // The magnetic moment. << 313 G4double thePDGMagneticMoment = 0.0; << 314 192 315 // The lepton quantum number. << 193 protected: 316 G4int theLeptonNumber = 0; << 194 void SetAtomicNumber(G4int ); >> 195 void SetAtomicMass(G4int ); 317 196 318 // The baryon quantum number. << 197 public: 319 G4int theBaryonNumber = 0; << 198 void SetVerboseLevel(G4int value); >> 199 G4int GetVerboseLevel() const; >> 200 // controle flag for output message >> 201 // 0: Silent >> 202 // 1: Warning message >> 203 // 2: More 320 204 321 // More general textual type description o << 205 protected: 322 G4String theParticleType = ""; << 206 // !!! can not use "copy constructor" nor "default constructor" !!!! >> 207 G4ParticleDefinition(const G4ParticleDefinition &right); >> 208 G4ParticleDefinition(); >> 209 >> 210 private: >> 211 // !!! Assignment operation is forbidden !!! >> 212 const G4ParticleDefinition & operator=(const G4ParticleDefinition &right); 323 213 324 // Textual type description of the particl << 214 public: 325 // eg. pion, lamda etc. << 215 G4int operator==(const G4ParticleDefinition &right) const; 326 G4String theParticleSubType = ""; << 216 G4int operator!=(const G4ParticleDefinition &right) const; 327 217 328 // The Particle Data Group integer identif << 218 private: 329 G4int thePDGEncoding = 0; << 219 // Values following can not be changed >> 220 // i.e. No Setxxxx Methods for them 330 221 331 // The Particle Data Group integer identif << 222 G4String theParticleName; 332 G4int theAntiPDGEncoding = 0; << 223 // The name of the particle. >> 224 // Each object must have its specific name!! >> 225 >> 226 // --- following member values must be defined with Units >> 227 G4double thePDGMass; >> 228 // The mass of the particle, in units of equivalent energy. >> 229 >> 230 G4double thePDGWidth; >> 231 // The decay width of the particle, usually the width of a >> 232 // Breit-Wigner function, assuming that you are near the >> 233 // mass center anyway. (in units of equivalent energy) >> 234 >> 235 G4double thePDGCharge; >> 236 // The charge of the particle.(in units of Coulomb) >> 237 >> 238 // ---- following members are quantum number >> 239 // i.e. discrete numbers can be allowded >> 240 // So, you can defined only by using integer in constructor >> 241 G4int thePDGiSpin; >> 242 // The total spin of the particle, also often denoted as >> 243 // capital J, in units of 1/2. >> 244 G4double thePDGSpin; >> 245 // The total spin of the particle, in units of 1. >> 246 >> 247 G4int thePDGiParity; >> 248 // The parity quantum number, in units of 1. If the parity >> 249 // is not defined for this particle, we will set this to 0. >> 250 >> 251 G4int thePDGiConjugation; >> 252 // This charge conjugation quantum number in units of 1. >> 253 >> 254 G4int thePDGiGParity; >> 255 // The value of the G-parity quantum number. >> 256 >> 257 G4int thePDGiIsospin; >> 258 G4int thePDGiIsospin3; >> 259 // The isospin and its 3rd-component in units of 1/2. >> 260 G4double thePDGIsospin; >> 261 G4double thePDGIsospin3; >> 262 // The isospin quantum number in units of 1. >> 263 >> 264 G4double thePDGMagneticMoment; >> 265 // The magnetic moment. >> 266 >> 267 G4int theLeptonNumber; >> 268 // The lepton quantum number. >> 269 >> 270 G4int theBaryonNumber; >> 271 // The baryon quantum number. >> 272 >> 273 G4String theParticleType; >> 274 // More general textual type description of the particle. >> 275 >> 276 G4String theParticleSubType; >> 277 // Textual type description of the particle >> 278 // eg. pion, lamda etc. >> 279 >> 280 G4int thePDGEncoding; >> 281 // The Particle Data Group integer identifier of this particle >> 282 >> 283 G4int theAntiPDGEncoding; >> 284 // The Particle Data Group integer identifier of the anti-particle 333 285 334 // --- Following members can be changed af << 286 protected: >> 287 enum {NumberOfQuarkFlavor = 6}; >> 288 G4int theQuarkContent[NumberOfQuarkFlavor]; >> 289 G4int theAntiQuarkContent[NumberOfQuarkFlavor]; >> 290 // the number of quark (minus Sign means anti-quark) contents >> 291 // The value of flavor is assigned as follows >> 292 // 0:d, 1:u, 2:s, 3:c, 4:b, 5:t 335 293 336 // Particles which have true value of this << 294 private: 337 // will not be tracked by TrackingManager << 295 // Following members can be changed after construction 338 G4bool fShortLivedFlag = false; << 339 296 340 // Is an indicator that this particle is s << 297 G4bool fShortLivedFlag; 341 // not decay. If the user tries to assign << 298 // Particles which have true value of this flag 342 // object to it, it will refuse to take it << 299 // will not be tracked by TrackingManager 343 G4bool thePDGStable = false; << 300 >> 301 G4bool thePDGStable; >> 302 // Is an indicator that this particle is stable. It must >> 303 // not decay. If the user tries to assign a kind of decay >> 304 // object to it, it will refuse to take it. >> 305 >> 306 G4double thePDGLifeTime; >> 307 // Is related to the decay width of the particle. The mean >> 308 // life time is given in seconds. >> 309 >> 310 class G4DecayTable *theDecayTable; >> 311 // Points DecayTable >> 312 >> 313 private: >> 314 class G4ProcessManager *theProcessManager; >> 315 // Points to G4ProcessManager 344 316 345 // Is related to the decay width of the pa << 317 G4ParticleTable* theParticleTable; 346 // life time is given in seconds. << 347 G4double thePDGLifeTime = 0.0; << 348 318 349 // Points DecayTable << 319 private: 350 G4DecayTable* theDecayTable = nullptr; << 320 G4int theAtomicNumber; >> 321 G4int theAtomicMass; >> 322 >> 323 private: >> 324 G4int verboseLevel; 351 325 352 G4ParticleTable* theParticleTable = nullpt << 326 private: >> 327 G4bool fApplyCutsFlag; >> 328 public: 353 329 354 G4int theAtomicNumber = 0; << 330 void SetApplyCutsFlag(G4bool); 355 G4int theAtomicMass = 0; << 331 G4bool GetApplyCutsFlag() const; 356 332 357 G4int verboseLevel = 1; << 358 G4bool fApplyCutsFlag = false; << 359 }; 333 }; 360 334 361 #include "G4ParticleDefinition.icc" 335 #include "G4ParticleDefinition.icc" 362 336 363 #endif 337 #endif 364 338