![]() |
|
|||
File indexing completed on 2025-02-23 09:21:12
0001 // 0002 // ******************************************************************** 0003 // * License and Disclaimer * 0004 // * * 0005 // * The Geant4 software is copyright of the Copyright Holders of * 0006 // * the Geant4 Collaboration. It is provided under the terms and * 0007 // * conditions of the Geant4 Software License, included in the file * 0008 // * LICENSE and available at http://cern.ch/geant4/license . These * 0009 // * include a list of copyright holders. * 0010 // * * 0011 // * Neither the authors of this software system, nor their employing * 0012 // * institutes,nor the agencies providing financial support for this * 0013 // * work make any representation or warranty, express or implied, * 0014 // * regarding this software system or assume any liability for its * 0015 // * use. Please see the license in the file LICENSE and URL above * 0016 // * for the full disclaimer and the limitation of liability. * 0017 // * * 0018 // * This code implementation is the result of the scientific and * 0019 // * technical work of the GEANT4 collaboration. * 0020 // * By using, copying, modifying or distributing the software (or * 0021 // * any work based on the software) you agree to acknowledge its * 0022 // * use in resulting scientific publications, and indicate your * 0023 // * acceptance of all terms of the Geant4 Software license. * 0024 // ******************************************************************** 0025 // 0026 /// \file exoticphysics/monopole/src/G4Monopole.cc 0027 /// \brief Implementation of the G4Monopole class 0028 // 0029 // 0030 //--------------------------------------------------------------------------- 0031 // 0032 // ClassName: G4Monopole 0033 // 0034 // Description: 0035 // 0036 // Authors: 21.03.05 V.Ivanchenko 0037 // 0038 // Modified: 0039 // 0040 // 12.07.10 S.Burdin (changed the magnetic and electric charge variables from integer to double) 0041 //---------------------------------------------------------------------------- 0042 // 0043 0044 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 0045 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 0046 0047 #include "G4Monopole.hh" 0048 0049 #include "G4ParticleTable.hh" 0050 #include "G4PhysicalConstants.hh" 0051 #include "G4SystemOfUnits.hh" 0052 0053 // ###################################################################### 0054 // ### Monopole ### 0055 // ###################################################################### 0056 0057 G4Monopole* G4Monopole::theMonopole = 0; 0058 G4double G4Monopole::magCharge = 0.0; 0059 0060 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 0061 0062 G4Monopole::G4Monopole(const G4String& aName, G4double mass, G4double width, G4double charge, 0063 G4int iSpin, G4int iParity, G4int iConjugation, G4int iIsospin, 0064 G4int iIsospin3, G4int gParity, const G4String& pType, G4int lepton, 0065 G4int baryon, G4int encoding, G4bool stable, G4double lifetime, 0066 G4DecayTable* decaytable) 0067 : G4ParticleDefinition(aName, mass, width, charge, iSpin, iParity, iConjugation, iIsospin, 0068 iIsospin3, gParity, pType, lepton, baryon, encoding, stable, lifetime, 0069 decaytable) 0070 {} 0071 0072 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 0073 0074 G4Monopole::~G4Monopole() {} 0075 0076 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 0077 // 0078 // Arguments for constructor are as follows 0079 // name mass width charge 0080 // 2*spin parity C-conjugation 0081 // 2*Isospin 2*Isospin3 G-parity 0082 // type lepton number baryon number PDG encoding 0083 // stable lifetime decay table 0084 // 0085 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 0086 0087 G4Monopole* G4Monopole::MonopoleDefinition(G4double mass, G4double mCharge, G4double eCharge) 0088 { 0089 if (!theMonopole) { 0090 magCharge = eplus * mCharge / fine_structure_const * 0.5; 0091 theMonopole = new G4Monopole("monopole", mass, 0.0 * MeV, eplus * eCharge, 0, 0, 0, 0, 0, 0, 0092 "boson", 0, 0, 0, true, -1.0, 0); 0093 0094 G4cout << "Monopole is created: m(GeV)= " << theMonopole->GetPDGMass() / GeV 0095 << " Qel= " << theMonopole->GetPDGCharge() / eplus << " Qmag= " << magCharge / eplus 0096 << G4endl; 0097 } 0098 return theMonopole; 0099 } 0100 0101 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 0102 0103 G4Monopole* G4Monopole::Monopole() 0104 { 0105 if (!theMonopole) { 0106 theMonopole = MonopoleDefinition(); 0107 } 0108 return theMonopole; 0109 } 0110 0111 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... 0112 0113 G4double G4Monopole::MagneticCharge() const 0114 { 0115 return magCharge; 0116 } 0117 0118 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |