ThePEG::ClusterCollapser Class Reference

ClusterCollapser is a general StepHandler which can be called anywhere in the event generation (typically as a pre-handler to the hadronization or a post-hadnler to the cascade) to find colour-less clusters of partons which are deemed to have to small invariant mass to be hadronized in the normal way. More...

#include <ClusterCollapser.h>

Inheritance diagram for ThePEG::ClusterCollapser:

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 Ptr< FlavourGenerator >
::pointer 
FlavGenPtr
 Declare a pointer to a FlavourGenerator object.
typedef multimap< Energy,
ColourSinglet
SingletMap
 Declare a multimap of singlets indexed by their mass.

Public Member Functions

virtual vector< ColourSingletcollapse (tPVector tagged, tStepPtr newstep)
 Perform all necessary collapses.
virtual SingletMap getSinglets (const tPVector &tagged) const
 Go through the tagged partons and extract all colour singlet combination of partons.
virtual ColourSinglet splitDiQuarkJunction (ColourSinglet &cs, tStepPtr newStep) const
 If a singlet contains at least one diquark and a junction, split the diquark and split off a new colour singlet.
virtual ColourSinglet splitDiDiQuark (ColourSinglet &cs, tStepPtr newStep) const
 If a singlet contains a simple string with diquarks in both ends, split them into quarks and split off a new colour singlet.
Energy cut () const
 If the invariant mass of a cluster, minus the constituent masses of its partons is below this cut, it will be collapsed into one or two particles.
int nTry2 () const
 The number of attempts to collapse a cluster into two particles, before it is collapsed into one particle.
virtual tcPDPtr pickFlavour () const
 Pick a random flavour.
Standard constructors and destructors.
 ClusterCollapser ()
 The default constructor.
virtual ~ClusterCollapser ()
 The destructor.
Virtual functions required by the StepHandler class.
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.

Static Public Member Functions

static bool diQuarkJunction (const ColourSinglet &cs)
 Returns true iff the given singlet contains a junction and at least one diquark.
static bool diDiQuark (const ColourSinglet &cs)
 Returns true iff the given singlet contains one string piece with diquarks in both ends.
static Energy mass (const ColourSinglet &cl)
 Return the invariant mass of a cluster minus the constituent masses of its partons.
static void insert (SingletMap &mmap, const ColourSinglet &cl)
 Insert a ColourSinglet object in a SingletMap.
static void Init ()
 Standard Init function used to initialize the interfaces.

Protected Member Functions

virtual void collapse (tStepPtr newStep, const ColourSinglet &cs, const tPVector &tagged) const
 Perform the actual collapse of a cluster into one hadron.
virtual bool collapse2 (tStepPtr newStep, const ColourSinglet &cs) const
 Perform the actual collapse of a cluster into two hadrons.
virtual tPVector getCompensators (Energy mh, const ColourSinglet &cs, const tPVector &tagged, tStepPtr newStep) const
 Get particles for compensation.
virtual tcPDPtr getHadron (const ColourSinglet &cs) const
 Return a hadron into which the given cluster may collapse.
virtual tcPDPair getHadrons (const ColourSinglet &cs) const
 Return a pair of hadrons into which the given cluster may collapse.
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.

Protected Attributes

Exception::Severity errorlevel
 How should we respond to errors? 0 means do nothing, ie.
double pStrange
 The relative probability to produce a s-sbar pair in a split as compared to a u-ubar or d-dbar pair.

Private Member Functions

ClusterCollapseroperator= (const ClusterCollapser &)
 Private and non-existent assignment operator.

Private Attributes

Energy theEnergyCut
 Energy cut.
int theNTry2
 The number of attempts to collapse a cluster into two particles, before it is collapsed into one particle.
FlavGenPtr flavGen
 The flavour generator object to use to combine quarks and diqurks into hadrons.

Static Private Attributes

static ClassDescription
< ClusterCollapser
initClusterCollapser
 Describe a concrete class with persistent data.


Detailed Description

ClusterCollapser is a general StepHandler which can be called anywhere in the event generation (typically as a pre-handler to the hadronization or a post-hadnler to the cascade) to find colour-less clusters of partons which are deemed to have to small invariant mass to be hadronized in the normal way.

Instead these clusters are allowed to collapse into hadrons. Possible energy imbalance du to the clustering is compensated by shifting the momenta of nearby particles.

See also:
The interfaces defined for ClusterCollapser.

Definition at line 35 of file ClusterCollapser.h.


Member Typedef Documentation

Declare a pointer to a FlavourGenerator object.

Definition at line 40 of file ClusterCollapser.h.

Declare a multimap of singlets indexed by their mass.

Definition at line 43 of file ClusterCollapser.h.


Member Function Documentation

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

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

This function simply calls the collapse() function.

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.

virtual vector<ColourSinglet> ThePEG::ClusterCollapser::collapse ( tPVector  tagged,
tStepPtr  newstep 
) [virtual]

Perform all necessary collapses.

Return the uncollapsed clusters.

virtual SingletMap ThePEG::ClusterCollapser::getSinglets ( const tPVector tagged  )  const [virtual]

Go through the tagged partons and extract all colour singlet combination of partons.

Order them in invariant mass (minus the constituent masses of the partons).

virtual tcPDPtr ThePEG::ClusterCollapser::pickFlavour (  )  const [virtual]

Pick a random flavour.

Default version picks u,d or s with ratio 3:3:1.

virtual void ThePEG::ClusterCollapser::collapse ( tStepPtr  newStep,
const ColourSinglet cs,
const tPVector tagged 
) const [protected, virtual]

Perform the actual collapse of a cluster into one hadron.

Add the produced hadron to the given step as decay products of the partons in the cluster. The tagged particles are used for momentum compensation.

virtual bool ThePEG::ClusterCollapser::collapse2 ( tStepPtr  newStep,
const ColourSinglet cs 
) const [protected, virtual]

Perform the actual collapse of a cluster into two hadrons.

Add the produced hadrons to the given step as decay products of the partons in the cluster. The tagged particles are used for momentum compensation.

Returns:
false if the collapse failed in some way.

virtual tPVector ThePEG::ClusterCollapser::getCompensators ( Energy  mh,
const ColourSinglet cs,
const tPVector tagged,
tStepPtr  newStep 
) const [protected, virtual]

Get particles for compensation.

Look through the tagged vector for particles (which are not in the colour singlet cs) which can be used to compensate momentum when cs collapses into a hadron with mass mh. These partons are then copied into the new step so that their momentum can be changed and then returned.

void ThePEG::ClusterCollapser::persistentOutput ( PersistentOStream os  )  const

Function used to write out object persistently.

Parameters:
os the persistent output stream written to.

Reimplemented from ThePEG::Interfaced.

void ThePEG::ClusterCollapser::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 ThePEG::ClusterCollapser::clone (  )  const [protected, virtual]

Make a simple clone of this object.

Returns:
a pointer to the new object.

Implements ThePEG::InterfacedBase.

virtual IBPtr ThePEG::ClusterCollapser::fullclone (  )  const [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.


Member Data Documentation

Energy cut.

If the invariant mass of a cluster, minus the constituent masses of its partons is below this cut, it will be collapsed into one or two particles.

Definition at line 250 of file ClusterCollapser.h.

Referenced by cut().

How should we respond to errors? 0 means do nothing, ie.

the cluster will not be collapsed, or the momentum will not be consterved. Otherwise the severity will be what is defined in the class Exception.

Definition at line 272 of file ClusterCollapser.h.


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

Generated on Thu Apr 29 12:43:02 2010 for ThePEG by  doxygen 1.5.5