*					*
*  h   h  ooo  w     w ttttttt ooo	*
*  h   h o   o w     w 	  t   o   o	*
*  hhhhh o   o w  w  w    t   o   o	*
*  h   h o   o w  w  w    t   o   o	*
*  h   h  ooo   ww ww     t    ooo	*
*					*
*					*
*    use madgraph's user mod...?	*
*					*
*	S.de Visscher FYNU/CP3		*
*	Louvain la neuve, 2/06/06	*
*					*

This text file will instruct you about what to do
step by step in order to use the "user mode" of madgraph.

All you need is in Model/usrmod directory.
What you canc see here is 

1/ Three ".dat" files you'll have to edit to enter
your own model...

2/ A directory wich contains part of files that will be used to create
".f" and ".inc" files needed by madgraph; this directory
is called Header_and_footer...you don't need to care about this

3/ ConversionScript.pl:
	The perl script wich mix information from Header_and_footer 
	files and from .dat files...

4/ testprog.f
	 a little code that permti to check directly if all values printed 
	 are the ones defined in param_card.dat.

        Slightly the same role than testprog.f vut produce a text file 
        containing in a table the list of couplings and their values

To do things properly, make your own usermod directory to let the original 
one intact, let' say you call it "z_prime"

1/ Editing the .dat files.

a/ particles.dat

This file lists all particles of the model.
The basis used here is Standard Model particles.

There are two very important tags you have to take into account:
Any new particle you want to use has to be described between those ones.

For example if you need a Z' you may write like the following:

zp      zp        V        W      ZPMASS ZPWIDTH S ZP   32

ATTENTION: use space instead of TAB between chars...

The two first columns indicate particle and anti-particle names
The third is about particles type (Vector, Fermion or Scalar)
The fourth say how madgraph has to represent it on Feynman diagrams.
The fifth gives the variable name for the mass (max. 7 char.)
The sixth gives the variable name for the width (max.7 char.)
The seventh say if particles color type is singlet (S), triplet (T), or octet (O).
The eigth gives the label name in Feynman diagrams.
and finally the last one is the PDGCode of the particle.

For new kind of particle that do not possess PDG Code you can enter 
the number you want, just ensure it is not yet used.

Now once the new particles are entered, we have to deal with interactions.
So let's move on to interaction.dat file

b/ interaction.dat

As you can see, all Standard Model vertices are listed by type.
At the end of the file you can find the USRVertex part wich is the one
you have to edit.

You can do like te following:

#   USRVertex
zp zp z GNNZ QED

wich gives the vertex name (you choose the one you want - madgraph is full of freedom!) 
and type (QED) for Z'Z'Z interaction.

Pay attention to the fact that interactions

f' f s and f f' s are different...and therefore need two differents names! like for example:
gfpfs and gffps...

Ok this is fine but you still have to give the name of all parameters
that will have to be used in all vertices definitions.

c/ VariableName.dat

Suppose you need an exotic coupling like:

GNNZ= param1/(param2**2)*sqrt(param3)

The way to declare you paramaters is very simple: do it like the following:

write this:

param1 #comment for the first param
param2 #comment for second param
param3 #comment for third param

in VariableName.dat...that's all. This will permit to declare 
parameters in input.inc file, and write comments in param_card.dat
automatically. Obviously, you cannot declare parameter that are already 
existing in particle.dat like masses and width, nor
ones declared in Header_and_Footer/coupl_header file...