Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4MuonicAtomHelper.cc
Go to the documentation of this file.
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 //
27 // $Id: G4MuonicAtomHelper.cc 96797 2016-05-09 10:13:42Z gcosmo $
28 //
29 //
30 // --------------------------------------------------------------
31 // GEANT 4 class implementation file
32 //
33 // History: first implementation, 1 July 16 K.Lynch
34 // ---------------------------------------------------------------
35 
36 #include "G4MuonicAtomHelper.hh"
37 
40 
41  // mass calculation is missing binding energy correction
42  //auto const mass = G4MuonMinus::Definition()->GetPDGMass() + baseion->GetPDGMass();
43  auto const mass = 0.1056583715*CLHEP::GeV + baseion->GetPDGMass();
44  // what should static charge be? for G4Ions, it is Z ... should it
45  // be Z-1 here (since there will always be a muon attached), or Z?
46  auto const charge = baseion->GetPDGCharge();
47 
48  auto muatom = new G4MuonicAtom(name, mass, 0.0, charge,
49  baseion->GetPDGiSpin(),
50  baseion->GetPDGiParity(),
51  baseion->GetPDGiConjugation(),
52  baseion->GetPDGiIsospin(),
53  baseion->GetPDGiIsospin3(),
54  baseion->GetPDGiGParity(),
55  baseion->GetParticleType(),
56  baseion->GetLeptonNumber(),
57  baseion->GetBaryonNumber(),
58  encoding,
59  baseion->GetPDGStable(),
60  // TODO: this is wrong ... need to
61  // get correct muonic atom lifetime.
62  // but see next comment
63  baseion->GetPDGLifeTime(),
64  // TODO: this is _definitely_ wrong:
65  // we need to add muonic atom decay
66  // channels ... do we try to support
67  // other modes of decay, or do we
68  // just assume for now that we don't
69  // need to worry about radioactive
70  // decay and the like?
71  baseion->GetDecayTable(),
72  baseion->IsShortLived(),
73  baseion->GetParticleSubType());
74 
75  muatom->SetPDGMagneticMoment(baseion->GetPDGMagneticMoment());
76  return muatom;
77 }
78 
const XML_Char * name
Definition: expat.h:151
static G4MuonicAtom * ConstructMuonicAtom(G4String name, G4int encoding, G4Ions const *baseion)
const XML_Char const XML_Char * encoding
Definition: expat.h:187
G4bool GetPDGStable() const
const G4String & GetParticleSubType() const
int G4int
Definition: G4Types.hh:78
G4DecayTable * GetDecayTable() const
Definition: G4Ions.hh:51
const G4String & GetParticleType() const
G4int GetPDGiConjugation() const
static constexpr double GeV
G4double GetPDGMass() const
G4double GetPDGLifeTime() const
G4double GetPDGMagneticMoment() const
G4double GetPDGCharge() const
void SetPDGMagneticMoment(G4double mageticMoment)