44              std::vector<double> scalarMesonMix,
 
   45              std::vector<double> vectorMesonMix)
 
   47     mesonSpinMix=mesonMix;       
 
   48     barionSpinMix=barionMix;
 
   49     scalarMesonMixings=scalarMesonMix;
 
   50     vectorMesonMixings=vectorMesonMix;
 
   59        Spin spin = (
G4UniformRand() < barionSpinMix) ? SpinHalf : SpinThreeHalf;
 
   60        return Barion(black,white,spin);
 
   65        Spin spin = (
G4UniformRand() < mesonSpinMix) ? SpinZero : SpinOne;
 
   66        return Meson(black,white,spin);
 
   76         return Meson(black,white, SpinZero);
 
   79         return Barion(black,white, SpinHalf); 
 
   88         return Meson(black,white, SpinOne);
 
   90         return Barion(black,white,SpinThreeHalf);
 
  102         if (std::abs(charge) > 2 || std::abs(3.*charge - 3*
G4int(charge*1.001)) > 
perCent )   
 
  105         G4cerr << 
"    Invalid total charge found for on input: "  
  107         G4cerr << 
"    PGDcode input quark1/quark2 : " <<
 
  117     if ( std::abs(id1) < std::abs(id2) )
 
  124     if (std::abs(id1) > 3 ) 
 
  125       throw G4HadronicException(__FILE__, __LINE__, 
"G4HadronBuilder::Meson : Illegal Quark content as input");
 
  129     if (id1 + id2 == 0) {     
 
  131        G4int    imix = 2*std::abs(id1) - 1;
 
  132        if(theSpin == SpinZero) {
 
  133           PDGEncoding = 110*(1 + (
G4int)(rmix + scalarMesonMixings[imix - 1])
 
  134                                + (
G4int)(rmix + scalarMesonMixings[imix])
 
  137           PDGEncoding = 110*(1 + (
G4int)(rmix + vectorMesonMixings[imix - 1])
 
  138                    + (
G4int)(rmix + vectorMesonMixings[imix])
 
  142        PDGEncoding = 100 * std::abs(id1) + 10 * std::abs(id2) +  theSpin;  
 
  143        G4bool IsUp = (std::abs(id1)&1) == 0;    
 
  145        if( (IsUp && IsAnti ) || (!IsUp && !IsAnti ) ) 
 
  146           PDGEncoding = - PDGEncoding;
 
  153     if (MesonDef == 0 ) {
 
  154         G4cerr << 
" G4HadronBuilder - Warning: No particle for PDGcode= " 
  158             G4cerr << 
" G4HadronBuilder - Warning: Incorrect Charge : " 
  178         if (std::abs(charge) > 2 || std::abs(3.*charge - 3*
G4int(charge*1.001)) > 
perCent )
 
  181         G4cerr << 
"    Invalid total charge found for on input: " << charge<< 
G4endl;
 
  182         G4cerr << 
"    PGDcode input quark1/quark2 : " <<
 
  191     if ( std::abs(id1) < std::abs(id2) )
 
  198     if (std::abs(id1) < 1000 || std::abs(id2) > 3 ) 
 
  199        throw G4HadronicException(__FILE__, __LINE__, 
"G4HadronBuilder::Barion: Illegal quark content as input");   
 
  201     G4int ifl1= std::abs(id1)/1000;
 
  202     G4int ifl2 = (std::abs(id1) - ifl1 * 1000)/100;
 
  203     G4int diquarkSpin = std::abs(id1)%10; 
 
  211     G4int kfla = std::abs(ifl1);
 
  212     G4int kflb = std::abs(ifl2);
 
  213     G4int kflc = std::abs(ifl3);
 
  220     G4int kfle = kfla + kflb + kflc - kfld - kflf;
 
  223     theSpin = (kfla == kflb && kflb == kflc)? SpinThreeHalf : theSpin;   
 
  226     if(theSpin == SpinHalf && kfld > kfle && kfle > kflf) { 
 
  231        if(diquarkSpin == 1 ) {
 
  238        if(diquarkSpin == 3 && kfla != kfld)
 
  243     if (kfll == 1) PDGEncoding = 1000 * kfld + 100 * kflf + 10 * kfle + theSpin;
 
  244     else           PDGEncoding = 1000 * kfld + 100 * kfle + 10 * kflf + theSpin;
 
  246     if (id1 < 0)   PDGEncoding = -PDGEncoding;
 
  252     if (BarionDef == 0 ) {
 
  253         G4cerr << 
" G4HadronBuilder - Warning: No particle for PDGcode= " 
  257             G4cerr << 
" G4HadronBuilder - Warning: Incorrect Charge : " 
  258                << 
" DiQuark/Quark = "  
G4ParticleDefinition * BuildHighSpin(G4ParticleDefinition *black, G4ParticleDefinition *white)
 
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
 
G4ParticleDefinition * BuildLowSpin(G4ParticleDefinition *black, G4ParticleDefinition *white)
 
G4HadronBuilder(G4double mesonMix, G4double barionMix, std::vector< double > scalarMesonMix, std::vector< double > vectorMesonMix)
 
static constexpr double perCent
 
G4ParticleDefinition * Build(G4ParticleDefinition *black, G4ParticleDefinition *white)
 
G4int GetPDGEncoding() const 
 
const G4String & GetParticleSubType() const 
 
const G4String & GetParticleName() const 
 
static G4ParticleTable * GetParticleTable()
 
T max(const T t1, const T t2)
brief Return the largest of the two arguments 
 
T min(const T t1, const T t2)
brief Return the smallest of the two arguments 
 
G4double GetPDGCharge() const 
 
G4GLOB_DLL std::ostream G4cerr