Back to home page

EIC code displayed by LXR

 
 

    


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

0001   // -*- C++ -*-
0002   //
0003   // MergingReweight.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_MergingReweight_H
0010 #define Herwig_MergingReweight_H
0011 // This is the declaration of the MergingReweight class.
0012 
0013 #include "ThePEG/MatrixElement/ReweightBase.h"
0014 
0015 namespace Herwig {
0016   
0017   using namespace ThePEG;
0018 
0019 /**
0020  * The MergingReweight class reweights subprocesses.
0021  *
0022  * @see ReweightBase
0023  * 
0024  */
0025 class MergingReweight: public ReweightBase {
0026 
0027 public:
0028 
0029   /** @name Standard constructors and destructors. */
0030   //@{
0031   /**
0032    * Default constructor.
0033    */
0034   MergingReweight()
0035     : HTPower(0),MaxPTPower(0),MaxMjjPower(0), scale(50.0*GeV),onlyColoured(true) {}
0036   //@}
0037 
0038 public:
0039 
0040   /**
0041    * Return the wieght for the kinematical configuation provided by
0042    * the assigned XComb object (in the LastXCombInfo base class).
0043    */
0044   virtual double weight() const;
0045 
0046 public:
0047 
0048   /** @name Functions used by the persistent I/O system. */
0049   //@{
0050   /**
0051    * Function used to write out object persistently.
0052    * @param os the persistent output stream written to.
0053    */
0054   void persistentOutput(PersistentOStream & os) const;
0055 
0056   /**
0057    * Function used to read in object persistently.
0058    * @param is the persistent input stream read from.
0059    * @param version the version number of the object when written.
0060    */
0061   void persistentInput(PersistentIStream & is, int version);
0062   //@}
0063 
0064   /**
0065    * Standard Init function used to initialize the interfaces.
0066    */
0067   static void Init();
0068 
0069 protected:
0070 
0071   /** @name Clone Methods. */
0072   //@{
0073   /**
0074    * Make a simple clone of this object.
0075    * @return a pointer to the new object.
0076    */
0077   virtual IBPtr clone() const;
0078 
0079   /** Make a clone of this object, possibly modifying the cloned object
0080    * to make it sane.
0081    * @return a pointer to the new object.
0082    */
0083   virtual IBPtr fullclone() const;
0084   //@}
0085 
0086 private:
0087 
0088   /**
0089    * The weight is the minimum pt/scale to a \a power.
0090    */
0091   double HTPower,MaxPTPower,MaxMjjPower;
0092 
0093   /**
0094    * The weight is the minimum pt/\a scale to a power.
0095    */
0096   Energy scale;
0097   
0098   bool onlyColoured;
0099 
0100 
0101 
0102 private:
0103 
0104   /**
0105    * Describe a concrete base class with persistent data.
0106    */
0107   static ClassDescription<MergingReweight> initMergingReweight;
0108 
0109   /**
0110    *  Private and non-existent assignment operator.
0111    */
0112   MergingReweight & operator=(const MergingReweight &) = delete;
0113 
0114 };
0115 
0116 
0117 
0118 
0119 
0120 }
0121 
0122 #endif /* Herwig_MergingReweight_H */