diff --git a/MatrixElement/Matchbox/Dipoles/IIgqxDipole.h b/MatrixElement/Matchbox/Dipoles/IIgqxDipole.h --- a/MatrixElement/Matchbox/Dipoles/IIgqxDipole.h +++ b/MatrixElement/Matchbox/Dipoles/IIgqxDipole.h @@ -1,159 +1,159 @@ // -*- C++ -*- // // IIgqxDipole.h is a part of Herwig - A multi-purpose Monte Carlo event generator // Copyright (C) 2002-2012 The Herwig Collaboration // // Herwig is licenced under version 2 of the GPL, see COPYING for details. // Please respect the MCnet academic guidelines, see GUIDELINES for details. // #ifndef HERWIG_IIgqxDipole_H #define HERWIG_IIgqxDipole_H // // This is the declaration of the IIgqxDipole class. // #include "Herwig/MatrixElement/Matchbox/Dipoles/SubtractionDipole.h" namespace Herwig { using namespace ThePEG; /** * \ingroup Matchbox * \author Simon Platzer * * \brief IIgqxDipole implements the D^{g,q,k} subtraction dipole * */ class IIgqxDipole: public SubtractionDipole { public: /** @name Standard constructors and destructors. */ //@{ /** * The default constructor. */ IIgqxDipole(); /** * The destructor. */ virtual ~IIgqxDipole(); //@} public: /** * Return true, if this dipole can possibly handle the indicated * emitter. */ virtual bool canHandleEmitter(const cPDVector& partons, int emitter) const { return emitter < 2 && partons[emitter]->id() == ParticleID::g; } /** * Return true, if this dipole can possibly handle the indicated * splitting. */ virtual bool canHandleSplitting(const cPDVector& partons, int emitter, int emission) const { return canHandleEmitter(partons,emitter) && abs(partons[emission]->id()) < 7; } /** * Return true, if this dipole can possibly handle the indicated * spectator. */ virtual bool canHandleSpectator(const cPDVector& partons, int spectator) const { return spectator < 2 && partons[spectator]->coloured(); } /** * Return true, if this dipole applies to the selected * configuration. */ virtual bool canHandle(const cPDVector& partons, int emitter, int emission, int spectator) const; /** * How to sample the z-distribution. * FlatZ = 1 * OneOverZ = 2 * OneOverOneMinusZ = 3 * OneOverZOneMinusZ = 4 */ - virtual int samplingZ() const {return 2;} + virtual int samplingZ() const {return 1;} /** * Return the matrix element for the kinematical configuation * previously provided by the last call to setKinematics(), suitably * scaled by sHat() to give a dimension-less number. */ virtual double me2() const; /** * Return the matrix element averaged over spin correlations. */ virtual double me2Avg(double ccme2) const; public: /** @name Functions used by the persistent I/O system. */ //@{ /** * Function used to write out object persistently. * @param os the persistent output stream written to. */ void persistentOutput(PersistentOStream & os) const; /** * Function used to read in object persistently. * @param is the persistent input stream read from. * @param version the version number of the object when written. */ void persistentInput(PersistentIStream & is, int version); //@} /** * The standard Init function used to initialize the interfaces. * Called exactly once for each class by the class description system * before the main function starts or * when this class is dynamically loaded. */ static void Init(); protected: /** @name Clone Methods. */ //@{ /** * Make a simple clone of this object. * @return a pointer to the new object. */ virtual IBPtr clone() const; /** Make a clone of this object, possibly modifying the cloned object * to make it sane. * @return a pointer to the new object. */ virtual IBPtr fullclone() const; //@} // If needed, insert declarations of virtual function defined in the // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs). private: /** * The assignment operator is private and must never be called. * In fact, it should not even be implemented. */ IIgqxDipole & operator=(const IIgqxDipole &); }; } #endif /* HERWIG_IIgqxDipole_H */ diff --git a/MatrixElement/Matchbox/Dipoles/IIqgxDipole.h b/MatrixElement/Matchbox/Dipoles/IIqgxDipole.h --- a/MatrixElement/Matchbox/Dipoles/IIqgxDipole.h +++ b/MatrixElement/Matchbox/Dipoles/IIqgxDipole.h @@ -1,160 +1,160 @@ // -*- C++ -*- // // IIqgxDipole.h is a part of Herwig - A multi-purpose Monte Carlo event generator // Copyright (C) 2002-2012 The Herwig Collaboration // // Herwig is licenced under version 2 of the GPL, see COPYING for details. // Please respect the MCnet academic guidelines, see GUIDELINES for details. // #ifndef HERWIG_IIqgxDipole_H #define HERWIG_IIqgxDipole_H // // This is the declaration of the IIqgxDipole class. // #include "Herwig/MatrixElement/Matchbox/Dipoles/SubtractionDipole.h" namespace Herwig { using namespace ThePEG; /** * \ingroup Matchbox * \author Simon Platzer * * \brief IIqgxDipole implements the D^{q,g;b} subtraction dipole * */ class IIqgxDipole: public SubtractionDipole { public: /** @name Standard constructors and destructors. */ //@{ /** * The default constructor. */ IIqgxDipole(); /** * The destructor. */ virtual ~IIqgxDipole(); //@} public: /** * Return true, if this dipole can possibly handle the indicated * emitter. */ virtual bool canHandleEmitter(const cPDVector& partons, int emitter) const { return emitter < 2 && abs(partons[emitter]->id()) < 7; } /** * Return true, if this dipole can possibly handle the indicated * splitting. */ virtual bool canHandleSplitting(const cPDVector& partons, int emitter, int emission) const { return canHandleEmitter(partons,emitter) && partons[emission]->id() == ParticleID::g; } /** * Return true, if this dipole can possibly handle the indicated * spectator. */ virtual bool canHandleSpectator(const cPDVector& partons, int spectator) const { return spectator < 2 && partons[spectator]->coloured(); } /** * Return true, if this dipole applies to the selected * configuration. */ virtual bool canHandle(const cPDVector& partons, int emitter, int emission, int spectator) const; /** * How to sample the z-distribution. * FlatZ = 1 * OneOverZ = 2 * OneOverOneMinusZ = 3 * OneOverZOneMinusZ = 4 */ - virtual int samplingZ() const {return 4;} + virtual int samplingZ() const {return 3;} /** * Return the matrix element for the kinematical configuation * previously provided by the last call to setKinematics(), suitably * scaled by sHat() to give a dimension-less number. */ virtual double me2() const; /** * Return the matrix element averaged over spin correlations. */ virtual double me2Avg(double ccme2) const; public: /** @name Functions used by the persistent I/O system. */ //@{ /** * Function used to write out object persistently. * @param os the persistent output stream written to. */ void persistentOutput(PersistentOStream & os) const; /** * Function used to read in object persistently. * @param is the persistent input stream read from. * @param version the version number of the object when written. */ void persistentInput(PersistentIStream & is, int version); //@} /** * The standard Init function used to initialize the interfaces. * Called exactly once for each class by the class description system * before the main function starts or * when this class is dynamically loaded. */ static void Init(); protected: /** @name Clone Methods. */ //@{ /** * Make a simple clone of this object. * @return a pointer to the new object. */ virtual IBPtr clone() const; /** Make a clone of this object, possibly modifying the cloned object * to make it sane. * @return a pointer to the new object. */ virtual IBPtr fullclone() const; //@} // If needed, insert declarations of virtual function defined in the // InterfacedBase class here (using ThePEG-interfaced-decl in Emacs). private: /** * The assignment operator is private and must never be called. * In fact, it should not even be implemented. */ IIqgxDipole & operator=(const IIqgxDipole &); }; } #endif /* HERWIG_IIqgxDipole_H */