#================================================================================================
# *********************************
# INSTRUCTIONS FOR FORM-FACTOR CODE
# *********************************
#
# References:
#1. Giuseppe Degrassi, Pier Paolo Giardino, Fabio Maltoni, Davide Pagani (JHEP 1612, 080 (2016))
#2. Fabio Maltoni, Davide Pagani, Ambresh Shivaji and Xiaoran Zhao (arXiv:1707.XXXXX)
#
# Contact: xiaoran.zhao@uclouvain.be,ambresh.shivaji@uclouvain.be
#================================================================================================

With this code following files are provided:

1. 'loop_hvv'   : UFO model with modified VVH vertices
2. "hvvcoef.cpp": C++ implementation of form factors
3. "Makefile"   : generates static library (libhvvcoef.a) which 
                  is used during event generation
4. "ReadMe.txt" : explains how to use the code step by step and 
                  benchmarking for HZ process

---------------------------------------------------------
# NEEDED: Install LoopTools if you already don't have it.
---------------------------------------------------------

=========================================
Steps to follow: ZH is used as an example
=========================================

You are inside the 'trilinear-FF' folder.

1. Correct the LoopTools path in the "Makefile"

2. launch 'make'. The output is "libhvvcoef.a"

3. Copy "loop_hvv" to 'MG5_aMC_v2_5_5/models/' folder.

4. launch './bin/mg5_aMC' in 'MG5_aMC_v2_5_5' with following syntax
------------------------------
> import model loop_hvv
> generate p p > h z HVV^2==1
> output hz-k3
> quit
------------------------------
    (generates matrix element relevant to O(\lambda) correction to ZH.)

5. link the "libhvvcoef.a" and "libooptools.a" libraries in "hz-k3/Source/make_opts" file
   by changing the line

'STDLIB=-lstdc++' => 'STDLIB=-lstdc++ -L$(LT) -L$(HVVCOEF) -lhvvcoef -looptools'

   where 'LT' and 'HVVCOEF' are paths to "libooptools.a" and "libhvvcoef.a" respectively.

6. go to 'MG5_aMC_v2_5_5/hz-k3' and launch './bin/generate_events'
   ( resulting cross section correspond to O(\lambda) correction. ) 

=====================
# BENCHMARKING
=====================

Using following inputs you should get for ZH
-----------------------------------------------------------------------------------
default "param_card.dat", 13 TeV, 500K events, lhapdf:90500, Fixed scale: (mh+mz)/2
-----------------------------------------------------------------------------------
Cross-section[leading order, XLO]             :   0.6311 +- 4.194e-05 pb
Cross-section[Only O(\lambda) correction, XK3] :   0.007505 +- 5.197e-07 pb

=> C1 =  XK3/XLO = 0.0119
