Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef HERWIG_TTbAModel_H
0003 #define HERWIG_TTbAModel_H
0004 //
0005 // This is the declaration of the TTbAModel class.
0006 //
0007 
0008 #include "Herwig/Models/General/BSMModel.h"
0009 #include "ThePEG/Helicity/Vertex/AbstractFFVVertex.h"
0010 #include "TTbAModel.fh"
0011 
0012 namespace Herwig {
0013 
0014 using namespace ThePEG;
0015 using namespace ThePEG::Helicity;
0016 
0017 /**
0018  * Here is the documentation of the TTbAModel class.
0019  *
0020  * @see \ref TTbAModelInterfaces "The interfaces"
0021  * defined for TTbAModel.
0022  */
0023 class TTbAModel: public BSMModel {
0024 
0025 public:
0026 
0027   /**
0028    * The default constructor.
0029    */
0030   TTbAModel();
0031  
0032   /** @name Vertices */
0033   //@{
0034  /**
0035    * Pointer to the object handling W prime vertex.
0036    */
0037   tAbstractFFVVertexPtr vertexWPTD() const {return _theWPTDVertex;}
0038 
0039   /**
0040    * Pointer to the object handling Z prime vertex.
0041    */
0042   tAbstractFFVVertexPtr vertexZPQQ() const {return _theZPQQVertex;}
0043 
0044 public:
0045 
0046   /** @name Functions used by the persistent I/O system. */
0047   //@{
0048   /**
0049    * Function used to write out object persistently.
0050    * @param os the persistent output stream written to.
0051    */
0052   void persistentOutput(PersistentOStream & os) const;
0053 
0054   /**
0055    * Function used to read in object persistently.
0056    * @param is the persistent input stream read from.
0057    * @param version the version number of the object when written.
0058    */
0059   void persistentInput(PersistentIStream & is, int version);
0060   //@}
0061 
0062   /**
0063    * The standard Init function used to initialize the interfaces.
0064    * Called exactly once for each class by the class description system
0065    * before the main function starts or
0066    * when this class is dynamically loaded.
0067    */
0068   static void Init();
0069 
0070   
0071   /**
0072    * Return the W prime top-down left-handed coupling
0073    */
0074   double _cWPTD_left() const {return _gWPTD_L;}
0075 
0076   /**
0077    * Return the W prime top-down right-handed coupling
0078    */
0079   double _cWPTD_right() const {return _gWPTD_R;}
0080 
0081   /**
0082    * Return the Z prime top-up left-handed coupling
0083    */
0084   double _cZPTU_left() const {return _gZPTU_L;}
0085 
0086   /**
0087    * Return the Z prime top-up right-handed coupling
0088    */
0089   double _cZPTU_right() const {return _gZPTU_R;}
0090 
0091   /**
0092    * Return the Z prime up-upbar left-handed coupling
0093    */
0094   double _cZPUU_left() const {return _gZPUU_L;}
0095 
0096   /**
0097    * Return the Z prime up-upbar right-handed coupling
0098    */
0099   double _cZPUU_right() const {return _gZPUU_R;}
0100 
0101     /**
0102    * Return the Z prime charm-charmbar left-handed coupling
0103    */
0104   double _cZPCC_left() const {return _gZPCC_L;}
0105 
0106   /**
0107    * Return the Z prime charm-charmbar right-handed coupling
0108    */
0109   double _cZPCC_right() const {return _gZPCC_R;}
0110 
0111   /**
0112    * Return the axigluon q-qbar left-handed coupling
0113    */
0114   double _cAGQQ_left() const {return _gAGQQ_L;}
0115 
0116   /**
0117    * Return the axigluon q-qbar right-handed coupling
0118    */
0119   double _cAGQQ_right() const {return _gAGQQ_R;}
0120 
0121 
0122   /**
0123    * Return the axigluon t-tbar left-handed coupling
0124    */
0125   double _cAGTT_left() const {return _gAGTT_L;}
0126 
0127   /**
0128    * Return the axigluon t-tbar right-handed coupling
0129    */
0130   double _cAGTT_right() const {return _gAGTT_R;}
0131 
0132   /**
0133    * Return the alphaX value of the SU(2)_X model
0134    */
0135   double _alphaX_value() const {return _alphaXparam;}
0136 
0137   /**
0138    * Return the costheta misalignment value of the SU(2)_X model
0139    */
0140   double _costhetaX_value() const {return _costhetaXparam;}
0141 
0142   /**
0143    * Return the selected model id
0144    */
0145   int _model() const {return _modelselect;}
0146 
0147 
0148 
0149 protected:
0150 
0151   /** @name Standard Interfaced functions. */
0152   //@{
0153   /**
0154    * Initialize this object after the setup phase before saving an
0155    * EventGenerator to disk.
0156    * @throws InitException if object could not be initialized properly.
0157    */
0158   virtual void doinit();
0159   //@}
0160 
0161 protected:
0162 
0163   /** @name Clone Methods. */
0164   //@{
0165   /**
0166    * Make a simple clone of this object.
0167    * @return a pointer to the new object.
0168    */
0169   virtual IBPtr clone() const;
0170 
0171   /** Make a clone of this object, possibly modifying the cloned object
0172    * to make it sane.
0173    * @return a pointer to the new object.
0174    */
0175   virtual IBPtr fullclone() const;
0176 
0177   
0178     
0179   
0180   //@}
0181 
0182 
0183 // If needed, insert declarations of virtual function defined in the
0184 // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
0185 
0186 
0187 private:
0188 
0189   /**
0190    * The assignment operator is private and must never be called.
0191    * In fact, it should not even be implemented.
0192    */
0193   TTbAModel & operator=(const TTbAModel &) = delete;
0194 
0195   
0196   /**
0197    * Pointer to the object handling the Wp to Top Down vertex.
0198    */
0199   AbstractFFVVertexPtr  _theWPTDVertex;
0200 
0201   
0202   /**
0203    * Pointer to the object handling the Zp to Quark-antiQuark vertex.
0204    */
0205   AbstractFFVVertexPtr  _theZPQQVertex;
0206 
0207   /**
0208    * Pointer to the object handling the Ag to Quark-antiQuark vertex.
0209    */
0210   AbstractFFVVertexPtr  _theAGQQVertex;
0211 
0212   /**
0213    * Pointer to the object handling the SU(2)_X vertex.
0214    */
0215   AbstractFFVVertexPtr  _theSU2XVertex;
0216 
0217 
0218 
0219 
0220  /**
0221    *  W prime coupling to top-down (left-handed)
0222    */
0223   double _gWPTD_L;
0224   
0225 
0226   /**
0227    *  W prime coupling to top-down (right-handed)
0228    */
0229   double _gWPTD_R;
0230 
0231 
0232    /**
0233    *  Z prime coupling to top-up (left-handed)
0234    */
0235   double _gZPTU_L;
0236   
0237 
0238   /**
0239    *  Z prime coupling to top-up (right-handed)
0240    */
0241   double _gZPTU_R;
0242 
0243 
0244    /**
0245    *  Z prime coupling to up-upbar (left-handed)
0246    */
0247   double _gZPUU_L;
0248   
0249 
0250   /**
0251    *  Z prime coupling to up-upbar (right-handed)
0252    */
0253   double _gZPUU_R;
0254 
0255 
0256    /**
0257    *  Z prime coupling to charm-charmbar (left-handed)
0258    */
0259   double _gZPCC_L;
0260   
0261 
0262   /**
0263    *  Z prime coupling to charm-charmbar (right-handed)
0264    */
0265   double _gZPCC_R;
0266 
0267 
0268 
0269    /**
0270    *  Axigluon coupling to q-qbar (left-handed)
0271    */
0272   double _gAGQQ_L;
0273   
0274 
0275   /**
0276    *  Axigluon coupling to q-qbar (right-handed)
0277    */
0278   double _gAGQQ_R;
0279 
0280 
0281   /**
0282    *  Axigluon coupling to t-tbar (left-handed)
0283    */
0284   double _gAGTT_L;
0285   
0286 
0287   /**
0288    *  Axigluon coupling to t-tbar (right-handed)
0289    */
0290   double _gAGTT_R;
0291 
0292  /**
0293    *  SU(2)_X alpha_X parameter
0294    */
0295   double _alphaXparam;
0296   
0297  /**
0298    *  SU(2)_X costheta misalignment angle
0299    */
0300   double _costhetaXparam;
0301   
0302  
0303   /** 
0304    * Model selector
0305    */
0306   int _modelselect;
0307 
0308 
0309 };
0310 
0311 }
0312 
0313 #endif /* HERWIG_TTbAModel_H */