Herwig 7.3.0
|
Class for changing colour reconnections of partons. More...
#include <ColourReconnector.h>
Public Types | |
using | CluVecIt = ClusterVector::iterator |
![]() | |
enum | InitState |
![]() | |
typedef unsigned int | CounterType |
Public Member Functions | |
void | rearrange (ClusterVector &clusters) |
Does the colour rearrangement, starting out from the list of particles in the event record and the collection of "usual" clusters passed as arguments. | |
![]() | |
virtual bool | defaultInit () |
PPtr | getParticle (PID) const |
PDPtr | getParticleData (PID) const |
bool | used () const |
void | useMe () const |
tEGPtr | generator () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
PPtr | getParticle (PID) const |
PDPtr | getParticleData (PID) const |
bool | used () const |
void | useMe () const |
tEGPtr | generator () const |
![]() | |
string | fullName () const |
string | name () const |
string | path () const |
string | comment () const |
void | setup (istream &is) |
void | update () |
void | init () |
virtual bool | preInitialize () const |
void | initrun () |
void | finish () |
void | touch () |
void | reset () |
void | clear () |
InitState | state () const |
bool | locked () const |
bool | touched () const |
virtual IBPtr | fullclone () const |
void | persistentOutput (PersistentOStream &os) const |
void | persistentInput (PersistentIStream &is, int version) |
virtual void | debugme () const |
void | update () |
void | init () |
virtual bool | preInitialize () const |
void | initrun () |
void | finish () |
void | touch () |
void | reset () |
void | clear () |
InitState | state () const |
bool | locked () const |
bool | touched () const |
virtual IBPtr | fullclone () const |
![]() | |
void | debug () const |
virtual void | debugme () const |
![]() | |
CounterType | referenceCount () const |
![]() | |
Named (const string &newName=string()) | |
Named (const Named &)=default | |
const string & | name () const |
bool | operator== (const Named &other) const |
bool | operator< (const Named &other) const |
Private Member Functions | |
Energy2 | _clusterMassSum (const PVector &q, const PVector &aq) const |
PRIVATE MEMBER FUNCTIONS. | |
double | _displacement (tcPPtr p, tcPPtr q) const |
calculates the "euclidean" distance of two quarks in the rapdidity-phi plane @arguments p, q the two quarks | |
double | _displacementBaryonic (tcPPtr p1, tcPPtr p2, tcPPtr p3) const |
calculates the "euclidean" distance of a the 3 (anti)quarks (anti)baryonic cluster in the rapdidity-phi plane @arguments p, q the two quarks | |
bool | _containsColour8 (const ClusterVector &cv, const vector< size_t > &P) const |
Examines whether the cluster vector (under the given permutation of the antiquarks) contains colour-octet clusters. | |
void | _doRecoStatistical (ClusterVector &cv) const |
A Metropolis-type algorithm which finds a local minimum in the total sum of cluster masses @arguments cv cluster vector. | |
void | _doRecoPlain (ClusterVector &cv) const |
Plain colour reconnection as used in Herwig 2.5.0 @arguments cv cluster vector. | |
void | _doRecoBaryonic (ClusterVector &cv) const |
Baryonic Colour Reconnection model. | |
void | _doRecoBaryonicMesonic (ClusterVector &cv) const |
BaryonicMesonic colour reconnection model @arguments cv cluster vector BaryonicMesonic Colour Reconnection model with reconnections from mesonic clusters to baryonic cluster and the contrary. | |
void | _makeBaryonicClusters (ClusterPtr &c1, ClusterPtr &c2, ClusterPtr &c3, ClusterPtr &newcluster1, ClusterPtr &newcluster2) const |
CluVecIt | _findRecoPartner (CluVecIt cl, ClusterVector &cv) const |
Finds the cluster in cv which, if reconnected with the given cluster cl, would result in the smallest sum of cluster masses. | |
CluVecIt | _findPartnerRapidity (CluVecIt cl, ClusterVector &cv) const |
CluVecIt | _findPartnerBaryonic (CluVecIt cl, ClusterVector &cv, bool &tetraCand, const ClusterVector &a, CluVecIt &baryonic1, CluVecIt &baryonic2) const |
void | _findbestreconnectionoption (std::vector< CluVecIt > &cls, const unsigned &baryonic, string &kind_of_reco, int(&reco_info)[3]) const |
Finds best CR option for the BaryonicMesonic CR model @arguments cls vector of selected clusters, baryonic is the number of baryonic clusters in selection, kind_of_reco is output string denoting best CR option and reco_info is output storage for information on which (anti-)quarks to exchange and in which way. | |
pair< ClusterPtr, ClusterPtr > | _reconnect (ClusterPtr &c1, ClusterPtr &c2) const |
Reconnects the constituents of the given clusters to the (only) other possible cluster combination. | |
pair< ClusterPtr, ClusterPtr > | _reconnect2Bto2B (ClusterPtr &c1, ClusterPtr &c2, const int s1, const int s2) const |
Reconnects (2B->2B) the constituents of the given clusters to another possible cluster combination whose information is given in s1 and s2. | |
std::tuple< ClusterPtr, ClusterPtr, ClusterPtr > | _reconnectBbarBto3M (ClusterPtr &c1, ClusterPtr &c2, const int s0, const int s1, const int s2) const |
Reconnects (B,Bbar->3M) the constituents of the given clusters to another possible cluster combination whose information is given in s0, s1 and s2. | |
std::tuple< ClusterPtr, ClusterPtr, ClusterPtr > | _reconnect3Mto3M (ClusterPtr &c1, ClusterPtr &c2, ClusterPtr &c3, const int infos[3]) const |
Reconnects (3M->3M) the constituents of the given clusters to another possible cluster combination whose information is given in sinfos @arguments c1, c2 and c3 are mesonic clusters. | |
pair< ClusterPtr, ClusterPtr > | _reconnectMBtoMB (ClusterPtr &c1, ClusterPtr &c2, const int s0) const |
Reconnection method for a Baryonic and a Mesonic Cluster to a Baryonic and a Mesonic Cluster s0 is the Number of the (Anti)Patrticle of the Baryonic Cluster , which should be swapped with the Anti(Particle) of the Mesonic Cluster. | |
bool | _clustersFarApart (const std::vector< CluVecIt > &clu) const |
Methods for the BaryonicMesonic CR algorithm Find the best reconnection option for the respective cluster-combination. | |
void | _doReco2BeamClusters (ClusterVector &cv) const |
Does reconnect 2 beam clusters for BaryonicMesonic CR model if option CR2BeamClusters is enabled @arguments cv cluster vector. | |
void | _2Bto2BreconnectionFinder (ClusterPtr &c1, ClusterPtr &c2, int &bswap1, int &bswap2, double mindisplsum, string &kind_of_reco) const |
finds the best reconnection option and stores it in bswap1 and bswap2 (2B->2B colour reconnection) @arguments c1 and c2 cluster pointers and kind_of_reco will output the best found reconnection option for c1 and c2 | |
void | _BbarBto3MreconnectionFinder (ClusterPtr &c1, ClusterPtr &c2, int &mswap0, int &mswap1, int &mswap2, double min_displ_sum, string &kind_of_reco) const |
finds the best reconnection option and stores it in mswap0 mswap1 and mswap2 (BbarB->3M colour reconnection) @arguments c1 and c2 cluster pointers and kind_of_reco will output the best found reconnection option for c1 and c2 | |
void | _BMtoBMreconnectionfinder (ClusterPtr &c1, ClusterPtr &c2, int &swap, double min_displ_sum, string &kind_of_reco) const |
finds the best reconnection option and stores it in swap (BM->BM colour reconnection) @arguments c1 and c2 cluster pointers and kind_of_reco will output the best found reconnection option for c1 and c2 | |
void | _3MtoXreconnectionfinder (std::vector< CluVecIt > &cv, int &swap0, int &swap1, int &swap2, double min_displ_sum, string &kind_of_reco) const |
finds the best reconnection option and stores it in swap0, swap1 and swap2 (3M->{3M,BbarB} colour reconnection) @arguments c1 and c2 cluster pointers and kind_of_reco will output the best found reconnection option for c1 and c2 | |
pair< int, int > | _shuffle (const PVector &q, const PVector &aq, unsigned maxtries=10) const |
At random, swap two antiquarks, if not excluded by the constraint that there must not be any colour-octet clusters. | |
bool | _isColour8 (tcPPtr p, tcPPtr q) const |
Private Attributes | |
int | _algorithm = 0 |
DATA MEMBERS. | |
int | _clreco = 0 |
Do we do colour reconnections? | |
int | _debug = 0 |
Do we want debug informations? | |
int | _junctionMBCR = 1 |
Junction-like model for BaryonicMesonic model Do we want to use the junction-like model for computing the displacements of BaryonicMesonic model? otherwise pairwise distances are used. | |
double | _initTemp = 0.01 |
Statistical Reco: Factor used to determine the initial temperature according to InitialTemperature = _initTemp * median {energy changes in a few random rearrangements}. | |
double | _annealingFactor = 0.21 |
Statistical Reco: The annealing factor is the ratio of two successive temperature steps: T_n = annealingFactor * T(n-1) | |
unsigned int | _annealingSteps = 10 |
Statistical Reco: Number of temperature steps in the statistical annealing algorithm. | |
double | _triesPerStepFactor = 0.66 |
Statistical Reco: The number of tries per temperature steps is the number of clusters times this factor. | |
double | _preco = 0.5 |
Probability that a found reconnection possibility is actually accepted. | |
double | _precoBaryonic = 0.5 |
Probability that a found reconnection possibility is actually accepted. | |
double | _preco3M_3M = 0.5 |
Probability that a found reconnection possibility is actually accepted. | |
double | _preco3M_BBbar = 0.5 |
Probability that a found reconnection possibility is actually accepted. | |
double | _precoBbarB_3M = 0.5 |
Probability that a found reconnection possibility is actually accepted. | |
double | _preco2B_2B = 0.5 |
Probability that a found reconnection possibility is actually accepted. | |
double | _precoMB_MB = 0.5 |
Probability that a found reconnection possibility is actually accepted. | |
double | _stepFactor = 5.0 |
For the BaryonicMesonic algorithm How many times do suggest cluster for reconnection? n(reconnectionstries) = _stepFactor * n(clusters)*n(clusters);. | |
double | _mesonToBaryonFactor = 2.0 |
Factor for comparing mesonic clusters to baryonic clusters. | |
Length | _maxDistance = femtometer |
Maximium distance for reconnections TODO: remove if issues with anticausality are discussed and resolved. | |
unsigned int | _octetOption = 0 |
Option for handling octets. | |
int | _cr2BeamClusters = 0 |
Option for colour reconnecting 2 Beam Clusters if no others are present. | |
int | _prePlainCR = 0 |
Option for performing Plain colour reconnection before the Statistical, Baryonic or BaryonicMesonic algorithm is performed. | |
int | _localCR = 0 |
Option for colour reconnecting Clusters only if their vertex 3-distance is less than _maxDistance. | |
int | _causalCR = 0 |
Option for colour reconnecting Clusters only if their spacetime difference is bigger than 0. | |
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 void | Init () |
Standard Init function used to initialize the interfaces. | |
Clone Methods. | |
ColourReconnector & | operator= (const ColourReconnector &)=delete |
Private and non-existent assignment operator. | |
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. | |
Additional Inherited Members | |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
initializing | |
uninitialized | |
initialized | |
runready | |
![]() | |
const unsigned long | uniqueId |
![]() | |
void | reporeg (IBPtr object, string name) const |
bool | setDefaultReference (PtrT &ptr, string classname, string objectname) |
Interfaced (const string &newName) | |
Interfaced (const Interfaced &i) | |
void | setGenerator (tEGPtr generator) |
![]() | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinit () |
virtual void | doinitrun () |
virtual void | dofinish () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
virtual IBPtr | clone () const=0 |
InterfacedBase (string newName) | |
InterfacedBase (const InterfacedBase &i) | |
virtual void | readSetup (istream &is) |
virtual void | doupdate () |
virtual void | doinit () |
virtual void | doinitrun () |
virtual void | dofinish () |
virtual IVector | getReferences () |
virtual void | rebind (const TranslationMap &) |
![]() | |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
![]() | |
const Named & | operator= (const Named &other) |
const string & | name (const string &newName) |
![]() | |
static void | registerRepository (IBPtr) |
static void | registerRepository (IBPtr, string newName) |
Class for changing colour reconnections of partons.
This class does the nonperturbative colour rearrangement, after the nonperturbative gluon splitting and the "normal" cluster formation. It uses the list of particles in the event record, and the collections of "usual" clusters which is passed to the main method. If the colour reconnection is actually accepted, then the previous collections of "usual" clusters is first deleted and then the new one is created.
Definition at line 36 of file ColourReconnector.h.
using Herwig::ColourReconnector::CluVecIt = ClusterVector::iterator |
Definition at line 48 of file ColourReconnector.h.
|
private |
PRIVATE MEMBER FUNCTIONS.
Calculates the sum of the squared cluster masses. @arguments q, aq vectors containing the quarks and antiquarks respectively
|
private |
Methods for the BaryonicMesonic CR algorithm Find the best reconnection option for the respective cluster-combination.
veto for far apart clusters @arguments expects at most 3 CluVecIt in clu vector
|
private |
Examines whether the cluster vector (under the given permutation of the antiquarks) contains colour-octet clusters.
cv | Cluster vector |
P | Permutation, a vector of permutated indices from 0 to cv.size()-1 |
calculates the "euclidean" distance of two quarks in the rapdidity-phi plane @arguments p, q the two quarks
|
private |
calculates the "euclidean" distance of a the 3 (anti)quarks (anti)baryonic cluster in the rapdidity-phi plane @arguments p, q the two quarks
if Junction is disabled the difference of all distinct pairing of the 3 quarks is computed: \deltaR_ij = sqrt(\deltaY_ij^2 + \delta\phi_ij^2) \deltaR_tot = sum_{i,j<i} \deltaR_ij
NOTE: switch the Junction option will necessarily need to be combined with a change (or re-tune) of _mesonToBaryonFactor otherwise no well description is to be expected TODO: maybe add a different p-norm option to get more phenomenology
|
private |
BaryonicMesonic colour reconnection model @arguments cv cluster vector BaryonicMesonic Colour Reconnection model with reconnections from mesonic clusters to baryonic cluster and the contrary.
Allows also reconnection between mesonic and baryonic Clusters
|
private |
Finds best CR option for the BaryonicMesonic CR model @arguments cls vector of selected clusters, baryonic is the number of baryonic clusters in selection, kind_of_reco is output string denoting best CR option and reco_info is output storage for information on which (anti-)quarks to exchange and in which way.
BaryonicMesonic Colour Reconnection model with reconnections from mesonic clusters to baryonic cluster and the contrary. Allows also reconnection between mesonic and baryonic Clusters
|
private |
Finds the cluster in cv which, if reconnected with the given cluster cl, would result in the smallest sum of cluster masses.
If no reconnection partner can be found, a pointer to the original Cluster cl is returned. @arguments cv cluster vector cl cluster iterator (must be from cv) which wants to have a reconnection partner
|
private |
Reconnects the constituents of the given clusters to the (only) other possible cluster combination.
|
private |
Reconnects (2B->2B) the constituents of the given clusters to another possible cluster combination whose information is given in s1 and s2.
@arguments c1 and c2 are baryonic clusters and s1 and s2 are the respective indices of the constituents of c1 and c2 respectively
|
private |
Reconnects (3M->3M) the constituents of the given clusters to another possible cluster combination whose information is given in sinfos @arguments c1, c2 and c3 are mesonic clusters.
infos[3] are the respective indices which determine the CR
|
private |
Reconnects (B,Bbar->3M) the constituents of the given clusters to another possible cluster combination whose information is given in s0, s1 and s2.
@arguments c1 and c2 are baryonic clusters. s0, s1 and s2 are the respective indices which determine the CR
|
private |
Reconnection method for a Baryonic and a Mesonic Cluster to a Baryonic and a Mesonic Cluster s0 is the Number of the (Anti)Patrticle of the Baryonic Cluster , which should be swapped with the Anti(Particle) of the Mesonic Cluster.
Reconnects the constituents of the given clusters to another possible cluster combination whose information is given in s0. @arguments c1 and c2 are one baryonic and one mesonic cluster respectively and s0 is the respective index of the constituents of the baryonic cluster which is to be exchangeed with the mesonic cluster.
|
private |
At random, swap two antiquarks, if not excluded by the constraint that there must not be any colour-octet clusters.
@arguments q, aq vectors containing the quarks and antiquarks respectively maxtries maximal number of tries to find a non-colour-octet reconfiguration
|
protectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
|
protectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
void Herwig::ColourReconnector::persistentInput | ( | PersistentIStream & | is, |
int | version | ||
) |
Function used to read in object persistently.
is | the persistent input stream read from. |
version | the version number of the object when written. |
void Herwig::ColourReconnector::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
void Herwig::ColourReconnector::rearrange | ( | ClusterVector & | clusters | ) |
Does the colour rearrangement, starting out from the list of particles in the event record and the collection of "usual" clusters passed as arguments.
If the actual rearrangement is accepted, the initial collection of clusters is overridden by the old ones.
|
private |
DATA MEMBERS.
Specifies the colour reconnection algorithm to be used.
Definition at line 325 of file ColourReconnector.h.
|
private |
Statistical Reco: The annealing factor is the ratio of two successive temperature steps: T_n = annealingFactor * T(n-1)
Definition at line 365 of file ColourReconnector.h.
|
private |
Statistical Reco: Number of temperature steps in the statistical annealing algorithm.
Definition at line 371 of file ColourReconnector.h.
|
private |
Option for colour reconnecting Clusters only if their spacetime difference is bigger than 0.
Definition at line 480 of file ColourReconnector.h.
|
private |
Do we do colour reconnections?
Definition at line 330 of file ColourReconnector.h.
|
private |
Option for colour reconnecting 2 Beam Clusters if no others are present.
Definition at line 462 of file ColourReconnector.h.
|
private |
Do we want debug informations?
Definition at line 335 of file ColourReconnector.h.
|
private |
Statistical Reco: Factor used to determine the initial temperature according to InitialTemperature = _initTemp * median {energy changes in a few random rearrangements}.
Definition at line 358 of file ColourReconnector.h.
|
private |
Junction-like model for BaryonicMesonic model Do we want to use the junction-like model for computing the displacements of BaryonicMesonic model? otherwise pairwise distances are used.
If _junctionMBCR is activated the displacements are computed in the rapidity-Phi plane by difference to the average rapidity and phi: DeltaR_i^2 = (rapidity_i - meanRap)^2 + (phi_i - meanPhi)^2 DeltaR = sum_i DeltaR_i if _junctionMBCR=0 the displacements are computed: DeltaR_ij^2 = (rapidity_i - rapidity_j)^2 + (phi_i - phi_j)^2 DeltaR = sum_i,j<i DeltaR_ij
Definition at line 350 of file ColourReconnector.h.
|
private |
Option for colour reconnecting Clusters only if their vertex 3-distance is less than _maxDistance.
Definition at line 474 of file ColourReconnector.h.
|
private |
Maximium distance for reconnections TODO: remove if issues with anticausality are discussed and resolved.
Definition at line 446 of file ColourReconnector.h.
|
private |
Factor for comparing mesonic clusters to baryonic clusters.
Definition at line 440 of file ColourReconnector.h.
|
private |
Option for handling octets.
Definition at line 457 of file ColourReconnector.h.
|
private |
Probability that a found reconnection possibility is actually accepted.
used in Plain & Baryonic CR
Definition at line 384 of file ColourReconnector.h.
|
private |
Probability that a found reconnection possibility is actually accepted.
For reconnecting 2B -> 2B' or 2Bbar -> 2Bbar' used in BaryonicMesonic NOTE: if 0 this type of reconnection is not even tried
Definition at line 420 of file ColourReconnector.h.
|
private |
Probability that a found reconnection possibility is actually accepted.
For reconnecting 3M -> 3M' used in BaryonicMesonic NOTE: if 0 this type of reconnection is not even tried
Definition at line 398 of file ColourReconnector.h.
|
private |
Probability that a found reconnection possibility is actually accepted.
For reconnecting 3M -> B,Bbar used in BaryonicMesonic
Definition at line 405 of file ColourReconnector.h.
|
private |
Probability that a found reconnection possibility is actually accepted.
used in Baryonic CR
Definition at line 390 of file ColourReconnector.h.
|
private |
Probability that a found reconnection possibility is actually accepted.
For reconnecting Bbar,B -> 3M used in BaryonicMesonic
Definition at line 412 of file ColourReconnector.h.
|
private |
Probability that a found reconnection possibility is actually accepted.
For reconnecting M,B -> M',B' or M,Bbar -> M',Bbar' used in BaryonicMesonic NOTE: if 0 this type of reconnection is not even tried
Definition at line 428 of file ColourReconnector.h.
|
private |
Option for performing Plain colour reconnection before the Statistical, Baryonic or BaryonicMesonic algorithm is performed.
Definition at line 468 of file ColourReconnector.h.
|
private |
For the BaryonicMesonic algorithm How many times do suggest cluster for reconnection? n(reconnectionstries) = _stepFactor * n(clusters)*n(clusters);.
Definition at line 435 of file ColourReconnector.h.
|
private |
Statistical Reco: The number of tries per temperature steps is the number of clusters times this factor.
Definition at line 378 of file ColourReconnector.h.