nuisance is hosted by Hepforge, IPPP Durham
close Warning: Can't synchronize with repository "(default)" ("(default)" is not readable or not a Git repository.). Look in the Trac log for more information.

Changes between Version 12 and Version 13 of HowToAddSample


Ignore:
Timestamp:
Jan 5, 2017, 3:27:08 PM (7 years ago)
Author:
Clarence Wret
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HowToAddSample

    v12 v13  
    55This is an informal step-by-step guide on how to add samples into the NUISANCE framework.
    66
    7 For this tutorial I'll be adding the T2K CC1pi+ H2O data. The data comes from the [http://t2k-experiment.org/results/nd280data-numu-cc1pi-xs-on-h2o-2015/ T2K site] and [https://arxiv.org/abs/1605.07964 arxiv]. The data is supplied both in a ROOT file and a number of .csv files: I'll be using the ROOT file here.
     7For this tutorial I'll be adding the T2K CC1pi+ H,,2,,O data. The data comes from the [http://t2k-experiment.org/results/nd280data-numu-cc1pi-xs-on-h2o-2015/ T2K site] and [https://arxiv.org/abs/1605.07964 arxiv]. The data is supplied both in a ROOT file and a number of .csv files: I'll be using the ROOT file here.
    88
    99{{{
     
    1212}}}
    1313
     14
    1415== Examining the data and choosing distributions ==
    1516
     
    1718=== Finding the neutrino flux and generating events ===
    1819
    19 The first issue at hand is to find the flux for the experiment. If we don't have this (or its very difficult to find), we cant make a generator prediction---unless the measurement is a total cross-section without any phase space cuts.
     20The first issue at hand is to find the flux for the experiment. If we don't have this, we cant make a generator prediction---unless the measurement is a total cross-section without any phase space cuts (in which case you should probably cast a suspicious eye).
    2021
    21 A quick search through the document finds it is documented in reference ![12]. It is also in our [wiki:ExperimentFlux flux list].
     22A quick search through the arxiv document points us to reference ![12]. It is also in our [wiki:ExperimentFlux flux list].
    2223
    23 I then generate events in NEUT 5.3.6 with a suitable card-file, see our [wiki:HowToNeut NEUT guide] on how to do this. We need the correct target (water) and flux, and perform the model selections we want (e.g. Rein-Sehgal or Berger-Sehgal coherent model). The procedure is very similar for other generators too.
     24We then generate events in NEUT 5.3.6 with a suitable card-file, see our [wiki:HowToNeut NEUT guide] on how to do this. We need the correct target (water) and flux, and perform the model selections we want (e.g. Rein-Sehgal or Berger-Sehgal coherent model). The procedure is very similar for other generators too.
    2425
    2526Aim to generate around 1M events with all interaction modes turned on. This way we make sure to get all interaction modes into the topologically defined cross-section. We get a small amount of CCQE events which excite a pion from the outgoing nucleon interacting in the nucleus to kick out a pion, leading to a CCQE+1pi ~ CC1pi+ final state, which is signal for this particular sample.
     
    2829=== Choosing a distribution ===
    2930
    30 The T2K CC1pi+ H2O data release contains various distributions in FIG 4. In this tutorial I'll look at adding one kinematic distribution and one derived distribution: p_mu and E^rec^_nu respectively.
     31The T2K CC1pi+ H2O data release contains various distributions in FIG 4. In this tutorial I'll look at adding one kinematic distribution and one derived distribution: p,,mu,, and E^rec^,,nu,, respectively.
    3132
    3233[[Image(T2K_CC1pip_H2O_enurec.png​, 300px)]][[Image(T2K_CC1pip_H2O_enurec.png​, 300px)]]
     
    3435In NUISANCE we try to add all available distributions from a publication. '''However''', some distributions will have detector effects "folded" into them (i.e. they will be raw detector-level data). We can only use these if there is some method which bring detector-level variables (e.g. p_mu seen in the detector) to truth-level variable (e.g. p_mu seen after correcting for the detector effects).
    3536
    36 === Implementing a sample ===
     37== Implementing a sample ==
     38
     39NUISANCE is designed to easily allow adding new samples.
     40
     41Each experimental measurement (e.g. MiniBooNE CC1pi0 cos(theta(pi0, neutrino))) is its own class. To simplify including new samples we supply a base class for 1D (`Measurement1D`) and 2D (`Measurement2D`) measurements, which in turn inherits from the virtual base class (`MeasurementBase`). These `MeasurementBase` classes are then looped over in the executables and data/MC comparisons are the result.
     42
     43The inheritance tree is simple and goes `Specific_Measurement -> MeasurementXD -> MeasurementBase`
     44
     45=== Setting up the inheritance ===
     46In the case of our T2K CC1pi+ H,,2,,O data, we're dealing with 1D distributions. They should therefore inherit from the `Measurement1D` class.
     47
     48=== Naming the sample ===
     49Some automatic processing is done on loading up the sample. Most of these are simple string comparisons, but do place responsibility on the user.
     50
     51For cross-sections, for event-rates
     52
     53=== Placing the sample ===
     54
     55=== Making the constructor ===
     56
     57=== Specifying the event-level dependent variable(s) ===
     58
     59=== Specifying a signal definition ===
    3760
    3861{{{
     
    90113}
    91114}}}
     115
     116=== Make NUISANCE aware of the sample ===
     117FCN/SampleList
     118
     119=== Add the sample to the makefile ===
     120CMake