|
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.
- Timestamp:
-
Jan 5, 2017, 3:29:27 PM (8 years ago)
- Author:
-
Clarence Wret
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v13
|
v14
|
|
29 | 29 | === Choosing a distribution === |
30 | 30 | |
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. |
| 31 | The 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. |
32 | 32 | |
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)]] |
34 | 34 | |
35 | 35 | In 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 | |
36 | 37 | |
37 | 38 | == Implementing a sample == |
… |
… |
|
39 | 40 | NUISANCE is designed to easily allow adding new samples. |
40 | 41 | |
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. |
| 42 | Each 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 | |
| 44 | These `MeasurementBase` classes are then looped over in the executables and data/MC comparisons are the result. |
42 | 45 | |
43 | 46 | The inheritance tree is simple and goes `Specific_Measurement -> MeasurementXD -> MeasurementBase` |
44 | 47 | |
| 48 | |
45 | 49 | === Setting up the inheritance === |
| 50 | |
46 | 51 | In 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 | 52 | |
| 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 | |
| 60 | class T2K_CC1pip_H2O_XSec_1Dpmu_nu : public Measurement1D { |
| 61 | public: |
| 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 | |
48 | 74 | === Naming the sample === |
| 75 | |
49 | 76 | Some automatic processing is done on loading up the sample. Most of these are simple string comparisons, but do place responsibility on the user. |
50 | 77 | |
|