Pythia7::LundFragHandler Class Reference

The LundFragHandler is the main class of the string fragmentation modules. More...

#include <LundFragHandler.h>

Inheritance diagram for Pythia7::LundFragHandler:

ThePEG::HadronizationHandler Pythia7::Oriented ThePEG::StepHandler ThePEG::HandlerBase ThePEG::HandlerBaseT< T > ThePEG::Interfaced ThePEG::InterfacedBase ThePEG::Base ThePEG::Named ThePEG::Pointer::ReferenceCounted

List of all members.

Public Types

typedef OrientedIndex OIndex
 Shorthand alias.
typedef pair< double, double > Xhat
 A pair of energy fractions.
typedef vector< XhatXhatVector
 A vector of energy fraction pairs.
typedef list< HadronBuffer
 A list of Hadron object.
typedef Buffer::iterator BufferIt
 Iterator into a list of Hadron object.

Public Member Functions

ParticleList Hadronize (const tcPVector &)
 The major method in the string fragmentation administration.
Standard constructors and destructors.
 LundFragHandler ()
 Default constructor.
 LundFragHandler (const LundFragHandler &)
 Copy-constructor.
 ~LundFragHandler ()
 Destructor.
Virtual functions to be implemented by concrete sub-classes.
virtual void handle (EventHandler &eh, const tPVector &tagged, const Hint &hint)
 The main function called by the EventHandler class to perform a step.
Functions used by the persistent I/O system.
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently.
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently.
Access helper generator objects.
void PtGen (PtGeneratorPtr)
 Set pointer to LundPtGenerator.
PtGeneratorPtr PtGen () const
 Get pointer to LundPtGenerator.
void FlavourGen (FlavourGeneratorPtr)
 Set pointer to LundFlavourGenerator.
FlavourGeneratorPtr FlavourGen () const
 Get pointer to LundFlavourGenerator.
void ZGen (ZGeneratorPtr)
 Set pointer to LundZGenerator.
ZGeneratorPtr ZGen () const
 Get pointer to LundZGenerator.
Access interfaced parameters.
long maxLoop () const
 Get maximum number of attempts.
void maxLoop (long n)
 Set maximum number of attempts.
Energy Wmin0 () const
 See documentation of interface Wmin0.
double k () const
 See documentation of interface k.
double Delta () const
 See documentation of interface delta.
Energy m0 () const
 See documentation of interface m_0.
InvEnergy4 d0 () const
 See documentation of interface d_0.
double SqRatio () const
 Returns the suppression factor for production of a $s\bar{s}$ pair (from the flavour generator).
Print functions for debugging.
void showEP () const
 Print end points.
void echoXhat (cStringRegionPtr)
 Print Xhat values for a string region.

Static Public Member Functions

static void Init ()
 Standard Init function used to initialize the interface.

Protected Member Functions

Clone Methods.
virtual IBPtr clone () const
 Make a simple clone of this object.
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane.
Standard Interfaced functions.
virtual void doupdate () throw (UpdateException)
 Check sanity of the object during the setup phase.
virtual void doinit () throw (InitException)
 Initialize this object after the setup phase before saving an EventGenerator to disk.
virtual void dofinish ()
 Finalize this object.
Main internal functions for the hadronization.
void resetHandler ()
 Set the LundFraghandler members to their defaults value.
void initHadronization (const tcPVector &)
 Find the string type (open, closed) of the incoming vector of particles.
PVector copyRecombine (tcPPtr first, const tcPVector &inPVec)
 Copy partons which should be fragmented and recombine those which are too close together.
void initOpenString (const tcPVector &)
 Given the vector of particles, find the correct initial particle to send to the String constructor to create the open String and initialize the first EndPoints.
void initClosedString (const tcPVector &)
 Given the vector of particles, find the correct initial particle to send to the String constructor to create the closed String and initialize the first EndPoints.
void getHadron ()
 Perform a step in the fragmentation iterative process, resulting by the creation of a new hadron.
void loopBack ()
 Updates the CurrentString variables after a step has been preformed (i.e.
void finalTwoHadrons ()
 Produce the last two hadron in the string fragmentation scheme.
void Stepping ()
 Main method responsible for finding the string region where a solution for the new generated breakpoint can be found.
void solveGammaM2System ()
 Invoked by Stepping() to solve the (Gamma, m2) equation system in the current StringRegion reached by the Stepping procedure.
void Step ()
 Handle the steps along the StringRegion map.
void stepDown ()
 Handle the steps along the StringRegion map.
LorentzMomentum p0 (cStringRegionPtr first, cStringRegionPtr last)
 Calculate the momentum vector for two string regions.
cPPtr selectBreakup (const tcPVector &)
 Used by initClosedString to break a closed string and find the rightmost, leftmost end-points, for the resulting open-like string.
void pickFirstEPts ()
 Used by initClosedString to break a closed string and find the rightmost, leftmost end-points, for the resulting open-like string.
Functions for creating the final two hadrons.
void setupCommonFinalRegion ()
 Used by the finalTwoHadrons() to find the final region when the two last End-point are not in the same string-region.
void solveKinematics ()
 Used by finalTwoHadrons() to compute the kinematics of the two final hadrons.
cStringRegionPtr finalSR () const
 Return the final string-region where the second end-point is produced.
const EndPointfirstEP () const
 Return the first end-point.
EndPointsecondEP ()
 Return the second end-point.
HadronsecondH ()
 Get Ref to the second Hadron.
Helper and access functions.
Energy2 Wmin2 () const
 Given the masses of the last two end-point and the current one , compute the minimum energy above which a $q\bar{q}$ pair can be produced.
bool enoughE () const
 Return true if the string remaining energy is large enough to produce a new $q\bar{q}$ pair.
bool AqqbarSystem () const
 Return true if the current string is a simple $q\bar{q}$ string.
bool inconsistentBreakupRegions () const
 Used by the Step() method.
int nSR () const
 Return the number of string-regions of the currentString.
const EndPointlastEP () const
 EndPoints accessor.
const EndPointlastOppEP () const
 EndPoints accessor.
EndPointgetLastEP ()
 EndPoints accessor.
EndPointgetLastOppEP ()
 EndPoints accessor.
cStringRegionPtr CurrentSR () const
 Return the current string.
double CurrentXremf () const
 Access to the forward momentum fraction available in the current StringRegion.
double CurrentXremb () const
 Access to the backward momentum fraction available in the current StringRegion.
double & Xhatfwd (int)
 Get ref to the forward Xhat fractions given the index (int) of the string-region axis.
double & Xhatbwd (int)
 Get ref to the backward Xhat fractions given the index (int) of the string-region axis.
void setXhat (double, double)
 Set the forward and backward Xhat fractions in the current StrinRegion.
bool aSolution () const
 Return true when a solution has been found for the position of the new breakup.
Functions for generating and storing hadrons.
void store (Hadron &, int Dir=Oriented::Dir())
 Store a hadron.
void clearBuffer ()
 Clear hadron storage.
ParticleList createParticleList ()
 Create a list of stored hadrons.
virtual tcPDPtr generateHadron (tcPDPtr inPDPtr, cPDPtr &newPDPtr, long curtainQid=0)
 Calls LundFlavourGenerator::generateHadron(tcPDPtr, cPDPtr&, long).
virtual tcPDPtr getHadron (tcPDPtr inPD1, tcPDPtr inPD2)
 Calls LundFlavourGenerator::getHadron(tcPDPtr, tcPDPtr).

Private Attributes

PtGeneratorPtr thePtGen
 The LundPtGenerator.
FlavourGeneratorPtr theFlGen
 The LundFlavourGenerator.
ZGeneratorPtr theZGen
 The LundZGenerator.
ClusterCollapserPtr theCollapser
 The object used to avoid too small strings in the hadronization.
Energy pWmin0
 See documentation of interface Wmin0.
double pK
 See documentation of interface k.
double pDelta
 See documentation of interface delta.
Energy pM0
 See documentation of interface m_0.
Energy2 m2min
 The effective cut-off in squared mass, below which partons may be recombined to simplify (machine precision limited) kinematics of string fragmentation.
Energy2 m2mini
 The effective cut-off in squared mass, below which partons may be recombined to simplify (machine precision limited) kinematics of string fragmentation.
double angmin
 The effective angular cut-off in radians for recombination of partons, used in conjunction with m2min.
double angmini
 The effective angular cut-off in radians for recombination of partons, used in conjunction with m2min.
InvEnergy4 pd0
 Used to parametrize the probability for reverse rapidity ordering of the final two hadrons.
long MaxLoop
 Defines the maximun mumber of allowed attemps to fragment the CurrentString.
StringPtr theCurrentString
 The current string to fragment.
EndPoint theRightEP
 The right end-point.
EndPoint theLeftEP
 The left end-point.
EndPoint CurrentEP
 The current end-points.
cStringRegionPtr thefinalSR
 The final string-region in the final 2 hadrons procedure.
cPDPtr newCreatedPD
 Newly created ParticleData type.
Hadron newHadron
 Newly created Hadrons.
Hadron lastHadron
 Newly created Hadrons.
XhatVector XhatFwdVector
 Vector of forward Xhat coordinates.
XhatVector XhatBwdVector
 Vector of backward Xhat coordinates.
LorentzMomentum Pzero
 Used to keep track of total momentum available in breakups.
bool Estatus
 True as long as there is enough energy left in the string.
bool GammaM2Solution
 True as long as there is a solution to the gamma equation.
long ntry
 The number of attempts so far to fragment the current string.
cPPtr breakup
 Closed string first breakup.
Buffer theBuffer
 Hadron storage.
BufferIt currentBufferIt
 Hadron storage iterator.
LorentzRotation cmr
 The rotation to boost back ftom the current string rest frame.

Static Private Attributes

static ClassDescription
< LundFragHandler
initLundFragHandler
 Interface description.


Detailed Description

The LundFragHandler is the main class of the string fragmentation modules.

It is responsible for handling the hadronization phase according to the Lund fragmentation scheme. It inherits from HadronizationHandler the methods to communicate with the EventHandler and the EventGenerator. It also derives from Oriented to fix the orientation taken for each step in the fragmentation procedure.

Its tasks is : to look through the tagged particles present in the current Step, to extract the Strings to be hadronized into a list of Particles. At the end of the procedure, it asks the EventHandler for a copy of the current Step to add the newly created hadrons.

The LundFragHandler is responsible for creating the current String object to fragment. The fragmentation algorithm is implemented as a step-by-step updating procedure of EndPoint. The LundFragHandler contains three EndPoints: two to describe the last (right, left) end-point left over in the previous steps, and the current end-point created during the current step.

To achieve its job the LundFragHandler makes use of the LundPtGenerator, LundZGenerator and LundFlavourGenerator classes.

See also:
The interfaces defined for LundFragHandler.

HadronizationHandler

Oriented

String

EndPoint

Definition at line 54 of file LundFragHandler.h.


Member Typedef Documentation

Shorthand alias.

Definition at line 59 of file LundFragHandler.h.

typedef pair<double, double> Pythia7::LundFragHandler::Xhat

A pair of energy fractions.

Definition at line 62 of file LundFragHandler.h.

A vector of energy fraction pairs.

Definition at line 64 of file LundFragHandler.h.

A list of Hadron object.

Definition at line 66 of file LundFragHandler.h.

typedef Buffer::iterator Pythia7::LundFragHandler::BufferIt

Iterator into a list of Hadron object.

Definition at line 68 of file LundFragHandler.h.


Member Function Documentation

virtual void Pythia7::LundFragHandler::handle ( EventHandler eh,
const tPVector tagged,
const Hint hint 
) [virtual]

The main function called by the EventHandler class to perform a step.

Extracts the color singlet strings in the tagged particles vector, and send them to the Hadronize method to be fragmented. When completed get a copy of the current Step from the EventHandler and insert the newly created particles to form a new step in the EventRecord.

Parameters:
eh the EventHandler in charge of the Event generation.
tagged if not empty these are the only particles which should be considered by the StepHandler.
hint a Hint object with possible information from previously performed steps.
Exceptions:
Veto if the StepHandler requires the current step to be discarded.
Stop if the generation of the current Event should be stopped after this call.
Exception if something goes wrong.

Implements ThePEG::StepHandler.

ParticleList Pythia7::LundFragHandler::Hadronize ( const tcPVector  ) 

The major method in the string fragmentation administration.

Given a vector of Particles that form the string, it returns the list of newly produced particles. Its task is divided in three main parts :
1) Set-up the string calling the initHadronization method
2) call getHadron() method to produce a new hadron while the remaining energy of the string is above a minimum threshold, otherwise call the finalTwoHadron() method the produce the last 2 hadron in the procedure.

void Pythia7::LundFragHandler::persistentOutput ( PersistentOStream os  )  const

Function used to write out object persistently.

Parameters:
os the persistent output stream written to.

Reimplemented from ThePEG::Interfaced.

void Pythia7::LundFragHandler::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

Parameters:
is the persistent input stream read from.
version the version number of the object when written.

Reimplemented from ThePEG::Interfaced.

virtual IBPtr Pythia7::LundFragHandler::clone (  )  const [inline, protected, virtual]

Make a simple clone of this object.

Returns:
a pointer to the new object.

Implements ThePEG::InterfacedBase.

virtual IBPtr Pythia7::LundFragHandler::fullclone (  )  const [inline, protected, virtual]

Make a clone of this object, possibly modifying the cloned object to make it sane.

Returns:
a pointer to the new object.

Reimplemented from ThePEG::InterfacedBase.

virtual void Pythia7::LundFragHandler::doinit (  )  throw (InitException) [inline, protected, virtual]

Initialize this object after the setup phase before saving an EventGenerator to disk.

Exceptions:
InitException if object could not be initialized properly.

Reimplemented from ThePEG::InterfacedBase.

virtual void Pythia7::LundFragHandler::dofinish (  )  [inline, protected, virtual]

Finalize this object.

Called in the run phase just after a run has ended. Used eg. to write out statistics.

Reimplemented from ThePEG::InterfacedBase.

void Pythia7::LundFragHandler::getHadron (  )  [protected]

Perform a step in the fragmentation iterative process, resulting by the creation of a new hadron.

This is the method that fixes the step's side, that will be used by all oriented classes.

void Pythia7::LundFragHandler::loopBack (  )  [protected]

Updates the CurrentString variables after a step has been preformed (i.e.

a new break-point created and a new hadron produced) before starting a new step.

void Pythia7::LundFragHandler::finalTwoHadrons (  )  [protected]

Produce the last two hadron in the string fragmentation scheme.

Invoked when the String remaining energy is below Wmin. At that point the iterative procedure is stopped andd the last two hadrons are produced

bool Pythia7::LundFragHandler::inconsistentBreakupRegions (  )  const [inline, protected]

Used by the Step() method.

Return true if a step taken on the string region map ends-up in an inconsistent string-region, that will lead to uncrossed the left-right sequences.

double& Pythia7::LundFragHandler::Xhatfwd ( int   )  [inline, protected]

Get ref to the forward Xhat fractions given the index (int) of the string-region axis.

(cf. StrinRegion).

double& Pythia7::LundFragHandler::Xhatbwd ( int   )  [inline, protected]

Get ref to the backward Xhat fractions given the index (int) of the string-region axis.

(cf. StrinRegion).


Member Data Documentation

The effective cut-off in squared mass, below which partons may be recombined to simplify (machine precision limited) kinematics of string fragmentation.

(Default chosen to be of the order of a light quark mass, or half a typical light meson mass.)

Definition at line 609 of file LundFragHandler.h.

The effective cut-off in squared mass, below which partons may be recombined to simplify (machine precision limited) kinematics of string fragmentation.

(Default chosen to be of the order of a light quark mass, or half a typical light meson mass.) m2mini is copied from m2min for each string to be hadronized and will be increased if the hadronization fails too often.

Definition at line 619 of file LundFragHandler.h.

The effective angular cut-off in radians for recombination of partons, used in conjunction with m2min.

angmini is copied from angmin for each string to be hadronized and will be increased if the hadronization fails too often.

Definition at line 633 of file LundFragHandler.h.


The documentation for this class was generated from the following file:

Generated on Thu Apr 29 12:45:34 2010 for Pythia7 by  doxygen 1.5.5