Implementation of new cuts
New cuts can be implemented easily in VBFNLO by modifying the file utilities/cuts.F (called cuts.F for short) and related files as follows.
-
In the subroutine InitCuts in cuts.F read the
value of the cut from the input file cuts.dat using
call read_real("CUTNAME",CutValue,DefaultValue)
where
CUTNAME
is the name of the cut (e.g.MTW_MIN
), as written in the input file cuts.dat;CutValue
is the internal variable storing the value of the cut (e.g.MtwMin
);DefaultValue
is the default value of the cut, in case the input value is not specified in the cuts.dat (e.g.50d0
). The new variableCutValue
must be declared in the file utilities/cuts.inc and added to the common blockbasiccuts
there. If the value of the cut is not a real number, the call toread_real
should be replaced byread_logical
(for logical value) orread_int
(for integer value) etc. Note that this step is not strictly necessary, but it will make setting and changing the value of the cut much simpler. It is possible to skip this step and use a hardwired cut value in theBASIC_CUTS
function as instructed in the next steps. -
In the function
BASIC_CUTS
in the file cuts.F calculate the value of the quantity, namedObsValue
, on which to cut (e.g.Mtw
). The new variableObsValue
must be declared locally. One then adds the cut condition to the logical valuepass_cuts
as followspass_cuts = pass_cuts .and. (ObsValue .gt. CutValue)
Of course, if the cut specifies the maximum value of a quantity,
.gt.
should be replaced by.lt.
etc. TheCutValue
is read in from the cuts.dat as explained in the above step. It can be replaced by a hardwired value here. -
The utilities directory must be cleaned by using the
make clean command before VBFNLO is remade and
installed using the
make
andmake install
commands from the program directory.
Information about the final state particles is stored in the arrays
jets
, leptons
,
invisible
(neutrinos) and photons
. The
entries are as follows
-
jets(i, j)
: information about the jets is stored here, entries are \(p_T\)-ordered j
= jet numberi = 0-3
= 4-momentumi = 4
= massi = 5
= transverse momentum \(p_T\)i = 6
= rapidity \(y\)i = 7
= azimuthal angle \(\phi\)
-
leptons(i, j)
: information about the charged leptons is stored here j
= lepton numberi = 0-3
= 4-momentumi = 4
= massi = 5
= transverse momentum \(p_T\)i = 6
= rapidity \(y\)i = 7
= azimuthal angle \(\phi\)i = 8
= lepton ID (i.e. PDG particle number)
-
invisible(i, j)
: information about the invisible particles (i.e. neutrinos) is stored here j
= neutrino numberi = 0-3
= 4-momentum-
i = 4
= mass (all neutrinos are treated as massless, i.e. this entry is always equal to zero) i = 5
= transverse momentum \(p_T\)i = 6
= rapidity \(y\)i = 7
= azimuthal angle \(\phi\)i = 8
= neutrino ID (i.e. PDG particle number)
-
photons(i, j)
: information about the photons is stored here j
= photon numberi = 0-3
= 4-momentum-
i = 4
= mass (all photons are treated as massless, i.e. this entry is always equal to zero) i = 5
= transverse momentum \(p_T\)i = 6
= rapidity \(y\)i = 7
= azimuthal angle \(\phi\)