Geant4 10.7.0
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 barion (antibarion) into quark and diquark (antidiquark and antiqaurk )
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==NULL)
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
117FindDiquark(G4int PDGCode, G4int Quark, G4int* Diquark)
118{
119 const G4SPBaryon * aBaryon = theBaryons.GetBaryon(G4ParticleTable::GetParticleTable()->FindParticle(PDGCode));
120 if(aBaryon)
121 {
122 aBaryon->FindDiquark(Quark, *Diquark);
123 return true;
124 }
125 return false;
126}
127
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
#define TRUE
Definition: Globals.hh:27
#define FALSE
Definition: Globals.hh:23
static G4AntiLambda * AntiLambda()
static G4AntiLambdab * Definition()
static G4AntiLambdacPlus * Definition()
static G4AntiNeutron * AntiNeutron()
static G4AntiOmegaMinus * AntiOmegaMinus()
static G4AntiOmegabMinus * Definition()
static G4AntiOmegacZero * Definition()
static G4AntiProton * AntiProton()
Definition: G4AntiProton.cc:92
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 SplitBarion(G4int PDGCode, G4int *q_or_qqbar, G4int *qbar_or_qq)
const G4SPBaryon & GetSPBaryon(G4int PDGCode)
G4bool FindDiquark(G4int PDGCode, G4int Quark, G4int *Diquark)
static G4Lambda * Lambda()
Definition: G4Lambda.cc:107
static G4Lambdab * Definition()
Definition: G4Lambdab.cc:52
static G4LambdacPlus * Definition()
static G4Neutron * Neutron()
Definition: G4Neutron.cc:103
static G4OmegaMinus * OmegaMinus()
static G4OmegabMinus * Definition()
static G4OmegacZero * Definition()
Definition: G4OmegacZero.cc:51
static G4ParticleTable * GetParticleTable()
static G4Proton * Proton()
Definition: G4Proton.cc:92
void insert(G4SPBaryon *aBaryon)
const G4SPBaryon * GetBaryon(G4ParticleDefinition *aDefinition)
void FindDiquark(G4int quark, G4int &diQuark) const
Definition: G4SPBaryon.cc:130
void SampleQuarkAndDiquark(G4int &quark, G4int &diQuark) const
Definition: G4SPBaryon.cc:100
static G4SigmaMinus * SigmaMinus()
static G4SigmaPlus * SigmaPlus()
Definition: G4SigmaPlus.cc:107
static G4SigmaZero * SigmaZero()
Definition: G4SigmaZero.cc:101
static G4SigmabMinus * Definition()
static G4SigmabPlus * Definition()
Definition: G4SigmabPlus.cc:52
static G4SigmabZero * Definition()
Definition: G4SigmabZero.cc:52
static G4SigmacPlusPlus * Definition()
static G4SigmacPlus * Definition()
Definition: G4SigmacPlus.cc:51
static G4SigmacZero * Definition()
Definition: G4SigmacZero.cc:51
static G4XiMinus * XiMinus()
Definition: G4XiMinus.cc:105
static G4XiZero * XiZero()
Definition: G4XiZero.cc:105
static G4XibMinus * Definition()
Definition: G4XibMinus.cc:52
static G4XibZero * Definition()
Definition: G4XibZero.cc:52
static G4XicPlus * Definition()
Definition: G4XicPlus.cc:51
static G4XicZero * Definition()
Definition: G4XicZero.cc:51