46 arho(0.5), aphi(0.), 
an(-0.5), ala(-0.75), aksi(-1.), alft(0.5)
 
   63     if ( LeftVector != 0 ) 
return LeftVector;
 
   72     G4bool success=
false, inner_sucess=
true;
 
   84         while (! StopFragmenting(currentString) )
 
   88             if ( Hadron != 0 && IsFragmentable(newString)) 
 
   91                    LeftVector->push_back(Hadron);
 
   93                    RightVector->push_back(Hadron);
 
   95                currentString=newString;
 
   98                if (newString) 
delete newString;          
 
   99                if (Hadron)    
delete Hadron;
 
  106              SplitLast(currentString,LeftVector, RightVector) ) 
 
  110         delete currentString;
 
  113     delete theStringInCMS;
 
  125     while(!RightVector->empty())
 
  127         LeftVector->push_back(RightVector->back());
 
  128         RightVector->erase(RightVector->end()-1);
 
  136     for(
size_t C1 = 0; 
C1 < LeftVector->size(); 
C1++)
 
  140        Momentum = toObserverFrame*Momentum;
 
  143        Momentum = toObserverFrame*Coordinate;
 
  160   G4int absCode = std::abs( PartonEncoding );
 
  163     if(absCode == 1 || absCode == 2) theA = arho;
 
  164     else if(absCode == 3) theA = aphi;
 
  165     else throw G4HadronicException(__FILE__, __LINE__, 
"Unknown PDGencoding in G4QGSMFragmentation::G4LightConeZ");
 
  172       yf = std::pow(d1, d2);
 
  178     if(absCode == 1103 || absCode == 2101 || 
 
  179        absCode == 2203 || absCode == 2103)
 
  181       d2 =  (alft - (2.*an - arho));
 
  183     else if(absCode == 3101 || absCode == 3103 ||
 
  184             absCode == 3201 || absCode == 3203)
 
  186       d2 =  (alft - (2.*ala - arho));
 
  190       d2 =  (alft - (2.*aksi - arho));
 
  197       yf = std::pow(d1, d2);
 
  225        G4double zMin = HadronMass2T/(
string->Mass2());
 
  226        G4double zMax = 1. - DecayQuarkMass2/(
string->Mass2());
 
  227        if (zMin >= zMax) 
return 0;      
 
  229        G4double z = GetLightConeZ(zMin, zMax,
 
  231                HadronPt.
x(), HadronPt.
y());      
 
  237             (z * 
string->LightConeDecay() - 
 
  238              HadronMass2T/(z * 
string->LightConeDecay())));
 
  239         G4double HadronE  = 0.5* (z * 
string->LightConeDecay() + 
 
  240                   HadronMass2T/(z * 
string->LightConeDecay()));
 
  255     G4ThreeVector ClusterVel =
string->Get4Momentum().boostVector();
 
  256     G4double ResidualMass    =
string->Mass(); 
 
  258     G4int cClusterInterrupt = 0;
 
  267     string->SetLeftPartonStable(); 
 
  276           IsParticle=(
string->GetLeftParton()->GetPDGEncoding()>0) ? -1 : +1; 
 
  278           IsParticle=(
string->GetLeftParton()->GetPDGEncoding()>0) ? +1 : -1;
 
  281             quark = QuarkPair.second;
 
  291     while (ResidualMass <= LeftHadron->GetPDGMass() + RightHadron->
GetPDGMass()  + ClusterMassCut);
 
  296     Sample4Momentum(&LeftMom, LeftHadron->
GetPDGMass(), &RightMom, RightHadron->
GetPDGMass(), ResidualMass);
 
  297     LeftMom.
boost(ClusterVel);
 
  298     RightMom.
boost(ClusterVel);
 
  299     LeftVector->push_back(
new G4KineticTrack(LeftHadron, 0, Pos, LeftMom));
 
  300     RightVector->push_back(
new G4KineticTrack(RightHadron, 0, Pos, RightMom));
 
  320          string->Get4Momentum().mag2();
 
  329     G4double r_val = 
sqr(InitialMass*InitialMass - Mass*Mass - AntiMass*AntiMass) - 
sqr(2.*Mass*AntiMass);
 
  330     G4double Pabs = (r_val > 0.)? std::sqrt(r_val)/(2.*InitialMass) : 0;
 
  334     G4double st     = std::sqrt(1. - pz * pz)*Pabs;
 
  341     Mom->
setE(std::sqrt(Pabs*Pabs + Mass*Mass));
 
  344     AntiMom->
setE (std::sqrt(Pabs*Pabs + AntiMass*AntiMass));
 
G4ParticleDefinition * BuildHighSpin(G4ParticleDefinition *black, G4ParticleDefinition *white)
 
G4ParticleDefinition * GetRightParton(void) const 
 
G4ParticleDefinition * QuarkSplitup(G4ParticleDefinition *decay, G4ParticleDefinition *&created)
 
const G4ThreeVector & GetPosition() const 
 
G4ExcitedString * CPExcited(const G4ExcitedString &string)
 
void SetFormationTime(G4double aFormationTime)
 
G4ParticleDefinition * Build(G4ParticleDefinition *black, G4ParticleDefinition *white)
 
G4int StringLoopInterrupt
 
G4int ClusterLoopInterrupt
 
G4int GetPDGEncoding() const 
 
G4ThreeVector SampleQuarkPt(G4double ptMax=-1.)
 
virtual G4KineticTrackVector * FragmentString(const G4ExcitedString &theString)
 
const G4String & GetParticleSubType() const 
 
G4double FragmentationMass(const G4FragmentingString *const string, Pcreate build=0, pDefPair *pdefs=0)
 
G4ParticleDefinition * GetDecayParton() const 
 
pDefPair CreatePartonPair(G4int NeedParticle, G4bool AllowDiquarks=true)
 
const G4ThreeVector & GetPosition() const 
 
G4ParticleDefinition * GetLeftParton(void) const 
 
G4KineticTrackVector * LightFragmentationTest(const G4ExcitedString *const theString)
 
G4LorentzVector Get4Momentum() const 
 
G4double GetFormationTime() const 
 
std::pair< G4ParticleDefinition *, G4ParticleDefinition * > pDefPair
 
G4LorentzRotation TransformToAlignedCms()
 
HepLorentzVector & boost(double, double, double)
 
void SetPosition(const G4ThreeVector aPosition)
 
G4int GetDecayDirection() const 
 
void Set4Momentum(const G4LorentzVector &a4Momentum)
 
G4HadronBuilder * hadronizer
 
G4double GetPDGMass() const 
 
HepLorentzRotation inverse() const 
 
const G4LorentzVector & Get4Momentum() const 
 
void CalculateHadronTimePosition(G4double theInitialStringMass, G4KineticTrackVector *)
 
G4KineticTrack * Splitup(G4FragmentingString *string, G4FragmentingString *&newString)
 
CLHEP::HepLorentzVector G4LorentzVector