Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // WidthCalculatorBase.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_WidthCalculatorBase_H
0010 #define HERWIG_WidthCalculatorBase_H
0011 //
0012 // This is the declaration of the WidthCalculatorBase class.
0013 //
0014 #include "ThePEG/Config/ThePEG.h"
0015 #include "ThePEG/Pointer/ReferenceCounted.h"
0016 #include "WidthCalculatorBase.fh"
0017 
0018 namespace Herwig {
0019 using namespace ThePEG;
0020 
0021 /** \ingroup PDT
0022  *  The WidthCalculatorBase class is a base class to be used
0023  *  by classes which calculate partial widths for the running width.
0024  *
0025  * @see DecayIntegrator
0026  * @see GenericWidthGenerator
0027  * 
0028  */
0029 class WidthCalculatorBase: public Pointer::ReferenceCounted {
0030 
0031 public:
0032 
0033   /**
0034    *  Destructor
0035    */
0036   virtual ~WidthCalculatorBase();
0037 
0038   /**
0039    * Calculate the partial width. This must be implemented in classes inheriting from
0040    * this one.
0041    * @param scale The mass squared of the decaying particle.
0042    * @return The partial width.
0043    */
0044   virtual Energy partialWidth(Energy2 scale) const =0;
0045 
0046   /**
0047    * Reset the mass of a particle (used to integrate over the mass.) This must be 
0048    * implemented in classes inheriting from this one.
0049    * @param imass The mass to be reset.
0050    * @param mass The new mass.
0051    */
0052   virtual void resetMass(int imass,Energy mass) =0;
0053 
0054   /**
0055    * Get the mass of one of the decay products.  This must be 
0056    * implemented in classes inheriting from this one.
0057    * @param imass The mass required.
0058    * @return The mass required.
0059    */
0060   virtual Energy getMass(const int imass) const= 0;
0061 
0062   /**
0063    * Get the masses of all bar the one specified. Used to get the limits
0064    * for integration.
0065    * @param imass The particle not needed
0066    * @return The sum of the other masses.
0067    */
0068   virtual Energy otherMass(const int imass) const=0;
0069 
0070 private:
0071 
0072   /**
0073    * Private and non-existent assignment operator.
0074    */
0075   WidthCalculatorBase & operator=(const WidthCalculatorBase &) = delete;
0076 
0077 };
0078 }
0079 
0080 #endif /* HERWIG_WidthCalculatorBase_H */