Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef Herwig_SSWWSSVertex_H
0003 #define Herwig_SSWWSSVertex_H
0004 //
0005 // This is the declaration of the SSWWSSVertex class.
0006 //
0007 
0008 #include "ThePEG/Helicity/Vertex/Scalar/VVSSVertex.h"
0009 
0010 namespace Herwig {
0011 
0012 using namespace ThePEG;
0013 
0014 /**
0015  * Here is the documentation of the SSWWSSVertex class.
0016  *
0017  * @see \ref SSWWSSVertexInterfaces "The interfaces"
0018  * defined for SSWWSSVertex.
0019  */
0020 class SSWWSSVertex: public VVSSVertex {
0021 
0022 public:
0023   
0024   /**
0025    * The default constructor.
0026    */
0027   SSWWSSVertex();
0028 
0029   /**
0030    *  Calculate the coupling
0031    */
0032   virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,
0033                tcPDPtr part3,tcPDPtr part4);
0034   
0035 
0036 public:
0037 
0038   /** @name Functions used by the persistent I/O system. */
0039   //@{
0040   /**
0041    * Function used to write out object persistently.
0042    * @param os the persistent output stream written to.
0043    */
0044   void persistentOutput(PersistentOStream & os) const;
0045 
0046   /**
0047    * Function used to read in object persistently.
0048    * @param is the persistent input stream read from.
0049    * @param version the version number of the object when written.
0050    */
0051   void persistentInput(PersistentIStream & is, int version);
0052   //@}
0053 
0054   /**
0055    * The standard Init function used to initialize the interfaces.
0056    * Called exactly once for each class by the class description system
0057    * before the main function starts or
0058    * when this class is dynamically loaded.
0059    */
0060   static void Init();
0061 
0062 protected:
0063 
0064   /** @name Clone Methods. */
0065   //@{
0066   /**
0067    * Make a simple clone of this object.
0068    * @return a pointer to the new object.
0069    */
0070   virtual IBPtr clone() const;
0071 
0072   /** Make a clone of this object, possibly modifying the cloned object
0073    * to make it sane.
0074    * @return a pointer to the new object.
0075    */
0076   virtual IBPtr fullclone() const;
0077   //@}
0078 protected:
0079 
0080   /** @name Standard Interfaced functions. */
0081   //@{
0082   /**
0083    * Initialize this object after the setup phase before saving an
0084    * EventGenerator to disk.
0085    * @throws InitException if object could not be initialized properly.
0086    */
0087   virtual void doinit();
0088   //@}
0089 
0090 private:
0091 
0092   /**
0093    * The assignment operator is private and must never be called.
0094    * In fact, it should not even be implemented.
0095    */
0096   SSWWSSVertex & operator=(const SSWWSSVertex &) = delete;
0097 
0098 private:
0099 
0100   /**
0101    * Value of \f$sin(\theta_w)\f$
0102    */
0103   double sw_;
0104 
0105   /**
0106    * Value of \f$cos(\theta_w)\f$
0107    */
0108   double cw_;
0109   
0110   /**
0111    * Scale at which the coupling was last evaluated
0112    */
0113   Energy2 q2last_;
0114 
0115   /**
0116    * Value of coupling when last evaluated
0117    */
0118   Complex couplast_;
0119 
0120   /**
0121    * Stau mixing matrix
0122    */
0123   tMixingMatrixPtr stau_;
0124   
0125   /**
0126    * Stop mixing matrix
0127    */
0128   tMixingMatrixPtr stop_;
0129 
0130   /**
0131    * Sbottom mixing matrix
0132    */
0133   tMixingMatrixPtr sbottom_;
0134   
0135   /**
0136    * The up type sfermion present when the vertex was evaluated. 
0137    */
0138   long ulast_;
0139 
0140   /**
0141    * The down type sfermion present when the vertex was evaluated. 
0142    */
0143   long dlast_;
0144 
0145   /**
0146    * The first gauge boson present when the vertex was last evaluated. 
0147    */
0148   long gblast1_;
0149 
0150   /**
0151    * The second gauge boson present when the vertex was last evaluated. 
0152    */
0153   long gblast2_;
0154   
0155   /**
0156    * The value of the mixing matrix dependent part when the vertex was
0157    * last evaluated
0158    */
0159   Complex factlast_;
0160 };
0161 
0162 }
0163 
0164 #endif /* Herwig_SSWWSSVertex_H */