herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
DipoleIOperator.h
1 // -*- C++ -*-
2 //
3 // DipoleIOperator.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4 // Copyright (C) 2002-2019 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_DipoleIOperator_H
10 #define HERWIG_DipoleIOperator_H
11 //
12 // This is the declaration of the DipoleIOperator class.
13 //
14 
15 #include "Herwig/MatrixElement/Matchbox/InsertionOperators/MatchboxInsertionOperator.h"
16 #include "Herwig/MatrixElement/Matchbox/Base/MatchboxMEBase.h"
17 
18 namespace Herwig {
19 
20 using namespace ThePEG;
21 
31 
32 public:
33 
40 
44  virtual ~DipoleIOperator();
46 
47 public:
48 
53  virtual void setXComb(tStdXCombPtr xc);
54 
58  virtual void setAlpha (double alpha)const;
59 
64  virtual bool apply(const cPDVector&) const;
65 
70  bool apply(tcPDPtr) const;
71 
76  vector<int> NLightJetVec() const;
77 
82  vector<int> NHeavyJetVec() const;
83 
88  vector<int> NLightBornVec() const;
89 
94  vector<int> NHeavyBornVec() const;
95 
100  vector<int> NLightProtonVec() const;
101 
107  virtual double me2() const;
108 
112  virtual double oneLoopDoublePole() const;
113 
117  virtual double oneLoopSinglePole() const;
118 
119 public:
120 
127  void persistentOutput(PersistentOStream & os) const;
128 
134  void persistentInput(PersistentIStream & is, int version);
136 
143  static void Init();
144 
145 protected:
146 
153  virtual IBPtr clone() const;
154 
159  virtual IBPtr fullclone() const;
161 
162 private:
163 
167  double CA;
168 
172  double CF;
173 
177  double gammaQuark;
178 
182  double gammaGluon;
183 
187  double betaZero;
188 
192  mutable double KQuark;
193 
197  mutable double KGluon;
198 
199 private:
200 
205  DipoleIOperator & operator=(const DipoleIOperator &) = delete;
206 
207 };
208 
209 }
210 
211 #endif /* HERWIG_DipoleIOperator_H */
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
DipoleIOperator implements the I() insertion operator.
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
vector< cPDPtr > cPDVector
MatchboxInsertionOperator is the base class for insertion operators.
-*- C++ -*-