Implementation of new histograms

VBFNLO offers two kinds of histograms, 1D and 2D. Additional histograms can be created easily in VBFNLO by modifying the file utilities/histograms.F as follows.

  1. In the subroutine InitHistograms create a new histogram template with the following command, for the 1D case:

    call CreateHist(HIST_ID, "title", nobins, xmin, xmax)

    where HIST_ID is the integer identification of the histogram (make sure to use a different number for each histogram); title the title of the histogram (will be used as plot title -- e.g. dS/dmjj: dijet mass); nobins the number of histogram bins; xmin the lower bound of the histogram; xmax the upper bound of histogram. Similarly, for the 2D case:

    call Create2dHist(HIST_ID, "title", "x-axis label", "y-axis label", nobins_x, nobins_y, xmin, xmax, ymin, ymax)

    where the number of bins and the bounds must be specified separately for the two axes. The axis labels "x-axis label" and "y-axis label" can read e.g. "eta_jj" and "m_jj", respectively.

  2. In the subroutine HistogramEvent, for 1D case, calculate the desired distribution (or observable) value, named ObsValue - e.g. dijet mass mjj, then fill the new histogram using the command:

    call FillHist2d(HIST_ID, ObsValue_x, ObsValue_y, dw, NLO)

    where ObsValue_x and ObsValue_y are the x-axis and y-axis observables, respectively. They can be, e.g. etajj and mjj, which must be calculated from the external-state momenta.

  3. The utilities directory must be cleaned by using the make clean command before VBFNLO is remade and installed using the make and make install commands from the program directory.

Information about the final state particles is stored in the arrays jets, leptons, invisible (neutrinos) and photons as in the previous section.