Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F7878968
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
14 KB
Subscribers
None
View Options
diff --git a/Makefile.am b/Makefile.am
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,12 +1,8 @@
SUBDIRS = \
include \
Core \
Test \
Examples
-if HAVE_MATCHBOX
-SUBDIRS += Matchbox
-endif
-
ACLOCAL_AMFLAGS = -I m4
diff --git a/Matchbox/Makefile.am b/Matchbox/Makefile.am
deleted file mode 100644
--- a/Matchbox/Makefile.am
+++ /dev/null
@@ -1,12 +0,0 @@
-pkglib_LTLIBRARIES = MatchboxTraceBasis.la
-MatchboxTraceBasis_la_LDFLAGS = -module -version-info 1:0:0
-
-MatchboxTraceBasis_la_LIBADD = \
-$(top_builddir)/Core/libColorFull.la $(MATCHBOXLDFLAGS) $(MATCHBOXLDLIBS)
-
-MatchboxTraceBasis_la_CPPFLAGS = $(AM_CPPFLAGS)
-MatchboxTraceBasis_la_CPPFLAGS += $(MATCHBOXCPPFLAGS)
-
-MatchboxTraceBasis_la_SOURCES = \
-TraceBasis.h \
-TraceBasis.cc
diff --git a/Matchbox/TraceBasis.cc b/Matchbox/TraceBasis.cc
deleted file mode 100644
--- a/Matchbox/TraceBasis.cc
+++ /dev/null
@@ -1,261 +0,0 @@
-// -*- C++ -*-
-//
-// TraceBasis.cc is a part of ColorFull
-// Copyright (C) 2010-2011 Simon Platzer & Malin Sjodahl
-//
-// ColorFull is licensed under version 2 of the GPL, see COPYING for details.
-// Please respect the MCnet academic guidelines, see GUIDELINES for details.
-//
-//
-// This is the implementation of the non-inlined, non-templated member
-// functions of the TraceBasis class.
-//
-
-#include "TraceBasis.h"
-#include "ThePEG/Interface/ClassDocumentation.h"
-#include "ThePEG/Interface/Switch.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 ColorFull;
-
-TraceBasis::TraceBasis()
- : theLargeN(false) {}
-
-TraceBasis::~TraceBasis() {}
-
-IBPtr TraceBasis::clone() const {
- return new_ptr(*this);
-}
-
-IBPtr TraceBasis::fullclone() const {
- return new_ptr(*this);
-}
-
-map<size_t,vector<vector<size_t> > >
-TraceBasis::basisList(const vector<PDT::Colour>& basisId) const {
-
- map<vector<PDT::Colour>,Trace_basis>::const_iterator bit =
- theBasisMap.find(basisId);
-
- map<size_t,vector<vector<size_t> > > res;
-
- const col_basis& cb = bit->second.cb;
-
- for ( size_t i = 0; i < cb.size(); ++i ) {
-
- vector<vector<size_t> > cstr;
-
- const Col_str& cs = cb.at(i).at(0);
-
- for ( size_t j = 0; j < cs.size(); ++j ) {
-
- const Quark_line& ql = cs.at(j);
- vector<size_t> qline;
-
- for ( size_t k = 0; k < ql.size(); ++k )
- qline.push_back(ql.at(k)-1);
-
- cstr.push_back(qline);
-
- }
-
- res[i] = cstr;
-
- }
-
- return res;
-
-}
-
-size_t TraceBasis::prepareBasis(const vector<PDT::Colour>& sub) {
-
- vector<PDT::Colour> mySub = normalOrder(sub);
-
- if ( theBasisMap.find(mySub) == theBasisMap.end() ) {
-
- int ng = count_if(mySub.begin(),mySub.end(),ColourBasis::matchRep(PDT::Colour8));
- int nq = (mySub.size() - ng)/2;
-
- Trace_basis basis;
- basis.create_basis(nq,ng);
- theBasisMap[mySub] = basis;
-
- }
-
- return theBasisMap[mySub].size();
-
-}
-
-void TraceBasis::readBasisDetails(const vector<PDT::Colour>& sub) {
- prepareBasis(sub);
-}
-
-double TraceBasis::scalarProduct(size_t i, size_t j,
- const vector<PDT::Colour>& abBasis) const {
-
- if ( theLargeN && i != j )
- return 0.;
-
- map<vector<PDT::Colour>,Trace_basis>::const_iterator bit =
- theBasisMap.find(abBasis);
-
- assert(bit != theBasisMap.end());
-
- const Trace_basis& Basis = bit->second;
- Col_str csi = Basis.cb.at(i).at(0);
- Col_str csj = Basis.cb.at(j).at(0);
-
- // Rename indices, and make string of new Col_strs, to use in map
- //pair<Col_str, Col_str> Css_new = Basis.rename_indices(csi,csj);
- Basis.rename_indices(csi,csj);
- Col_str Cs1 = csi;
- Col_str Cs2 = csj;
- ostringstream Cs_string;
- Cs_string << Cs1 << Cs2;
-
- map<string,Polynomial>::iterator pit = theScalarProducts.find(Cs_string.str());
-
- // Add result to map
- if ( pit == theScalarProducts.end() ) {
- Polynomial p; // to contain result
- // In the case of both quarks and gluons
- if ( Basis.nq != 0 ) {
- p = colorFunctions.scalar_product(Cs1, Cs2);
- }
- // For gluons with implicitly added topology
- // In the case of only gluons the conjugated topology is needed as well
- // Note that the full result is saved in the local map
- else {
- unsigned int Ng = Basis.ng;
- int sign = (Ng % 2 ? -1 : 1);
- Col_str Cs2_conj=Cs2;
- Cs2_conj.conjugate();
- p = 2 * colorFunctions.scalar_product(Cs1, Cs2) +
- 2 * sign * colorFunctions.scalar_product(Cs1, Cs2_conj);
- p.simplify();
- }
- theScalarProducts.insert(make_pair(Cs_string.str(), p));
- pit = theScalarProducts.find(Cs_string.str());
- }
-
- return
- theLargeN ?
- colorFunctions.double_num(colorFunctions.leading(pit->second)) :
- colorFunctions.double_num(pit->second);
-
-}
-
-double TraceBasis::tMatrixElement(size_t m, size_t i, size_t j,
- const vector<PDT::Colour>& aBasis,
- const vector<PDT::Colour>& bBasis) const {
-
- ++m;
-
- map<vector<PDT::Colour>,Trace_basis>::iterator ait =
- theBasisMap.find(aBasis);
-
-
- map<vector<PDT::Colour>,Trace_basis>::const_iterator bit =
- theBasisMap.find(bBasis);
-
- assert(bit != theBasisMap.end());
- assert(ait != theBasisMap.end());
-
-
- Trace_basis& ABasis = ait->second;
- const Trace_basis& BBasis = bit->second;
-
- pair<int,int> newNumbers = ABasis.new_vector_numbers(BBasis.cb.at(j).at(0),m);
-
- if ( newNumbers.first == i )
- return 1.;
-
- if ( newNumbers.second == i )
- return -1.;
-
- return 0.;
-
-}
-
-bool TraceBasis::colourConnected(const cPDVector& sub,
- const vector<PDT::Colour>& basisId,
- const pair<int,bool>& first,
- const pair<int,bool>& second,
- size_t tensor) const {
-
- // get the basis
- map<vector<PDT::Colour>,Trace_basis>::const_iterator bit =
- theBasisMap.find(basisId);
- assert(bit != theBasisMap.end());
- const Trace_basis& basis = bit->second;
-
- // translate process to basis ids
- map<cPDVector,map<size_t,size_t> >::const_iterator trans
- = indexMap().find(sub);
- assert(trans != indexMap().end());
-
- int idColoured = first.second ? second.first : first.first;
- idColoured = trans->second.find(idColoured)->second;
- ++idColoured;
- int idAntiColoured = first.second ? first.first : second.first;
- idAntiColoured = trans->second.find(idAntiColoured)->second;
- ++idAntiColoured;
-
- const Col_str& cs = basis.cb.at(tensor).at(0);
-
- return cs.left_neighbor(idAntiColoured,idColoured);
-
-}
-
-// If needed, insert default implementations of virtual function defined
-// in the InterfacedBase class here (using ThePEG-interfaced-impl in Emacs).
-
-
-void TraceBasis::persistentOutput(PersistentOStream & os) const {
- os << theLargeN;
-}
-
-void TraceBasis::persistentInput(PersistentIStream & is , int) {
- // TODO add istream to Trace_basisl
- is >> theLargeN;
-}
-
-
-// *** Attention *** The following static variable is needed for the type
-// description system in ThePEG. Please check that the template arguments
-// are correct (the class and its base class), and that the constructor
-// arguments are correct (the class name and the name of the dynamically
-// loadable library where the class implementation can be found).
-DescribeClass<TraceBasis,Herwig::ColourBasis>
- describeTraceBasis("ColorFull::TraceBasis",
- "MatchboxTraceBasis.so");
-
-void TraceBasis::Init() {
-
- static ClassDocumentation<TraceBasis> documentation
- ("TraceBasis implements the trace colour basis.");
-
-
- static Switch<TraceBasis,bool> interfaceLargeN
- ("LargeN",
- "Switch on or off large-N evaluation.",
- &TraceBasis::theLargeN, false, false, false);
- static SwitchOption interfaceLargeNOn
- (interfaceLargeN,
- "On",
- "Work in N=infinity",
- true);
- static SwitchOption interfaceLargeNOff
- (interfaceLargeN,
- "Off",
- "Work in N=3",
- false);
-
-}
-
diff --git a/Matchbox/TraceBasis.h b/Matchbox/TraceBasis.h
deleted file mode 100644
--- a/Matchbox/TraceBasis.h
+++ /dev/null
@@ -1,184 +0,0 @@
-// -*- C++ -*-
-//
-// TraceBasis.h is a part of ColorFull
-// Copyright (C) 2010-2014 Simon Platzer & Malin Sjodahl
-//
-// ColorFull is licensed under version 2 of the GPL, see COPYING for details.
-// Please respect the MCnet academic guidelines, see GUIDELINES for details.
-//
-#ifndef COLORFULL_TraceBasis_H
-#define COLORFULL_TraceBasis_H
-//
-// This is the declaration of the TraceBasis class.
-//
-
-#include "Herwig++/MatrixElement/Matchbox/Utility/ColourBasis.h"
-#include "ColorFull/Core/Trace_basis.h"
-
-namespace ColorFull {
-
-using namespace ThePEG;
-using namespace Herwig;
-
-/**
- * TraceBasis implements the trace colour basis.
- *
- * @see \ref TraceBasisInterfaces "The interfaces"
- * defined for TraceBasis.
- */
-class TraceBasis: public Herwig::ColourBasis {
-
-public:
-
- /** @name Standard constructors and destructors. */
- //@{
- /**
- * The default constructor.
- */
- TraceBasis();
-
- /**
- * The destructor.
- */
- virtual ~TraceBasis();
- //@}
-
-public:
-
- /**
- * Return a map of basis tensor indices to vectors identifying a
- * certain ordering corresponding to the given colour structure. May
- * not be supported by all colour basis implementations.
- */
- virtual map<size_t,vector<vector<size_t> > > basisList(const vector<PDT::Colour>&) const;
-
- /**
- * Prepare the basis for the normal ordered legs and return the
- * dimensionality of the basis.
- */
- virtual size_t prepareBasis(const vector<PDT::Colour>&);
-
- /**
- * Gather any implementation dependend details when reading a basis
- */
- virtual void readBasisDetails(const vector<PDT::Colour>&);
-
- /**
- * Return the scalar product of basis tensors labelled a and b in
- * the basis used for the given normal ordered legs.
- */
- virtual double scalarProduct(size_t a, size_t b,
- const vector<PDT::Colour>& abBasis) const;
-
- /**
- * Return the matrix element of a colour charge
- * <c_{n+1,a}|T_i|c_{n,b}> between basis tensors a and b, with
- * respect to aBasis and bBasis
- */
- virtual double tMatrixElement(size_t i, size_t a, size_t b,
- const vector<PDT::Colour>& aBasis,
- const vector<PDT::Colour>& bBasis) const;
-
- /**
- * Return true, if we're running in large-N mode
- */
- virtual bool largeN() const { return theLargeN; }
-
- /**
- * Return true, if the colour basis is capable of assigning colour
- * flows.
- */
- virtual bool haveColourFlows() const { return true; }
-
- /**
- * Return true, if a large-N colour connection exists for the
- * given external legs and basis tensor.
- */
- virtual bool colourConnected(const cPDVector&,
- const vector<PDT::Colour>&,
- const pair<int,bool>&,
- const pair<int,bool>&,
- size_t) 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 color functions object to be used
- */
- mutable Col_functions colorFunctions;
-
- /**
- * True, if large-N limit is on.
- */
- bool theLargeN;
-
- /**
- * Map legs to known basis vectors.
- */
- mutable map<vector<PDT::Colour>,Trace_basis> theBasisMap;
-
- /**
- * Memorize scalar product intermediate results.
- */
- mutable map<string,Polynomial> theScalarProducts;
-
-private:
-
- /**
- * The assignment operator is private and must never be called.
- * In fact, it should not even be implemented.
- */
- TraceBasis & operator=(const TraceBasis &);
-
-};
-
-}
-
-#endif /* COLORFULL_TraceBasis_H */
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -1,37 +1,34 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.59])
AC_INIT([ColorFull],[hg],[malin.sjodahl@thep.lu.se],[ColorFull])
AC_CONFIG_AUX_DIR([config])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR(["m4/$PACKAGE_TARNAME.m4"])
AC_CANONICAL_HOST
AC_LANG([C++])
AM_INIT_AUTOMAKE([1.9 gnu dist-bzip2 -Wall])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
dnl Checks for programs.
AC_PROG_CXX
AC_PROG_INSTALL
AC_PROG_MAKE_SET
AC_PROG_LN_S
AM_PROG_AR
AC_DISABLE_STATIC
AC_LIBTOOL_DLOPEN
AC_PROG_LIBTOOL
AM_CPPFLAGS="-I\$(top_builddir)/include"
AC_SUBST(AM_CPPFLAGS)
-COLORFULL_CHECK_MATCHBOX
-
AC_CONFIG_FILES([Core/Makefile
- Matchbox/Makefile
Examples/Makefile
Test/Makefile
include/Makefile
Makefile])
AC_OUTPUT
diff --git a/m4/ColorFull.m4 b/m4/ColorFull.m4
--- a/m4/ColorFull.m4
+++ b/m4/ColorFull.m4
@@ -1,34 +0,0 @@
-dnl --- check for Herwig++ --
-AC_DEFUN([COLORFULL_CHECK_MATCHBOX],
-[
-defaultlocation="${prefix}"
-test "x$defaultlocation" = xNONE && defaultlocation="${ac_default_prefix}"
-AC_MSG_CHECKING([for Matchbox/Matchbox in])
-AC_ARG_WITH(matchbox,
- AC_HELP_STRING([--with-matchbox=DIR],[location of Matchbox installation]),
- [],
- [with_matchbox=no])
-AC_MSG_RESULT([$with_matchbox])
-
-AS_IF([test "x$with_matchbox" != "xno"],
- [AC_CHECK_FILES(
- ${with_matchbox}/bin/herwig-config,
- [have_matchbox=yes], [have_matchbox=no])],
- [have_matchbox=no])
-
-AS_IF([test "x$have_matchbox" = "xyes"],
- [MATCHBOXCPPFLAGS=`${with_matchbox}/bin/herwig-config --cppflags`
- MATCHBOXLDFLAGS=`${with_matchbox}/bin/herwig-config --ldflags`
- MATCHBOXLDLIBS=`${with_matchbox}/bin/herwig-config --ldlibs`
- AC_SUBST(MATCHBOXCPPFLAGS)
- AC_SUBST(MATCHBOXLDFLAGS)
- AC_SUBST(MATCHBOXLDLIBS)
- ],
- [AS_IF([test "x$with_matchbox" != "xno"],
- [AC_MSG_ERROR([Matchbox build requested but Matchbox has not been detected.])
- ])
- ])
-AM_CONDITIONAL(HAVE_MATCHBOX,[test "x$have_matchbox" = "xyes"])
-])
-
-
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Tue, Nov 19, 7:06 PM (1 d, 12 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3805762
Default Alt Text
(14 KB)
Attached To
rCOLORFULLHG colorfullhg
Event Timeline
Log In to Comment