Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // RSModelFFGRVertex.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_RSModelFFGRVertex_H
0010 #define HERWIG_RSModelFFGRVertex_H
0011 //
0012 // This is the declaration of the RSModelFFGRVertex class.
0013 
0014 #include "ThePEG/Helicity/Vertex/Tensor/FFTVertex.h"
0015 #include "RSModel.h"
0016 
0017 namespace Herwig {
0018 using namespace ThePEG;
0019 
0020 /** \ingroup Helicity
0021  *
0022  *  This is the implementation of the Randell-Sundrum model fermion-antifermion
0023  *  tensor vertex for helicity amplitude calculations 
0024  *
0025  *  @see FFTVertex
0026  *  @see VertexBase
0027  */
0028 class RSModelFFGRVertex: public FFTVertex {
0029   
0030 public:
0031   
0032   /** @name Standard constructors and destructors. */
0033   //@{
0034   /**
0035    * Default constructor.
0036    */
0037   RSModelFFGRVertex();
0038   //@}
0039   
0040 public:
0041   
0042   /** @name Functions used by the persistent I/O system. */
0043   //@{
0044   /**
0045    * Function used to write out object persistently.
0046    * @param os the persistent output stream written to.
0047    */
0048   void persistentOutput(PersistentOStream & os) const;
0049 
0050   /**
0051    * Function used to read in object persistently.
0052    * @param is the persistent input stream read from.
0053    * @param version the version number of the object when written.
0054    */
0055   void persistentInput(PersistentIStream & is, int version);
0056   //@}
0057   
0058   /**
0059    * Standard Init function used to initialize the interfaces.
0060    */
0061   static void Init();
0062   
0063   /**
0064    * Calculate the couplings. 
0065    * @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
0066    * @param part1 The ParticleData pointer for the first  particle.
0067    * @param part2 The ParticleData pointer for the second particle.
0068    * @param part3 The ParticleData pointer for the third  particle.
0069    */
0070   virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3);
0071 
0072 protected:
0073   
0074   /** @name Clone Methods. */
0075   //@{
0076   /**
0077    * Make a simple clone of this object.
0078    * @return a pointer to the new object.
0079    */
0080   virtual IBPtr clone() const {return new_ptr(*this);}
0081 
0082   /** Make a clone of this object, possibly modifying the cloned object
0083    * to make it sane.
0084    * @return a pointer to the new object.
0085    */
0086   virtual IBPtr fullclone() const {return new_ptr(*this);}
0087   //@}
0088 
0089 protected:
0090   
0091   /**
0092    * Initialize this object after the setup phase before saving and
0093    * EventGenerator to disk.
0094    * @throws InitException if object could not be initialized properly.
0095    */
0096   virtual void doinit();
0097     
0098 private:
0099   
0100   /**
0101    * Private and non-existent assignment operator.
0102    */
0103   RSModelFFGRVertex & operator=(const RSModelFFGRVertex &) = delete;
0104 
0105   /**
0106    * The coupling.
0107    */
0108   InvEnergy kappa_;
0109 
0110 };
0111 }
0112 
0113 #endif /* HERWIG_RSModelFFGRVertex_H */