= NUISCOMP =
The NUISANCE comparison application can be used to generate MC predictions that can be directly compared with published scatter data by automatically selecting the correct event topologies from a provided event sample and binning them to match the data.
[[PageOutline(1-3,Wiki content,inline,numbered)]]
== Running NUISCOMP ==
{{{
#!div class="important"
'''Author:''' Patrick Stowell
'''Date:''' June 2017
'''Versions:''' `NUISANCE v2r0`, `GENIE 2.12.6`
}}}
The following example details how to run NUISANCE and produce MiniBooNE pion production comparisons to a generator of choice. Each generator requires very slightly different ways to handle NUISANCE, therefore multiple versions of this tutorial have been provided. Please use the following links to choose what generator you would like to use.
- [wiki:HowToUseNUISCOMP-GENIE I want to use GENIE]
- [wiki:HowToUseNUISCOMP-NuWro I want to use NuWro]
- [wiki:HowToUseNUISCOMP-NEUT I want to use NEUT]
= Useful NUISCOMP Commands =
There are also additional card file arguments and run time arguments that can be used with nuiscomp to help with debugging or performing slightly different comparisons.
== Overriding config options ==
A list of default configuration options requested in the code are given in the file 'parameters/config.xml'. When NUISANCE runs this file is automatically loaded in that start.
It is also possible however, to override any of these defaults at runtime by giving them to nuiscomp.
=== Card file override ===
One way to achieve this is to include them in your card file before all of your samples, like in the following examples setting the VERBOSITY level.
** Example 1 ** : Card verbosity change in simple card format
{{{
# config NAME VALUE
config VERBOSITY 4
sample MiniBooNE_CCQE_XSec_1DQ2_nu GENIE:myfiles.root
}}}
** Example 2 ** : Card verbosity change in xml card format
{{{
}}}
=== Command line override ===
Another alternative is to override parameters on the command line using the '-q' argument.
{{{
$ nuiscomp -q NAME=VALUE ...
}}}
** Example 3 ** : Runtime verbosity change
{{{
$ nuiscomp -c samples.card -o samples.root -q VERBOSITY=1
}}}
== Restricting the number of events ==
The "-n" flag is included as a quick way to override the configuration value 'MAXEVENTS'.
When set to anything other than -1 this parameter will restrict the maximum number of events read from each MC file, reducing the time taken to run, but enhancing statistical uncertainty.
** Example 1 ** : Limit the number of events to 5000
{{{
$ nuiscomp -c samples.card -o samples.root -n 5000
}}}
** Example 2 ** : Limit the number of events to 1E6
{{{
$ nuiscomp -c samples.card -o samples.root -n 1000000
}}}
** Example 3 ** : Limit the number of events to 1E6
{{{
$ nuiscomp -c samples.card -o samples.root -q MAXEVENTS=1000000
}}}
** Example 4 ** : Run with the default limit given in 'parameters/config.xml'
{{{
$ nuiscomp -c samples.card -o samples.root
}}}
** Example 5 ** : Run with no event limit
{{{
$ nuiscomp -c samples.card -o samples.root -n -1
}}}
** Example 6 ** : Run with no event limit
{{{
$ nuiscomp -c samples.card -o samples.root -q MAXEVENTS=-1
}}}
{{{
#!div class="important"
'''WARNING:'''
Restricting the number of events doesn't work for event samples that have had to be 'spliced' together by NUISANCE.
For example to make NEUT comparisons to MiniBooNE_CCQELike_XSec_1DQ2_antinu data, both a numb and numu event file need to be passed in so that NUISANCE can add them together to make the prediction. If MAXEVENTS was not set to '-1' for this sample, the results will be incorrect as the relative proportions of events will be incorrectly sampled!
}}}
== Specifying fake data ==
== Increasing or decreasing Verbosity ==
The +/-e and +/-v flags are reserved to increase or decrease the NUISANCE verbosity quickly at runtime.
** Example 1 ** : Increase verbosity by one level
{{{
$ nuiscomp -c samples.card -o samples.root +v
}}}
** Example 2 ** : Decrease verbosity by one level
{{{
$ nuiscomp -c samples.card -o samples.root -v
}}}
** Example 3 ** : Increase verbosity by two levels
{{{
$ nuiscomp -c samples.card -o samples.root +v +v
}}}
** Example 4 ** : Decrease error verbosity by one level
{{{
$ nuiscomp -c samples.card -o samples.root -e
}}}
** Example 5 ** : Increase error verbosity by two levels
{{{
$ nuiscomp -c samples.card -o samples.root +e +e
}}}