Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // DecayVertex.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_DecayVertex_H
0010 #define HERWIG_DecayVertex_H
0011 //
0012 // This is the declaration of the DecayVertex class.
0013 //
0014 #include <ThePEG/EventRecord/HelicityVertex.h>
0015 #include "DecayMatrixElement.h"
0016 #include "DecayVertex.fh"
0017 
0018 namespace Herwig {
0019 
0020 /** \ingroup Helicity
0021  *  \author Peter Richardson
0022  *
0023  *  The DecayVertex class is designed to implement the vertex
0024  *  for a decay for use with the spin correlation algorithm. 
0025  *  It inherits from HelicityVertex class of ThePEG and implements 
0026  *  the methods to calculate the \f$\rho\f$ and \f$D\f$ matrices.
0027  *
0028  *  It uses the DecayMatrixElement class to store the matrix element and
0029  *  it is this class which performs the calculations of the matrices.
0030  *
0031  *  @see HelicityVertex
0032  *  @see DecayMatrixElement
0033  */ 
0034 
0035 class DecayVertex: public HelicityVertex {
0036   
0037 public:
0038   
0039   /**
0040    *  Access to the matrix element
0041    */
0042   //@{
0043   /**
0044    * Get the matrix element
0045    */
0046   const DecayMEPtr ME() const { 
0047     return matrixElement_;
0048   }
0049 
0050   /**
0051    * Set the matrix element
0052    */
0053   void ME(DecayMEPtr in) const {
0054     matrixElement_ = in;
0055   }
0056   //@}  
0057 
0058 public:
0059   
0060   /**
0061    * Standard Init function used to initialize the interfaces.
0062    */
0063   static void Init();
0064   
0065 public:
0066   
0067   /**
0068    * Method to calculate the \f$\rho\f$ matrix for one of the decay products
0069    * @param iprod The product we are calculating the \f$\rho\f$ matrix for.
0070    * @param recursive Whether or not to recursive calculate the matrix
0071    */
0072   virtual RhoDMatrix getRhoMatrix(int iprod,bool recursive) const;
0073 
0074   /**
0075    * Method to calculate the \f$D\f$ matrix for the decaying particle. It this
0076    * case the argument is a dummy.
0077    */
0078   virtual RhoDMatrix getDMatrix(int) const;
0079   
0080   /** 
0081    * Private and non-existent assignment operator.
0082    */
0083   DecayVertex & operator=(const DecayVertex &) = delete;
0084   
0085 private:
0086   
0087   /**
0088    * Storage of the decay matrix element.
0089    */
0090   mutable DecayMEPtr matrixElement_;
0091   
0092 };
0093 
0094 }
0095 
0096 #endif /* HERWIG_DecayVertex_H */