Geant4 Cross Reference |
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 #ifndef G4SPBaryon_h 27 #define G4SPBaryon_h 28 29 #include "globals.hh" 30 31 #include "G4Proton.hh" 32 #include "G4Neutron.hh" 33 #include "G4SigmaPlus.hh" 34 #include "G4SigmaZero.hh" 35 #include "G4SigmaMinus.hh" 36 #include "G4XiMinus.hh" 37 #include "G4XiZero.hh" 38 #include "G4Lambda.hh" 39 #include "G4OmegaMinus.hh" 40 41 #include "G4AntiProton.hh" 42 #include "G4AntiNeutron.hh" 43 #include "G4AntiSigmaPlus.hh" 44 #include "G4AntiSigmaZero.hh" 45 #include "G4AntiSigmaMinus.hh" 46 #include "G4AntiXiMinus.hh" 47 #include "G4AntiXiZero.hh" 48 #include "G4AntiLambda.hh" 49 #include "G4AntiOmegaMinus.hh" 50 51 #include "G4LambdacPlus.hh" 52 #include "G4AntiLambdacPlus.hh" 53 #include "G4SigmacPlusPlus.hh" 54 #include "G4AntiSigmacPlusPlus.hh" 55 #include "G4SigmacPlus.hh" 56 #include "G4AntiSigmacPlus.hh" 57 #include "G4SigmacZero.hh" 58 #include "G4AntiSigmacZero.hh" 59 #include "G4XicPlus.hh" 60 #include "G4AntiXicPlus.hh" 61 #include "G4XicZero.hh" 62 #include "G4AntiXicZero.hh" 63 #include "G4OmegacZero.hh" 64 #include "G4AntiOmegacZero.hh" 65 #include "G4Lambdab.hh" 66 #include "G4AntiLambdab.hh" 67 #include "G4SigmabPlus.hh" 68 #include "G4AntiSigmabPlus.hh" 69 #include "G4SigmabZero.hh" 70 #include "G4AntiSigmabZero.hh" 71 #include "G4SigmabMinus.hh" 72 #include "G4AntiSigmabMinus.hh" 73 #include "G4XibZero.hh" 74 #include "G4AntiXibZero.hh" 75 #include "G4XibMinus.hh" 76 #include "G4AntiXibMinus.hh" 77 #include "G4OmegabMinus.hh" 78 #include "G4AntiOmegabMinus.hh" 79 80 #include "G4ParticleDefinition.hh" 81 #include "G4SPPartonInfo.hh" 82 #include <vector> 83 #include "globals.hh" 84 85 class G4SPBaryon 86 { 87 public: 88 G4SPBaryon(G4Proton * aProton); 89 G4SPBaryon(G4Neutron * aNeutron); 90 G4SPBaryon(G4Lambda * aLambda); 91 G4SPBaryon(G4SigmaPlus * aSigmaPlus); 92 G4SPBaryon(G4SigmaZero * aSigmaZero); 93 G4SPBaryon(G4SigmaMinus * aSigmaMinus); 94 G4SPBaryon(G4XiMinus * aXiMinus); 95 G4SPBaryon(G4XiZero * aXiZero); 96 G4SPBaryon(G4OmegaMinus * anOmegaMinus); 97 98 G4SPBaryon(G4AntiProton * aAntiProton); 99 G4SPBaryon(G4AntiNeutron * aAntiNeutron); 100 G4SPBaryon(G4AntiLambda * aAntiLambda); 101 G4SPBaryon(G4AntiSigmaPlus * aAntiSigmaPlus); 102 G4SPBaryon(G4AntiSigmaZero * aAntiSigmaZero); 103 G4SPBaryon(G4AntiSigmaMinus * aAntiSigmaMinus); 104 G4SPBaryon(G4AntiXiMinus * aAntiXiMinus); 105 G4SPBaryon(G4AntiXiZero * aAntiXiZero); 106 G4SPBaryon(G4AntiOmegaMinus * anAntiOmegaMinus); 107 108 G4SPBaryon(G4ParticleDefinition * aDefinition); 109 110 ~G4SPBaryon(); 111 112 // Extension to charmed and bottom baryons and anti-baryons 113 G4SPBaryon(G4LambdacPlus * aLambdacPlus); 114 G4SPBaryon(G4AntiLambdacPlus * aAntiLambdacPlus); 115 G4SPBaryon(G4SigmacPlusPlus * aSigmacPlusPlus); 116 G4SPBaryon(G4AntiSigmacPlusPlus * aAntiSigmacPlusPlus); 117 G4SPBaryon(G4SigmacPlus * aSigmacPlus); 118 G4SPBaryon(G4AntiSigmacPlus * aAntiSigmacPlus); 119 G4SPBaryon(G4SigmacZero * aSigmacZero); 120 G4SPBaryon(G4AntiSigmacZero * aAntiSigmacZero); 121 G4SPBaryon(G4XicPlus * aXicPlus); 122 G4SPBaryon(G4AntiXicPlus * aAntiXicPlus); 123 G4SPBaryon(G4XicZero * aXicZero); 124 G4SPBaryon(G4AntiXicZero * aAntiXicZero); 125 G4SPBaryon(G4OmegacZero * aOmegacZero); 126 G4SPBaryon(G4AntiOmegacZero * aAntiOmegacZero); 127 G4SPBaryon(G4Lambdab * aLambdab); 128 G4SPBaryon(G4AntiLambdab * aAntiLambdab); 129 G4SPBaryon(G4SigmabPlus * aSigmabPlus); 130 G4SPBaryon(G4AntiSigmabPlus * aAntiSigmabPlus); 131 G4SPBaryon(G4SigmabZero * aSigmabZero); 132 G4SPBaryon(G4AntiSigmabZero * aAntiSigmabZero); 133 G4SPBaryon(G4SigmabMinus * aSigmabMinus); 134 G4SPBaryon(G4AntiSigmabMinus * aAntiSigmabMinus); 135 G4SPBaryon(G4XibZero * aXibZero); 136 G4SPBaryon(G4AntiXibZero * aAntiXibZero); 137 G4SPBaryon(G4XibMinus * aXibMinus); 138 G4SPBaryon(G4AntiXibMinus * aAntiXibMinus); 139 G4SPBaryon(G4OmegabMinus * aOmegabMinus); 140 G4SPBaryon(G4AntiOmegabMinus * aAntiOmegabMinus); 141 142 private: 143 G4bool operator == ( const G4SPBaryon & aBaryon) const; 144 145 public: 146 G4ParticleDefinition * GetDefinition() {return theDefinition;} 147 void SampleQuarkAndDiquark(G4int & quark, G4int & diQuark) const; 148 void FindDiquark(G4int quark, G4int & diQuark) const; 149 G4int FindQuark(G4int diQuark) const; 150 G4double GetProbability(G4int diQuark) const; 151 G4int MatchDiQuarkAndGetQuark(const G4SPBaryon & aBaryon, G4int & aDiQuark) const; 152 153 private: 154 G4ParticleDefinition * theDefinition; 155 std::vector<G4SPPartonInfo *> thePartonInfo; 156 }; 157 158 #endif 159 160