diff --git a/Shower/QTilde/Makefile.am b/Shower/QTilde/Makefile.am --- a/Shower/QTilde/Makefile.am +++ b/Shower/QTilde/Makefile.am @@ -1,41 +1,45 @@ SUBDIRS = Matching pkglib_LTLIBRARIES = HwShower.la HwShower_la_LDFLAGS = $(AM_LDFLAGS) -module -version-info 25:0:0 HwShower_la_SOURCES = \ Couplings/ShowerAlphaQCD.h Couplings/ShowerAlphaQCD.cc \ Couplings/ShowerAlphaQED.h Couplings/ShowerAlphaQED.cc\ QTildeShowerHandler.h QTildeShowerHandler.fh QTildeShowerHandler.cc \ SplittingFunctions/HalfHalfOneSplitFn.h SplittingFunctions/HalfHalfOneSplitFn.cc\ SplittingFunctions/OneOneOneSplitFn.h SplittingFunctions/OneOneOneSplitFn.cc\ SplittingFunctions/OneOneOneMassiveSplitFn.h SplittingFunctions/OneOneOneMassiveSplitFn.cc\ SplittingFunctions/ZeroZeroOneSplitFn.h SplittingFunctions/ZeroZeroOneSplitFn.cc\ SplittingFunctions/OneHalfHalfSplitFn.h SplittingFunctions/OneHalfHalfSplitFn.cc\ SplittingFunctions/HalfOneHalfSplitFn.h SplittingFunctions/HalfOneHalfSplitFn.cc\ SplittingFunctions/CMWOneOneOneSplitFn.h SplittingFunctions/CMWOneOneOneSplitFn.cc\ SplittingFunctions/CMWHalfHalfOneSplitFn.h SplittingFunctions/CMWHalfHalfOneSplitFn.cc\ Kinematics/Decay_QTildeShowerKinematics1to2.cc \ Kinematics/Decay_QTildeShowerKinematics1to2.h \ Kinematics/IS_QTildeShowerKinematics1to2.cc Kinematics/IS_QTildeShowerKinematics1to2.h \ Kinematics/FS_QTildeShowerKinematics1to2.cc Kinematics/FS_QTildeShowerKinematics1to2.h \ Kinematics/KinematicsReconstructor.cc \ Kinematics/KinematicsReconstructor.tcc \ Kinematics/KinematicsReconstructor.h \ Kinematics/KinematicsReconstructor.fh \ Base/HardTree.cc Base/HardTree.h Base/HardTree.fh \ Base/HardBranching.h Base/HardBranching.fh Base/HardBranching.cc\ Base/PartnerFinder.h Base/PartnerFinder.fh Base/PartnerFinder.cc \ Base/ShowerVeto.h Base/ShowerVeto.fh Base/ShowerVeto.cc \ Base/FullShowerVeto.h Base/FullShowerVeto.fh Base/FullShowerVeto.cc \ SplittingFunctions/SplittingGenerator.cc SplittingFunctions/SplittingGenerator.h\ SplittingFunctions/SplittingGenerator.fh \ Base/ShowerTree.h Base/ShowerTree.fh Base/ShowerTree.cc \ ShowerConfig.h ShowerConfig.cc \ Base/Branching.h \ Base/ShowerParticle.cc Base/ShowerParticle.fh Base/ShowerParticle.h \ Kinematics/ShowerKinematics.fh Kinematics/ShowerKinematics.h Kinematics/ShowerKinematics.cc \ Kinematics/ShowerBasis.fh Kinematics/ShowerBasis.h Kinematics/ShowerBasis.cc \ Base/ShowerProgenitor.fh Base/ShowerProgenitor.h \ SplittingFunctions/SudakovFormFactor.cc SplittingFunctions/SudakovFormFactor.h SplittingFunctions/SudakovFormFactor.fh \ +SplittingFunctions/SudakovCutOff.cc SplittingFunctions/SudakovCutOff.h SplittingFunctions/SudakovCutOff.fh \ +SplittingFunctions/PTCutOff.cc SplittingFunctions/PTCutOff.h \ +SplittingFunctions/MassCutOff.cc SplittingFunctions/MassCutOff.h \ +SplittingFunctions/VariableMassCutOff.cc SplittingFunctions/VariableMassCutOff.h \ SplittingFunctions/SplittingFunction.h SplittingFunctions/SplittingFunction.fh \ SplittingFunctions/SplittingFunction.cc \ Base/ShowerVertex.cc Base/ShowerVertex.fh Base/ShowerVertex.h diff --git a/Shower/QTilde/SplittingFunctions/MassCutOff.cc b/Shower/QTilde/SplittingFunctions/MassCutOff.cc new file mode 100644 --- /dev/null +++ b/Shower/QTilde/SplittingFunctions/MassCutOff.cc @@ -0,0 +1,46 @@ +// -*- C++ -*- +// +// This is the implementation of the non-inlined, non-templated member +// functions of the MassCutOff class. +// + +#include "MassCutOff.h" +#include "ThePEG/Interface/ClassDocumentation.h" +#include "ThePEG/EventRecord/Particle.h" +#include "ThePEG/Repository/UseRandom.h" +#include "ThePEG/Repository/EventGenerator.h" +#include "ThePEG/Utilities/DescribeClass.h" + + +#include "ThePEG/Persistency/PersistentOStream.h" +#include "ThePEG/Persistency/PersistentIStream.h" + +using namespace Herwig; + +IBPtr MassCutOff::clone() const { + return new_ptr(*this); +} + +IBPtr MassCutOff::fullclone() const { + return new_ptr(*this); +} + +void MassCutOff::persistentOutput(PersistentOStream & os) const { +} + +void MassCutOff::persistentInput(PersistentIStream & is, int) { +} + + +// The following static variable is needed for the type +// description system in ThePEG. +DescribeClass +describeHerwigMassCutOff("Herwig::MassCutOff", "HwShower.so"); + +void MassCutOff::Init() { + + static ClassDocumentation documentation + ("There is no documentation for the MassCutOff class"); + +} + diff --git a/Shower/QTilde/SplittingFunctions/MassCutOff.h b/Shower/QTilde/SplittingFunctions/MassCutOff.h new file mode 100644 --- /dev/null +++ b/Shower/QTilde/SplittingFunctions/MassCutOff.h @@ -0,0 +1,84 @@ +// -*- C++ -*- +#ifndef Herwig_MassCutOff_H +#define Herwig_MassCutOff_H +// +// This is the declaration of the MassCutOff class. +// + +#include "SudakovCutOff.h" + +namespace Herwig { + +using namespace ThePEG; + +/** + * Here is the documentation of the MassCutOff class. + * + * @see \ref MassCutOffInterfaces "The interfaces" + * defined for MassCutOff. + */ +class MassCutOff: public SudakovCutOff { + +public: + + /** + * The default constructor. + */ + MassCutOff() {} + +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; + //@} + +private: + + /** + * The assignment operator is private and must never be called. + * In fact, it should not even be implemented. + */ + MassCutOff & operator=(const MassCutOff &); + +}; + +} + +#endif /* Herwig_MassCutOff_H */ diff --git a/Shower/QTilde/SplittingFunctions/PTCutOff.cc b/Shower/QTilde/SplittingFunctions/PTCutOff.cc new file mode 100644 --- /dev/null +++ b/Shower/QTilde/SplittingFunctions/PTCutOff.cc @@ -0,0 +1,46 @@ +// -*- C++ -*- +// +// This is the implementation of the non-inlined, non-templated member +// functions of the PTCutOff class. +// + +#include "PTCutOff.h" +#include "ThePEG/Interface/ClassDocumentation.h" +#include "ThePEG/EventRecord/Particle.h" +#include "ThePEG/Repository/UseRandom.h" +#include "ThePEG/Repository/EventGenerator.h" +#include "ThePEG/Utilities/DescribeClass.h" + + +#include "ThePEG/Persistency/PersistentOStream.h" +#include "ThePEG/Persistency/PersistentIStream.h" + +using namespace Herwig; + +IBPtr PTCutOff::clone() const { + return new_ptr(*this); +} + +IBPtr PTCutOff::fullclone() const { + return new_ptr(*this); +} + +void PTCutOff::persistentOutput(PersistentOStream & os) const { +} + +void PTCutOff::persistentInput(PersistentIStream & is, int) { +} + + +// The following static variable is needed for the type +// description system in ThePEG. +DescribeClass +describeHerwigPTCutOff("Herwig::PTCutOff", "HwShower.so"); + +void PTCutOff::Init() { + + static ClassDocumentation documentation + ("There is no documentation for the PTCutOff class"); + +} + diff --git a/Shower/QTilde/SplittingFunctions/PTCutOff.h b/Shower/QTilde/SplittingFunctions/PTCutOff.h new file mode 100644 --- /dev/null +++ b/Shower/QTilde/SplittingFunctions/PTCutOff.h @@ -0,0 +1,84 @@ +// -*- C++ -*- +#ifndef Herwig_PTCutOff_H +#define Herwig_PTCutOff_H +// +// This is the declaration of the PTCutOff class. +// + +#include "SudakovCutOff.h" + +namespace Herwig { + +using namespace ThePEG; + +/** + * Here is the documentation of the PTCutOff class. + * + * @see \ref PTCutOffInterfaces "The interfaces" + * defined for PTCutOff. + */ +class PTCutOff: public SudakovCutOff { + +public: + + /** + * The default constructor. + */ + PTCutOff() {} + +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; + //@} + +private: + + /** + * The assignment operator is private and must never be called. + * In fact, it should not even be implemented. + */ + PTCutOff & operator=(const PTCutOff &); + +}; + +} + +#endif /* Herwig_PTCutOff_H */ diff --git a/Shower/QTilde/SplittingFunctions/SudakovCutOff.cc b/Shower/QTilde/SplittingFunctions/SudakovCutOff.cc new file mode 100644 --- /dev/null +++ b/Shower/QTilde/SplittingFunctions/SudakovCutOff.cc @@ -0,0 +1,27 @@ +// -*- C++ -*- +// +// This is the implementation of the non-inlined, non-templated member +// functions of the SudakovCutOff class. +// + +#include "SudakovCutOff.h" +#include "ThePEG/Interface/ClassDocumentation.h" +#include "ThePEG/EventRecord/Particle.h" +#include "ThePEG/Repository/UseRandom.h" +#include "ThePEG/Repository/EventGenerator.h" +#include "ThePEG/Utilities/DescribeClass.h" + +using namespace Herwig; + +// The following static variable is needed for the type +// description system in ThePEG. +DescribeAbstractNoPIOClass +describeHerwigSudakovCutOff("Herwig::SudakovCutOff", "HwShower.so"); + +void SudakovCutOff::Init() { + + static ClassDocumentation documentation + ("Base class for cut-offs in the form factor"); + +} + diff --git a/Shower/QTilde/SplittingFunctions/SudakovCutOff.fh b/Shower/QTilde/SplittingFunctions/SudakovCutOff.fh new file mode 100644 --- /dev/null +++ b/Shower/QTilde/SplittingFunctions/SudakovCutOff.fh @@ -0,0 +1,18 @@ +// -*- C++ -*- +// +// This is the forward declaration of the SudakovCutOff class. +// +#ifndef Herwig_SudakovCutOff_FH +#define Herwig_SudakovCutOff_FH + +#include "ThePEG/Config/ThePEG.h" + +namespace Herwig { + +class SudakovCutOff; + +ThePEG_DECLARE_POINTERS(Herwig::SudakovCutOff,SudakovCutOffPtr); + +} + +#endif diff --git a/Shower/QTilde/SplittingFunctions/SudakovCutOff.h b/Shower/QTilde/SplittingFunctions/SudakovCutOff.h new file mode 100644 --- /dev/null +++ b/Shower/QTilde/SplittingFunctions/SudakovCutOff.h @@ -0,0 +1,45 @@ +// -*- C++ -*- +#ifndef Herwig_SudakovCutOff_H +#define Herwig_SudakovCutOff_H +// +// This is the declaration of the SudakovCutOff class. +// + +#include "SudakovCutOff.fh" +#include "ThePEG/Interface/Interfaced.h" + +namespace Herwig { + +using namespace ThePEG; + +/** + * The SudakovCutOff class is the base class for cut-offs in the Sudakov + * + * @see \ref SudakovCutOffInterfaces "The interfaces" + * defined for SudakovCutOff. + */ +class SudakovCutOff: public Interfaced { + +public: + + /** + * 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(); + +private: + + /** + * The assignment operator is private and must never be called. + * In fact, it should not even be implemented. + */ + SudakovCutOff & operator=(const SudakovCutOff &); + +}; + +} + +#endif /* Herwig_SudakovCutOff_H */ diff --git a/Shower/QTilde/SplittingFunctions/VariableMassCutOff.cc b/Shower/QTilde/SplittingFunctions/VariableMassCutOff.cc new file mode 100644 --- /dev/null +++ b/Shower/QTilde/SplittingFunctions/VariableMassCutOff.cc @@ -0,0 +1,46 @@ +// -*- C++ -*- +// +// This is the implementation of the non-inlined, non-templated member +// functions of the VariableMassCutOff class. +// + +#include "VariableMassCutOff.h" +#include "ThePEG/Interface/ClassDocumentation.h" +#include "ThePEG/EventRecord/Particle.h" +#include "ThePEG/Repository/UseRandom.h" +#include "ThePEG/Repository/EventGenerator.h" +#include "ThePEG/Utilities/DescribeClass.h" + + +#include "ThePEG/Persistency/PersistentOStream.h" +#include "ThePEG/Persistency/PersistentIStream.h" + +using namespace Herwig; + +IBPtr VariableMassCutOff::clone() const { + return new_ptr(*this); +} + +IBPtr VariableMassCutOff::fullclone() const { + return new_ptr(*this); +} + +void VariableMassCutOff::persistentOutput(PersistentOStream & os) const { +} + +void VariableMassCutOff::persistentInput(PersistentIStream & is, int) { +} + + +// The following static variable is needed for the type +// description system in ThePEG. +DescribeClass +describeHerwigVariableMassCutOff("Herwig::VariableMassCutOff", "HwShower.so"); + +void VariableMassCutOff::Init() { + + static ClassDocumentation documentation + ("There is no documentation for the VariableMassCutOff class"); + +} + diff --git a/Shower/QTilde/SplittingFunctions/VariableMassCutOff.h b/Shower/QTilde/SplittingFunctions/VariableMassCutOff.h new file mode 100644 --- /dev/null +++ b/Shower/QTilde/SplittingFunctions/VariableMassCutOff.h @@ -0,0 +1,84 @@ +// -*- C++ -*- +#ifndef Herwig_VariableMassCutOff_H +#define Herwig_VariableMassCutOff_H +// +// This is the declaration of the VariableMassCutOff class. +// + +#include "SudakovCutOff.h" + +namespace Herwig { + +using namespace ThePEG; + +/** + * Here is the documentation of the VariableMassCutOff class. + * + * @see \ref VariableMassCutOffInterfaces "The interfaces" + * defined for VariableMassCutOff. + */ +class VariableMassCutOff: public SudakovCutOff { + +public: + + /** + * The default constructor. + */ + VariableMassCutOff() {} + +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; + //@} + +private: + + /** + * The assignment operator is private and must never be called. + * In fact, it should not even be implemented. + */ + VariableMassCutOff & operator=(const VariableMassCutOff &); + +}; + +} + +#endif /* Herwig_VariableMassCutOff_H */