The HighLAND analysis framework¶
The full documentation generated by Doxygen can be found at http://www.cern.ch/acervera/highland. Here only a summary is shown. Also information on how to download the framework for DUNE is found at the bottom of this page.
The HighLAND framework (HIGH Level Analysis at a Neutrino Detector), initially designed to simplify the process of analysing data in the T2K near detector (ND280) is being adapted for DUNE. It allows the user to quickly run analyses, plot results, evaluate the impact of systematic errors and much more. To allow this two set of packages have been identified:
- PSyChE (Propagation of SYstematics and CHaracterization of Events) is a high performance set of packages which performs event selection and propagation of systematics.
- HighLAND: use the PSyChE packages as core, and it adds in addition Corrections, FlatTree creation, tools for Drawing, etc. In practice PSyChE is part of the HighLAND distribution. The main reason to keep them separated is that PSyChE cab be run directly by fitters.
The code if self-contained and has a unique external dependency, ROOT. It is very light and can be compiled in less than 5 minutes in most operating systems, being specially interesting for laptops.
The analysis flow is in the above diagram. For every event a set of corrections are applied to make data and MC agree better. Then a loop over toy experiments is done, each toy experiment will be an independent analysis of the same event, in which the event properties are varied. This allows propagating systematic errors numerically. For each toy experiment, a set of event variations change some aspect of the data. The event selection proceeds then on that modified data. Finally, a weight for the event in this particular toy experiment is computed, to account for systematics that cannot be propagated as variations, and for event weight corrections. Those three operations, event variations, event selection and event weights are performed by PSyCHE. HighLAND provides in addition the infraestructure to do the event loop, apply corrections, create and fill root trees that can be easily analysed using a set of tools for drawing (also provided by HighLAND), extensions to the event model, etc.
Each analysis that uses the framework defines its own executable, for example RunDuneExampleAnalysis.cxx for the duneExampleAnalysis package. The output of this executable is a root file with several trees. Some of them contain a summary of the variables used in the analysis as well as selection cuts information (those are called micro-trees: default, all_syst, ...), while there are also single-entry trees containing more general information such as the amount of POT that was analysed (header tree), and configuration information for the analysis (config tree). The output file can then be analysed using a simple ROOT macro, and the DrawingTools methods provide many useful functions for doing this.
The following related pages contain more detailed documentation: