Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:24:25

0001 // -*- C++ -*-
0002 //
0003 // DipolePartonSplitter.h is a part of Herwig - A multi-purpose Monte Carlo event generator
0004 // Copyright (C) 2002-2019 The Herwig Collaboration
0005 //
0006 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
0008 //
0009 #ifndef HERWIG_DipolePartonSplitter_H
0010 #define HERWIG_DipolePartonSplitter_H
0011 //
0012 // This is the declaration of the DipolePartonSplitter class.
0013 //
0014 
0015 #include "ThePEG/EventRecord/Particle.fh"
0016 
0017 namespace Herwig {
0018 
0019 using namespace ThePEG;
0020 
0021 /**
0022  * \ingroup DipoleShower
0023  * \author Simon Platzer
0024  * 
0025  * \brief The DipolePartonSplitter is a helper class to fix up
0026  * colour and mother-child relations in typical shower
0027  * splittings.
0028  *
0029  */
0030 struct DipolePartonSplitter {
0031 
0032   /**
0033    * Fix up mother child relations for splitting the first
0034    * to the second and third parton; use conventions
0035    * of a backward splitting, if initialState is true.
0036    * In this case, the first child is assumed to be the
0037    * new incoming parton.
0038    */
0039   static void split(tPPtr parent, tPPtr firstChild, tPPtr secondChild, 
0040             bool initialState, bool decayedEmitter=false);
0041 
0042   /**
0043    * Fix up relations for splitting the first
0044    * to the second and third parton; use conventions
0045    * of a backward splitting, if initialState is true.
0046    * In this case, the first child is assumed to be the
0047    * new incoming parton. A reference is given to
0048    * determine which colour line did actually radiate
0049    * in case of ambiguities, in the sense that the
0050    * colour connected parent-ref pair raidated as a dipole.
0051    */
0052   static void split(tPPtr parent, tPPtr firstChild, tPPtr secondChild, 
0053             tPPtr ref, bool initialState, bool decayedEmitter=false);
0054 
0055   /**
0056    * Fix up relations for the case that
0057    * the new parton instance exists only
0058    * due to changes in e.g. kinematics.
0059    */
0060   static void change(tPPtr parent, tPPtr child, bool initialState, bool decayedSpec=false);
0061 
0062   /**
0063    * Return true, if the given partons are colour connected.
0064    */
0065   static bool colourConnected(tcPPtr first, tcPPtr second);
0066 
0067 };
0068 
0069 }
0070 
0071 #endif /* HERWIG_DipolePartonSplitter_H */