G4VKinkyStringDecay Class Reference

#include <G4VKinkyStringDecay.hh>


Public Member Functions

 G4VKinkyStringDecay (G4VLongitudinalStringDecay *theModal)
virtual ~G4VKinkyStringDecay ()
G4KineticTrackVectorFragmentString (const G4ExcitedString &String)
virtual G4double GetLightConeGluonZ (G4double zmin, G4double zmax)
void SetLongitudinalStringDecay (G4VLongitudinalStringDecay *)


Detailed Description

Definition at line 43 of file G4VKinkyStringDecay.hh.


Constructor & Destructor Documentation

G4VKinkyStringDecay::G4VKinkyStringDecay ( G4VLongitudinalStringDecay theModal  ) 

Definition at line 43 of file G4VKinkyStringDecay.cc.

References SetLongitudinalStringDecay().

00044    {
00045    this->SetLongitudinalStringDecay(theModal);
00046    }

virtual G4VKinkyStringDecay::~G4VKinkyStringDecay (  )  [inline, virtual]

Definition at line 49 of file G4VKinkyStringDecay.hh.

00049 {};


Member Function Documentation

G4KineticTrackVector * G4VKinkyStringDecay::FragmentString ( const G4ExcitedString String  ) 

Definition at line 63 of file G4VKinkyStringDecay.cc.

References G4VLongitudinalStringDecay::FragmentString(), G4Parton::Get4Momentum(), G4ExcitedString::GetAntiColorParton(), G4ExcitedString::GetColorParton(), G4ExcitedString::GetDirection(), G4ExcitedString::GetGluon(), GetLightConeGluonZ(), G4Parton::GetPosition(), G4VLongitudinalStringDecay::SampleQuarkFlavor(), G4VLongitudinalStringDecay::SampleQuarkPt(), G4Parton::Set4Momentum(), and G4Parton::SetPosition().

00064     {
00065     G4LorentzVector Mom = String.GetGluon()->Get4Momentum();
00066     G4ThreeVector Pos = String.GetGluon()->GetPosition();
00067     G4int QuarkEncoding = theLongitudinalStringDecay->SampleQuarkFlavor();
00068     G4ThreeVector Pquark=theLongitudinalStringDecay->SampleQuarkPt();
00069     G4double Pt2 = Pquark.mag2();
00070     G4double z = GetLightConeGluonZ(0, 1);
00071     G4double w = Mom.e() + Mom.pz();
00072     //... now compute quark longitudinal momentum and energy
00073 
00074     Pquark.setZ(  (z*w - Pt2/(z*w))*0.5);
00075     G4double E  = (z*w + Pt2/(z*w))*0.5;
00076     
00077     G4Parton* AntiColor = new G4Parton(-QuarkEncoding);
00078     AntiColor->SetPosition(Pos);
00079     G4LorentzVector AntiColorMom(-Pquark, E);
00080     AntiColor->Set4Momentum(AntiColorMom);
00081     G4Parton* Color = new G4Parton(*String.GetColorParton());
00082     G4ExcitedString Str1(Color, AntiColor, String.GetDirection());
00083     G4KineticTrackVector* KTV1 = theLongitudinalStringDecay->FragmentString(Str1);
00084 
00085     Color = new G4Parton(QuarkEncoding);
00086     Color->SetPosition(Pos);
00087     G4LorentzVector ColorMom(Pquark, E);
00088     Color->Set4Momentum(ColorMom);
00089     AntiColor = new G4Parton(*String.GetAntiColorParton());
00090     G4ExcitedString Str2(Color, AntiColor, String.GetDirection());
00091     G4KineticTrackVector* KTV2 = theLongitudinalStringDecay->FragmentString(Str2);
00092 
00093     if (KTV1 && KTV2)
00094          while(!KTV2->empty())
00095          {
00096              KTV1->push_back(KTV2->back());
00097              KTV1->erase(KTV1->end()-1);
00098          }
00099     return KTV1;            
00100     } 

G4double G4VKinkyStringDecay::GetLightConeGluonZ ( G4double  zmin,
G4double  zmax 
) [virtual]

Definition at line 50 of file G4VKinkyStringDecay.cc.

References G4UniformRand, and sqr().

Referenced by FragmentString().

00051     {
00052     G4double z, yf;
00053     do {
00054        z = zmin + G4UniformRand()*(zmax-zmin);
00055        yf = z*z +sqr(1 - z);    
00056        } 
00057     while (G4UniformRand() > yf); 
00058     return z;
00059     }

void G4VKinkyStringDecay::SetLongitudinalStringDecay ( G4VLongitudinalStringDecay  )  [inline]

Definition at line 64 of file G4VKinkyStringDecay.hh.

Referenced by G4VKinkyStringDecay().

00065    {
00066    theLongitudinalStringDecay = theModal;
00067    }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:50 2013 for Geant4 by  doxygen 1.4.7