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
CUTNAMEis the name of the cut (e.g.MTW_MIN), as written in the input file cuts.dat;CutValueis the internal variable storing the value of the cut (e.g.MtwMin);DefaultValueis the default value of the cut, in case the input value is not specified in the cuts.dat (e.g.50d0). The new variableCutValuemust be declared in the file utilities/cuts.inc and added to the common blockbasiccutsthere. If the value of the cut is not a real number, the call toread_realshould 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_CUTSfunction as instructed in the next steps. -
In the function
BASIC_CUTSin the file cuts.F calculate the value of the quantity, namedObsValue, on which to cut (e.g.Mtw). The new variableObsValuemust be declared locally. One then adds the cut condition to the logical valuepass_cutsas 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. TheCutValueis 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
makeandmake installcommands 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\)