ThePEG  1.8.0
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes
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:
Inheritance graph
[legend]

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.
- Public Member Functions inherited from ThePEG::StepHandler
virtual ~StepHandler ()
 The destructor.
tEHPtr eventHandler () const
 Get a pointer to the EventHandler which made the last call to handle().
void eventHandler (tEHPtr)
 Set a pointer to the EventHandler which made the last call to handle().
tStepPtr newStep ()
 Return a pointer to a new step.
tStepPtr currentStep ()
 If a new step has been created, return it, otherwise return the current step from the eventHandler().

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 Member Functions inherited from ThePEG::StepHandler
void createNewStep ()
 Use the collision handler to create a new step.

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 IBPtr ThePEG::ClusterCollapser::clone ( ) const
protectedvirtual

Make a simple clone of this object.

Returns:
a pointer to the new object.

Implements ThePEG::InterfacedBase.

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

Perform all necessary collapses.

Return the uncollapsed clusters.

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

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
protectedvirtual

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

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 tPVector ThePEG::ClusterCollapser::getCompensators ( Energy  mh,
const ColourSinglet cs,
const tPVector tagged,
tStepPtr  newStep 
) const
protectedvirtual

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.

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 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:
ehthe EventHandler in charge of the Event generation.
taggedif not empty these are the only particles which should be considered by the StepHandler.
hinta Hint object with possible information from previously performed steps.
Exceptions:
Vetoif the StepHandler requires the current step to be discarded.
Stopif the generation of the current Event should be stopped after this call.
Exceptionif something goes wrong.

Implements ThePEG::StepHandler.

void ThePEG::ClusterCollapser::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

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

Reimplemented from ThePEG::Interfaced.

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

Function used to write out object persistently.

Parameters:
osthe persistent output stream written to.

Reimplemented from ThePEG::Interfaced.

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

Pick a random flavour.

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


Member Data Documentation

Exception::Severity ThePEG::ClusterCollapser::errorlevel
protected

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.

Energy ThePEG::ClusterCollapser::theEnergyCut
private

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().


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