If some parameters appear to be the elements of the orthogonal matrix such as quark mixing Cabbibo-Kobayashi-Maskava matrix, one should declare them by the statement
OrthMatrix( {{, , }, {, , }, {, , }} ).where denote the parameters. Such a declaration permits LanHEP to reduce expressions which contain these parameters by taking into account the properties of the orthogonal matrices.
Note that this statement has no relation to the arrays; it just declares that these parameters satisfy the correspondent relations. Of course, one can declare further a matrix with these parameters as components by means of the let statement.
Some physical models, such as the MSSM and general Two Higgs Doublet Model [4], involve large expressions built up of trigonometric functions. In particlular, after the diagonalization of the Lagrangian in the Higgs sector, in the models mentioned above two angles, and , are introduced, thus the Lagrangian may be written in LanHEP notation using the following definitions:
parameter sa=0.5:'sinus alpha',One can find in the output expressions like sa*cb+ca*sb and much more complicated ones. To simplify the output and make it more readable the user can define new parameters, for example:
ca=Sqrt(1-sa**2):'cosine alpha'.
parameter sb=0.9:'sinus beta',
cb=Sqrt(1-sb**2):'cosine beta'.
parameter sapb=sa*cb+ca*sb:'sin(a+b)'.In order to force LanHEP to substitute the expression sa*cb+ca*sb by the parameter sapb, one should use the statement
SetAngle(sa*cb+ca*sb=sapb).It is possible also to substitute an expressions by any polynomial involving paramters, for example,
SetAngle((sa*cb+ca*sb)**2+(sa*cb-ca*sb)**2=sapb**2+samb**2).where samb should be previously declared as a parameter. Note, that LanHEP expands both expressions before setting the substitution rule. The left-hand side expression can also contain symbols defined by let statement. In the Lagrangian expressions LanHEP expresses powers of cosines, ca**N and cb**N through sines using recursively the formula to combine all similar terms. The same procedure is performed for the left-hand side expression in SetAngle statement.
If the substitution for one angle combination is defined, LanHEP offers to define the other ones for expressions consisting of parameters used in previous SetAngle statements. In our example, for all expressions consisting of parameters ca, cb, sa, sb, the following message is printed (e.g. for ):
Warning: undefined angle combination; use:Here aa000 is an automatically generated parameter. The message is printed only once for each expression. This feature is disabled by default; to enable producing these messages, one should issue the statement
SetAngle(ca*cb-sa*sb=aa000).
option UndefAngleComb=1.
LanHEP can apply several heuristic algorithms to simplify these expressions. For each angle , the user should declare parameters for , , , , . Than one should use the angle statement:
angle sin=p1, cos=p2, sin2=p3, cos2=p4, tan=p5, texname=name.Here pN -- parameter identifiers, name -- LaTeX name for angle, it is used to generate automatically LaTeX names for trigonometric functions of this angle if these names are not set explicitly by SetTexName statement. This statement should immediately follow the declaration of the parameters for and . Only the sin and cos options are obligatory. Other parameters (i.e. , , ) should be declared if these parameters are defined before and . If the former parameters will be declared in terms of latter ones, they are recognized automatically and they need not appear in angle statements.
For example, the declaration for trigonometric functions of angle in MSSM may read:
parameter tb=2.52:'Tangent beta'.Here the parameters s2b and c2b are recognized automatically by LanHEP as and since they are declared in terms of sa, ca parameters.
parameter sb=tb/Sqrt(1+tb**2):'Sinus beta'.
parameter cb=Sqrt(1-sb**2):'Cosine beta'.
angle sin=sb, cos=cb, tan=tb, texname=' beta'.
parameter s2b=2*sb*cb:'Sinus 2 beta'.
parameter c2b=cb**2-sb**2:'Cosine 2 beta'.
For a couple of angles ( , in this example) the user should declare the parameters for , , , and to allow using all implemented heuristics:
parameter sapb=sa*cb+ca*sb : 'sin(a+b)'.These parameters are recognized as trigonometric functions automatically, by analysis of the right-side expressions.
parameter samb=sa*cb-ca*sb : 'sin(a-b)'.
parameter capb=ca*cb-sa*sb : 'cos(a+b)'.
parameter camb=ca*cb+sa*sb : 'cos(a-b)'.
It is possible to control the usage of heuristics by the statement:
option SmartAngleComb=N.where N is a number:
The substitution rules are printed as SetAngle statement and can be used for manual improvement of expressions.
LanHEP generates LaTeX output instead of CompHEP model files if the user set -tex in the command line to start LanHEP. Three files are produced: 'varsN.tex', 'prtclsN.tex' and 'lgrngN.tex'. The first file contains names of parameter used in physical model and their values. The second file describes the particles, together with propagators derived from the vertices.
The last file lists introduced vertices. LanHEP uses Greek letters ... for vector indices, letters ... for spinor ones and ... for color indices (and for indices of other groups, if they were defined).
It is possible to inscribe names for particles and parameters to use them in LaTeX output. It can be done by the statement
SetTexName([ ident=texname, ... ]).Here ident is an identifier of particle or parameter, and texname is string constant containing LaTeX command. Note, that for introducing backslash '' in quoted string constant one should type it twice: ' '.
For example, if one has declared neutrino with name n1 (and name for antineutrino N1) than the statement
SetTexName([n1=' nu^e', N1=' bar{ nu}^e']).makes LanHEP to use symbols and for neutrino and antineutrino in LaTeX tables.