diff --git a/MatrixElement/Hadron/MEMinBias.cc b/MatrixElement/Hadron/MEMinBias.cc --- a/MatrixElement/Hadron/MEMinBias.cc +++ b/MatrixElement/Hadron/MEMinBias.cc @@ -1,174 +1,174 @@ // -*- C++ -*- // // This is the implementation of the non-inlined, non-templated member // functions of the MEMinBias class. // #include "MEMinBias.h" #include "ThePEG/Utilities/DescribeClass.h" #include "ThePEG/Interface/ClassDocumentation.h" #include "ThePEG/Utilities/SimplePhaseSpace.h" //#include "ThePEG/Repository/EventGenerator.h" #include "ThePEG/Handlers/StandardXComb.h" #include "ThePEG/Interface/Parameter.h" #include "ThePEG/Persistency/PersistentOStream.h" #include "ThePEG/Persistency/PersistentIStream.h" using namespace Herwig; #include "ThePEG/PDT/EnumParticles.h" #include "ThePEG/MatrixElement/Tree2toNDiagram.h" void MEMinBias::getDiagrams() const { int maxflav(2); // Pomeron data tcPDPtr pom = getParticleData(990); for ( int i = 1; i <= maxflav; ++i ) { for( int j=1; j <= i; ++j){ tcPDPtr q1 = getParticleData(i); tcPDPtr q1b = q1->CC(); tcPDPtr q2 = getParticleData(j); tcPDPtr q2b = q2->CC(); // For each flavour we add: //qq -> qq add(new_ptr((Tree2toNDiagram(3), q1, pom, q2, 1, q1, 2, q2, -1))); //qqb -> qqb add(new_ptr((Tree2toNDiagram(3), q1, pom, q2b, 1, q1, 2, q2b, -2))); //qbqb -> qbqb add(new_ptr((Tree2toNDiagram(3), q1b, pom, q2b, 1, q1b, 2, q2b, -3))); } } } Energy2 MEMinBias::scale() const { return sqr(Scale_); } int MEMinBias::nDim() const { return 0; } void MEMinBias::setKinematics() { HwMEBase::setKinematics(); // Always call the base class method first. } bool MEMinBias::generateKinematics(const double *) { // generate the masses of the particles for ( int i = 2, N = meMomenta().size(); i < N; ++i ) { meMomenta()[i] = Lorentz5Momentum(mePartonData()[i]->generateMass()); } Energy q = ZERO; try { q = SimplePhaseSpace:: getMagnitude(sHat(), meMomenta()[2].mass(), meMomenta()[3].mass()); } catch ( ImpossibleKinematics & e ) { return false; } Energy pt = ZERO; meMomenta()[2].setVect(Momentum3( pt, pt, q)); meMomenta()[3].setVect(Momentum3(-pt, -pt, -q)); meMomenta()[2].rescaleEnergy(); meMomenta()[3].rescaleEnergy(); jacobian(1.0); return true; } double MEMinBias::me2() const { //tuned so it gives the correct normalization for xmin = 0.11 return csNorm_*(sqr(generator()->maximumCMEnergy())/GeV2); } CrossSection MEMinBias::dSigHatDR() const { return me2()*jacobian()/sHat()*sqr(hbarc); } unsigned int MEMinBias::orderInAlphaS() const { return 2; } unsigned int MEMinBias::orderInAlphaEW() const { return 0; } Selector MEMinBias::diagrams(const DiagramVector & diags) const { Selector sel; for ( DiagramIndex i = 0; i < diags.size(); ++i ) sel.insert(1.0, i); return sel; } Selector MEMinBias::colourGeometries(tcDiagPtr diag) const { static ColourLines qq("1 4, 3 5"); static ColourLines qqb("1 4, -3 -5"); static ColourLines qbqb("-1 -4, -3 -5"); Selector sel; switch(diag->id()){ case -1: sel.insert(1.0, &qq); break; case -2: sel.insert(1.0, &qqb); break; case -3: sel.insert(1.0, &qbqb); break; } return sel; } IBPtr MEMinBias::clone() const { return new_ptr(*this); } IBPtr MEMinBias::fullclone() const { return new_ptr(*this); } // The following static variable is needed for the type // description system in ThePEG. DescribeClass describeHerwigMEMinBias("Herwig::MEMinBias", "HwMEHadron.so"); void MEMinBias::persistentOutput(PersistentOStream & os) const { - os << csNorm_; + os << csNorm_ << ounit(Scale_,GeV);; } void MEMinBias::persistentInput(PersistentIStream & is, int) { - is >> csNorm_; + is >> csNorm_ >> iunit(Scale_,GeV); } void MEMinBias::Init() { static ClassDocumentation documentation ("There is no documentation for the MEMinBias class"); static Parameter interfacecsNorm ("csNorm", "Normalization of the min-bias cross section.", &MEMinBias::csNorm_, 1.0, 0.0, 100.0, false, false, Interface::limited); static Parameter interfaceScale ("Scale", "Scale for the Min Bias matrix element.", &MEMinBias::Scale_,GeV, - 1.0*GeV, 0.0*GeV, 100.0*GeV, + 2.0*GeV, 0.0*GeV, 100.0*GeV, false, false, Interface::limited); } diff --git a/MatrixElement/Matchbox/Phasespace/Makefile.am b/MatrixElement/Matchbox/Phasespace/Makefile.am --- a/MatrixElement/Matchbox/Phasespace/Makefile.am +++ b/MatrixElement/Matchbox/Phasespace/Makefile.am @@ -1,73 +1,72 @@ noinst_LTLIBRARIES = libHwMatchboxPhasespace.la nodist_libHwMatchboxPhasespace_la_SOURCES = \ Phasespace__all.cc BUILT_SOURCES = Phasespace__all.cc CLEANFILES = Phasespace__all.cc Phasespace__all.cc : $(DIR_H_FILES) $(DIR_CC_FILES) Makefile @echo "Concatenating .cc files into $@" @$(top_srcdir)/cat_with_cpplines $(DIR_CC_FILES) > $@ EXTRA_DIST = $(ALL_H_FILES) $(ALL_CC_FILES) DIR_H_FILES = $(addprefix $(srcdir)/,$(ALL_H_FILES)) ALL_H_FILES = \ FFLightInvertedTildeKinematics.h \ FFLightTildeKinematics.h \ FFMassiveInvertedTildeKinematics.h \ FFMassiveTildeKinematics.h \ FILightInvertedTildeKinematics.h \ FILightTildeKinematics.h \ FIMassiveInvertedTildeKinematics.h \ FIMassiveTildeKinematics.h \ IFLightInvertedTildeKinematics.h \ IFLightTildeKinematics.h \ IFMassiveInvertedTildeKinematics.h \ IFMassiveTildeKinematics.h \ IILightInvertedTildeKinematics.h \ IILightTildeKinematics.h \ InvertedTildeKinematics.fh \ InvertedTildeKinematics.h \ MatchboxPhasespace.h \ MatchboxRambo.h \ PhasespaceHelpers.h \ RandomHelpers.h \ TildeKinematics.fh \ TildeKinematics.h \ TreePhasespace.h \ TreePhasespaceChannels.h \ MatchboxReference.h \ FlatInvertiblePhasespace.h \ FlatInvertibleLabframePhasespace.h \ PhasespaceCouplings.h DIR_CC_FILES = $(addprefix $(srcdir)/,$(ALL_CC_FILES)) ALL_CC_FILES = \ FFLightInvertedTildeKinematics.cc \ FFLightTildeKinematics.cc \ FFMassiveInvertedTildeKinematics.cc \ FFMassiveTildeKinematics.cc \ FILightInvertedTildeKinematics.cc \ FILightTildeKinematics.cc \ FIMassiveInvertedTildeKinematics.cc \ FIMassiveTildeKinematics.cc \ IFLightInvertedTildeKinematics.cc \ IFLightTildeKinematics.cc \ IFMassiveInvertedTildeKinematics.cc \ IFMassiveTildeKinematics.cc \ IILightInvertedTildeKinematics.cc \ IILightTildeKinematics.cc \ InvertedTildeKinematics.cc \ MatchboxPhasespace.cc \ MatchboxRambo.cc \ PhasespaceHelpers.cc \ TildeKinematics.cc \ TreePhasespace.cc \ TreePhasespaceChannels.cc \ MatchboxReference.cc \ FlatInvertiblePhasespace.cc \ FlatInvertibleLabframePhasespace.cc \ -PhasespaceCouplings.cc \ -MamboPhasespace.cc +PhasespaceCouplings.cc