Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef Herwig_VariableMassCutOff_H
0003 #define Herwig_VariableMassCutOff_H
0004 //
0005 // This is the declaration of the VariableMassCutOff class.
0006 //
0007 
0008 #include "SudakovCutOff.h"
0009 
0010 namespace Herwig {
0011 
0012 using namespace ThePEG;
0013 
0014 /**
0015  * Here is the documentation of the VariableMassCutOff class.
0016  *
0017  * @see \ref VariableMassCutOffInterfaces "The interfaces"
0018  * defined for VariableMassCutOff.
0019  */
0020 class VariableMassCutOff: public SudakovCutOff {
0021 
0022 public:
0023 
0024   /**
0025    *  Calculate the virtual masses for a branchings
0026    */
0027   virtual const vector<Energy> & virtualMasses(const IdList & ids);
0028 
0029 public:
0030 
0031   /** @name Functions used by the persistent I/O system. */
0032   //@{
0033   /**
0034    * Function used to write out object persistently.
0035    * @param os the persistent output stream written to.
0036    */
0037   void persistentOutput(PersistentOStream & os) const;
0038 
0039   /**
0040    * Function used to read in object persistently.
0041    * @param is the persistent input stream read from.
0042    * @param version the version number of the object when written.
0043    */
0044   void persistentInput(PersistentIStream & is, int version);
0045   //@}
0046 
0047   /**
0048    * The standard Init function used to initialize the interfaces.
0049    * Called exactly once for each class by the class description system
0050    * before the main function starts or
0051    * when this class is dynamically loaded.
0052    */
0053   static void Init();
0054 
0055 protected:
0056 
0057   /** @name Clone Methods. */
0058   //@{
0059   /**
0060    * Make a simple clone of this object.
0061    * @return a pointer to the new object.
0062    */
0063   virtual IBPtr clone() const;
0064 
0065   /** Make a clone of this object, possibly modifying the cloned object
0066    * to make it sane.
0067    * @return a pointer to the new object.
0068    */
0069   virtual IBPtr fullclone() const;
0070   //@}
0071 
0072 private:
0073 
0074   /**
0075    * The virtuality cut-off on the gluon \f$Q_g=\frac{\delta-am_q}{b}\f$
0076    * @param scale The scale \f$\delta\f$
0077    * @param mq The quark mass \f$m_q\f$.
0078    */
0079   Energy kinematicCutOff(Energy scale, Energy mq) const {
0080     return max((scale -a_*mq)/b_,c_);
0081   }
0082 
0083 
0084   /**
0085    * The assignment operator is private and must never be called.
0086    * In fact, it should not even be implemented.
0087    */
0088   VariableMassCutOff & operator=(const VariableMassCutOff &) = delete;
0089 
0090 private:
0091 
0092   /**
0093    *  Parameters for the default Herwig cut-off option, i.e. the parameters for
0094    *  the \f$Q_g=\max(\frac{\delta-am_q}{b},c)\f$ kinematic cut-off
0095    */
0096   //@{
0097   /**
0098    *  The \f$a\f$ parameter
0099    */
0100   double a_ = 0.3;
0101 
0102   /**
0103    *  The \f$b\f$ parameter
0104    */
0105   double b_ = 2.3;
0106 
0107   /**
0108    *  The \f$c\f$ parameter
0109    */
0110   Energy c_ = 0.3_GeV;
0111 
0112   /**
0113    * Kinematic cutoff used in the parton shower phase space. 
0114    */
0115   Energy kinCutoffScale_ = 2.3_GeV;
0116   //@} 
0117 
0118 
0119 
0120 };
0121 
0122 }
0123 
0124 #endif /* Herwig_VariableMassCutOff_H */