This C++ version of BAT is still being maintained, but addition of new features is unlikely. Check out our new incarnation, BAT.jl, the Bayesian analysis toolkit in Julia. In addition to Metropolis-Hastings sampling, BAT.jl supports Hamiltonian Monte Carlo (HMC) with automatic differentiation, automatic prior-based parameter space transformations, and much more. See the BAT.jl documentation.

Estimating trigger efficiencies - tutorial for BAT

Physics motivation

Triggers are essential at collider experiments if the number of 'interesting events' is accompanied by background processes. The efficiencies for triggers are then needed, e.g., to calculate the production cross-section of the process under study. Usually the trigger efficiency is a function of several variables. This tutorial shows how to evaluate the trigger efficiency for objects at a collider as a function of the transverse momentum. Further information on the details of the physics and the original analysis can be found here.

Tutorial

This tutorial shows how to use a pre-defined BAT model for fitting data with binomial uncertainties from within ROOT. The data come in form of two histograms which are divided.

The tutorial is split into several steps:

Steps marked with * are advanced examples and independent of the limit part of the tutorial. A proposal for additional studies is also given.


Step 1 - Getting started

Copy the histogram file data.root and the ROOT macro skeleton efficiency.cxx to your local directory. The histogram hist_all represents a reference spectrum of the pT distribution from a particular object, e.g., muons measured during collisions. The spectrum can be obtained, e.g., from the Monte Carlo or a set of tagged objects (using the tag-and-probe method). The histogram hist_sub represents a subset of the objects, e.g., all muons which were triggered. These are referred to as probe objects when using tag-and-probe. The trigger efficiency can be estimed by dividing the two histograms bin-by-bin.

Have a look at the two distributions and estimate the trigger efficiency for small and large values by eye. Where is the point of inflection of the efficiency?

Solution


Step 2 - Defining a fit function

The efficiency can be estimated by fitting the ratio of the two data sets bin-by-bin. How can the uncertainties in each bin be calculated? Are the uncertainties symmetric? Define a proper fit function for the efficiency. How many fit parameters are there?

Solution


Step 3 - Interpreting the results

Run the macro after you have defined the fit function. The MCMC might take a while. Have a look at the plots generated. Does the fit function with the best-fit parameters look reasonable? Compare the results from Minuit and the MCMC. Are both physical? The priors for the fit parameters are chosen to be flat in this example. Check that the minimum and maximum allowed values are chosen appropriatly.

Solution


Step 4 - Using different constraints

Set the maximum efficiency for low pT values to smaller values.

Solution


Step 5 - Using different priors

The BCEfficiencyFitter in its current implementation does not forsee different priors. One way out it to create a new class which inherits from it and overload the method LogAprioriProbability. Add the following priors to this class:

Solution


Step 6 - Adding systematic uncertainties

Say, the scale of the transverse momentum is only known with some precision of 2.5 GeV/c. Include the uncertainty as a nuisance parameter. Hint: add a new parameter with a Gaussian prior around 0 and add the parameter value to x in the definition of the function.

Solution


Additional studies


Further material and documentation

An introduction to BAT can be found here.

An introduction to this tutorial can be found here.




Kevin Kröninger