Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:38:27

0001 // -*- C++ -*-
0002 //
0003 // ColourLines.h is a part of ThePEG - Toolkit for HEP Event Generation
0004 // Copyright (C) 1999-2019 Leif Lonnblad
0005 //
0006 // ThePEG 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 ThePEG_ColourLines_H
0010 #define ThePEG_ColourLines_H
0011 // This is the declaration of the ColourLines class.
0012 
0013 #include "ThePEG/Config/ThePEG.h"
0014 
0015 namespace ThePEG {
0016 
0017 /**
0018  * The ColourLines class defines the colour flow in a SubProcess. It
0019  * defines a number of colour lines and specifies which particles are
0020  * connected to them.
0021  * 
0022  */
0023 class ColourLines: public Base {
0024 
0025 public:
0026 
0027   /** A single colour line */
0028   typedef vector<pair<int,int> > Line;
0029   /** A vector of colour lines. */
0030   typedef vector<Line> LineVector;
0031   /** A vector of <code>ColourLine</code>. */
0032   typedef vector<ColinePtr> Vertex;
0033   /** A vector of vertices. */
0034   typedef vector<Vertex> VertexVector;
0035 
0036 public:
0037 
0038   /** @name Standard constructors and destructors. */
0039   //@{
0040   /**
0041    * Default constructor.
0042    */
0043   ColourLines() {}
0044 
0045   /**
0046    * The standard constructor. The string \a s should contain a
0047    * comma-separated sequence of integers. Each sequence of numbers
0048    * indicates a colour line and the integer represents a parton
0049    * connected to it. If the integer is negative, it means that the
0050    * line is the corresponding partons anti-colour. Note that the
0051    * partons are numbered from 1: The first spacelike particle is 1, the second
0052    * is 2 and the internal time-like and outgoing are numbered after all
0053    * the spacelike particles.
0054    */
0055   ColourLines(string s);
0056   //@}
0057 
0058   /** 
0059    * Reset this ColourLines object. The string \a s should contain a 
0060    * comma-separated sequence of integers. Each sequence of numbers 
0061    * indicates a colour line and the integer represents a parton 
0062    * connected to it. If the integer is negative, it means that the 
0063    * line is the corresponding partons anti-colour. Note that the 
0064    * partons are numbered from 1: The first incoming is 1, the second 
0065    * is 2 and the internal and outgoing are numbered 3 and upwards. 
0066    */ 
0067   void reset(string s); 
0068 
0069 public:
0070 
0071   /**
0072    * Create the corresponding <code>ColourLine</code>s and connect the
0073    * given \a partons. The partons are assumed to be in the same order
0074    * as the numbers specified in the constructor.
0075    */
0076  void connect(const tPVector & partons) const;
0077 
0078 private:
0079 
0080   /**
0081    * The vector of colour lines.
0082    */
0083   LineVector theLines;
0084 
0085 };
0086 
0087 }
0088 
0089 #endif /* ThePEG_ColourLines_H */