Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4BaryonSplitter.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// Split baryon (antibaryon) into quark and diquark (antidiquark and antiquark)
27// based on prototype, needs clean up of interfaces HPW Feb 1999
28// Numbers verified and errors corrected, HPW Dec 1999
29
30#include "G4BaryonSplitter.hh"
31#include "G4ParticleTable.hh"
32
35{
36 theBaryons.insert(new G4SPBaryon(G4Proton::Proton()));
37 theBaryons.insert(new G4SPBaryon(G4Neutron::Neutron()));
40 theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(2224))); // Delta++
41 theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(2214))); // Delta+
42 theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(2114))); // Delta0
43 theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(1114))); // Delta-
44 theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-2224))); // anti Delta++
45 theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-2214))); // anti Delta+
46 theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-2114))); // anti Delta0
47 theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-1114))); // anti Delta-
48 theBaryons.insert(new G4SPBaryon(G4Lambda::Lambda()));
50 theBaryons.insert(new G4SPBaryon(G4SigmaPlus::SigmaPlus()));
51 theBaryons.insert(new G4SPBaryon(G4SigmaZero::SigmaZero()));
56 theBaryons.insert(new G4SPBaryon(G4XiMinus::XiMinus()));
57 theBaryons.insert(new G4SPBaryon(G4XiZero::XiZero()));
70 theBaryons.insert(new G4SPBaryon(G4XicPlus::Definition()));
72 theBaryons.insert(new G4SPBaryon(G4XicZero::Definition()));
76 theBaryons.insert(new G4SPBaryon(G4Lambdab::Definition()));
84 theBaryons.insert(new G4SPBaryon(G4XibZero::Definition()));
86 theBaryons.insert(new G4SPBaryon(G4XibMinus::Definition()));
90}
91
93SplitBarion(G4int PDGCode, G4int& q_or_qqbar, G4int& qbar_or_qq)
94{
95 const G4SPBaryon * aBaryon = theBaryons.GetBaryon(G4ParticleTable::GetParticleTable()->FindParticle(PDGCode));
96
97 if(aBaryon == nullptr)
98 {
99 return false;
100 } else {
101 aBaryon->SampleQuarkAndDiquark(q_or_qqbar, qbar_or_qq);
102 return true;
103 }
104}
105
106
107// Get the splittable baryon for a PDG code.
109GetSPBaryon(G4int PDGCode)
110{
111 return *theBaryons.GetBaryon(G4ParticleTable::GetParticleTable()->FindParticle(PDGCode));
112}
113
114
115// Find rest diquark in given barion after quark - antiquark annihilation
117{
118 const G4SPBaryon * aBaryon = theBaryons.GetBaryon(G4ParticleTable::GetParticleTable()->FindParticle(PDGCode));
119 if(aBaryon)
120 {
121 aBaryon->FindDiquark(Quark, Diquark);
122 return true;
123 }
124 return false;
125}
126
bool G4bool
Definition G4Types.hh:86
int G4int
Definition G4Types.hh:85
static G4AntiLambda * AntiLambda()
static G4AntiLambdab * Definition()
static G4AntiLambdacPlus * Definition()
static G4AntiNeutron * AntiNeutron()
static G4AntiOmegaMinus * AntiOmegaMinus()
static G4AntiOmegabMinus * Definition()
static G4AntiOmegacZero * Definition()
static G4AntiProton * AntiProton()
static G4AntiSigmaMinus * AntiSigmaMinus()
static G4AntiSigmaPlus * AntiSigmaPlus()
static G4AntiSigmaZero * AntiSigmaZero()
static G4AntiSigmabMinus * Definition()
static G4AntiSigmabPlus * Definition()
static G4AntiSigmabZero * Definition()
static G4AntiSigmacPlusPlus * Definition()
static G4AntiSigmacPlus * Definition()
static G4AntiSigmacZero * Definition()
static G4AntiXiMinus * AntiXiMinus()
static G4AntiXiZero * AntiXiZero()
static G4AntiXibMinus * Definition()
static G4AntiXibZero * Definition()
static G4AntiXicPlus * Definition()
static G4AntiXicZero * Definition()
G4bool FindDiquark(G4int PDGCode, G4int Quark, G4int &Diquark)
const G4SPBaryon & GetSPBaryon(G4int PDGCode)
G4bool SplitBarion(G4int PDGCode, G4int &q_or_qqbar, G4int &qbar_or_qq)
static G4Lambda * Lambda()
Definition G4Lambda.cc:105
static G4Lambdab * Definition()
Definition G4Lambdab.cc:44
static G4LambdacPlus * Definition()
static G4Neutron * Neutron()
Definition G4Neutron.cc:101
static G4OmegaMinus * OmegaMinus()
static G4OmegabMinus * Definition()
static G4OmegacZero * Definition()
static G4ParticleTable * GetParticleTable()
static G4Proton * Proton()
Definition G4Proton.cc:90
void insert(G4SPBaryon *aBaryon)
const G4SPBaryon * GetBaryon(G4ParticleDefinition *aDefinition)
void FindDiquark(G4int quark, G4int &diQuark) const
void SampleQuarkAndDiquark(G4int &quark, G4int &diQuark) const
static G4SigmaMinus * SigmaMinus()
static G4SigmaPlus * SigmaPlus()
static G4SigmaZero * SigmaZero()
static G4SigmabMinus * Definition()
static G4SigmabPlus * Definition()
static G4SigmabZero * Definition()
static G4SigmacPlusPlus * Definition()
static G4SigmacPlus * Definition()
static G4SigmacZero * Definition()
static G4XiMinus * XiMinus()
Definition G4XiMinus.cc:103
static G4XiZero * XiZero()
Definition G4XiZero.cc:103
static G4XibMinus * Definition()
Definition G4XibMinus.cc:44
static G4XibZero * Definition()
Definition G4XibZero.cc:44
static G4XicPlus * Definition()
Definition G4XicPlus.cc:44
static G4XicZero * Definition()
Definition G4XicZero.cc:44