Import Geant4 0.0.0 source tree
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# $Id: GNUmakefile,v 1.1 1998/08/22 09:08:47 hpw Exp $
|
||||
# -----------------------------------------------------------
|
||||
# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96.
|
||||
# -----------------------------------------------------------
|
||||
|
||||
name := G4hadronic_stringfrag
|
||||
|
||||
ifndef G4INSTALL
|
||||
G4INSTALL = ../../../../../..
|
||||
endif
|
||||
|
||||
include $(G4INSTALL)/config/architecture.gmk
|
||||
|
||||
G4TMPDIR = $(G4TMP)/$(G4SYSTEM)/$(name)
|
||||
|
||||
CPPFLAGS += -I$(G4BASE)/global/management/include \
|
||||
-I$(G4BASE)/global/HEPRandom/include \
|
||||
-I$(G4BASE)/global/HEPNumerics/include \
|
||||
-I$(G4BASE)/global/HEPGeometry/include \
|
||||
-I$(G4BASE)/track/include \
|
||||
-I$(G4BASE)/geometry/volumes/include \
|
||||
-I$(G4BASE)/geometry/management/include \
|
||||
-I$(G4BASE)/processes/management/include \
|
||||
-I$(G4BASE)/processes/hadronic/management/include/ \
|
||||
-I$(G4BASE)/processes/hadronic/util/include \
|
||||
-I$(G4BASE)/processes/hadronic/processes/include \
|
||||
-I$(G4BASE)/processes/hadronic/cross_sections/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/generator/management/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/generator/util/include \
|
||||
-I$(G4BASE)/particles/management/include \
|
||||
-I$(G4BASE)/particles/leptons/include \
|
||||
-I$(G4BASE)/particles/bosons/include \
|
||||
-I$(G4BASE)/particles/hadrons/mesons/include \
|
||||
-I$(G4BASE)/particles/hadrons/barions/include \
|
||||
-I$(G4BASE)/particles/hadrons/ions/include \
|
||||
-I$(G4BASE)/particles/shortlived/include \
|
||||
-I$(G4BASE)/materials/include
|
||||
|
||||
include $(G4INSTALL)/config/common.gmk
|
||||
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ExcitedStringDecay.hh,v 1.3 1998/12/09 07:53:39 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
#ifndef G4ExcitedStringDecay_h
|
||||
#define G4ExcitedStringDecay_h 1
|
||||
|
||||
#include "G4VStringFragmentation.hh"
|
||||
#include "G4ExcitedString.hh"
|
||||
#include "G4KineticTrackVector.hh"
|
||||
#include "G4LundStringFragmentation.hh"
|
||||
|
||||
class G4ExcitedStringDecay: public G4VStringFragmentation
|
||||
{
|
||||
public:
|
||||
G4ExcitedStringDecay();
|
||||
G4ExcitedStringDecay(G4VLongitudinalStringDecay * aStringDecay);
|
||||
~G4ExcitedStringDecay();
|
||||
|
||||
private:
|
||||
G4ExcitedStringDecay(const G4ExcitedStringDecay &right);
|
||||
const G4ExcitedStringDecay & operator=(const G4ExcitedStringDecay &right);
|
||||
int operator==(const G4ExcitedStringDecay &right) const;
|
||||
int operator!=(const G4ExcitedStringDecay &right) const;
|
||||
|
||||
public:
|
||||
// virtual G4ReactionProductVector * FragmentString(const G4ExcitedString &theString)=0;
|
||||
virtual G4KineticTrackVector * FragmentString(const G4ExcitedString &theString);
|
||||
|
||||
private:
|
||||
|
||||
G4VLongitudinalStringDecay * theStringDecay;
|
||||
|
||||
};
|
||||
|
||||
inline
|
||||
G4KineticTrackVector *G4ExcitedStringDecay::FragmentString(const G4ExcitedString &theString)
|
||||
{
|
||||
if ( theStringDecay == NULL )
|
||||
theStringDecay=new G4LundStringFragmentation();
|
||||
|
||||
return theStringDecay->FragmentString(theString);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4LundStringFragmentation.hh,v 1.3 1998/12/09 07:59:36 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $ Maxim Komogorov
|
||||
//
|
||||
// -----------------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD Group
|
||||
// History: first implementation, Maxim Komogorov, 10-Jul-1998
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
#ifndef G4LundStringFragmentation_h
|
||||
#define G4LundStringFragmentation_h 1
|
||||
|
||||
#include "G4VLongitudinalStringDecay.hh"
|
||||
|
||||
//**************************************************************************************************************
|
||||
|
||||
class G4LundStringFragmentation: public G4VLongitudinalStringDecay
|
||||
{
|
||||
public:
|
||||
G4LundStringFragmentation();
|
||||
// G4LundStringFragmentation(G4double sigmaPt);
|
||||
G4LundStringFragmentation(const G4LundStringFragmentation &right);
|
||||
~G4LundStringFragmentation();
|
||||
|
||||
public:
|
||||
const G4LundStringFragmentation & operator=(const G4LundStringFragmentation &right);
|
||||
int operator==(const G4LundStringFragmentation &right) const;
|
||||
int operator!=(const G4LundStringFragmentation &right) const;
|
||||
|
||||
|
||||
private:
|
||||
virtual G4double GetLightConeZ(G4double zmin, G4double zmax, G4int PartonEncoding, G4ParticleDefinition* pHadron, G4double Px, G4double Py);
|
||||
};
|
||||
|
||||
//**************************************************************************************************************
|
||||
// Class G4LundStringFragmentation
|
||||
#endif
|
||||
|
||||
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4QGSMFragmentation.hh,v 1.3 1998/12/01 15:35:46 maxim Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
// -----------------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD Group
|
||||
// History: first implementation, Maxim Komogorov, 10-Jul-1998
|
||||
// -----------------------------------------------------------------------------
|
||||
#ifndef G4QGSMFragmentation_h
|
||||
#define G4QGSMFragmentation_h 1
|
||||
|
||||
#include "G4VLongitudinalStringDecay.hh"
|
||||
|
||||
//******************************************************************************
|
||||
class G4QGSMFragmentation:public G4VLongitudinalStringDecay
|
||||
{
|
||||
public:
|
||||
G4QGSMFragmentation();
|
||||
G4QGSMFragmentation(const G4QGSMFragmentation &right);
|
||||
~G4QGSMFragmentation();
|
||||
|
||||
const G4QGSMFragmentation & operator=(const G4QGSMFragmentation &right);
|
||||
int operator==(const G4QGSMFragmentation &right) const;
|
||||
int operator!=(const G4QGSMFragmentation &right) const;
|
||||
|
||||
private:
|
||||
virtual G4double GetLightConeZ(G4double zmin, G4double zmax, G4int PartonEncoding, G4ParticleDefinition* pHadron, G4double Px, G4double Py);
|
||||
|
||||
};
|
||||
//******************************************************************************
|
||||
|
||||
// Class G4QGSMFragmentation
|
||||
#endif
|
||||
|
||||
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VKinkyStringDecay.hh,v 1.2 1998/11/03 10:10:34 maxim Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// Maxim Komogorov
|
||||
//
|
||||
// -----------------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD Group
|
||||
// History: first implementation, Maxim Komogorov, 10-Oct-1998
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
#ifndef G4VKinkyStringDecay_h
|
||||
#define G4VKinkyStringDecay_h 1
|
||||
|
||||
#include "G4VLongitudinalStringDecay.hh"
|
||||
|
||||
//***********************************************************************************************
|
||||
|
||||
class G4VKinkyStringDecay
|
||||
{
|
||||
|
||||
// Constructors
|
||||
public:
|
||||
G4VKinkyStringDecay(G4VLongitudinalStringDecay* theModal);
|
||||
~G4VKinkyStringDecay() {};
|
||||
|
||||
//
|
||||
public:
|
||||
G4KineticTrackVector* FragmentString(const G4ExcitedString& String);
|
||||
virtual G4double GetLightConeGluonZ(G4double zmin, G4double zmax);
|
||||
void SetLongitudinalStringDecay(G4VLongitudinalStringDecay*);
|
||||
|
||||
private:
|
||||
G4VLongitudinalStringDecay* theLongitudinalStringDecay;
|
||||
|
||||
};
|
||||
|
||||
//*****************************************************************************************
|
||||
|
||||
inline void G4VKinkyStringDecay::SetLongitudinalStringDecay(G4VLongitudinalStringDecay* theModal)
|
||||
{
|
||||
theLongitudinalStringDecay = theModal;
|
||||
}
|
||||
|
||||
//*****************************************************************************************************
|
||||
|
||||
#endif
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ExcitedStringDecay.cc,v 1.2 1998/12/09 07:53:44 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
// G4ExcitedStringDecay
|
||||
|
||||
#include "G4ExcitedStringDecay.hh"
|
||||
|
||||
G4ExcitedStringDecay::G4ExcitedStringDecay()
|
||||
{
|
||||
theStringDecay=NULL;
|
||||
}
|
||||
|
||||
G4ExcitedStringDecay::G4ExcitedStringDecay(G4VLongitudinalStringDecay * aStringDecay)
|
||||
: theStringDecay(aStringDecay)
|
||||
{}
|
||||
|
||||
G4ExcitedStringDecay::G4ExcitedStringDecay(const G4ExcitedStringDecay &right)
|
||||
{
|
||||
}
|
||||
|
||||
G4ExcitedStringDecay::~G4ExcitedStringDecay()
|
||||
{
|
||||
}
|
||||
|
||||
const G4ExcitedStringDecay & G4ExcitedStringDecay::operator=(const G4ExcitedStringDecay &right)
|
||||
{
|
||||
G4Exception("G4ExcitedStringDecay::operator= meant to not be accessable");
|
||||
return *this;
|
||||
}
|
||||
|
||||
int G4ExcitedStringDecay::operator==(const G4ExcitedStringDecay &right) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int G4ExcitedStringDecay::operator!=(const G4ExcitedStringDecay &right) const
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4LundStringFragmentation.cc,v 1.3 1998/12/09 07:59:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
// -----------------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD Group
|
||||
// History: first implementation, Maxim Komogorov, 10-Jul-1998
|
||||
// -----------------------------------------------------------------------------
|
||||
#include "G4LundStringFragmentation.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
// Class G4LundStringFragmentation
|
||||
//****************************************************************************************
|
||||
|
||||
G4LundStringFragmentation::G4LundStringFragmentation()
|
||||
{
|
||||
}
|
||||
|
||||
// G4LundStringFragmentation::G4LundStringFragmentation(G4double sigmaPt)
|
||||
// : G4VLongitudinalStringDecay(sigmaPt)
|
||||
// {
|
||||
// }
|
||||
|
||||
G4LundStringFragmentation::G4LundStringFragmentation(const G4LundStringFragmentation &right)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
G4LundStringFragmentation::~G4LundStringFragmentation()
|
||||
{
|
||||
}
|
||||
|
||||
//****************************************************************************************
|
||||
|
||||
const G4LundStringFragmentation & G4LundStringFragmentation::operator=(const G4LundStringFragmentation &right)
|
||||
{
|
||||
G4Exception("G4LundStringFragmentation::operator= meant to not be accessable");
|
||||
return *this;
|
||||
}
|
||||
|
||||
int G4LundStringFragmentation::operator==(const G4LundStringFragmentation &right) const
|
||||
{
|
||||
return !memcmp(this, &right, sizeof(G4LundStringFragmentation));
|
||||
}
|
||||
|
||||
int G4LundStringFragmentation::operator!=(const G4LundStringFragmentation &right) const
|
||||
{
|
||||
return memcmp(this, &right, sizeof(G4LundStringFragmentation));
|
||||
}
|
||||
|
||||
//****************************************************************************************
|
||||
|
||||
G4double G4LundStringFragmentation::GetLightConeZ(G4double zmin, G4double zmax, G4int PartonEncoding, G4ParticleDefinition* pHadron, G4double Px, G4double Py)
|
||||
{
|
||||
const G4double alund = 0.7/GeV/GeV;
|
||||
|
||||
// If blund get restored, you MUST adapt the calculation of zOfMaxyf.
|
||||
// const G4double blund = 1;
|
||||
|
||||
G4double z, yf;
|
||||
G4double Mass = pHadron->GetPDGMass();
|
||||
|
||||
G4double Mt2 = Px*Px + Py*Py + Mass*Mass;
|
||||
G4double zOfMaxyf=alund*Mt2/(alund*Mt2 + 1.);
|
||||
G4double maxYf=(1-zOfMaxyf)/zOfMaxyf * exp(-alund*Mt2/zOfMaxyf);
|
||||
do
|
||||
{
|
||||
z = zmin + G4UniformRand()*(zmax-zmin);
|
||||
// yf = pow(1. - z, blund)/z*exp(-alund*Mt2/z);
|
||||
yf = (1-z)/z * exp(-alund*Mt2/z);
|
||||
}
|
||||
while (G4UniformRand()*maxYf > yf);
|
||||
return z;
|
||||
}
|
||||
|
||||
//****************************************************************************************
|
||||
+129
@@ -0,0 +1,129 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4QGSMFragmentation.cc,v 1.3 1998/12/01 15:35:29 maxim Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
// -----------------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD Group
|
||||
// History: first implementation, Maxim Komogorov, 10-Jul-1998
|
||||
// -----------------------------------------------------------------------------
|
||||
#include "G4QGSMFragmentation.hh"
|
||||
#include "Randomize.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
// Class G4QGSMFragmentation
|
||||
//****************************************************************************************
|
||||
|
||||
G4QGSMFragmentation::G4QGSMFragmentation()
|
||||
{
|
||||
}
|
||||
|
||||
G4QGSMFragmentation::G4QGSMFragmentation(const G4QGSMFragmentation &right)
|
||||
{
|
||||
}
|
||||
|
||||
G4QGSMFragmentation::~G4QGSMFragmentation()
|
||||
{
|
||||
}
|
||||
|
||||
//****************************************************************************************
|
||||
|
||||
const G4QGSMFragmentation & G4QGSMFragmentation::operator=(const G4QGSMFragmentation &right)
|
||||
{
|
||||
G4Exception("G4QGSMFragmentation::operator= meant to not be accessable");
|
||||
return *this;
|
||||
}
|
||||
|
||||
int G4QGSMFragmentation::operator==(const G4QGSMFragmentation &right) const
|
||||
{
|
||||
return !memcmp(this, &right, sizeof(G4QGSMFragmentation));
|
||||
}
|
||||
|
||||
int G4QGSMFragmentation::operator!=(const G4QGSMFragmentation &right) const
|
||||
{
|
||||
return memcmp(this, &right, sizeof(G4QGSMFragmentation));
|
||||
}
|
||||
|
||||
//****************************************************************************************
|
||||
|
||||
G4double G4QGSMFragmentation::GetLightConeZ(G4double zmin, G4double zmax, G4int PartonEncoding, G4ParticleDefinition* pHadron, G4double Px, G4double Py)
|
||||
{
|
||||
const G4double arho = 0.5;
|
||||
const G4double aphi = 0.;
|
||||
const G4double an = -0.5;
|
||||
const G4double ala = -0.75;
|
||||
const G4double aksi = -1.;
|
||||
const G4double alft = 0.5;
|
||||
|
||||
G4double z;
|
||||
G4double theA, d1, d2, yf;
|
||||
if (abs(PartonEncoding) < 10)
|
||||
{
|
||||
switch(abs(PartonEncoding))
|
||||
{
|
||||
case 1:
|
||||
theA = arho;
|
||||
break;
|
||||
case 2:
|
||||
theA = arho;
|
||||
break;
|
||||
case 3:
|
||||
theA = aphi;
|
||||
break;
|
||||
default:
|
||||
G4Exception("Unknown PDGencoding in G4QGSMFragmentation::G4LightConeZ");
|
||||
}
|
||||
do {
|
||||
z = zmin + G4UniformRand() * (zmax - zmin);
|
||||
d1 = (1. - z);
|
||||
d2 = (alft - theA);
|
||||
yf = pow(d1, d2);
|
||||
}
|
||||
while (G4UniformRand() > yf);
|
||||
return z;
|
||||
}
|
||||
switch(abs(PartonEncoding))
|
||||
{
|
||||
case 1103:
|
||||
d2 = (alft - (2.*an - arho));
|
||||
break;
|
||||
|
||||
case 2101: case 2103:
|
||||
d2 = (alft - (2.*an - arho));
|
||||
break;
|
||||
|
||||
case 3101: case 3103:
|
||||
d2 = (alft - (2.*ala - arho));
|
||||
break;
|
||||
|
||||
case 2203:
|
||||
d2 = (alft - (2.*an - arho));
|
||||
break;
|
||||
|
||||
case 3201: case 3203:
|
||||
d2 = (alft - (2.*ala - arho));
|
||||
break;
|
||||
|
||||
case 3303:
|
||||
default:
|
||||
d2 = (alft - (2.*aksi - arho));
|
||||
break;
|
||||
}
|
||||
do {
|
||||
z = zmin + G4UniformRand() * (zmax - zmin);
|
||||
d1 = (1. - z);
|
||||
yf = pow(d1, d2);
|
||||
}
|
||||
while (G4UniformRand() > yf);
|
||||
return z;
|
||||
}
|
||||
|
||||
//*********************************************************************************************
|
||||
+95
@@ -0,0 +1,95 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VKinkyStringDecay.cc,v 1.4 1998/12/13 15:46:21 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// Maxim Komogorov
|
||||
//
|
||||
// -----------------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD Group
|
||||
// History: first implementation, Maxim Komogorov, 10-Oct-1998
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
#include "G4VKinkyStringDecay.hh"
|
||||
|
||||
//*****************************************************************************************************
|
||||
|
||||
G4VKinkyStringDecay::G4VKinkyStringDecay(G4VLongitudinalStringDecay* theModal)
|
||||
{
|
||||
this->SetLongitudinalStringDecay(theModal);
|
||||
}
|
||||
|
||||
//*****************************************************************************************************
|
||||
|
||||
G4double G4VKinkyStringDecay::GetLightConeGluonZ(G4double zmin, G4double zmax)
|
||||
{
|
||||
G4double z, yf;
|
||||
do {
|
||||
z = zmin + G4UniformRand()*(zmax-zmin);
|
||||
yf = z*z +sqr(1 - z);
|
||||
}
|
||||
while (G4UniformRand() > yf);
|
||||
return z;
|
||||
}
|
||||
|
||||
//*****************************************************************************************************
|
||||
|
||||
G4KineticTrackVector* G4VKinkyStringDecay::FragmentString(const G4ExcitedString& String)
|
||||
{
|
||||
G4LorentzVector Mom = String.GetGluon()->Get4Momentum();
|
||||
G4ThreeVector Pos = String.GetGluon()->GetPosition();
|
||||
G4int QuarkEncoding = theLongitudinalStringDecay->SampleQuarkFlavor();
|
||||
G4double Px, Py;
|
||||
theLongitudinalStringDecay->SampleQuarkPt(&Px, &Py);
|
||||
G4double Pt2 = Px*Px + Py*Py;
|
||||
G4double z = GetLightConeGluonZ(0, 1);
|
||||
G4double w = Mom.e() + Mom.pz();
|
||||
//... now compute quark longitudinal momentum and energy
|
||||
|
||||
G4double Pz = (z*w - Pt2/(z*w))*0.5;
|
||||
G4double E = (z*w + Pt2/(z*w))*0.5;
|
||||
|
||||
G4Parton* AntiColor = new G4Parton(-QuarkEncoding);
|
||||
AntiColor->SetPosition(Pos);
|
||||
G4LorentzVector AntiColorMom(-Px, -Py, -Pz, E);
|
||||
AntiColor->Set4Momentum(AntiColorMom);
|
||||
G4Parton* Color = new G4Parton(*String.GetColorParton());
|
||||
G4ExcitedString Str1(Color, AntiColor, String.GetDirection());
|
||||
G4KineticTrackVector* KTV1 = theLongitudinalStringDecay->FragmentString(Str1);
|
||||
|
||||
Color = new G4Parton(QuarkEncoding);
|
||||
Color->SetPosition(Pos);
|
||||
G4LorentzVector ColorMom(Px, Py, Pz, E);
|
||||
Color->Set4Momentum(ColorMom);
|
||||
AntiColor = new G4Parton(*String.GetAntiColorParton());
|
||||
G4ExcitedString Str2(Color, AntiColor, String.GetDirection());
|
||||
G4KineticTrackVector* KTV2 = theLongitudinalStringDecay->FragmentString(Str2);
|
||||
|
||||
if (KTV1 && KTV2)
|
||||
while(!KTV2->isEmpty())
|
||||
KTV1->insert(KTV2->removeLast());
|
||||
return KTV1;
|
||||
}
|
||||
|
||||
//*****************************************************************************************************
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user