Geant4 Cross Reference |
1 // 1 2 // ******************************************* 3 // * License and Disclaimer 4 // * 5 // * The Geant4 software is copyright of th 6 // * the Geant4 Collaboration. It is provided 7 // * conditions of the Geant4 Software License 8 // * LICENSE and available at http://cern.ch/ 9 // * include a list of copyright holders. 10 // * 11 // * Neither the authors of this software syst 12 // * institutes,nor the agencies providing fin 13 // * work make any representation or warran 14 // * regarding this software system or assum 15 // * use. Please see the license in the file 16 // * for the full disclaimer and the limitatio 17 // * 18 // * This code implementation is the result 19 // * technical work of the GEANT4 collaboratio 20 // * By using, copying, modifying or distri 21 // * any work based on the software) you ag 22 // * use in resulting scientific publicati 23 // * acceptance of all terms of the Geant4 Sof 24 // ******************************************* 25 // 26 // Split baryon (antibaryon) into quark and di 27 // based on prototype, needs clean up of inter 28 // Numbers verified and errors corrected, HPW 29 30 #include "G4BaryonSplitter.hh" 31 #include "G4ParticleTable.hh" 32 33 G4BaryonSplitter:: 34 G4BaryonSplitter() 35 { 36 theBaryons.insert(new G4SPBaryon(G4Proton::P 37 theBaryons.insert(new G4SPBaryon(G4Neutron:: 38 theBaryons.insert(new G4SPBaryon(G4AntiProto 39 theBaryons.insert(new G4SPBaryon(G4AntiNeutr 40 theBaryons.insert(new G4SPBaryon(G4ParticleT 41 theBaryons.insert(new G4SPBaryon(G4ParticleT 42 theBaryons.insert(new G4SPBaryon(G4ParticleT 43 theBaryons.insert(new G4SPBaryon(G4ParticleT 44 theBaryons.insert(new G4SPBaryon(G4ParticleT 45 theBaryons.insert(new G4SPBaryon(G4ParticleT 46 theBaryons.insert(new G4SPBaryon(G4ParticleT 47 theBaryons.insert(new G4SPBaryon(G4ParticleT 48 theBaryons.insert(new G4SPBaryon(G4Lambda::L 49 theBaryons.insert(new G4SPBaryon(G4AntiLambd 50 theBaryons.insert(new G4SPBaryon(G4SigmaPlus 51 theBaryons.insert(new G4SPBaryon(G4SigmaZero 52 theBaryons.insert(new G4SPBaryon(G4SigmaMinu 53 theBaryons.insert(new G4SPBaryon(G4AntiSigma 54 theBaryons.insert(new G4SPBaryon(G4AntiSigma 55 theBaryons.insert(new G4SPBaryon(G4AntiSigma 56 theBaryons.insert(new G4SPBaryon(G4XiMinus:: 57 theBaryons.insert(new G4SPBaryon(G4XiZero::X 58 theBaryons.insert(new G4SPBaryon(G4AntiXiMin 59 theBaryons.insert(new G4SPBaryon(G4AntiXiZer 60 theBaryons.insert(new G4SPBaryon(G4OmegaMinu 61 theBaryons.insert(new G4SPBaryon(G4AntiOmega 62 theBaryons.insert(new G4SPBaryon(G4LambdacPl 63 theBaryons.insert(new G4SPBaryon(G4AntiLambd 64 theBaryons.insert(new G4SPBaryon(G4SigmacPlu 65 theBaryons.insert(new G4SPBaryon(G4AntiSigma 66 theBaryons.insert(new G4SPBaryon(G4SigmacPlu 67 theBaryons.insert(new G4SPBaryon(G4AntiSigma 68 theBaryons.insert(new G4SPBaryon(G4SigmacZer 69 theBaryons.insert(new G4SPBaryon(G4AntiSigma 70 theBaryons.insert(new G4SPBaryon(G4XicPlus:: 71 theBaryons.insert(new G4SPBaryon(G4AntiXicPl 72 theBaryons.insert(new G4SPBaryon(G4XicZero:: 73 theBaryons.insert(new G4SPBaryon(G4AntiXicZe 74 theBaryons.insert(new G4SPBaryon(G4OmegacZer 75 theBaryons.insert(new G4SPBaryon(G4AntiOmega 76 theBaryons.insert(new G4SPBaryon(G4Lambdab:: 77 theBaryons.insert(new G4SPBaryon(G4AntiLambd 78 theBaryons.insert(new G4SPBaryon(G4SigmabPlu 79 theBaryons.insert(new G4SPBaryon(G4AntiSigma 80 theBaryons.insert(new G4SPBaryon(G4SigmabZer 81 theBaryons.insert(new G4SPBaryon(G4AntiSigma 82 theBaryons.insert(new G4SPBaryon(G4SigmabMin 83 theBaryons.insert(new G4SPBaryon(G4AntiSigma 84 theBaryons.insert(new G4SPBaryon(G4XibZero:: 85 theBaryons.insert(new G4SPBaryon(G4AntiXibZe 86 theBaryons.insert(new G4SPBaryon(G4XibMinus: 87 theBaryons.insert(new G4SPBaryon(G4AntiXibMi 88 theBaryons.insert(new G4SPBaryon(G4OmegabMin 89 theBaryons.insert(new G4SPBaryon(G4AntiOmega 90 } 91 92 G4bool G4BaryonSplitter:: 93 SplitBarion(G4int PDGCode, G4int& q_or_qqbar, 94 { 95 const G4SPBaryon * aBaryon = theBaryons.GetB 96 97 if(aBaryon == nullptr) 98 { 99 return false; 100 } else { 101 aBaryon->SampleQuarkAndDiquark(q_or_qqbar, 102 return true; 103 } 104 } 105 106 107 // Get the splittable baryon for a PDG code. 108 const G4SPBaryon & G4BaryonSplitter:: 109 GetSPBaryon(G4int PDGCode) 110 { 111 return *theBaryons.GetBaryon(G4ParticleTable 112 } 113 114 115 // Find rest diquark in given barion after qua 116 G4bool G4BaryonSplitter::FindDiquark(G4int PDG 117 { 118 const G4SPBaryon * aBaryon = theBaryons.GetB 119 if(aBaryon) 120 { 121 aBaryon->FindDiquark(Quark, Diquark); 122 return true; 123 } 124 return false; 125 } 126 127