Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:38:28

0001 // -*- C++ -*-
0002 //
0003 // BreitWignerMass.h is a part of ThePEG - Toolkit for HEP Event Generation
0004 // Copyright (C) 1999-2019 Leif Lonnblad
0005 //
0006 // ThePEG 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 ThePEG_BreitWignerMass_H
0010 #define ThePEG_BreitWignerMass_H
0011 // This is the declaration of the BreitWignerMass class.
0012 
0013 #include "ThePEG/PDT/MassGenerator.h"
0014 
0015 namespace ThePEG {
0016 
0017 /**
0018  * BreitWignerMass is derived from MassGenerator and is able to
0019  * generate the mass for a particle given its nominal mass and its
0020  * with.
0021  *
0022  *
0023  * @see MassGenerator
0024  * @see ParticleData
0025  * 
0026  */
0027 class BreitWignerMass: public MassGenerator {
0028 
0029 public:
0030 
0031   /** @name Virtual methods required by the MassGenerator base class. */
0032   //@{
0033   /**
0034    * Return true if this mass generator can handle the given particle
0035    * type.
0036    */
0037   virtual bool accept(const ParticleData &) const { return true; }
0038 
0039   /**
0040    * Generate a mass for an instance of a given particle type.
0041    */
0042   virtual Energy mass(const ParticleData &) const;
0043   //@}
0044 
0045 public:
0046 
0047   /**
0048    * Standard Init function used to initialize the interface.
0049    */
0050   static void Init();
0051 
0052 protected:
0053 
0054   /** @name Clone Methods. */
0055   //@{
0056   /**
0057    * Make a simple clone of this object.
0058    * @return a pointer to the new object.
0059    */
0060   virtual IBPtr clone() const;
0061 
0062   /** Make a clone of this object, possibly modifying the cloned object
0063    * to make it sane.
0064    * @return a pointer to the new object.
0065    */
0066   virtual IBPtr fullclone() const;
0067   //@}
0068 
0069 private:
0070 
0071   /**
0072    * Describe concrete class without persistent data.
0073    */
0074   static NoPIOClassDescription<BreitWignerMass> initBreitWignerMass;
0075 
0076   /**
0077    *  Private and non-existent assignment operator.
0078    */
0079   BreitWignerMass & operator=(const BreitWignerMass &) = delete;
0080 
0081 };
0082 
0083 
0084 /** @cond TRAITSPECIALIZATIONS */
0085 ThePEG_DECLARE_DYNAMIC_CLASS_TRAITS(BreitWignerMass,MassGenerator,"BreitWignerMass.so");
0086 /** @endcond */
0087 
0088 }
0089 
0090 #endif /* ThePEG_BreitWignerMass_H */