N-tuples¶ ↑
This chapter describes functions for creating and manipulating ntuples, sets of values associated with events. The ntuples are stored in files. Their values can be extracted in any combination and booked in a histogram using a selection function.
The values to be stored are held in a GSL::Vector or a GSL::Matrix object, and an ntuple is created associating this object with a file. The values are then written to the file (normally inside a loop) using the ntuple functions described below.
A histogram can be created from ntuple data by providing a selection function and a value function. The selection function specifies whether an event should be included in the subset to be analyzed or not. The value function computes the entry to be added to the histogram for each event.
The Ntuple class¶ ↑
-
GSL::Ntuple.create(filename, v)
-
GSL::Ntuple.alloc(filename, v)
These create a new write-only ntuple file
filenamefor ntuples.
Any existing file with the same name is truncated to zero length and
overwritten. A preexisting Vector object v for
the current ntuple data must be supplied: this is used to copy ntuples in
and out of the file.
-
GSL::Ntuple.open(filename, v)
This opens an existing ntuple file
filenamefor reading. A preexisting
Vector object v for the current ntuple data must
be supplied.
Writing and reading ntuples¶ ↑
-
GSL::Ntuple#write
-
GSL::Ntuple#bookdata
This method writes the current ntuple data to the corresponding file.
-
GSL::Ntuple#read
This method reads the current row of the ntuple file.
Histogramming ntuple values¶ ↑
Once an ntuple has been created its contents can be histogrammed in various ways using the function gsl_ntuple_project. Two user-defined functions must be provided, a function to select events and a function to compute scalar values. The selection function and the value function both accept the ntuple row as a first argument and other parameters as a second argument.
-
GSL::Ntuple::SelectFn.alloc {block}
-
GSL::Ntuple::SelectFn.alloc(proc)
-
GSL::Ntuple::ValueFn.alloc {block}
-
GSL::Ntuple::ValueFn.alloc(proc)
Constructors for selection functions and value functions. The selection function shoud return a non-zero value for each ntuple row that is to be included in the histogram. The value function should return the value to be added to the histogram for the ntuple row.
-
GSL::Ntuple::SelectFn#set_params(params)
-
GSL::Ntuple::ValueFn#set_params(params)
Set the parameters of the functions, by an array
params.
-
GSL::Ntuple.project(h, n, valfn, selfn)
These methods updates the histogram
hfrom the ntuplenusing the functionsvalfnandselfn. For each ntuple row where the selection functionselenis non-zero the corresponding value of that row is computed using the function value_funcvalfnand added to the histogramh. Those ntuple rows whereselfnreturns zero are ignored. New entries are added to the histogram, so subsequent calls can be used to accumulate further data in the same histogram.