herwig is hosted by Hepforge, IPPP Durham
Herwig  7.1.5
ShowerConfig.h
1 // -*- C++ -*-
2 //
3 // ShowerConfig.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2017 The Herwig Collaboration
5 //
6 // Herwig is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef HERWIG_ShowerConfig_H
10 #define HERWIG_ShowerConfig_H
11 //
12 // This is the declaration of the ShowerConfig class.
13 
14 #include "ThePEG/Config/ThePEG.h"
15 #include "ThePEG/PDT/ParticleData.h"
16 #include "Herwig/Shower/Core/Base/ShowerParticle.fh"
17 #include "Herwig/Shower/Core/Base/SudakovFormFactor.fh"
18 #include "ThePEG/Persistency/PersistentOStream.h"
19 #include "ThePEG/Persistency/PersistentIStream.h"
20 #include "ShowerInteraction.h"
21 
22 namespace Herwig {
23 using namespace ThePEG;
24 
34  typedef Ptr<ThePEG::ColourLine>::pointer ColinePtr;
35 
39  typedef Ptr<ThePEG::ColourLine>::transient_pointer tColinePtr;
40 
44  typedef pair<ColinePtr,ColinePtr> ColinePair;
45 
49  typedef pair<tColinePtr,tColinePtr> tColinePair;
50 
54  typedef vector<ShowerParticlePtr> ShowerParticleVector;
55 
59  typedef vector<tShowerParticlePtr> tShowerParticleVector;
60 
64  typedef vector<tcPDPtr> IdList;
65 
66  inline ShowerInteraction convertInteraction(ShowerPartnerType partner) {
67  if (partner==ShowerPartnerType::QCDColourLine ||
68  partner==ShowerPartnerType::QCDAntiColourLine)
69  return ShowerInteraction::QCD;
70  else if (partner==ShowerPartnerType::QED)
71  return ShowerInteraction::QED;
72  else
73  return ShowerInteraction::UNDEFINED;
74  }
75 
80 
85 
89  BranchingElement(SudakovPtr sud, IdList part);
90 
95 
99  SudakovPtr sudakov;
100 
104  IdList particles;
105 
110 
114  bool operator == (const BranchingElement& x) const{
115  return
116  sudakov == x.sudakov &&
117  particles == x.particles &&
118  conjugateParticles == x.conjugateParticles;
119  }
120  };
121 
125  typedef multimap<long,BranchingElement> BranchingList;
126 
130  typedef pair<long, BranchingElement> BranchingInsert;
131 
132 }
133 
134 namespace ThePEG {
135 
140  const Herwig::BranchingElement & x);
141 
145  PersistentIStream & operator >> (PersistentIStream & is,
147 
148 }
149 
150 #endif // HERWIG_ShowerConfig_H
151 
Ptr< ThePEG::ColourLine >::transient_pointer tColinePtr
Transient Pointer to a ColourLine.
Definition: ShowerConfig.h:39
typedef to pair the SudakovFormFactor and the particles in a branching
Definition: ShowerConfig.h:79
pair< tColinePtr, tColinePtr > tColinePair
A pair of transient ColourLine pointers.
Definition: ShowerConfig.h:49
vector< ShowerParticlePtr > ShowerParticleVector
A Vector of ShowerParticle pointers.
Definition: ShowerConfig.h:54
ShowerPartnerType
Enum for the type of shower partner.
ShowerInteraction
Handy header file to be included in all Shower classes.
Ptr< ThePEG::ColourLine >::pointer ColinePtr
Handy header file to be included in all Shower classes.
Definition: ShowerConfig.h:34
pair< long, BranchingElement > BranchingInsert
typedef to create a structure which can be inserted into a BranchingList
Definition: ShowerConfig.h:130
bool operator==(const HPDiagram &x, const HPDiagram &y)
Test whether two diagrams are identical.
Definition: HPDiagram.h:98
IdList conjugateParticles
Access to the charge conjugate particles.
Definition: ShowerConfig.h:109
multimap< long, BranchingElement > BranchingList
typedef to pair the PDG code of the particle and the BranchingElement
Definition: ShowerConfig.h:125
vector< tcPDPtr > IdList
Definition of the IdList for branchings.
Definition: ShowerConfig.h:64
ostream & operator<<(ostream &, const DecayIntegrator &)
Output information on the DecayIntegrator for debugging purposes.
pair< ColinePtr, ColinePtr > ColinePair
A pair of ColourLine pointers.
Definition: ShowerConfig.h:44
IdList particles
Access to the particles.
Definition: ShowerConfig.h:104
SudakovPtr sudakov
Access to the Sudakov.
Definition: ShowerConfig.h:99
vector< tShowerParticlePtr > tShowerParticleVector
A Vector of transient ShowerParticle pointers.
Definition: ShowerConfig.h:59
-*- C++ -*-