9 #ifndef ThePEG_ClusterCollapser_H
10 #define ThePEG_ClusterCollapser_H
13 #include "ThePEG/Handlers/StepHandler.h"
14 #include "ThePEG/Handlers/FlavourGenerator.h"
15 #include "ThePEG/EventRecord/ColourSinglet.h"
16 #include "ClusterCollapser.fh"
234 class ClusterException:
public Exception {
238 theMessage <<
"In ClusterCollapser '" << cc.
name() <<
"': ";
306 struct BaseClassTrait<ClusterCollapser,1>:
public ClassTraitsType {
317 struct ClassTraits<ClusterCollapser>:
318 public ClassTraitsBase<ClusterCollapser> {
322 static string className() {
return "ThePEG::ClusterCollapser"; }
pair< tcPDPtr, tcPDPtr > tcPDPair
A pair of transient pointers to const ParticleData objects.
PersistentIStream is used to read persistent objects from a stream where they were previously written...
tStepPtr newStep()
Return a pointer to a new step.
The EventHandler is the base class used to implement event handlers in ThePEG.
double pStrange
The relative probability to produce a s-sbar pair in a split as compared to a u-ubar or d-dbar pair...
int theNTry2
The number of attempts to collapse a cluster into two particles, before it is collapsed into one part...
multimap< Energy, ColourSinglet > SingletMap
Declare a multimap of singlets indexed by their mass.
Exception::Severity errorlevel
How should we respond to errors? 0 means do nothing, ie.
virtual tcPDPtr getHadron(const ColourSinglet &cs) const
Return a hadron into which the given cluster may collapse.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
virtual ~ClusterCollapser()
The destructor.
string name() const
Returns the name of this object, without the path.
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
Energy cut() const
If the invariant mass of a cluster, minus the constituent masses of its partons is below this cut...
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Ptr< FlavourGenerator >::pointer FlavGenPtr
Declare a pointer to a FlavourGenerator object.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
static bool diDiQuark(const ColourSinglet &cs)
Returns true iff the given singlet contains one string piece with diquarks in both ends...
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
This is the main namespace within which all identifiers in ThePEG are declared.
virtual tcPDPair getHadrons(const ColourSinglet &cs) const
Return a pair of hadrons into which the given cluster may collapse.
virtual void handle(EventHandler &eh, const tPVector &tagged, const Hint &hint)
The main function called by the EventHandler class to perform a step.
static void insert(SingletMap &mmap, const ColourSinglet &cl)
Insert a ColourSinglet object in a SingletMap.
FlavGenPtr flavGen
The flavour generator object to use to combine quarks and diqurks into hadrons.
StepHandler is the base class for implementing any model for a step in the event generation chain...
static void Init()
Standard Init function used to initialize the interfaces.
ClusterCollapser is a general StepHandler which can be called anywhere in the event generation (typic...
Energy theEnergyCut
Energy cut.
QTY< 0, 1, 0 >::Type Energy
Energy.
virtual tcPDPtr pickFlavour() const
Pick a random flavour.
Hint is a base class to be used to pass information between StepHandler s, which cannot be convayed t...
A ColourSinglet object represents a set of colour-connected partons in a total colour-singlet state...
Severity
The levels of severity.
RCPtr is a reference counted (smart) pointer.
static ClassDescription< ClusterCollapser > initClusterCollapser
Describe a concrete class with persistent data.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
static Energy mass(const ColourSinglet &cl)
Return the invariant mass of a cluster minus the constituent masses of its partons.
Exception is the base class for all exceptions to be used in ThePEG.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual IBPtr clone() const
Make a simple clone of this object.
static bool diQuarkJunction(const ColourSinglet &cs)
Returns true iff the given singlet contains a junction and at least one diquark.
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 of...
Ptr is a templated class to provide typedefs for pointers types ThePEG should use for a given type...
ClusterCollapser()
The default constructor.
virtual vector< ColourSinglet > collapse(tPVector tagged, tStepPtr newstep)
Perform all necessary collapses.
int nTry2() const
The number of attempts to collapse a cluster into two particles, before it is collapsed into one part...
static string className()
Return the name of class T.
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
virtual SingletMap getSinglets(const tPVector &tagged) const
Go through the tagged partons and extract all colour singlet combination of partons.
ClusterCollapser & operator=(const ClusterCollapser &)
Private and non-existent assignment operator.
vector< tPPtr > tPVector
A vector of transient pointers to Particle objects.
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 colo...
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.