This class describes a cluster object. More...
#include <Cluster.h>
Protected Member Functions | |
Clone Methods. | |
virtual PPtr | clone () const |
Make a simple clone of this object. | |
virtual PPtr | fullclone () const |
Make a clone of this object, possibly modifying the cloned object to make it sane. | |
Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Standard constructors and destructors. | |
struct | ClassTraits< Cluster > |
The ClassTraits<Cluster> class must be a friend to be able to use the private default constructor. | |
Cluster () | |
Default constructor. | |
Cluster (tcEventPDPtr) | |
Constructor with a particleData pointer. | |
Cluster (tPPtr part1, tPPtr part2, tPPtr part3=tPPtr()) | |
This creates a cluster from 2 (or 3) partons. | |
Cluster (const Particle &) | |
Also a constructor where a particle is given not a cluster. | |
unsigned int | numComponents () const |
Number of quark (diquark) constituents (normally two). | |
Energy | sumConstituentMasses () const |
Sum of the constituent masses of the components of the cluster. | |
tPPtr | particle (int i) const |
Returns the ith constituent. | |
tPPtr | particleB (int i) const |
Returns the ith original constituent. | |
tPPtr | colParticle (bool anti=false) const |
Returns the original constituent carrying colour. | |
tPPtr | antiColParticle () const |
Returns the original constituent carrying anticolour. | |
bool | isPerturbative (int) const |
Returns whether the ith constituent is from a perturbative process. | |
bool | isBeamRemnant (int) const |
Indicates whether the ith constituent is a beam remnant. | |
void | setBeamRemnant (int, bool) |
Sets whether the ith constituent is a beam remnant. | |
int | clusterId () const |
Returns the clusters id, not the same as the PDG id. | |
bool | isBeamCluster () const |
Returns true when a constituent is a beam remnant. | |
void | flagAsReshuffled () |
Set the pointer to the reshuffling partner cluster. | |
void | isBeamCluster (tPPtr part) |
Sets the component (if any) that points to "part" as a beam remnant. | |
bool | isAvailable () const |
Returns true if this cluster is to be handled by the hadronization. | |
void | isAvailable (bool inputAvailable) |
Sets the value of availability. | |
bool | isStatusInitial () const |
Return true if the cluster does not have cluster parent. | |
bool | isReadyToDecay () const |
Return true if the cluster does not have cluster children and it is not already decayed (i.e. | |
bool | isRedefined () const |
Return true if the cluster has one and only one cluster children and no hadron children: that means either that its three quarks or anti-quarks components have been redefined as two components (quark+diquark, or antiquark+antidiquark), or that the cluster has been used as a partner for the momentum reshuffling necessary to conserve energy-momentum when a light cluster is decayed into a single hadron (notice that this latter light cluster has isRedefined() false, because it has an hadron child). | |
bool | hasBeenReshuffled () const |
Return true when it has a reshuffling partner. | |
bool | isStatusFinal () const |
Return true if the cluster has hadron children. | |
static LorentzPoint | calculateX (tPPtr q1, tPPtr q2) |
Calculate the 4-position vector of the cluster Method made static so can be used in other places Displacement of the ith constituent given by momentum \(p_i\) vertex \(x_i\) and mass \(m_i\) is. | |
Input and output functions. | |
static ClassDescription< Cluster > | initCluster |
Describe an abstract base class with persistent data. | |
bool | _isAvailable |
Whether the cluster is hadronizing. | |
bool | _hasReshuffled |
Whether the cluster has been reshuffled. | |
ParticleVector | _component |
The constituent partons. | |
tParticleVector | _original |
The original components. | |
vector< bool > | _isBeamRemnant |
Whether a parton is a beam remnant. | |
vector< bool > | _isPerturbative |
Whether a parton is perturbative. | |
unsigned int | _numComp |
The number of constituents. | |
long | _id |
The id of this cluster. | |
void | persistentOutput (PersistentOStream &) const |
Standard function for writing to a persistent stream. | |
void | persistentInput (PersistentIStream &, int) |
Standard function for reading from a persistent stream. | |
Cluster & | operator= (const Cluster &)=delete |
Private and non-existent assignment operator. | |
void | calculateP () |
Calculate the 5-momentum vector of the cluster The 5-momentum of the cluster is given by. | |
bool | initPerturbative (tPPtr p) |
Determines whether constituent p is perturbative or not. | |
Additional Inherited Members | |
Public Types inherited from ThePEG::Pointer::ReferenceCounted | |
typedef unsigned int | CounterType |
Public Member Functions inherited from ThePEG::Particle | |
Particle (tcEventPDPtr newData) | |
Particle (const Particle &) | |
bool | decayed () const |
const ParticleVector & | children () const |
void | addChild (tPPtr c) |
void | abandonChild (tPPtr child) |
const tParticleVector & | parents () const |
tParticleSet | siblings () const |
void | undecay () |
void | decayMode (tDMPtr dm) |
tDMPtr | decayMode () const |
tPPtr | next () const |
tPPtr | previous () const |
tcPPtr | original () const |
tPPtr | original () |
tcPPtr | final () const |
tPPtr | final () |
tStepPtr | birthStep () const |
int | number () const |
int | status () const |
void | status (int n) |
const ParticleDataClass & | data () const |
tcEventPDPtr | dataPtr () const |
const string & | PDGName () const |
long | id () const |
const Lorentz5Momentum & | momentum () const |
void | set3Momentum (const Momentum3 &p) |
void | setMomentum (const LorentzMomentum &p) |
void | set5Momentum (const Lorentz5Momentum &p) |
Energy | mass () const |
Energy | nominalMass () const |
Energy2 | scale () const |
void | scale (Energy2 q2) |
Energy2 | vetoScale () const |
void | vetoScale (Energy2 q2) |
Energy2 | mt2 () const |
Energy | mt () const |
Energy2 | perpmass2 () const |
Energy | perpmass () const |
double | rapidity () const |
double | eta () const |
Energy | Pplus () const |
Energy | Pminus () const |
const LorentzPoint & | vertex () const |
LorentzPoint | labVertex () const |
LorentzPoint | decayVertex () const |
LorentzPoint | labDecayVertex () const |
const Lorentz5Distance & | lifeLength () const |
void | setVertex (const LorentzPoint &p) |
void | setLabVertex (const LorentzPoint &) |
void | setLifeLength (const Distance &d) |
void | setLifeLength (const LorentzDistance &d) |
void | setLifeLength (const Lorentz5Distance &d) |
Time | lifeTime () const |
void | transform (const LorentzRotation &r) |
void | boost (double bx, double by, double bz) |
void | boost (const Boost &b) |
void | rotateX (double a) |
void | rotateY (double a) |
void | rotateZ (double a) |
void | rotate (double a, const Axis &axis) |
void | mirror () |
void | deepTransform (const LorentzRotation &r) |
void | deepBoost (double bx, double by, double bz) |
void | deepBoost (const Boost &b) |
void | deepRotateX (double a) |
void | deepRotateY (double a) |
void | deepRotateZ (double a) |
void | deepRotate (double a, const Axis &axis) |
double | massError () const |
double | energyError () const |
double | rhoError () const |
void | rescaleEnergy () |
void | rescaleRho () |
void | rescaleMass () |
bool | hasColourInfo () const |
tColinePtr | antiColourLine () const |
tColinePtr | colourLine (bool anti=false) const |
bool | hasColourLine (tcColinePtr line, bool anti=false) const |
bool | hasAntiColourLine (tcColinePtr line) const |
bool | coloured () const |
bool | hasColour (bool anti=false) const |
bool | hasAntiColour () const |
tcCBPtr | colourInfo () const |
tCBPtr | colourInfo () |
void | colourInfo (tCBPtr c) |
std::iterator_traits< Iterator >::value_type | colourNeighbour (Iterator first, Iterator last, bool anti=false) const |
std::iterator_traits< Iterator >::value_type | antiColourNeighbour (Iterator first, Iterator last) const |
void | colourNeighbour (tPPtr, bool anti=false) |
void | antiColourNeighbour (tPPtr p) |
void | antiColourConnect (tPPtr neighbour) |
void | colourConnect (tPPtr neighbour, bool anti=false) |
tPPtr | incomingColour (bool anti=false) const |
tPPtr | incomingAntiColour () const |
void | incomingColour (tPPtr p, bool anti=false) |
void | incomingAntiColour (tPPtr p) |
tPPtr | outgoingColour (bool anti=false) const |
tPPtr | outgoingAntiColour () const |
void | outgoingColour (tPPtr, bool anti=false) |
void | outgoingAntiColour (tPPtr p) |
void | colourFlow (tPPtr child, bool anti=false) |
void | antiColourFlow (tPPtr child) |
void | resetColour () |
tcSpinPtr | spinInfo () const |
tSpinPtr | spinInfo () |
void | spinInfo (tSpinPtr s) |
const EIVector & | getInfo () const |
EIVector & | getInfo () |
bool | hasRep () const |
void | initFull () |
void | persistentOutput (PersistentOStream &) const |
void | persistentInput (PersistentIStream &, int) |
ostream & | print (ostream &os, tcStepPtr step=tcStepPtr()) const |
virtual void | debugme () const |
bool | decayed () const |
const ParticleVector & | children () const |
void | addChild (tPPtr c) |
void | abandonChild (tPPtr child) |
const tParticleVector & | parents () const |
tParticleSet | siblings () const |
void | undecay () |
void | decayMode (tDMPtr dm) |
tDMPtr | decayMode () const |
tPPtr | next () const |
tPPtr | previous () const |
tcPPtr | original () const |
tPPtr | original () |
tcPPtr | final () const |
tPPtr | final () |
tStepPtr | birthStep () const |
int | number () const |
int | status () const |
void | status (int n) |
const ParticleDataClass & | data () const |
tcEventPDPtr | dataPtr () const |
const string & | PDGName () const |
long | id () const |
const Lorentz5Momentum & | momentum () const |
void | set3Momentum (const Momentum3 &p) |
void | setMomentum (const LorentzMomentum &p) |
void | set5Momentum (const Lorentz5Momentum &p) |
Energy | mass () const |
Energy | nominalMass () const |
Energy2 | scale () const |
void | scale (Energy2 q2) |
Energy2 | vetoScale () const |
void | vetoScale (Energy2 q2) |
Energy2 | mt2 () const |
Energy | mt () const |
Energy2 | perpmass2 () const |
Energy | perpmass () const |
double | rapidity () const |
double | eta () const |
Energy | Pplus () const |
Energy | Pminus () const |
const LorentzPoint & | vertex () const |
LorentzPoint | labVertex () const |
LorentzPoint | decayVertex () const |
LorentzPoint | labDecayVertex () const |
const Lorentz5Distance & | lifeLength () const |
void | setVertex (const LorentzPoint &p) |
void | setLabVertex (const LorentzPoint &) |
void | setLifeLength (const Distance &d) |
void | setLifeLength (const LorentzDistance &d) |
void | setLifeLength (const Lorentz5Distance &d) |
Time | lifeTime () const |
void | transform (const LorentzRotation &r) |
void | boost (double bx, double by, double bz) |
void | boost (const Boost &b) |
void | rotateX (double a) |
void | rotateY (double a) |
void | rotateZ (double a) |
void | rotate (double a, const Axis &axis) |
void | mirror () |
void | deepTransform (const LorentzRotation &r) |
void | deepBoost (double bx, double by, double bz) |
void | deepBoost (const Boost &b) |
void | deepRotateX (double a) |
void | deepRotateY (double a) |
void | deepRotateZ (double a) |
void | deepRotate (double a, const Axis &axis) |
double | massError () const |
double | energyError () const |
double | rhoError () const |
void | rescaleEnergy () |
void | rescaleRho () |
void | rescaleMass () |
bool | hasColourInfo () const |
tColinePtr | antiColourLine () const |
tColinePtr | colourLine (bool anti=false) const |
bool | hasColourLine (tcColinePtr line, bool anti=false) const |
bool | hasAntiColourLine (tcColinePtr line) const |
bool | coloured () const |
bool | hasColour (bool anti=false) const |
bool | hasAntiColour () const |
tcCBPtr | colourInfo () const |
tCBPtr | colourInfo () |
void | colourInfo (tCBPtr c) |
std::iterator_traits< Iterator >::value_type | colourNeighbour (Iterator first, Iterator last, bool anti=false) const |
std::iterator_traits< Iterator >::value_type | antiColourNeighbour (Iterator first, Iterator last) const |
void | colourNeighbour (tPPtr, bool anti=false) |
void | antiColourNeighbour (tPPtr p) |
void | antiColourConnect (tPPtr neighbour) |
void | colourConnect (tPPtr neighbour, bool anti=false) |
tPPtr | incomingColour (bool anti=false) const |
tPPtr | incomingAntiColour () const |
void | incomingColour (tPPtr p, bool anti=false) |
void | incomingAntiColour (tPPtr p) |
tPPtr | outgoingColour (bool anti=false) const |
tPPtr | outgoingAntiColour () const |
void | outgoingColour (tPPtr, bool anti=false) |
void | outgoingAntiColour (tPPtr p) |
void | colourFlow (tPPtr child, bool anti=false) |
void | antiColourFlow (tPPtr child) |
void | resetColour () |
tcSpinPtr | spinInfo () const |
tSpinPtr | spinInfo () |
void | spinInfo (tSpinPtr s) |
const EIVector & | getInfo () const |
EIVector & | getInfo () |
bool | hasRep () const |
void | initFull () |
Public Member Functions inherited from ThePEG::Base | |
void | debug () const |
virtual void | debugme () const |
Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
CounterType | referenceCount () const |
Static Public Member Functions inherited from ThePEG::Particle | |
static void | PrintParticles (ostream &os, Iterator first, Iterator last, tcStepPtr step=tcStepPtr()) |
static void | PrintParticles (ostream &os, const Cont &c, tcStepPtr step=tcStepPtr()) |
static void | Init () |
Static Public Member Functions inherited from ThePEG::Base | |
static void | Init () |
Public Attributes inherited from ThePEG::Pointer::ReferenceCounted | |
const unsigned long | uniqueId |
Static Public Attributes inherited from ThePEG::Particle | |
static string | outputFormat |
This class describes a cluster object.
This class represents a cluster, which is a colour singlet made usually of two components (quark-antiquark, quark-diquark, antiquark-antidiquark) or rarely by three components (quark-quark-quark, antiquark-antiquark- antiquark). A reference to the container with the pointers to its Components is provided.
The class provides access to the pointers which point to:
Notice that in order to determine the cluster position from the positions of the components, the Cluster class needs some parameters. Because the Cluster class is neither interfaced nor persistent, a static pointer to the ClusterHadronizationHandler class instance, where the parameters are, is used. This static pointer is set via the method setPointerClusterHadHandler(), during the run initialization, doinitrun() of ClusterHadronizationHandler.
|
protected |
Default constructor.
Only used in PersistentIStream
|
private |
Calculate the 5-momentum vector of the cluster The 5-momentum of the cluster is given by.
\[ P = \sum_i p_i \]
and the mass of the cluster is \(m^2 = P^2\)
Calculate the 4-position vector of the cluster Method made static so can be used in other places Displacement of the ith constituent given by momentum \(p_i\) vertex \(x_i\) and mass \(m_i\) is.
\[ D_i = -C \log(r) \frac{p_i}{\sqrt{(p_i^2 - m_i^2)^2 + v^4}} \]
where \(r\) is a random number [0,1], \(v\) is the minimum virtuality and \(C\) is a conversion factor from GeV to millimeters. We can then find the difference in \(s\) factors as
\[ (s_1-s_2) = \frac{(\vec{p}_1 + \vec{p}_2) \cdot (\vec{x}_2 - \vec{x}_1)}{(\vec{p}_1 + \vec{p}_2) \cdot \vec{D}_1}. \]
if \(s_2>s_1\) then \(s_1 = 1.0\) otherwise \(s_2 = 1.0\). These are then used to determine the value of the clusters vertex as
\[ X = \frac{1}{2} ( x_1 +x_2 + s_1 D_1 + s_2 D_2). \]
|
protectedvirtual |
Make a simple clone of this object.
Reimplemented from ThePEG::Particle.
|
inline |
|
inline |
Set the pointer to the reshuffling partner cluster.
Definition at line 155 of file Cluster.h.
References _hasReshuffled.
|
protectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
|
inline |
Return true when it has a reshuffling partner.
Notice that a cluster can have hasBeenReshuffled() true but isRedefined() false: this is the case of a light cluster that decays into a single hadron.
Definition at line 212 of file Cluster.h.
References _hasReshuffled.
|
inline |
Returns true if this cluster is to be handled by the hadronization.
Definition at line 166 of file Cluster.h.
References _isAvailable.
|
inline |
|
inline |
Return true if the cluster does not have cluster children and it is not already decayed (i.e.
it does not have hadron children) (to be used only after the fission of heavy clusters).
Definition at line 186 of file Cluster.h.
References ThePEG::Particle::children().
|
inline |
Return true if the cluster has one and only one cluster children and no hadron children: that means either that its three quarks or anti-quarks components have been redefined as two components (quark+diquark, or antiquark+antidiquark), or that the cluster has been used as a partner for the momentum reshuffling necessary to conserve energy-momentum when a light cluster is decayed into a single hadron (notice that this latter light cluster has isRedefined() false, because it has an hadron child).
In both cases, the unique cluster children is the new redefined cluster. The two cases can be distinguish by the next method.
Definition at line 201 of file Cluster.h.
References ThePEG::Particle::children(), and ThePEG::ParticleID::Cluster.
|
inline |
Return true if the cluster does not have cluster parent.
Definition at line 178 of file Cluster.h.
References ThePEG::Particle::parents().
|
inline |
Energy Herwig::Cluster::sumConstituentMasses | ( | ) | const |
Sum of the constituent masses of the components of the cluster.
|
friend |
|
private |
|
private |
Whether the cluster has been reshuffled.
Definition at line 299 of file Cluster.h.
Referenced by flagAsReshuffled(), and hasBeenReshuffled().
|
private |
|
private |
Whether the cluster is hadronizing.
Definition at line 298 of file Cluster.h.
Referenced by isAvailable().
|
private |
|
private |
|
private |
The number of constituents.
Definition at line 304 of file Cluster.h.
Referenced by numComponents().
|
private |
|
staticprivate |