The idea is that the user provides several "generic" topologies together with momenta, similar to the conventional Diana's topology.
Then Diana will generate all possible topologies form provided generic topologies by reducing all possible lines. All momenta at remaining lines coincide with the momenta at the original generic topology. The name of a generated topology is constructed form the names of a generic topology by adding #1_#2_ etc. where #1 is the number of the first reduced line, #2 is the second one, etc. The tadpoles do not reduced to prevent the changing of the number of the loops. By default, all generated couplings of order more then 4 ( the number of lines in a vertex) are rejected, but the user can change this maximal number by means of the special settings
number of generated couplings = 4
in the configuration file. Another related setting is
number of generic topologies = 17
which is the size of the hash-table for the generic topologies.
The optimal is set the nearest prime number more then the total
number of the generic topologies ( The default value is 17).
Example: The user investigates the generic topology
generictopology A =
(-2,2)(-1,1)(1,3)(3,2)(2,4)(4,1)(3,4):
p1+k2,p1+k1,k1,k2,k2-k1;
Then Diana will generate topologies from this one by scratching lines in the
following manner::
Complicated example: The user supplies
generictopology A,Aa,Ab=
(-2,2)(-1,1)(1,3)(3,2)(2,4)(4,1)(3,4):
p1+k1,p1+k2,k2,k1,k1-k2:
p1+k2,p1+k1,k1,k2,k2-k1;
Then Diana will generate the following set of the topologies:
topology A1_3_,Aa1_3_,Ab1_3_ =
(-2,2)(-1,1)(1,2)(2,1)(1,2):
+p1+k2,+k1,+k1-k2:
+p1+k1,+k2,+k2-k1;
topology A2_,Aa2_,Ab2_ =
(-2,2)(-1,1)(1,2)(2,3)(3,1)(2,3):
+p1+k1,+k2,+k1,+k1-k2:
+p1+k2,+k1,+k2,+k2-k1;
topology A1_,Aa1_,Ab1_ =
(-2,2)(-1,1)(1,2)(2,3)(3,1)(1,3):
+p1+k2,+k2,+k1,+k1-k2:
+p1+k1,+k1,+k2,+k2-k1;
topology A5_,Aa5_,Ab5_ =
(-2,2)(-1,1)(1,3)(3,2)(2,3)(3,1):
+p1+k1,+p1+k2,+k2,+k1:
+p1+k2,+p1+k1,+k1,+k2;
topology A,Aa,Ab =
(-2,2)(-1,1)(1,3)(3,2)(2,4)(4,1)(3,4):
+p1+k1,+p1+k2,+k2,+k1,+k1-k2:
+p1+k2,+p1+k1,+k1,+k2,+k2-k1;
The lines numbering remains as for the conventional topologies,
but some special values are generated. This values can be obtained
by
the new operator
\linemarks(#)
where #
is the number of some line. For topologies generated form
the
generic topology Diana will set this valuse according to numbering
of
the corresponding generic topology, e.g, for a diagram with the
topology A1_ \linemarks(2) = 3.
The user can set arbitrary "linemarks" by means of the directive
"linemarks".
Example:
linemarks A1_=a2,a3,a4,a5;
If "linemarks" are not defined by the user, and the current
topology is
not generated from the generic one, then the operator
\linemarks(#)
will return just the number of the line, i.e.,
\linemark(2)=2.
Every time Diana meets "linemarks" or "coordinates" directive in the configuration file, it will look at the generic topologies table. If it is not empty, then Diana will generate all possible topologies from the defined generic topologies and after that it clears the current generic topology tables. If the topology generated from the generic one already exists, Diana rejects this topology.
After Diana finishes to read the configuration file, it looks at the generic topologies table (again) and generates topology, if any.
New related operators:
linemark=mnum
20 March 2000 revision 2.20
linemark=mnum
is changed:
lvmark=mnum
vertexmarks [topname] = [one], [two],...
absolutely similar to the linemarks.
\vertexmarks(#)
which is similar to the operator
\linemarks(#)
marks length = #
The point is that in FORM id's by default only first 3 symbols of
the corresponding lvmark may appear; it is enough for numbers.
But, if the user wants to use lvmarks in some unusual way...
He can set
marks length = 30
and use very long texts for line/vertex marks...
\setlinemark(#,newmark)
\setvertexmark(#,newmark)
may be used to reset exising marks. Both these operators return
the old value of the mark.
Automatic generation of vertexmarks from generic topologies is removed. (This was a nonsense!)