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 13 and Version 14 of HowToAddSample


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

--

Legend:

Unmodified
Added
Removed
Modified
  • HowToAddSample

    v13 v14  
    2929=== Choosing a distribution ===
    3030
    31 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+ H,,2,,O 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,, shown below.
    3232
    33 [[Image(T2K_CC1pip_H2O_enurec.png​, 300px)]][[Image(T2K_CC1pip_H2O_enurec.png​, 300px)]]
     33[[Image(T2K_CC1pip_H2O_pmu.png​, 300px)]][[Image(T2K_CC1pip_H2O_enurec.png​, 300px)]]
    3434
    3535In 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).
     36
    3637
    3738== Implementing a sample ==
     
    3940NUISANCE is designed to easily allow adding new samples.
    4041
    41 Each 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.
     42Each experimental measurement 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`).
     43
     44These `MeasurementBase` classes are then looped over in the executables and data/MC comparisons are the result.
    4245
    4346The inheritance tree is simple and goes `Specific_Measurement -> MeasurementXD -> MeasurementBase`
    4447
     48
    4549=== Setting up the inheritance ===
     50
    4651In the case of our T2K CC1pi+ H,,2,,O data, we're dealing with 1D distributions. They should therefore inherit from the `Measurement1D` class.
    4752
     53{{{
     54#ifndef T2K_CC1PIP_H2O_XSEC_1DPMU_NU_H_SEEN
     55#define T2K_CC1PIP_H2O_XSEC_1DPMU_NU_H_SEEN
     56
     57#include "Measurement1D.h"
     58#include "T2K_SignalDef.h"
     59
     60class T2K_CC1pip_H2O_XSec_1Dpmu_nu : public Measurement1D {
     61public:
     62  T2K_CC1pip_H2O_XSec_1Dpmu_nu(std::string inputfile, FitWeight *rw, std::string  type, std::string fakeDataFile);
     63  virtual ~T2K_CC1pip_H2O_XSec_1Dpmu_nu() {};
     64 
     65  void FillEventVariables(FitEvent *event);
     66  bool isSignal(FitEvent *event);
     67 
     68  private:
     69};
     70 
     71#endif
     72}}}
     73
    4874=== Naming the sample ===
     75
    4976Some automatic processing is done on loading up the sample. Most of these are simple string comparisons, but do place responsibility on the user.
    5077