Page MenuHomeHEPForge

No OneTemporary

diff --git a/Models/Leptoquarks/LeptoquarkModel.cc b/Models/Leptoquarks/LeptoquarkModel.cc
new file mode 100644
--- /dev/null
+++ b/Models/Leptoquarks/LeptoquarkModel.cc
@@ -0,0 +1,214 @@
+
+// -*- C++ -*-
+//
+// This is the implementation of the non-inlined, non-templated member
+// functions of the LeptoquarkModel class.
+//
+
+#include "LeptoquarkModel.h"
+#include "ThePEG/Interface/ClassDocumentation.h"
+#include "ThePEG/Interface/Parameter.h"
+#include "ThePEG/Interface/Reference.h"
+#include "ThePEG/Persistency/PersistentOStream.h"
+#include "ThePEG/Persistency/PersistentIStream.h"
+
+using namespace Herwig;
+using namespace ThePEG;
+using namespace ThePEG::Helicity;
+
+void LeptoquarkModel::doinit() {
+ addVertex(_theSLQSLQGVertex);
+ addVertex(_theSLQSLQGGVertex);
+ addVertex(_theSLQFFVertex);
+
+ StandardModel::doinit();
+}
+
+LeptoquarkModel::LeptoquarkModel() : _CouplFF(0.312), _leftcoup(1.0), _rightcoup(1.0), _rightcouptilde(1.0), _leftcoup1(1.0) , _leftcoup12(1.0), _rightcoup12(1.0), _leftcoup12t(1.0), _dleftcoup(1.0), _drightcoup(1.0), _drightcouptilde(1.0), _dleftcoup1(1.0) , _dleftcoup12(1.0), _drightcoup12(1.0), _dleftcoup12t(1.0), _derivscalef(500.0) {}
+
+LeptoquarkModel::~LeptoquarkModel() {}
+
+IBPtr LeptoquarkModel::clone() const {
+ return new_ptr(*this);
+}
+IBPtr LeptoquarkModel::fullclone() const {
+ return new_ptr(*this);
+}
+
+
+// If needed, insert default implementations of virtual function defined
+// in the InterfacedBase class here (using ThePEG-interfaced-impl in Emacs).
+
+
+void LeptoquarkModel::persistentOutput(PersistentOStream & os) const {
+ os << _theSLQSLQGGVertex
+ << _theSLQSLQGVertex
+ << _theSLQFFVertex
+ << _CouplFF
+ << _leftcoup
+ << _rightcoup
+ << _leftcoup1
+ << _rightcouptilde
+ << _leftcoup12
+ << _rightcoup12
+ << _leftcoup12t
+ << _dleftcoup
+ << _drightcoup
+ << _dleftcoup1
+ << _drightcouptilde
+ << _dleftcoup12
+ << _drightcoup12
+ << _dleftcoup12t
+ << _derivscalef;
+
+
+
+}
+
+void LeptoquarkModel::persistentInput(PersistentIStream & is, int) {
+ is >> _theSLQSLQGGVertex
+ >> _theSLQSLQGVertex
+ >> _theSLQFFVertex
+ >> _CouplFF
+ >> _leftcoup
+ >> _rightcoup
+ >> _leftcoup1
+ >> _rightcouptilde
+ >> _leftcoup12
+ >> _rightcoup12
+ >> _leftcoup12t
+ >> _dleftcoup
+ >> _drightcoup
+ >> _dleftcoup1
+ >> _drightcouptilde
+ >> _dleftcoup12
+ >> _drightcoup12
+ >> _dleftcoup12t
+ >> _derivscalef;
+
+
+}
+
+ClassDescription<LeptoquarkModel> LeptoquarkModel::initLeptoquarkModel;
+// Definition of the static class description member.
+
+void LeptoquarkModel::Init() {
+
+ static Reference<LeptoquarkModel,ThePEG::Helicity::AbstractVSSVertex> interfaceVertexSLQSLQG
+ ("Vertex/SLQSLQG",
+ "Reference to the scalar leptoquark-scalar leptoquark-gluon vertex",
+ &LeptoquarkModel::_theSLQSLQGVertex, false, false, true, false, false);
+
+ static Reference<LeptoquarkModel,ThePEG::Helicity::AbstractVVSSVertex> interfaceVertexSLQSLQGG
+ ("Vertex/SLQSLQGG",
+ "Reference to the scalar leptoquark-scalar leptoquark-gluon-gluon vertex",
+ &LeptoquarkModel::_theSLQSLQGGVertex, false, false, true, false, false);
+
+ static Reference<LeptoquarkModel,ThePEG::Helicity::AbstractFFSVertex> interfaceVertexSLQFF
+ ("Vertex/SLQFF",
+ "Reference to the scalar leptoquark-scalar-quark-lepton",
+ &LeptoquarkModel::_theSLQFFVertex, false, false, true, false, false);
+
+ static Parameter<LeptoquarkModel, double> interfaceLQCoupling
+ ("LQCoupling",
+ "The overall Leptoquark Coupling",
+ &LeptoquarkModel::_CouplFF, 0.312, 0., 10.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfacegLQ_L
+ ("g_S0_L",
+ "The leptoquark S0 coupling LQ-lepton_left-quark_right",
+ &LeptoquarkModel::_leftcoup, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfacegLQ_R
+ ("g_S0_R",
+ "The leptoquark S0 coupling LQ-lepton_right-quark_left",
+ &LeptoquarkModel::_rightcoup, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfacegLQ_Rt
+ ("g_S0t_R",
+ "The leptoquark ~S0 coupling LQ-lepton_right-quark_left",
+ &LeptoquarkModel::_rightcouptilde, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfacegLQ_L1
+ ("g_S1_L",
+ "The leptoquark S1 coupling LQ-lepton_left-quark_right",
+ &LeptoquarkModel::_leftcoup1, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfacegLQ12_L
+ ("g_S12_L",
+ "The leptoquark S1/2 coupling LQ-lepton_left-quark_right",
+ &LeptoquarkModel::_leftcoup12, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfacegLQ12_R
+ ("g_S12_R",
+ "The leptoquark S1/2 coupling LQ-lepton_right-quark_left",
+ &LeptoquarkModel::_rightcoup12, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfacegLQ12t_L
+ ("g_S12t_L",
+ "The leptoquark ~S1/2 coupling LQ-lepton_left-quark_right",
+ &LeptoquarkModel::_leftcoup12t, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+
+ static Parameter<LeptoquarkModel, double> interfacegdLQ_L
+ ("g_dS0_L",
+ "The leptoquark dS0 coupling LQ-lepton_left-quark_right",
+ &LeptoquarkModel::_dleftcoup, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfacegdLQ_R
+ ("g_dS0_R",
+ "The leptoquark dS0 coupling LQ-lepton_right-quark_left",
+ &LeptoquarkModel::_drightcoup, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfacegdLQ_Rt
+ ("g_dS0t_R",
+ "The leptoquark ~dS0 coupling LQ-lepton_right-quark_left",
+ &LeptoquarkModel::_drightcouptilde, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfacegdLQ_L1
+ ("g_dS1_L",
+ "The leptoquark dS1 coupling LQ-lepton_left-quark_right",
+ &LeptoquarkModel::_dleftcoup1, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfacegdLQ12_L
+ ("g_dS12_L",
+ "The leptoquark dS1/2 coupling LQ-lepton_left-quark_right",
+ &LeptoquarkModel::_dleftcoup12, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfacegdLQ12_R
+ ("g_dS12_R",
+ "The leptoquark dS1/2 coupling LQ-lepton_right-quark_left",
+ &LeptoquarkModel::_drightcoup12, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfacegdLQ12t_L
+ ("g_dS12t_L",
+ "The leptoquark ~dS1/2 coupling LQ-lepton_left-quark_right",
+ &LeptoquarkModel::_dleftcoup12t, 1.0, 0., 1.0,
+ false, false, Interface::limited);
+
+ static Parameter<LeptoquarkModel, double> interfaceDerivativeScale
+ ("derivscale",
+ "The suppression scale for the derivatively coupled leptoquarks",
+ &LeptoquarkModel::_derivscalef, 500.0, 0., 10000.0,
+ false, false, Interface::limited);
+
+
+ static ClassDocumentation<LeptoquarkModel> documentation
+ ("There is no documentation for the LeptoquarkModel class");
+
+}
+
diff --git a/Models/Leptoquarks/LeptoquarkModel.fh b/Models/Leptoquarks/LeptoquarkModel.fh
new file mode 100644
--- /dev/null
+++ b/Models/Leptoquarks/LeptoquarkModel.fh
@@ -0,0 +1,22 @@
+// -*- C++ -*-
+//
+// This is the forward declaration of the HwLeptoquarkModel class.
+//
+#ifndef HERWIG_HwLeptoquarkModel_FH
+#define HERWIG_HwLeptoquarkModel_FH
+
+#include "ThePEG/Config/Pointers.h"
+
+namespace Herwig {
+
+class LeptoquarkModel;
+
+}
+
+namespace ThePEG {
+
+ThePEG_DECLARE_POINTERS(Herwig::LeptoquarkModel,HwLeptoquarkPtr);
+
+}
+
+#endif
diff --git a/Models/Leptoquarks/LeptoquarkModel.h b/Models/Leptoquarks/LeptoquarkModel.h
new file mode 100644
--- /dev/null
+++ b/Models/Leptoquarks/LeptoquarkModel.h
@@ -0,0 +1,367 @@
+// -*- C++ -*-
+#ifndef HERWIG_LeptoquarkModel_H
+#define HERWIG_LeptoquarkModel_H
+//
+// This is the declaration of the LeptoquarkModel class.
+//
+
+#include "Herwig++/Models/StandardModel/StandardModel.h"
+#include "ThePEG/Helicity/Vertex/AbstractVSSVertex.h"
+#include "ThePEG/Helicity/Vertex/AbstractVVSSVertex.h"
+#include "LeptoquarkModel.fh"
+
+namespace Herwig {
+
+using namespace ThePEG;
+using namespace ThePEG::Helicity;
+
+/**
+ * Here is the documentation of the LeptoquarkModel class.
+ *
+ * @see \ref LeptoquarkModelInterfaces "The interfaces"
+ * defined for LeptoquarkModel.
+ */
+class LeptoquarkModel: public StandardModel {
+
+public:
+
+ /** @name Standard constructors and destructors. */
+ //@{
+ /**
+ * The default constructor.
+ */
+ LeptoquarkModel();
+
+ /** @name Vertices */
+ //@{
+ /**
+ * Pointer to the object handling S0S0barg vertex.
+ */
+ tAbstractVSSVertexPtr vertexSLQSLQG() const {return _theSLQSLQGVertex;}
+
+ /**
+ * Pointer to the object handling the S0S0bargg vertex.
+ */
+ tAbstractVVSSVertexPtr vertexSLQSLQGG() const {return _theSLQSLQGGVertex;}
+
+ /**
+ * Pointer to the object handling the S0ql vertex.
+ */
+ tAbstractFFSVertexPtr vertexSLQFF() const {return _theSLQFFVertex;}
+
+
+
+
+
+ /**
+ * The destructor.
+ */
+ virtual ~LeptoquarkModel();
+ //@}
+
+public:
+
+ /** @name Functions used by the persistent I/O system. */
+ //@{
+ /**
+ * Function used to write out object persistently.
+ * @param os the persistent output stream written to.
+ */
+ void persistentOutput(PersistentOStream & os) const;
+
+ /**
+ * Function used to read in object persistently.
+ * @param is the persistent input stream read from.
+ * @param version the version number of the object when written.
+ */
+ void persistentInput(PersistentIStream & is, int version);
+ //@}
+
+ /**
+ * The standard Init function used to initialize the interfaces.
+ * Called exactly once for each class by the class description system
+ * before the main function starts or
+ * when this class is dynamically loaded.
+ */
+ static void Init();
+
+ /**
+ * Return the overall fermion coupling
+ */
+ double _cfermion() const {return _CouplFF;}
+
+ /**
+ * Return the coupling of the leptoquark to left-handed leptons + right-handed quarks (S0)
+ */
+
+ double _cleft() const {return _leftcoup;}
+ /**
+ * Return the coupling of the leptoquark to right-handed leptons + left-handed quarks (S0)
+ */
+ double _cright() const {return _rightcoup;}
+
+ /**
+ * Return the coupling of the leptoquark to left-handed leptons + right-handed quarks (S1 triplet)
+ */
+
+ double _cleft1() const {return _leftcoup1;}
+
+ /* Return the coupling of the leptoquark to right-handed leptons + left-handed quarks (~S0)
+ */
+ double _crighttilde() const {return _rightcouptilde;}
+
+ /**
+ * Return the coupling of the leptoquark to left-handed leptons + right-handed quarks (S1/2)
+ */
+
+ double _cleft12() const {return _leftcoup12;}
+ /**
+ * Return the coupling of the leptoquark to right-handed leptons + left-handed quarks (S1/2)
+ */
+ double _cright12() const {return _rightcoup12;}
+
+ /**
+ * Return the coupling of the leptoquark to left-handed leptons + right-handed quarks (S1/2)
+ */
+
+ double _cleft12tilde() const {return _leftcoup12t;}
+ /**
+ * Return the coupling of the leptoquark to left-handed leptons + right-handed quarks (S0)
+ */
+
+ double _dcleft() const {return _dleftcoup;}
+ /**
+ * Return the coupling of the leptoquark to right-handed leptons + left-handed quarks (dS0)
+ */
+ double _dcright() const {return _drightcoup;}
+
+ /**
+ * Return the coupling of the leptoquark to left-handed leptons + right-handed quarks (dS1 triplet)
+ */
+
+ double _dcleft1() const {return _dleftcoup1;}
+
+ /* Return the coupling of the leptoquark to right-handed leptons + left-handed quarks (~dS0)
+ */
+ double _dcrighttilde() const {return _drightcouptilde;}
+
+ /**
+ * Return the coupling of the leptoquark to left-handed leptons + right-handed quarks (dS1/2)
+ */
+
+ double _dcleft12() const {return _dleftcoup12;}
+ /**
+ * Return the coupling of the leptoquark to right-handed leptons + left-handed quarks (dS1/2)
+ */
+ double _dcright12() const {return _drightcoup12;}
+
+ /**
+ * Return the coupling of the leptoquark to left-handed leptons + right-handed quarks (dS1/2)
+ */
+
+ double _dcleft12tilde() const {return _dleftcoup12t;}
+
+ /**
+ * Suppression scale for derivatively coupled scalar leptoquarks
+ */
+
+ double _fscale() const {return _derivscalef;}
+
+
+
+
+
+protected:
+
+ /** @name Standard Interfaced functions. */
+ //@{
+ /**
+ * Initialize this object after the setup phase before saving an
+ * EventGenerator to disk.
+ * @throws InitException if object could not be initialized properly.
+ */
+ virtual void doinit();
+ //@}
+
+protected:
+
+ /** @name Clone Methods. */
+ //@{
+ /**
+ * Make a simple clone of this object.
+ * @return a pointer to the new object.
+ */
+ virtual IBPtr clone() const;
+
+ /** Make a clone of this object, possibly modifying the cloned object
+ * to make it sane.
+ * @return a pointer to the new object.
+ */
+ virtual IBPtr fullclone() const;
+
+
+
+
+ //@}
+
+
+// If needed, insert declarations of virtual function defined in the
+// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
+
+
+private:
+
+ /**
+ * The static object used to initialize the description of this class.
+ * Indicates that this is a concrete class with persistent data.
+ */
+ static ClassDescription<LeptoquarkModel> initLeptoquarkModel;
+
+ /**
+ * The assignment operator is private and must never be called.
+ * In fact, it should not even be implemented.
+ */
+ LeptoquarkModel & operator=(const LeptoquarkModel &);
+
+
+ /**
+ * Pointer to the object handling the G to SLQ SLQ vertex.
+ */
+ AbstractVSSVertexPtr _theSLQSLQGVertex;
+
+ /**
+ * Pointer to the object handling the GG to SLQ SLQ vertex.
+ */
+ AbstractVVSSVertexPtr _theSLQSLQGGVertex;
+
+
+ /**
+ * Pointer to the object handling the SLQ to FF vertex.
+ */
+ AbstractFFSVertexPtr _theSLQFFVertex;
+
+
+
+ /**
+ * Overall coupling to fermions
+ */
+ double _CouplFF;
+
+
+ /**
+ * Overall coupling to left-handed leptons (S0)
+ */
+ double _leftcoup;
+
+ /**
+ * Overall coupling to right-handed leptons (S0)
+ */
+ double _rightcoup;
+
+ /**
+ * Overall coupling to left-handed leptons (~S0)
+ */
+ double _rightcouptilde;
+
+ /**
+ * Overall coupling to left-handed leptons (S1 triplet)
+ */
+ double _leftcoup1;
+
+ /**
+ * Overall coupling to left-handed leptons (S1/2)
+ */
+ double _leftcoup12;
+
+ /**
+ * Overall coupling to right-handed leptons (S1/2)
+ */
+ double _rightcoup12;
+
+ /**
+ * Overall coupling to left-handed leptons (~S1/2)
+ */
+ double _leftcoup12t;
+
+ /**
+ * Overall coupling to left-handed leptons (dS0)
+ */
+ double _dleftcoup;
+
+ /**
+ * Overall coupling to right-handed leptons (dS0)
+ */
+ double _drightcoup;
+
+ /**
+ * Overall coupling to left-handed leptons (~dS0)
+ */
+ double _drightcouptilde;
+
+ /**
+ * Overall coupling to left-handed leptons (dS1 triplet)
+ */
+ double _dleftcoup1;
+
+ /**
+ * Overall coupling to left-handed leptons (dS1/2)
+ */
+ double _dleftcoup12;
+
+ /**
+ * Overall coupling to right-handed leptons (dS1/2)
+ */
+ double _drightcoup12;
+
+ /**
+ * Overall coupling to left-handed leptons (~dS1/2)
+ */
+ double _dleftcoup12t;
+
+ /**
+ * Suppression scale for derivatively coupled scalar leptoquarks, f
+ */
+ double _derivscalef;
+
+
+
+};
+
+}
+
+#include "ThePEG/Utilities/ClassTraits.h"
+
+namespace ThePEG {
+
+/** @cond TRAITSPECIALIZATIONS */
+
+/** This template specialization informs ThePEG about the
+ * base classes of LeptoquarkModel. */
+template <>
+struct BaseClassTrait<Herwig::LeptoquarkModel,1> {
+ /** Typedef of the first base class of LeptoquarkModel. */
+ typedef Herwig::StandardModel NthBase;
+};
+
+/** This template specialization informs ThePEG about the name of
+ * the LeptoquarkModel class and the shared object where it is defined. */
+template <>
+struct ClassTraits<Herwig::LeptoquarkModel>
+ : public ClassTraitsBase<Herwig::LeptoquarkModel> {
+ /** Return a platform-independent class name */
+ static string className() { return "Herwig::LeptoquarkModel"; }
+ /**
+ * The name of a file containing the dynamic library where the class
+ * LeptoquarkModel is implemented. It may also include several, space-separated,
+ * libraries if the class LeptoquarkModel depends on other classes (base classes
+ * excepted). In this case the listed libraries will be dynamically
+ * linked in the order they are specified.
+ */
+ static string library() { return "HwLeptoquarkModel.so"; }
+};
+
+/** @endcond */
+
+}
+
+#endif /* HERWIG_LeptoquarkModel_H */
diff --git a/Models/Leptoquarks/LeptoquarkModelSLQFFVertex.cc b/Models/Leptoquarks/LeptoquarkModelSLQFFVertex.cc
new file mode 100644
--- /dev/null
+++ b/Models/Leptoquarks/LeptoquarkModelSLQFFVertex.cc
@@ -0,0 +1,337 @@
+// -*- C++ -*-
+//
+// LeptoquarkModelSLQFFVertex.cc is a part of Herwig++ - A multi-purpose Monte Carlo event generator
+// Copyright (C) 2002-2007 The Herwig Collaboration
+//
+// Herwig++ is licenced under version 2 of the GPL, see COPYING for details.
+// Please respect the MCnet academic guidelines, see GUIDELINES for details.
+//
+//
+// This is the implementation of the non-inlined, non-templated member
+// functions of the LeptoquarkModelSLQFFVertex class.
+//
+
+#include "LeptoquarkModelSLQFFVertex.h"
+#include "ThePEG/Interface/ClassDocumentation.h"
+#include "ThePEG/Persistency/PersistentOStream.h"
+#include "ThePEG/Persistency/PersistentIStream.h"
+#include "ThePEG/Config/Constants.h"
+
+using namespace Herwig;
+
+IBPtr LeptoquarkModelSLQFFVertex::clone() const {
+ return new_ptr(*this);
+}
+
+IBPtr LeptoquarkModelSLQFFVertex::fullclone() const {
+ return new_ptr(*this);
+}
+
+LeptoquarkModelSLQFFVertex::LeptoquarkModelSLQFFVertex() {
+ //S0
+ addToList(15,6,-9911561);
+ addToList(-15,-6,9911561);
+
+ addToList(-16,-5,9911561);
+ addToList(16,5,-9911561);
+
+ //~S0
+ addToList(-15,-5,9921551);
+ addToList(15,5,-9921551);
+
+ //S1 triplet
+ //S1p
+ addToList(-15,-5,9931551);
+ addToList(15,5,-9931551);
+ //S1z
+ addToList(-15,-6,9931561);
+ addToList(15,6,-9931561);
+ addToList(-16,-5,9931561);
+ addToList(16,5,-9931561);
+ //S1m
+ addToList(-16,-6,9931661);
+ addToList(16,6,-9931661);
+
+ //S1/2 doublet
+ addToList(15,-6,9941561);
+ addToList(-15,6,-9941561);
+
+ addToList(-15,5,-9941551);
+ addToList(-16,-6,-9941551);
+ addToList(15,-5,9941551);
+ addToList(16,-6,9941551);
+
+
+ //S1/2 tilde doublet
+ addToList(5,-16,-9951651);
+ addToList(-5, 16,9951651);
+
+ addToList(-5, 15,9951551);
+ addToList(5,-15,-9951551);
+
+
+ //dS0
+ addToList(15,-5,9961551);
+ addToList(-15,5,-9961551);
+
+ addToList(16,-6,9961551);
+ addToList(-16,6,-9961551);
+
+ //~dS0
+ addToList(15,-6,9971561);
+ addToList(-15,6,-9971561);
+
+
+ //dS1 triplet
+
+ //dS1p
+ addToList(15,-6,9981561);
+ addToList(-15,6,-9981561);
+
+ //dS1z
+ addToList(16,-6,9981551);
+ addToList(-16,6,-9981551);
+
+ addToList(15,-5,9981551);
+ addToList(-15,5,-9981551);
+
+ //dS1m
+ addToList(16,-5,9981651);
+ addToList(-16,5,-9981651);
+
+ //dS1/2 doublet
+ addToList(-15,-5,9991551);
+ addToList(15,5,-9991551);
+
+ addToList(-15,-6,9991561);
+ addToList(15,6,-9991561);
+
+ addToList(-16,-5,9991561);
+ addToList(16,5,-9991561);
+
+ //dS1/2 tilde doublet
+ addToList(-15,-6,9901561);
+ addToList(15,6,-9901561);
+
+ addToList(-16,-6,9901661);
+ addToList(16,6,-9901661);
+
+
+}
+
+void LeptoquarkModelSLQFFVertex::doinit() {
+ orderInGem(0);
+ orderInGs(0);
+ _theModel = generator()->standardModel();
+ tcHwLeptoquarkPtr hwLeptoquark=dynamic_ptr_cast<tcHwLeptoquarkPtr>(_theModel);
+ if(hwLeptoquark){
+ _CFF=hwLeptoquark->_cfermion();
+ _cL0 =hwLeptoquark->_cleft();
+ _cR0 =hwLeptoquark->_cright();
+ _cR0t = hwLeptoquark->_crighttilde();
+ _cL1 =hwLeptoquark->_cleft1();
+ _cL12 =hwLeptoquark->_cleft12();
+ _cR12 =hwLeptoquark->_cright12();
+ _cL12t =hwLeptoquark->_cleft12tilde();
+
+
+ _derivscale = hwLeptoquark->_fscale();
+ _dcL0 =hwLeptoquark->_dcleft();
+ _dcR0 =hwLeptoquark->_dcright();
+ _dcR0t = hwLeptoquark->_dcrighttilde();
+ _dcL1 =hwLeptoquark->_dcleft1();
+ _dcL12 =hwLeptoquark->_dcleft12();
+ _dcR12 =hwLeptoquark->_dcright12();
+ _dcL12t =hwLeptoquark->_dcleft12tilde();
+
+ }
+ FFSVertex::doinit();
+}
+
+void LeptoquarkModelSLQFFVertex::persistentOutput(PersistentOStream & os) const {
+ os << _CFF << _cL0 << _cR0 << _cR0t << _cL1 << _cL12 << _cR12 << _cL12t << _dcL0 << _dcR0 << _dcR0t << _dcL1 << _dcL12 << _dcR12 << _dcL12t << _derivscale;
+}
+
+void LeptoquarkModelSLQFFVertex::persistentInput(PersistentIStream & is, int) {
+ is >> _CFF >> _cL0 >> _cR0 >> _cR0t >> _cL1 >> _cL12 >> _cR12 >> _cL12t >>_dcL0 >> _dcR0 >> _dcR0t >> _dcL1 >> _dcL12 >> _dcR12 >> _dcL12t >> _derivscale;
+}
+
+ClassDescription<LeptoquarkModelSLQFFVertex>
+LeptoquarkModelSLQFFVertex::initLeptoquarkModelSLQFFVertex;
+// Definition of the static class description member.
+
+
+void LeptoquarkModelSLQFFVertex::Init() {
+
+ static ClassDocumentation<LeptoquarkModelSLQFFVertex> documentation
+ ("The LeptoquarkModelSLQFFVertex class is the implementation"
+ " of the helicity amplitude calculation of the Leptoquark"
+ " quark-lepton vertex.");
+}
+
+
+void LeptoquarkModelSLQFFVertex::setCoupling(Energy2,tcPDPtr aa ,tcPDPtr bb, tcPDPtr cc) {
+ long isc(cc->id()), ism(aa->id()),
+ ichg(bb->id());
+ long lqid = isc;
+ long smid_1 = ism;
+ long smid_2 = ichg;
+ if(fabs(lqid) < 9900000) {
+ lqid = ism;
+ smid_1 = ichg;
+ smid_2 = isc;
+ }
+ if(fabs(lqid) < 9900000) {
+ lqid = ichg;
+ smid_1 = ism;
+ smid_2 = isc;
+ }
+ if( fabs(smid_1) > fabs(smid_2) ) { swap(smid_1, smid_2); }
+
+ double mtop = 174.2;
+ double mbot = 4.2;
+ double mtau = 1.77699;
+
+ //set the couplings to left and right
+ //S0
+ if( fabs(isc) == 9911561 || fabs(ism) == 9911561 || fabs(ichg) == 9911561 ) {
+ if(fabs(isc) == 5 || fabs(ism) == 5 || fabs(ichg) == 5) {
+ _cL = -_cL0; _cR = Complex(0.);
+ }
+ if(fabs(isc) == 6 || fabs(ism) == 6 || fabs(ichg) == 6) {
+ _cL = _cL0;
+ _cR = _cR0;
+ }
+ }
+ //~S0
+ if( fabs(isc) == 9921551 || fabs(ism) == 9921551 || fabs(ichg) == 9921551 ) {
+ _cL = Complex(0.); _cR = _cR0t;
+ }
+
+ //S1 triplet
+ //Q = + 4/3
+ if( fabs(isc) == 9931551 || fabs(ism) == 9931551 || fabs(ichg) == 9931551 ) {
+ _cL = sqrt(2.)* _cL1; _cR = Complex(0.);
+ }
+ //Q = + 1/3
+ if( fabs(isc) == 9931561 || fabs(ism) == 9931561 || fabs(ichg) == 9931561 ) {
+ _cL = - _cL1; _cR = Complex(0.);
+ }
+ //Q = - 2/3
+ if( fabs(isc) == 9931661 || fabs(ism) == 9931661 || fabs(ichg) == 9931661 ) {
+ _cL = sqrt(2.) * _cL1; _cR = Complex(0.);
+ }
+
+ //S1/2 doublet
+
+ //Q = + 5/3
+ if( fabs(isc) == 9941561 || fabs(ism) == 9941561 || fabs(ichg) == 9941561 ) {
+ _cR = _cL12; _cL = _cR12;
+ }
+
+
+ //Q = + 2/3
+ if( fabs(isc) == 9941551 || fabs(ism) == 9941551 || fabs(ichg) == 9941551 ) {
+ if(fabs(isc) == 5 || fabs(ism) == 5 || fabs(ichg) == 5) {
+ _cR = Complex(0.); _cL = - _cR12;
+ }
+ if(fabs(isc) == 6 || fabs(ism) == 6 || fabs(ichg) == 6) {
+ _cL = Complex(0.); _cR = _cL12;
+ }
+ }
+
+ //S1/2 tilde doublet
+
+ //Q = + 2/3
+ if( fabs(isc) == 9951551 || fabs(ism) == 9951551 || fabs(ichg) == 9951551 ) {
+ _cR = _cL12t; _cL = Complex(0.);
+ }
+
+
+ //Q = - 1/3
+ if( fabs(isc) == 9951651 || fabs(ism) == 9951651 || fabs(ichg) == 9951651 ) {
+ _cR = _cL12t; _cL = Complex(0.);
+ }
+
+ //dS0
+ if( fabs(isc) == 9961551 || fabs(ism) == 9961551 || fabs(ichg) == 9961551) {
+ if(fabs(isc) == 5 || fabs(ism) == 5 || fabs(ichg) == 5) {
+ _cR = _dcL0 * mbot +_dcR0 * mtau;
+ _cL = _dcR0 * mbot + _dcL0 * mtau;
+ }
+ if(fabs(isc) == 6 || fabs(ism) == 6 || fabs(ichg) == 6) {
+ _cR = _dcL0 * mtop;
+ _cL = Complex(0.);
+ }
+ _cL /= sqrt(2.) * _derivscale;
+ _cR /= sqrt(2.) * _derivscale;
+ }
+
+ //d~S0
+ if( fabs(isc) == 9971561 || fabs(ism) == 9971561 || fabs(ichg) == 9971561) {
+ _cR = _dcR0t * mtau / (sqrt(2.) * _derivscale);
+ _cL = _dcR0t * mtop / (sqrt(2.) * _derivscale);
+ }
+
+ //dS1 triplet
+ if( fabs(isc) == 9981561 || fabs(ism) == 9981561 || fabs(ichg) == 9981561) {
+ _cR = sqrt(2.) * _dcL1 * mtop / (sqrt(2.) * _derivscale);
+ _cL = sqrt(2.) * _dcL1 * mtau / (sqrt(2.) * _derivscale);
+ }
+ if( fabs(isc) == 9981551 || fabs(ism) == 9981551 || fabs(ichg) == 9981551) {
+ if(fabs(isc) == 5 || fabs(ism) == 5 || fabs(ichg) == 5) {
+ _cR = -_dcL1 * mbot;
+ _cL = -_dcL1 * mtau;
+ }
+ if(fabs(isc) == 6 || fabs(ism) == 6 || fabs(ichg) == 6) {
+ _cR = _dcL1 * mtop;
+ _cL = Complex(0.);
+ }
+ _cL /= sqrt(2.) * _derivscale;
+ _cR /= sqrt(2.) * _derivscale;
+
+ }
+
+ if( fabs(isc) == 9981651 || fabs(ism) == 9981651 || fabs(ichg) == 9981651) {
+ _cL = sqrt(2.) * _dcL1 * mbot / (sqrt(2.) * _derivscale);
+ _cR = Complex(0.);
+ }
+
+
+ //dS1/2 doublet
+ if( fabs(isc) == 9991551 || fabs(ism) == 9991551 || fabs(ichg) == 9991551 ) {
+ _cL = _dcL12 * mbot + _dcR12 * mtau;
+ _cR = _dcR12 * mbot + _dcL12 * mtau;
+ _cL /= sqrt(2.) * _derivscale;
+ _cR /= sqrt(2.) * _derivscale;
+ }
+
+ if( fabs(isc) == 9991561 || fabs(ism) == 9991561 || fabs(ichg) == 9991561 ) {
+ if(fabs(isc) == 6 || fabs(ism) == 6 || fabs(ichg) == 6) {
+ _cL = _dcR12 * mtau;
+ _cR = _dcR12 * mtop;
+ }
+ if(fabs(isc) == 5 || fabs(ism) == 5 || fabs(ichg) == 5) {
+ _cL = _dcL12 * mbot;
+ }
+
+ _cL /= sqrt(2.) * _derivscale;
+ _cR /= sqrt(2.) * _derivscale;
+ }
+
+ //dS1/2 tilde doublet
+ if( fabs(isc) == 9901561 || fabs(ism) == 9901561 || fabs(ichg) == 9901561 ) {
+ _cL = _dcL12t * mtop / (sqrt(2.) * _derivscale); _cR = _dcL12t * mtau / (sqrt(2.) * _derivscale);
+ }
+
+ if( fabs(isc) == 9901661 || fabs(ism) == 9901661 || fabs(ichg) == 9901661 ) {
+ _cL = _dcL12t * mtop / (sqrt(2.) * _derivscale); _cR = Complex(0.);
+ }
+ if(smid_1 > 0) {
+ left(conj(_cR)); right(conj(_cL));
+ } else { left(_cL); right(_cR); }
+
+
+
+ norm(_CFF);
+}
diff --git a/Models/Leptoquarks/LeptoquarkModelSLQFFVertex.h b/Models/Leptoquarks/LeptoquarkModelSLQFFVertex.h
new file mode 100644
--- /dev/null
+++ b/Models/Leptoquarks/LeptoquarkModelSLQFFVertex.h
@@ -0,0 +1,285 @@
+// -*- C++ -*-
+//
+// LeptoquarkModelSLQFFVertex.h is a part of Herwig++ - A multi-purpose Monte Carlo event generator
+// Copyright (C) 2002-2007 The Herwig Collaboration
+//
+// Herwig++ is licenced under version 2 of the GPL, see COPYING for details.
+// Please respect the MCnet academic guidelines, see GUIDELINES for details.
+//
+#ifndef HERWIG_LeptoquarkModelSLQFFVertex_H
+#define HERWIG_LeptoquarkModelSLQFFVertex_H
+//
+// This is the declaration of the LeptoquarkModelSLQFFVertex class.
+
+#include "ThePEG/Helicity/Vertex/Scalar/FFSVertex.h"
+#include "Herwig++/Models/Leptoquarks/LeptoquarkModel.h"
+#include "ThePEG/PDT/EnumParticles.h"
+
+namespace Herwig {
+using namespace ThePEG;
+
+/** \ingroup Helicity
+ *
+ * This is the implementation of the vertex coupling the Standard Model Higgs
+ * to the Standard Model fermions for helicity amplitude calculations
+ *
+ * @see FFSVertex
+ * @see VertexBase
+ */
+class LeptoquarkModelSLQFFVertex: public FFSVertex {
+
+public:
+
+ /**
+ * Default constructor.
+ */
+ LeptoquarkModelSLQFFVertex();
+
+ /**
+ * Calculate the couplings.
+ * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
+ * @param part1 The ParticleData pointer for the first particle.
+ * @param part2 The ParticleData pointer for the second particle.
+ * @param part3 The ParticleData pointer for the third particle.
+ */
+ virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3);
+
+public:
+
+ /** @name Functions used by the persistent I/O system. */
+ //@{
+ /**
+ * Function used to write out object persistently.
+ * @param os the persistent output stream written to.
+ */
+ void persistentOutput(PersistentOStream & os) const;
+
+ /**
+ * Function used to read in object persistently.
+ * @param is the persistent input stream read from.
+ * @param version the version number of the object when written.
+ */
+ void persistentInput(PersistentIStream & is, int version);
+ //@}
+
+ /**
+ * Standard Init function used to initialize the interfaces.
+ */
+ static void Init();
+
+protected:
+
+ /** @name Clone Methods. */
+ //@{
+ /**
+ * Make a simple clone of this object.
+ * @return a pointer to the new object.
+ */
+ virtual IBPtr clone() const;
+
+ /** Make a clone of this object, possibly modifying the cloned object
+ * to make it sane.
+ * @return a pointer to the new object.
+ */
+ virtual IBPtr fullclone() const;
+ //@}
+
+protected:
+
+ /**
+ * Initialize this object after the setup phase before saving and
+ * EventGenerator to disk.
+ * @throws InitException if object could not be initialized properly.
+ */
+ virtual void doinit();
+
+private:
+
+ /**
+ * Describe a concrete class with persistent data.
+ */
+ static ClassDescription<LeptoquarkModelSLQFFVertex> initLeptoquarkModelSLQFFVertex;
+
+ /**
+ * Private and non-existent assignment operator.
+ */
+ LeptoquarkModelSLQFFVertex & operator=(const LeptoquarkModelSLQFFVertex &);
+
+ /**
+ * Pointer to the model object.
+ */
+ tcSMPtr _theModel;
+
+
+private:
+
+ /**
+ * Storage of the couplings.
+ */
+ //@{
+
+ /**
+ * Overall coupling to fermions
+ */
+ double _CFF;
+
+
+ /**
+ * Overall coupling to left-handed leptons
+ */
+ //double _cL;
+ Complex _cL;
+
+ /**
+ * Overall coupling to right-handed leptons
+ */
+ // double _cR;
+ Complex _cR;
+
+ /**
+ * Overall coupling to left-handed leptons for S0
+ */
+ // double _cL0;
+ Complex _cL0;
+
+
+ /**
+ * Overall coupling to right-handed leptons for S0
+ */
+ // double _cR0;
+ Complex _cR0;
+
+ /**
+ * Overall coupling to right-handed leptons for ~S0
+ */
+ // double _cR0t;
+ Complex _cR0t;
+
+ /**
+ * Overall coupling to left-handed leptons for ~S1 triplet
+ */
+ // double _cL1;
+ Complex _cL1;
+
+ /**
+ * Overall coupling to left-handed leptons for S1/2 triplet
+ */
+ // double _cL12;
+ Complex _cL12;
+
+
+ /**
+ * Overall coupling to right-handed leptons for S1/2 triplet
+ */
+ // double _cR12;
+ Complex _cR12;
+
+ /**
+ * Overall coupling to left-handed leptons for ~S1/2 triplet
+ */
+ // double _cL12t;
+ Complex _cL12t;
+
+ /**
+ * Overall coupling to left-handed leptons
+ */
+ //double _dcL;
+ Complex _dcL;
+
+ /**
+ * Overall coupling to right-handed leptons
+ */
+ // double _dcR;
+ Complex _dcR;
+
+
+ /**
+ * Overall coupling to left-handed leptons for dS0
+ */
+ // double _dcL0;
+ Complex _dcL0;
+
+ /**
+ * Overall coupling to right-handed leptons for dS0
+ */
+ // double _dcR0;
+ Complex _dcR0;
+
+ /**
+ * Overall coupling to right-handed leptons for ~dS0
+ */
+ double _dcR0t;
+
+ /**
+ * Overall coupling to left-handed leptons for ~dS1 triplet
+ */
+ double _dcL1;
+
+ /**
+ * Overall coupling to left-handed leptons for dS1/2 triplet
+ */
+ //double _dcL12;
+ Complex _dcL12;
+
+ /**
+ * Overall coupling to right-handed leptons for dS1/2 triplet
+ */
+ //double _dcR12;
+ Complex _dcR12;
+
+
+ /**
+ * Overall coupling to left-handed leptons for ~dS1/2 triplet
+ */
+ // double _dcL12t;
+ Complex _dcL12t;
+
+ /**
+ * Suppression scale for derivatively coupled scalar leptoquarks
+ */
+ double _derivscale;
+
+
+
+
+
+ //@}
+};
+
+}
+
+namespace ThePEG {
+
+/** @cond TRAITSPECIALIZATIONS */
+
+/**
+ * The following template specialization informs ThePEG about the
+ * base class of LeptoquarkModelSLQFFVertex.
+ */
+template <>
+struct BaseClassTrait<Herwig::LeptoquarkModelSLQFFVertex,1> {
+ /** Typedef of the base class of LeptoquarkModelSLQFFVertex. */
+ typedef ThePEG::Helicity::FFSVertex NthBase;
+};
+
+/**
+ * The following template specialization informs ThePEG about the
+ * name of this class and the shared object where it is defined.
+ */
+template <>
+struct ClassTraits<Herwig::LeptoquarkModelSLQFFVertex>
+ : public ClassTraitsBase<Herwig::LeptoquarkModelSLQFFVertex> {
+
+ /**
+ * Return the class name.
+ */
+ static string className() { return "Herwig::LeptoquarkModelSLQFFVertex"; }
+
+};
+
+/** @endcond */
+
+}
+
+
+#endif /* HERWIG_LeptoquarkModelSLQFFVertex_H */
diff --git a/Models/Leptoquarks/LeptoquarkModelSLQSLQGGVertex.cc b/Models/Leptoquarks/LeptoquarkModelSLQSLQGGVertex.cc
new file mode 100644
--- /dev/null
+++ b/Models/Leptoquarks/LeptoquarkModelSLQSLQGGVertex.cc
@@ -0,0 +1,82 @@
+// -*- C++ -*-
+//
+// LeptoquarkModelSLQSLQGGVertex.cc is a part of Herwig++ - A multi-purpose Monte Carlo event generator
+// Copyright (C) 2002-2007 The Herwig Collaboration
+//
+// Herwig++ is licenced under version 2 of the GPL, see COPYING for details.
+// Please respect the MCnet academic guidelines, see GUIDELINES for details.
+//
+//
+// This is the implementation of the non-inlined, non-templated member
+// functions of the LeptoquarkModelSLQSLQGGVertex class.
+//
+
+#include "LeptoquarkModelSLQSLQGGVertex.h"
+#include "ThePEG/Interface/ClassDocumentation.h"
+#include "ThePEG/Persistency/PersistentOStream.h"
+#include "ThePEG/Persistency/PersistentIStream.h"
+
+
+using namespace Herwig;
+using namespace ThePEG;
+
+LeptoquarkModelSLQSLQGGVertex::LeptoquarkModelSLQSLQGGVertex() : _q2last(ZERO),
+ _couplast(0.) {
+ addToList(21,21,9941551,-9941551);
+ addToList(21,21,9911561,-9911561);
+ addToList(21,21,9921551,-9921551);
+ addToList(21,21,9931561,-9931561);
+ addToList(21,21,9931551,-9931551);
+ addToList(21,21,9931661,-9931661);
+ addToList(21,21,9941561,-9941561);
+
+ addToList(21,21,9951551,-9951551);
+ addToList(21,21,9951651,-9951651);
+ addToList(21,21,9961551,-9961551);
+
+ addToList(21,21,9971561,-9971561);
+ addToList(21,21,9981561,-9981561);
+ addToList(21,21,9981551,-9981551);
+ addToList(21,21,9981651,-9981651);
+
+ addToList(21,21,9991551,-9991551);
+ addToList(21,21,9991561,-9991561);
+ addToList(21,21,9901561,-9901561);
+ addToList(21,21,9901661,-9901661);
+
+}
+
+void LeptoquarkModelSLQSLQGGVertex::doinit() {
+ orderInGs(2);
+ orderInGem(0);
+ VVSSVertex::doinit();
+ // _theModel = generator()->standardModel();
+ // tcHwLeptoquarkPtr hwLeptoquark=dynamic_ptr_cast<tcHwLeptoquarkPtr>(_theModel);
+}
+
+void LeptoquarkModelSLQSLQGGVertex::persistentOutput(PersistentOStream & os) const {
+ os << _theModel;
+}
+
+void LeptoquarkModelSLQSLQGGVertex::persistentInput(PersistentIStream & is, int) {
+ is >> _theModel;
+}
+
+ClassDescription<LeptoquarkModelSLQSLQGGVertex> LeptoquarkModelSLQSLQGGVertex::initLeptoquarkModelSLQSLQGGVertex;
+// Definition of the static class description member.
+
+void LeptoquarkModelSLQSLQGGVertex::Init() {
+ static ClassDocumentation<LeptoquarkModelSLQSLQGGVertex> documentation
+ ("The LeptoquarkModelSLQSLQGGVertex class is the implementation of"
+ " the LeptoquarkModel scalar LQ-scalar LQ-gluon-gluon vertex");
+
+}
+
+void LeptoquarkModelSLQSLQGGVertex::setCoupling(Energy2 q2,tcPDPtr ,tcPDPtr ,tcPDPtr, tcPDPtr ) {
+ if(q2 != _q2last || _couplast == 0.) {
+ _couplast = sqr(strongCoupling(q2));
+ _q2last = q2;
+ }
+ norm(_couplast);
+}
+
diff --git a/Models/Leptoquarks/LeptoquarkModelSLQSLQGGVertex.h b/Models/Leptoquarks/LeptoquarkModelSLQSLQGGVertex.h
new file mode 100644
--- /dev/null
+++ b/Models/Leptoquarks/LeptoquarkModelSLQSLQGGVertex.h
@@ -0,0 +1,168 @@
+// -*- C++ -*-
+//
+// LeptoquarkModelSLQSLQGGVertex.h is a part of Herwig++ - A multi-purpose Monte Carlo event generator
+// Copyright (C) 2002-2007 The Herwig Collaboration
+//
+// Herwig++ is licenced under version 2 of the GPL, see COPYING for details.
+// Please respect the MCnet academic guidelines, see GUIDELINES for details.
+//
+#ifndef HERWIG_LeptoquarkModelSLQSLQGGVertex_H
+#define HERWIG_LeptoquarkModelSLQSLQGGVVertex_H
+//
+// This is the declaration of the LeptoquarkModelSLQSLQGGVertex class.
+
+#include "ThePEG/Helicity/Vertex/Scalar/VVSSVertex.h"
+#include "Herwig++/Models/Leptoquarks/LeptoquarkModel.h"
+
+namespace Herwig {
+using namespace ThePEG;
+
+/** \ingroup Helicity
+ *
+ * The LeptoquarkModelSLQSLQGGVertex class is the implementation of the gluon
+ * gluon coupling to pairs of scalar leptoquarks in the LeptoquarkModel. It inherits from the VVSSVertex
+ * and implements the setCoupling member
+ *
+ * @see VVSSVertex
+ * @see VertexBase
+ */
+class LeptoquarkModelSLQSLQGGVertex: public VVSSVertex {
+
+public:
+
+ /**
+ * Default constructor.
+ */
+ LeptoquarkModelSLQSLQGGVertex();
+
+ /** @name Functions used by the persistent I/O system. */
+ //@{
+ /**
+ * Function used to write out object persistently.
+ * @param os the persistent output stream written to.
+ */
+ void persistentOutput(PersistentOStream & os) const;
+
+ /**
+ * Function used to read in object persistently.
+ * @param is the persistent input stream read from.
+ * @param version the version number of the object when written.
+ */
+ void persistentInput(PersistentIStream & is, int version);
+ //@}
+
+ /**
+ * Standard Init function used to initialize the interfaces.
+ */
+ static void Init();
+
+ /**
+ * Calculate the couplings.
+ * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
+ * @param part1 The ParticleData pointer for the first particle.
+ * @param part2 The ParticleData pointer for the second particle.
+ * @param part3 The ParticleData pointer for the third particle.
+ * @param part4 The ParticleData pointer for the third particle.
+
+ */
+ virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3, tcPDPtr part4);
+
+protected:
+
+ /** @name Clone Methods. */
+ //@{
+ /**
+ * Make a simple clone of this object.
+ * @return a pointer to the new object.
+ */
+ virtual IBPtr clone() const {return new_ptr(*this);}
+
+ /** Make a clone of this object, possibly modifying the cloned object
+ * to make it sane.
+ * @return a pointer to the new object.
+ */
+ virtual IBPtr fullclone() const {return new_ptr(*this);}
+ //@}
+
+protected:
+
+ /**
+ * Initialize this object after the setup phase before saving and
+ * EventGenerator to disk.
+ * @throws InitException if object could not be initialized properly.
+ */
+ virtual void doinit();
+
+private:
+
+ /**
+ * Describe a concrete class with persistent data.
+ */
+ static ClassDescription<LeptoquarkModelSLQSLQGGVertex> initLeptoquarkModelSLQSLQGGVertex;
+
+ /**
+ * Private and non-existent assignment operator.
+ */
+ LeptoquarkModelSLQSLQGGVertex & operator=(const LeptoquarkModelSLQSLQGGVertex &);
+
+ /**
+ * Pointer to the model.
+ */
+ tcSMPtr _theModel;
+
+ /**
+ * The energy at which the coupling was last evaluated
+ */
+ Energy2 _q2last;
+
+ /**
+ * The coupling when it was last evaluated
+ */
+ Complex _couplast;
+
+};
+
+}
+
+namespace ThePEG {
+
+/** @cond TRAITSPECIALIZATIONS */
+
+/**
+ * The following template specialization informs ThePEG about the
+ * base class of LeptoquarkModelSLQSLQGGVertex.
+ */
+template <>
+struct BaseClassTrait<Herwig::LeptoquarkModelSLQSLQGGVertex,1> {
+ /** Typedef of the base class of LeptoquarkModelSLQSLQGGVertex. */
+ typedef ThePEG::Helicity::VVSSVertex NthBase;
+};
+
+/**
+ * The following template specialization informs ThePEG about the
+ * name of this class and the shared object where it is defined.
+ */
+template <>
+struct ClassTraits<Herwig::LeptoquarkModelSLQSLQGGVertex>
+ : public ClassTraitsBase<Herwig::LeptoquarkModelSLQSLQGGVertex> {
+
+ /**
+ * Return the class name.
+ */
+ static string className() { return "Herwig::LeptoquarkModelSLQSLQGGVertex"; }
+
+ /**
+ * Return the name of the shared library to be loaded to get
+ * access to this class and every other class it uses
+ * (except the base class).
+ */
+ static string library() { return "HwLeptoquarkModel.so"; }
+
+};
+
+/** @endcond */
+
+}
+
+
+#endif /* HERWIG_LeptoquarkModelSLQSLQGGVertex_H */
diff --git a/Models/Leptoquarks/LeptoquarkModelSLQSLQGVertex.cc b/Models/Leptoquarks/LeptoquarkModelSLQSLQGVertex.cc
new file mode 100644
--- /dev/null
+++ b/Models/Leptoquarks/LeptoquarkModelSLQSLQGVertex.cc
@@ -0,0 +1,77 @@
+// -*- C++ -*-
+//
+// LeptoquarkModelSLQSLQGVertex.cc is a part of Herwig++ - A multi-purpose Monte Carlo event generator
+// Copyright (C) 2002-2007 The Herwig Collaboration
+//
+// Herwig++ is licenced under version 2 of the GPL, see COPYING for details.
+// Please respect the MCnet academic guidelines, see GUIDELINES for details.
+//
+//
+// This is the implementation of the non-inlined, non-templated member
+// functions of the LeptoquarkModelSLQSLQGVertex class.
+//
+
+#include "LeptoquarkModelSLQSLQGVertex.h"
+#include "ThePEG/Interface/ClassDocumentation.h"
+#include "ThePEG/Persistency/PersistentOStream.h"
+#include "ThePEG/Persistency/PersistentIStream.h"
+
+using namespace Herwig;
+using namespace ThePEG;
+
+LeptoquarkModelSLQSLQGVertex::LeptoquarkModelSLQSLQGVertex() : _q2last(ZERO),
+ _couplast(0.) {
+ addToList(21,9941551,-9941551);
+ addToList(21,9911561,-9911561);
+ addToList(21,9921551,-9921551);
+ addToList(21,9931561,-9931561);
+ addToList(21,9931551,-9931551);
+ addToList(21,9931661,-9931661);
+ addToList(21,9941561,-9941561);
+ addToList(21,9951551,-9951551);
+ addToList(21,9951651,-9951651);
+ addToList(21,9961551,-9961551);
+ addToList(21,9971561,-9971561);
+ addToList(21,9981561,-9981561);
+ addToList(21,9981551,-9981551);
+ addToList(21,9981651,-9981651);
+
+ addToList(21,9991551,-9991551);
+ addToList(21,9991561,-9991561);
+ addToList(21,9901561,-9901561);
+ addToList(21,9901661,-9901661);
+
+}
+
+void LeptoquarkModelSLQSLQGVertex::doinit() {
+ orderInGs(1);
+ orderInGem(0);
+ VSSVertex::doinit();
+}
+
+void LeptoquarkModelSLQSLQGVertex::persistentOutput(PersistentOStream & os) const {
+ os << _theModel;
+}
+
+void LeptoquarkModelSLQSLQGVertex::persistentInput(PersistentIStream & is, int) {
+ is >> _theModel;
+}
+
+ClassDescription<LeptoquarkModelSLQSLQGVertex> LeptoquarkModelSLQSLQGVertex::initLeptoquarkModelSLQSLQGVertex;
+// Definition of the static class description member.
+
+void LeptoquarkModelSLQSLQGVertex::Init() {
+ static ClassDocumentation<LeptoquarkModelSLQSLQGVertex> documentation
+ ("The LeptoquarkModelSLQSLQGVertex class is the implementation of"
+ " the LeptoquarkModel scalar LQ-scalar LQ-gluon vertex");
+
+}
+
+void LeptoquarkModelSLQSLQGVertex::setCoupling(Energy2 q2,tcPDPtr ,tcPDPtr ,tcPDPtr ) {
+ if(q2 != _q2last || _couplast == 0.) {
+ _couplast = strongCoupling(q2);
+ _q2last = q2;
+ }
+ norm(_couplast);
+}
+
diff --git a/Models/Leptoquarks/LeptoquarkModelSLQSLQGVertex.h b/Models/Leptoquarks/LeptoquarkModelSLQSLQGVertex.h
new file mode 100644
--- /dev/null
+++ b/Models/Leptoquarks/LeptoquarkModelSLQSLQGVertex.h
@@ -0,0 +1,167 @@
+// -*- C++ -*-
+//
+// LeptoquarkModelSLQSLQGVertex.h is a part of Herwig++ - A multi-purpose Monte Carlo event generator
+// Copyright (C) 2002-2007 The Herwig Collaboration
+//
+// Herwig++ is licenced under version 2 of the GPL, see COPYING for details.
+// Please respect the MCnet academic guidelines, see GUIDELINES for details.
+//
+#ifndef HERWIG_LeptoquarkModelSLQSLQGVertex_H
+#define HERWIG_LeptoquarkModelSLQSLQGVVertex_H
+//
+// This is the declaration of the LeptoquarkModelSLQSLQGVertex class.
+
+#include "ThePEG/Helicity/Vertex/Scalar/VSSVertex.h"
+#include "Herwig++/Models/Leptoquarks/LeptoquarkModel.h"
+
+namespace Herwig {
+using namespace ThePEG;
+
+/** \ingroup Helicity
+ *
+ * The LeptoquarkModelSLQSLQGVertex class is the implementation of the gluon
+ * coupling to pairs of scalar leptoquarks in the LeptoquarkModel. It inherits from the VSSVertex
+ * and implements the setCoupling member
+ *
+ * @see VSSVertex
+ * @see VertexBase
+ */
+class LeptoquarkModelSLQSLQGVertex: public VSSVertex {
+
+public:
+
+ /**
+ * Default constructor.
+ */
+ LeptoquarkModelSLQSLQGVertex();
+
+ /** @name Functions used by the persistent I/O system. */
+ //@{
+ /**
+ * Function used to write out object persistently.
+ * @param os the persistent output stream written to.
+ */
+ void persistentOutput(PersistentOStream & os) const;
+
+ /**
+ * Function used to read in object persistently.
+ * @param is the persistent input stream read from.
+ * @param version the version number of the object when written.
+ */
+ void persistentInput(PersistentIStream & is, int version);
+ //@}
+
+ /**
+ * Standard Init function used to initialize the interfaces.
+ */
+ static void Init();
+
+ /**
+ * Calculate the couplings.
+ * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
+ * @param part1 The ParticleData pointer for the first particle.
+ * @param part2 The ParticleData pointer for the second particle.
+ * @param part3 The ParticleData pointer for the third particle.
+ */
+ virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3);
+
+protected:
+
+ /** @name Clone Methods. */
+ //@{
+ /**
+ * Make a simple clone of this object.
+ * @return a pointer to the new object.
+ */
+ virtual IBPtr clone() const {return new_ptr(*this);}
+
+ /** Make a clone of this object, possibly modifying the cloned object
+ * to make it sane.
+ * @return a pointer to the new object.
+ */
+ virtual IBPtr fullclone() const {return new_ptr(*this);}
+ //@}
+
+protected:
+
+ /**
+ * Initialize this object after the setup phase before saving and
+ * EventGenerator to disk.
+ * @throws InitException if object could not be initialized properly.
+ */
+ virtual void doinit();
+
+private:
+
+ /**
+ * Describe a concrete class with persistent data.
+ */
+ static ClassDescription<LeptoquarkModelSLQSLQGVertex> initLeptoquarkModelSLQSLQGVertex;
+
+ /**
+ * Private and non-existent assignment operator.
+ */
+ LeptoquarkModelSLQSLQGVertex & operator=(const LeptoquarkModelSLQSLQGVertex &);
+
+ /**
+ * Pointer to the model.
+ */
+ tcSMPtr _theModel;
+
+
+ /**
+ * The energy at which the coupling was last evaluated
+ */
+ Energy2 _q2last;
+
+ /**
+ * The coupling when it was last evaluated
+ */
+ Complex _couplast;
+
+};
+
+}
+
+namespace ThePEG {
+
+/** @cond TRAITSPECIALIZATIONS */
+
+/**
+ * The following template specialization informs ThePEG about the
+ * base class of LeptoquarkModelSLQSLQGVertex.
+ */
+template <>
+struct BaseClassTrait<Herwig::LeptoquarkModelSLQSLQGVertex,1> {
+ /** Typedef of the base class of LeptoquarkModelSLQSLQGVertex. */
+ typedef ThePEG::Helicity::VSSVertex NthBase;
+};
+
+/**
+ * The following template specialization informs ThePEG about the
+ * name of this class and the shared object where it is defined.
+ */
+template <>
+struct ClassTraits<Herwig::LeptoquarkModelSLQSLQGVertex>
+ : public ClassTraitsBase<Herwig::LeptoquarkModelSLQSLQGVertex> {
+
+ /**
+ * Return the class name.
+ */
+ static string className() { return "Herwig::LeptoquarkModelSLQSLQGVertex"; }
+
+ /**
+ * Return the name of the shared library to be loaded to get
+ * access to this class and every other class it uses
+ * (except the base class).
+ */
+ static string library() { return "HwLeptoquarkModel.so"; }
+
+};
+
+/** @endcond */
+
+}
+
+
+#endif /* HERWIG_LeptoquarkModelSLQSLQGVertex_H */
diff --git a/Models/Leptoquarks/Makefile.am b/Models/Leptoquarks/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Models/Leptoquarks/Makefile.am
@@ -0,0 +1,10 @@
+if WANT_Leptoquark
+pkglib_LTLIBRARIES = HwLeptoquarkModel.la
+endif
+HwLeptoquarkModel_la_SOURCES = \
+LeptoquarkModel.cc LeptoquarkModel.h \
+LeptoquarkModelSLQSLQGGVertex.h LeptoquarkModelSLQSLQGGVertex.cc \
+LeptoquarkModelSLQFFVertex.h LeptoquarkModelSLQFFVertex.cc \
+LeptoquarkModelSLQSLQGVertex.h LeptoquarkModelSLQSLQGVertex.cc
+
+HwLeptoquarkModel_la_LDFLAGS = -module -version-info 1:0:0
diff --git a/Models/Makefile.am b/Models/Makefile.am
--- a/Models/Makefile.am
+++ b/Models/Makefile.am
@@ -1,1 +1,1 @@
-SUBDIRS = RSModel StandardModel General Susy UED Transplanckian ADD
+SUBDIRS = RSModel StandardModel General Susy UED Transplanckian ADD Leptoquarks
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -1,160 +1,161 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.59])
AC_INIT([Herwig++],[SVN],[herwig@projects.hepforge.org],[Herwig++])
AC_CONFIG_SRCDIR([Utilities/HerwigStrategy.cc])
AC_CONFIG_AUX_DIR([Config])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([Config/config.h])
dnl AC_PRESERVE_HELP_ORDER
AC_CANONICAL_HOST
case "${host}" in
*-darwin[[0156]].*)
AC_MSG_ERROR([Herwig++ requires OS X 10.3 or later])
;;
*-darwin7.*)
if test "x$MACOSX_DEPLOYMENT_TARGET" != "x10.3"; then
AC_MSG_ERROR(
[Please add 'MACOSX_DEPLOYMENT_TARGET=10.3' to the configure line.])
fi
;;
esac
dnl === disable debug symbols by default =====
if test "x$CXXFLAGS" = "x"; then
CXXFLAGS=-O3
fi
if test "x$CFLAGS" = "x"; then
CFLAGS=-O3
fi
dnl Looptools manual requires optimization off
if test "x$FCFLAGS" = "x"; then
FCFLAGS=-O0
fi
dnl ==========================================
AC_LANG([C++])
AM_INIT_AUTOMAKE([1.9 gnu dist-bzip2 -Wall])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
dnl Checks for programs.
AC_PROG_CXX([g++])
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_PROG_LN_S
dnl modified search order
AC_PROG_FC([gfortran g95 g77])
dnl xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn xlf90 f90 pgf90 pghpf epcf90 xlf f77 frt pgf77 cf77 fort77 fl32 af77])
AC_LANG_PUSH([Fortran])
AC_MSG_CHECKING([if the Fortran compiler ($FC) works])
AC_COMPILE_IFELSE(
AC_LANG_PROGRAM([],[ print *[,]"Hello"]),
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
AC_MSG_ERROR([A Fortran compiler is required to build Herwig++.])
]
)
AC_LANG_POP([Fortran])
LT_PREREQ([2.2])
LT_INIT([disable-static dlopen pic-only])
dnl ####################################
dnl ####################################
dnl for Doc/fixinterfaces.pl
AC_PATH_PROG(PERL, perl)
HERWIG_CHECK_GSL
HERWIG_CHECK_THEPEG
HERWIG_COMPILERFLAGS
HERWIG_LOOPTOOLS
HERWIG_PDF_PATH
HERWIG_CHECK_FASTJET
HERWIG_VERSIONSTRING
HERWIG_CHECK_ABS_BUG
HERWIG_ENABLE_MODELS
SHARED_FLAG=-shared
AM_CONDITIONAL(NEED_APPLE_FIXES,
[test "xx${host/darwin/foundit}xx" != "xx${host}xx"])
if test "xx${host/darwin/foundit}xx" != "xx${host}xx"; then
APPLE_DSO_FLAGS=-Wl,-undefined,dynamic_lookup
SHARED_FLAG=-bundle
fi
AC_SUBST([APPLE_DSO_FLAGS])
AC_SUBST([SHARED_FLAG])
AC_CONFIG_FILES([UnderlyingEvent/Makefile
Models/Makefile
Models/StandardModel/Makefile
Models/RSModel/Makefile
Models/General/Makefile
Models/Susy/Makefile
Models/Susy/NMSSM/Makefile
Models/UED/Makefile
Models/Transplanckian/Makefile
+ Models/Leptoquarks/Makefile
Models/ADD/Makefile
Decay/Makefile
Decay/FormFactors/Makefile
Decay/Tau/Makefile
Decay/Baryon/Makefile
Decay/VectorMeson/Makefile
Decay/Perturbative/Makefile
Decay/ScalarMeson/Makefile
Decay/TensorMeson/Makefile
Decay/WeakCurrents/Makefile
Decay/Partonic/Makefile
Decay/General/Makefile
Decay/Radiation/Makefile
Doc/refman.conf
Doc/refman.h
PDT/Makefile
PDF/Makefile
MatrixElement/Makefile
MatrixElement/General/Makefile
MatrixElement/Lepton/Makefile
MatrixElement/Hadron/Makefile
MatrixElement/DIS/Makefile
MatrixElement/Powheg/Makefile
MatrixElement/Gamma/Makefile
Shower/SplittingFunctions/Makefile
Shower/Default/Makefile
Shower/Base/Makefile
Shower/Makefile
Utilities/Makefile
Hadronization/Makefile
lib/Makefile
include/Makefile
src/Makefile
src/defaults/Makefile
src/herwig-config
Doc/Makefile
Doc/HerwigDefaults.in
Looptools/Makefile
Analysis/Makefile
src/Makefile-UserModules
src/defaults/Analysis.in
Contrib/Makefile
Contrib/make_makefiles.sh
Tests/Makefile
Makefile])
AC_CONFIG_FILES([Doc/fixinterfaces.pl],[chmod +x Doc/fixinterfaces.pl])
HERWIG_OVERVIEW
AC_CONFIG_COMMANDS([summary],[cat config.herwig])
AC_OUTPUT
diff --git a/m4/herwig.m4 b/m4/herwig.m4
--- a/m4/herwig.m4
+++ b/m4/herwig.m4
@@ -1,442 +1,443 @@
# check for gcc bug http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34130
AC_DEFUN([HERWIG_CHECK_ABS_BUG],
[
AC_REQUIRE([HERWIG_COMPILERFLAGS])
if test "$GCC" = "yes"; then
AC_MSG_CHECKING([for gcc abs bug])
AC_RUN_IFELSE(
AC_LANG_PROGRAM(
[ int foo (int i) { return -2 * __builtin_abs(i - 2); } ],
[ if ( foo(1) != -2 || foo(3) != -2 ) return 1; ]
),
[ AC_MSG_RESULT([not found. Compiler is ok.]) ],
[
AC_MSG_RESULT([found. Builtin abs() is buggy.])
AC_MSG_CHECKING([if -fno-builtin-abs works])
oldcxxflags=$CXXFLAGS
CXXFLAGS="$CXXFLAGS -fno-builtin-abs"
AC_RUN_IFELSE(
AC_LANG_PROGRAM(
[
#include <cstdlib>
int foo (int i) { return -2 * std::abs(i - 2); }
],
[
if (foo(1) != -2 || foo(3) != -2) return 1;
]
),
[
AC_MSG_RESULT([yes. Setting -fno-builtin-abs.])
AM_CXXFLAGS="$AM_CXXFLAGS -fno-builtin-abs"
AM_CFLAGS="$AM_CFLAGS -fno-builtin-abs"
],
[
AC_MSG_RESULT([no. Setting -fno-builtin.])
AC_MSG_WARN([
*****************************************************************************
For this version of gcc, -fno-builtin-abs alone did not work to avoid the
gcc abs() bug. Instead, all gcc builtin functions are now disabled.
Update gcc if possible.
*****************************************************************************])
AM_CXXFLAGS="$AM_CXXFLAGS -fno-builtin"
AM_CFLAGS="$AM_CFLAGS -fno-builtin"
]
)
CXXFLAGS=$oldcxxflags
]
)
fi
])
dnl ##### THEPEG #####
AC_DEFUN([HERWIG_CHECK_THEPEG],
[
defaultlocation="${prefix}"
test "x$defaultlocation" = xNONE && defaultlocation="${ac_default_prefix}"
AC_MSG_CHECKING([for libThePEG in])
AC_ARG_WITH(thepeg,
AC_HELP_STRING([--with-thepeg=DIR],[location of ThePEG installation]),
[],
[with_thepeg="${defaultlocation}"])
AC_MSG_RESULT([$with_thepeg])
if test "x$with_thepeg" = "xno"; then
AC_MSG_ERROR([Cannot build Herwig++ without ThePEG. Please set --with-thepeg.])
fi
THEPEGLDFLAGS="-L${with_thepeg}/lib/ThePEG"
THEPEGPATH="${with_thepeg}"
oldldflags="$LDFLAGS"
oldlibs="$LIBS"
LDFLAGS="$LDFLAGS $THEPEGLDFLAGS"
AC_CHECK_LIB([ThePEG],[debugThePEG],[],
[AC_MSG_ERROR([No ThePEG libraries in $THEPEGLDFLAGS. Please set --with-thepeg.])])
AC_SUBST([THEPEGLIB],[-lThePEG])
AC_SUBST(THEPEGLDFLAGS)
AC_SUBST(THEPEGPATH)
LIBS="$oldlibs"
LDFLAGS="$oldldflags"
AC_MSG_CHECKING([for ThePEG headers in])
AC_ARG_WITH([thepeg-headers],
AC_HELP_STRING([--with-thepeg-headers=DIR],[location of ThePEG include directory]),
[],
[with_thepeg_headers="${with_thepeg}/include"])
AC_MSG_RESULT([$with_thepeg_headers])
if test "x$with_thepeg_headers" = "xno"; then
AC_MSG_ERROR([Cannot build Herwig++ without ThePEG headers. Please set --with-thepeg-headers.])
fi
THEPEGINCLUDE="-I$with_thepeg_headers"
oldcppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $THEPEGINCLUDE"
AC_CHECK_HEADER([ThePEG/Config/ThePEG.h],[],
[AC_MSG_ERROR([No ThePEG headers in $with_thepeg_headers. Please set --with-thepeg-headers.])])
CPPFLAGS="$oldcppflags"
AC_SUBST(THEPEGINCLUDE)
AC_MSG_CHECKING([for HepMCAnalysis.so in ThePEG])
if test -x "$THEPEGPATH/lib/ThePEG/HepMCAnalysis.so" ; then
CREATE_HEPMC="create"
AC_MSG_RESULT([found])
else
CREATE_HEPMC="# create"
AC_MSG_RESULT([not found])
fi
AC_SUBST([CREATE_HEPMC])
])
dnl ##### FastJet #####
AC_DEFUN([HERWIG_CHECK_FASTJET],[
FASTJETPATH=""
FASTJETLIBS=""
FASTJETINCLUDE=""
LOAD_FASTJET=""
CREATE_FASTJET="#create"
AC_MSG_CHECKING([for FastJet location])
AC_ARG_WITH(fastjet,
AC_HELP_STRING([--with-fastjet=DIR],[Location of FastJet installation @<:@default=system libs@:>@]),
[],
[with_fastjet=system])
if test "x$with_fastjet" = "xno"; then
AC_MSG_RESULT([FastJet support disabled.])
elif test "x$with_fastjet" = "xsystem"; then
AC_MSG_RESULT([in system libraries])
oldlibs="$LIBS"
AC_CHECK_LIB(fastjet,main,
[],
[with_fastjet=no
AC_MSG_WARN([
FastJet not found in system libraries])
])
FASTJETLIBS="$LIBS"
LIBS=$oldlibs
else
AC_MSG_RESULT([$with_fastjet])
FASTJETPATH="$with_fastjet"
FASTJETINCLUDE="-I$with_fastjet/include"
FASTJETLIBS="-L$with_fastjet/lib -R$with_fastjet/lib -lfastjet"
fi
if test "x$with_fastjet" != "xno"; then
# Now lets see if the libraries work properly
oldLIBS="$LIBS"
oldLDFLAGS="$LDFLAGS"
oldCPPFLAGS="$CPPFLAGS"
LIBS="$LIBS $FASTJETLIBS"
LDFLAGS="$LDFLAGS"
CPPFLAGS="$CPPFLAGS $FASTJETINCLUDE"
AC_MSG_CHECKING([that FastJet works])
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <fastjet/ClusterSequence.hh>
]],[[fastjet::JetDefinition jet_def(fastjet::ee_kt_algorithm, fastjet::E_scheme, fastjet::Best); ]])],
[AC_MSG_RESULT([yes])],[AC_MSG_RESULT([no])
AC_MSG_ERROR([Use '--with-fastjet=' to set a path or use '--without-fastjet'.])
])
AC_CHECK_HEADERS([fastjet/ClusterSequence.hh])
LIBS="$oldLIBS"
LDFLAGS="$oldLDFLAGS"
CPPFLAGS="$oldCPPFLAGS"
CREATE_FASTJET="create"
LOAD_FASTJET="library HwLEPJetAnalysis.so"
fi
AC_SUBST(FASTJETINCLUDE)
AC_SUBST(CREATE_FASTJET)
AC_SUBST(LOAD_FASTJET)
AC_SUBST(FASTJETLIBS)
AM_CONDITIONAL(WANT_LIBFASTJET,[test "x$CREATE_FASTJET" = "xcreate"])
])
dnl ##### LOOPTOOLS #####
AC_DEFUN([HERWIG_LOOPTOOLS],
[
AC_REQUIRE([AC_PROG_FC])
AC_REQUIRE([AC_FC_LIBRARY_LDFLAGS])
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([HERWIG_COMPILERFLAGS])
AC_MSG_CHECKING([if Looptools build works])
enable_looptools=yes
if test "x$GCC" = "xyes"; then
case "${host}" in
x86_64-*|*-darwin10.*)
AM_FCFLAGS="$AM_FCFLAGS -fdefault-integer-8"
;;
esac
AC_LANG_PUSH([Fortran])
oldFCFLAGS="$FCFLAGS"
FCFLAGS="$AM_FCFLAGS"
AC_COMPILE_IFELSE(
AC_LANG_PROGRAM([],[ print *[,]"Hello"]),
[],
[AC_MSG_RESULT([no])
AC_MSG_ERROR([needs gfortran on 64bit machines])]
)
FCFLAGS="$oldFCFLAGS"
AC_LANG_POP([Fortran])
fi
AC_MSG_RESULT([$enable_looptools])
AC_SUBST([F77],[$FC])
AC_SUBST([FFLAGS],[$FCFLAGS])
AC_SUBST([AM_FFLAGS],[$AM_FCFLAGS])
AC_SUBST([FLIBS],[$FCLIBS])
])
dnl ##### PDF PATH #####
AC_DEFUN([HERWIG_PDF_PATH],
[
AC_MSG_CHECKING([which Herwig++ PDF data to use])
AC_ARG_WITH(pdf,
AC_HELP_STRING([--with-pdf=DIR],[installation path of Herwig++PDF data tarball]),
[],
[with_pdf=${prefix}]
)
HERWIG_PDF_PREFIX=${with_pdf}/share/Herwig++PDF
if test -f "${HERWIG_PDF_PREFIX}/mrst/2008/mrstMCal.dat"; then
AC_MSG_RESULT([$with_pdf])
localPDFneeded=false
else
AC_MSG_RESULT([Using built-in PDF data set. For other data sets, set --with-pdf.])
HERWIG_PDF_PREFIX=PDF
localPDFneeded=true
fi
HERWIG_PDF_DEFAULT=${HERWIG_PDF_PREFIX}/mrst/2008/mrstMCal.dat
HERWIG_PDF_NLO=${HERWIG_PDF_PREFIX}/mrst/2002/mrst2002nlo.dat
HERWIG_PDF_POMERON=${HERWIG_PDF_PREFIX}/diffraction/
AM_CONDITIONAL(WANT_LOCAL_PDF,[test "x$localPDFneeded" = "xtrue"])
AC_SUBST(HERWIG_PDF_DEFAULT)
AC_SUBST(HERWIG_PDF_NLO)
AC_SUBST(HERWIG_PDF_POMERON)
])
dnl ###### GSL ######
AC_DEFUN([HERWIG_CHECK_GSL],
[
AC_MSG_CHECKING([for gsl location])
GSLINCLUDE=""
GSLLIBS=""
AC_ARG_WITH(gsl,
AC_HELP_STRING([--with-gsl=DIR],[location of gsl installation @<:@default=system libs@:>@]),
[],
[with_gsl=system])
if test "x$with_gsl" = "xno"; then
AC_MSG_ERROR([libgsl is required. Please install the GNU scientific library and header files.])
fi
if test "x$with_gsl" = "xsystem"; then
AC_MSG_RESULT([in system libraries])
oldlibs="$LIBS"
AC_CHECK_LIB(m,main)
AC_CHECK_LIB(gslcblas,main)
AC_CHECK_LIB(gsl,main,[],
[
AC_MSG_ERROR([Cannot find libgsl. Please install the GNU scientific library and header files or use --with-gsl=.])
]
)
GSLLIBS="$LIBS"
LIBS=$oldlibs
else
if test "`uname -m`" = "x86_64" -a -e "$with_gsl/lib64/libgsl.a" -a -d "$with_gsl/include/gsl"; then
AC_MSG_RESULT([found in $with_gsl])
GSLLIBS="-L$with_gsl/lib64 -R$with_gsl/lib64 -lgslcblas -lgsl"
GSLINCLUDE="-I$with_gsl/include"
elif test -e "$with_gsl/lib/libgsl.a" -a -d "$with_gsl/include/gsl"; then
AC_MSG_RESULT([found in $with_gsl])
GSLLIBS="-L$with_gsl/lib -R$with_gsl/lib -lgslcblas -lgsl"
GSLINCLUDE="-I$with_gsl/include"
else
AC_MSG_RESULT([not found])
AC_MSG_ERROR([Can't find $with_gsl/lib/libgsl.a or the headers in $with_gsl/include])
fi
fi
AC_SUBST(GSLINCLUDE)
AC_SUBST(GSLLIBS)
])
AC_DEFUN([HERWIG_VERSIONSTRING],
[
if test -d $srcdir/.svn; then
AC_CHECK_PROG(have_svnversion,[svnversion],[yes],[no])
fi
AM_CONDITIONAL(USE_SVNVERSION,[test "x$have_svnversion" = "xyes"])
])
dnl ##### COMPILERFLAGS #####
AC_DEFUN([HERWIG_COMPILERFLAGS],
[
AC_REQUIRE([HERWIG_CHECK_THEPEG])
AM_CPPFLAGS="-I\$(top_builddir)/include $THEPEGINCLUDE \$(GSLINCLUDE)"
AC_MSG_CHECKING([for debugging mode])
AC_ARG_ENABLE(debug,
AC_HELP_STRING([--enable-debug],[debug mode, use --enable-debug=slow for additional options that slow down the run.]),
[],
[enable_debug=no]
)
AC_MSG_RESULT([$enable_debug])
if test "x$enable_debug" = "xno"; then
AM_CPPFLAGS="$AM_CPPFLAGS -DNDEBUG"
else
debugflags="-g"
fi
dnl -Wfloat-equal -fvisibility-inlines-hidden -Wctor-dtor-privacy -Weffc++
if test -n "$GCC"; then
warnflags="-ansi -pedantic -Wall -W"
if test "x$enable_debug" = "xslow"; then
debugflags="$debugflags -fno-inline"
AM_CPPFLAGS="$AM_CPPFLAGS -D_GLIBCXX_DEBUG"
fi
fi
AC_SUBST(AM_CPPFLAGS)
AC_SUBST(AM_CFLAGS, ["$warnflags $debugflags"])
AC_SUBST(AM_CXXFLAGS,["$warnflags $debugflags"])
AC_SUBST(AM_FCFLAGS, ["$debugflags"])
AC_SUBST(AM_LDFLAGS)
])
AC_DEFUN([HERWIG_ENABLE_MODELS],
[
AC_MSG_CHECKING([for BSM models to include])
LOAD_RS=""
LOAD_SUSY=""
LOAD_TRP=""
LOAD_UED=""
LOAD_ADD=""
AC_ARG_ENABLE(models,
- AC_HELP_STRING([--enable-models=LIST],[Comma-separated list of BSM models to enable. Options are (mssm nmssm ued rs trp add) or --disable-models to turn them all off.]),
+ AC_HELP_STRING([--enable-models=LIST],[Comma-separated list of BSM models to enable. Options are (mssm nmssm ued rs trp add leptoquarks) or --disable-models to turn them all off.]),
[],
[enable_models=all]
)
if test "x$enable_models" = "xyes" -o "x$enable_models" = "xall"; then
all=yes
fi
AC_MSG_RESULT([$enable_models])
if test ! "$all"; then
oldIFS="$IFS"
IFS=","
for i in $enable_models; do
declare $i=yes
done
IFS="$oldIFS"
fi
if test "$nmssm"; then
mssm=yes
fi
if test "$rs" -o "$all" ; then
LOAD_RS="library HwRSModel.so"
fi
AC_SUBST(LOAD_RS)
if test "$mssm" -o "$all"; then
LOAD_SUSY="library HwSusy.so"
fi
AC_SUBST(LOAD_SUSY)
if test "$trp" -o "$all"; then
LOAD_TRP="library HwTransplanck.so"
fi
AC_SUBST(LOAD_TRP)
if test "$ued" -o "$all"; then
LOAD_UED="library HwUED.so"
fi
AC_SUBST(LOAD_UED)
if test "$add" -o "$all"; then
LOAD_ADD="library HwADDModel.so"
fi
AC_SUBST(LOAD_ADD)
AM_CONDITIONAL(WANT_MSSM,[test "$mssm" -o "$all"])
AM_CONDITIONAL(WANT_NMSSM,[test "$nmssm" -o "$all"])
AM_CONDITIONAL(WANT_UED,[test "$ued" -o "$all"])
AM_CONDITIONAL(WANT_RS,[test "$rs" -o "$all"])
+AM_CONDITIONAL(WANT_Leptoquark,[test "$leptoquarks" -o "$all"])
AM_CONDITIONAL(WANT_TRP,[test "$trp" -o "$all"])
AM_CONDITIONAL(WANT_ADD,[test "$add" -o "$all"])
])
AC_DEFUN([HERWIG_OVERVIEW],
[
FCSTRING=`$FC --version | head -1`
CXXSTRING=`$CXX --version | head -1`
CCSTRING=`$CC --version | head -1`
cat << _HW_EOF_ > config.herwig
*****************************************************
*** $PACKAGE_STRING configuration summary
*** Please include this information in bug reports!
***--------------------------------------------------
*** Prefix: $prefix
***
*** BSM models: $enable_models
*** Herwig debug mode: $enable_debug
***
*** GSL: $with_gsl
***
*** ThePEG: $with_thepeg
*** ThePEG headers: $with_thepeg_headers
***
*** Fastjet: $with_fastjet
***
*** Host: $host
*** CXX: $CXXSTRING
*** FC: $FCSTRING
*** CC: $CCSTRING
*****************************************************
_HW_EOF_
])
diff --git a/src/LHC-LQ.in b/src/LHC-LQ.in
new file mode 100644
--- /dev/null
+++ b/src/LHC-LQ.in
@@ -0,0 +1,68 @@
+##################################################
+# Example generator for the Leptoquark model
+# in hadron collisions
+# The best way to use this is to make your own
+# copy of this file and edit that as you require.
+#
+# The first section loads the model file which
+# does not contain anything that users need to touch.
+#
+# The second section contains the user settings.
+###################################################
+read Leptoquark.model
+
+
+cd /Herwig/NewPhysics
+
+##################################################
+#
+# This section contains the user defined settings
+#
+##################################################
+# Example hard process: Incoming proton, outgoing leptoquarks
+
+
+insert HPConstructor:Incoming 0 /Herwig/Particles/u
+insert HPConstructor:Incoming 1 /Herwig/Particles/ubar
+insert HPConstructor:Incoming 2 /Herwig/Particles/d
+insert HPConstructor:Incoming 3 /Herwig/Particles/dbar
+insert HPConstructor:Incoming 4 /Herwig/Particles/s
+insert HPConstructor:Incoming 5 /Herwig/Particles/sbar
+insert HPConstructor:Incoming 6 /Herwig/Particles/c
+insert HPConstructor:Incoming 7 /Herwig/Particles/cbar
+insert HPConstructor:Incoming 8 /Herwig/Particles/g
+
+insert HPConstructor:Outgoing 0 /Herwig/Particles/S0
+insert HPConstructor:Outgoing 1 /Herwig/Particles/S0bar
+
+
+# Intrinsic pT tune extrapolated to LHC energy
+set /Herwig/Shower/Evolver:IntrinsicPtGaussian 2.2*GeV
+
+
+cd /Herwig/Shower
+set SplittingGenerator:ISR Yes
+set SplittingGenerator:FSR Yes
+
+# Cuts
+cd /Herwig/Cuts
+set JetKtCut:MinKT 0.0*GeV
+set QCDCuts:MHatMax 14000.0*GeV
+set EECuts:MHatMin 0.0*GeV
+set PhotonKtCut:MinKT 0.0*GeV
+set PhotonKtCut:MinEta -10.
+set PhotonKtCut:MaxEta 10.
+set MassCut:MinM 0.*GeV
+
+
+# Other parameters for run
+cd /Herwig/Generators
+
+set LHCGenerator:EventHandler:LuminosityFunction:Energy 14000.0
+set LHCGenerator:NumberOfEvents 10000000
+set LHCGenerator:RandomNumberGenerator:Seed 31122001
+set LHCGenerator:PrintEvent 1000
+set LHCGenerator:MaxErrors 10000
+
+
+saverun LHC-LQ LHCGenerator
diff --git a/src/Leptoquark.model b/src/Leptoquark.model
new file mode 100644
--- /dev/null
+++ b/src/Leptoquark.model
@@ -0,0 +1,238 @@
+##################################################
+# Common setup for Leptoquark models
+#
+# See LHC-LQ.in or ILC-LQ.in for example usage
+#
+# This file does not contain anything that
+# users need to touch. User settings are in
+# ???-LQ.in
+#
+###################################################
+#
+# Particle Data object for the Leptoquarks
+#
+###################################################
+cd /Herwig/Particles
+
+create /ThePEG/ParticleData S0bar
+setup S0bar 9911561 S0bar 400.0 0.0 0.0 0.0 -1 3 1 0
+create /ThePEG/ParticleData S0
+setup S0 -9911561 S0 400.0 0.0 0.0 0.0 1 -3 1 0
+makeanti S0bar S0
+
+create /ThePEG/ParticleData ~S0bar
+setup ~S0bar 9921551 ~S0bar 400.0 0.0 0.0 0.0 -4 3 1 0
+create /ThePEG/ParticleData ~S0
+setup ~S0 -9921551 ~S0 400.0 0.0 0.0 0.0 4 -3 1 0
+makeanti ~S0bar ~S0
+
+create /ThePEG/ParticleData S1pbar
+setup S1pbar 9931551 S1pbar 400.0 0.0 0.0 0.0 -4 3 1 0
+create /ThePEG/ParticleData S1p
+setup S1p -9931551 S1p 400.0 0.0 0.0 0.0 4 -3 1 0
+makeanti S1pbar S1p
+
+create /ThePEG/ParticleData S1mbar
+setup S1mbar 9931661 S1mbar 400.0 0.0 0.0 0.0 2 3 1 0
+create /ThePEG/ParticleData S1m
+setup S1m -9931661 S1m 400.0 0.0 0.0 0.0 -2 -3 1 0
+makeanti S1mbar S1m
+
+create /ThePEG/ParticleData S1zbar
+setup S1zbar 9931561 S1zbar 400.0 0.0 0.0 0.0 -1 3 1 0
+create /ThePEG/ParticleData S1z
+setup S1z -9931561 S1z 400.0 0.0 0.0 0.0 1 -3 1 0
+makeanti S1zbar S1z
+
+create /ThePEG/ParticleData S12p
+setup S12p 9941561 S12p 400.0 0.0 0.0 0.0 5 3 1 0
+create /ThePEG/ParticleData S12pbar
+setup S12pbar -9941561 S12pbar 400.0 0.0 0.0 0.0 -5 -3 1 0
+makeanti S12p S12pbar
+
+create /ThePEG/ParticleData S12m
+setup S12m 9941551 S12m 400.0 0.0 0.0 0.0 2 3 1 0
+create /ThePEG/ParticleData S12mbar
+setup S12mbar -9941551 S12mbar 400.0 0.0 0.0 0.0 -2 -3 1 0
+makeanti S12m S12mbar
+
+create /ThePEG/ParticleData S12tp
+setup S12tp 9951551 S12tp 400.0 0.0 0.0 0.0 2 3 1 0
+create /ThePEG/ParticleData S12tpbar
+setup S12tpbar -9951551 S12tpbar 400.0 0.0 0.0 0.0 -2 -3 1 0
+makeanti S12tp S12tpbar
+
+create /ThePEG/ParticleData S12tm
+setup S12tm 9951651 S12tm 400.0 0.0 0.0 0.0 -1 3 1 0
+create /ThePEG/ParticleData S12tmbar
+setup S12tmbar -9951651 S12tmbar 400.0 0.0 0.0 0.0 1 -3 1 0
+makeanti S12tm S12tmbar
+
+create /ThePEG/ParticleData dS0
+setup dS0 9961551 dS0 400.0 0.0 0.0 0.0 2 3 1 0
+create /ThePEG/ParticleData dS0bar
+setup dS0bar -9961551 dS0bar 400.0 0.0 0.0 0.0 -2 -3 1 0
+makeanti dS0 dS0bar
+
+create /ThePEG/ParticleData ~dS0
+setup ~dS0 9971561 ~dS0 400.0 0.0 0.0 0.0 5 3 1 0
+create /ThePEG/ParticleData ~dS0bar
+setup ~dS0bar -9971561 ~dS0bar 400.0 0.0 0.0 0.0 -5 -3 1 0
+makeanti ~dS0 ~dS0bar
+
+create /ThePEG/ParticleData dS1p
+setup dS1p 9981561 dS1p 400.0 0.0 0.0 0.0 5 3 1 0
+create /ThePEG/ParticleData dS1pbar
+setup dS1pbar -9981561 dS1pbar 400.0 0.0 0.0 0.0 -5 -3 1 0
+makeanti dS1p dS1pbar
+
+create /ThePEG/ParticleData dS1m
+setup dS1m 9981651 dS1m 400.0 0.0 0.0 0.0 -1 3 1 0
+create /ThePEG/ParticleData dS1mbar
+setup dS1mbar -9981651 dS1mbar 400.0 0.0 0.0 0.0 1 -3 1 0
+makeanti dS1m dS1mbar
+
+create /ThePEG/ParticleData dS1z
+setup dS1z 9981551 dS1z 400.0 0.0 0.0 0.0 2 3 1 0
+create /ThePEG/ParticleData dS1zbar
+setup dS1zbar -9981551 dS1zbar 400.0 0.0 0.0 0.0 -2 -3 1 0
+makeanti dS1z dS1zbar
+
+create /ThePEG/ParticleData dS12pbar
+setup dS12pbar 9991551 dS12pbar 400.0 0.0 0.0 0.0 -4 3 1 0
+create /ThePEG/ParticleData dS12p
+setup dS12p -9991551 dS12p 400.0 0.0 0.0 0.0 4 -3 1 0
+makeanti dS12pbar dS12p
+
+create /ThePEG/ParticleData dS12mbar
+setup dS12mbar 9991561 dS12mbar 400.0 0.0 0.0 0.0 -1 3 1 0
+create /ThePEG/ParticleData dS12m
+setup dS12m -9991561 dS12m 400.0 0.0 0.0 0.0 1 -3 1 0
+makeanti dS12mbar dS12m
+
+create /ThePEG/ParticleData dS12tpbar
+setup dS12tpbar 9901561 dS12tpbar 400.0 0.0 0.0 0.0 -4 3 1 0
+create /ThePEG/ParticleData dS12tp
+setup dS12tp -9901561 dS12tp 400.0 0.0 0.0 0.0 4 -3 1 0
+makeanti dS12tpbar dS12tp
+
+create /ThePEG/ParticleData dS12tmbar
+setup dS12tmbar 9901661 dS12tmbar 400.0 0.0 0.0 0.0 -1 3 1 0
+create /ThePEG/ParticleData dS12tm
+setup dS12tm -9901661 dS12tm 400.0 0.0 0.0 0.0 1 -3 1 0
+makeanti dS12tmbar dS12tm
+
+
+
+###################################################
+#
+# Main directory and model object
+#
+###################################################
+mkdir /Herwig/NewPhysics/Leptoquark
+cd /Herwig/NewPhysics/Leptoquark
+create Herwig::LeptoquarkModel Model HwLeptoquarkModel.so
+# SM couplings
+set Model:QCD/RunningAlphaS /Herwig/AlphaS
+set Model:EW/RunningAlphaEM /Herwig/AlphaEM
+set Model:EW/CKM /Herwig/CKM
+set Model:RunningMass /Herwig/RunningMass
+set Model:LQCoupling 0.312
+set Model:g_S0_L 1.0
+set Model:g_S0_R 1.0
+set Model:g_S0t_R 1.0
+set Model:g_S1_L 1.0
+set Model:g_S12_L 1.0
+set Model:g_S12_R 1.0
+set Model:g_S12t_L 1.0
+set Model:g_dS0_L 1.0
+set Model:g_dS0_R 1.0
+set Model:g_dS0t_R 1.0
+set Model:g_dS1_L 1.0
+set Model:g_dS12_L 1.0
+set Model:g_dS12_R 1.0
+set Model:g_dS12t_L 1.0
+set Model:derivscale 500.0
+
+
+###################################################
+#
+# Vertices
+#
+###################################################
+# create Leptoquark model vertices
+mkdir /Herwig/Vertices/Leptoquark
+cd /Herwig/Vertices/Leptoquark
+library HwLeptoquarkModel.so
+create Herwig::LeptoquarkModelSLQSLQGVertex Leptoquark_SLQSLQGVertex
+create Herwig::LeptoquarkModelSLQSLQGGVertex Leptoquark_SLQSLQGGVertex
+create Herwig::LeptoquarkModelSLQFFVertex Leptoquark_SLQFFVertex
+
+
+cd /Herwig/NewPhysics/Leptoquark
+# SM vertices
+set Model:Vertex/FFZ /Herwig/Vertices/FFZVertex
+set Model:Vertex/FFW /Herwig/Vertices/FFWVertex
+set Model:Vertex/FFH /Herwig/Vertices/FFHVertex
+set Model:Vertex/FFG /Herwig/Vertices/FFGVertex
+set Model:Vertex/FFP /Herwig/Vertices/FFPVertex
+set Model:Vertex/GGG /Herwig/Vertices/GGGVertex
+set Model:Vertex/GGGG /Herwig/Vertices/GGGGVertex
+set Model:Vertex/WWH /Herwig/Vertices/WWHVertex
+set Model:Vertex/WWW /Herwig/Vertices/WWWVertex
+set Model:Vertex/WWWW /Herwig/Vertices/WWWWVertex
+set Model:Vertex/HGG /Herwig/Vertices/HGGVertex
+set Model:Vertex/HHH /Herwig/Vertices/HHHVertex
+set Model:Vertex/WWHH /Herwig/Vertices/WWHHVertex
+
+set Model:Vertex/HHH /Herwig/Vertices/HHHVertex
+set Model:Vertex/HPP /Herwig/Vertices/HPPVertex
+# Leptoquark model vertices
+set Model:Vertex/SLQSLQG /Herwig/Vertices/Leptoquark/Leptoquark_SLQSLQGVertex
+set Model:Vertex/SLQSLQGG /Herwig/Vertices/Leptoquark/Leptoquark_SLQSLQGGVertex
+set Model:Vertex/SLQFF /Herwig/Vertices/Leptoquark/Leptoquark_SLQFFVertex
+
+
+###################################################
+#
+# Set up spin correlation Decayers
+#
+###################################################
+cd /Herwig/NewPhysics
+
+set TwoBodyDC:CreateDecayModes Yes
+set ThreeBodyDC:CreateDecayModes No
+
+insert NewModel:DecayParticles 0 /Herwig/Particles/S0bar
+insert NewModel:DecayParticles 1 /Herwig/Particles/~S0bar
+insert NewModel:DecayParticles 2 /Herwig/Particles/S1pbar
+insert NewModel:DecayParticles 3 /Herwig/Particles/S1mbar
+insert NewModel:DecayParticles 4 /Herwig/Particles/S1zbar
+insert NewModel:DecayParticles 5 /Herwig/Particles/S12p
+insert NewModel:DecayParticles 6 /Herwig/Particles/S12m
+insert NewModel:DecayParticles 7 /Herwig/Particles/S12tp
+insert NewModel:DecayParticles 8 /Herwig/Particles/S12tm
+insert NewModel:DecayParticles 9 /Herwig/Particles/dS0
+insert NewModel:DecayParticles 10 /Herwig/Particles/~dS0
+insert NewModel:DecayParticles 11 /Herwig/Particles/dS1p
+insert NewModel:DecayParticles 12 /Herwig/Particles/dS1m
+insert NewModel:DecayParticles 13 /Herwig/Particles/dS1z
+insert NewModel:DecayParticles 14 /Herwig/Particles/dS12pbar
+insert NewModel:DecayParticles 15 /Herwig/Particles/dS12mbar
+insert NewModel:DecayParticles 16 /Herwig/Particles/dS12tpbar
+insert NewModel:DecayParticles 17 /Herwig/Particles/dS12tmbar
+
+###################################################
+# Set up the model framework
+###################################################
+set Leptoquark/Model:ModelGenerator NewModel
+###################################################
+#
+# Choose Leptoquark over SM
+#
+###################################################
+cd /Herwig/Generators
+set LEPGenerator:StandardModelParameters /Herwig/NewPhysics/Leptoquark/Model
+set LHCGenerator:StandardModelParameters /Herwig/NewPhysics/Leptoquark/Model
+
+#insert /Herwig/Shower/ShowerHandler:DecayInShower 0 9911561

File Metadata

Mime Type
text/x-diff
Expires
Thu, Apr 24, 6:37 AM (1 d, 19 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4887779
Default Alt Text
(75 KB)

Event Timeline