Algorithm to compute 95% C.L.
limits using the Likelihood ratio semi-bayesian method.
Implemented by C. Delaere from the mclimit code written by Tom Junk [HEP-EX/9902006]. See http://cern.ch/thomasj/searchlimits/ecl.html for more details.
It takes signal, background and data histograms wrapped in a TLimitDataSource as input and runs a set of Monte Carlo experiments in order to compute the limits. If needed, inputs are fluctuated according to systematics. The output is a TConfidenceLevel.
The class TLimitDataSource takes the signal, background and data histograms as well as different systematics sources to form the TLimit input.
The class TConfidenceLevel represents the final result of the TLimit algorithm. It is created just after the time-consuming part and can be stored in a TFile for further processing. It contains light methods to return CLs, CLb and other interesting quantities.
The actual algorithm...
From an input (TLimitDataSource) it produces an output TConfidenceLevel. For this, nmc Monte Carlo experiments are performed. As usual, the larger this number, the longer the compute time, but the better the result.
Supposing that there is a plotfile.root file containing 3 histograms (signal, background and data), you can imagine doing things like:
More information can still be found on this page
Public Member Functions | |
TLimit () | |
virtual | ~TLimit () |
Static Public Member Functions | |
static TConfidenceLevel * | ComputeLimit (Double_t s, Double_t b, Int_t d, Int_t nmc=50000, bool stat=false, TRandom *generator=0) |
static TConfidenceLevel * | ComputeLimit (Double_t s, Double_t b, Int_t d, TVectorD *se, TVectorD *be, TObjArray *, Int_t nmc=50000, bool stat=false, TRandom *generator=0) |
static TConfidenceLevel * | ComputeLimit (TH1 *s, TH1 *b, TH1 *d, Int_t nmc=50000, bool stat=false, TRandom *generator=0) |
static TConfidenceLevel * | ComputeLimit (TH1 *s, TH1 *b, TH1 *d, TVectorD *se, TVectorD *be, TObjArray *, Int_t nmc=50000, bool stat=false, TRandom *generator=0) |
static TConfidenceLevel * | ComputeLimit (TLimitDataSource *data, Int_t nmc=50000, bool stat=false, TRandom *generator=0) |
Static Protected Member Functions | |
static bool | Fluctuate (TLimitDataSource *input, TLimitDataSource *output, bool init, TRandom *, bool stat=false) |
static Double_t | LogLikelihood (Double_t s, Double_t b, Double_t b2, Double_t d) |
Static Private Attributes | |
static TOrdCollection * | fgSystNames = new TOrdCollection() |
Collection of systematics names. | |
static TArrayD * | fgTable = new TArrayD(0) |
A log table... just to speed up calculation. | |
#include <TLimit.h>
|
static |
Definition at line 362 of file TLimit.cxx.
|
static |
Definition at line 384 of file TLimit.cxx.
|
static |
Definition at line 337 of file TLimit.cxx.
|
static |
Definition at line 349 of file TLimit.cxx.
|
static |
Definition at line 103 of file TLimit.cxx.
|
staticprotected |
Definition at line 228 of file TLimit.cxx.
Definition at line 407 of file TLimit.cxx.
|
staticprivate |