FitVarsSterile.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "CAFAna/Core/IFitVar.h"
4 #include "TMath.h"
5 
6 namespace ana
7 {
8  //----------------------------------------------------------------------
9 
10  /// \f$ \Delta m^2_{32} \f$
11  class FitDmSq32Sterile: public IFitVar
12  {
13  public:
14  FitDmSq32Sterile() : IFitVar("dmsq32_sterile", "#Deltam^{2}_{32}") {};
15 
16  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
17  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
18  };
19 
20  /// \f$ \Delta m^2_{32} \f$
22 
23  //----------------------------------------------------------------------
24 
25  /// \f$ \Delta m^2_{41} \f$
27  {
28  public:
29  FitDmSq41Sterile() : IConstrainedFitVar("dmsq41", "#Deltam^{2}_{41}") {};
30 
31  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
32  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
33 
34  double LowLimit() const override {return 0;}
35  double HighLimit() const override {return 1e6;}
36  };
37 
38  /// \f$ \Delta m^2_{41} \f$
40 
41  //----------------------------------------------------------------------
42 
43  /// \f$ \Delta m^2_{43} \f$
44  class FitDmSq43Sterile: public IFitVar
45  {
46  public:
47  FitDmSq43Sterile() : IFitVar("dmsq43", "#Deltam^{2}_{43}") {};
48 
49  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
50  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
51  };
52 
53  /// \f$ \Delta m^2_{43} \f$
55 
56  //----------------------------------------------------------------------
57 
58  /// \f$ \delta_{13}/\pi \f$
60  {
61  public:
62  FitDelta13InPiUnitsSterile() : IFitVar("delta13(pi)", "#delta_{13} / #pi") {};
63 
64  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
65  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
66  };
67 
68  /// \f$ \delta_{CP}/\pi \f$
70 
71  //----------------------------------------------------------------------
72 
73  /// \f$ \delta_{13}/\pi \f$
75  {
76  public:
77  FitDelta14InPiUnitsSterile() : IFitVar("delta14(pi)", "#delta_{14} / #pi") {};
78 
79  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
80  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
81  };
82 
83  /// \f$ \delta_{14}/\pi \f$
85 
86  //----------------------------------------------------------------------
87 
88  /// \f$ \delta_{24}/\pi \f$
90  {
91  public:
92  FitDelta24InPiUnitsSterile() : IConstrainedFitVar("delta24(pi)", "#delta_{24} / #pi") {};
93 
94  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
95  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
96 
97  double LowLimit() const override {return 0;}
98  double HighLimit() const override {return 2;}
99  };
100 
101  /// \f$ \delta_{24}/\pi \f$
103 
104  //----------------------------------------------------------------------
105 
106  /// \f$ \theta_{13} \f$
108  {
109  public:
110  FitTheta13Sterile() : IConstrainedFitVar("th13_sterile", "#theta_{13}") {};
111 
112  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
113  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
114 
115 
116  double LowLimit() const override {return 0;}
117  double HighLimit() const override {return TMath::Pi()/2;}
118  };
119 
120  /// \f$ \theta_{13} \f$
122 
123  //----------------------------------------------------------------------
124 
125  /// \f$ \sin^2\theta_{13} \f$
127  {
128  public:
129  FitSinSqTheta13Sterile() : IConstrainedFitVar("ssth13_sterile", "sin^{2}#theta_{13}") {};
130 
131  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
132  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
133 
134 
135  double LowLimit() const override {return 0;}
136  double HighLimit() const override {return 1;}
137  };
138 
139  /// \f$ \sin^2\theta_{13} \f$
141 
142  //----------------------------------------------------------------------
143 
144  /// \f$ \sin^2 2 \theta_{13} \f$
146  {
147  public:
148  FitSinSq2Theta13Sterile() : IConstrainedFitVar("ss2th13_sterile", "sin^{2}2#theta_{13}") {};
149 
150  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
151  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
152 
153  double LowLimit() const override {return 0;}
154  double HighLimit() const override {return 1;}
155  };
156 
157  /// \f$ \sin^2 2 \theta_{13} \f$
159 
160  //----------------------------------------------------------------------
161 
162  /// \f$ \theta_{23} \f$
164  {
165  public:
166  FitTheta23Sterile() : IConstrainedFitVar("th23_sterile", "#theta_{23}") {};
167 
168  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
169  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
170 
171 
172  double LowLimit() const override {return 0;}
173  double HighLimit() const override {return TMath::Pi()/2;}
174  };
175 
176  /// \f$ \theta_{23} \f$
178 
179  //----------------------------------------------------------------------
180 
181  /// \f$ \sin^2\theta_{23} \f$
183  {
184  public:
185  FitSinSqTheta23Sterile() : IConstrainedFitVar("ssth23_sterile", "sin^{2}#theta_{23}") {};
186 
187  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
188  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
189 
190 
191  double LowLimit() const override {return 0;}
192  double HighLimit() const override {return 1;}
193  };
194 
195  /// \f$ \sin^2\theta_{23} \f$
197 
198  //----------------------------------------------------------------------
199 
200  /// \f$ \theta_{14} \f$
202  {
203  public:
204  FitTheta14Sterile() : IConstrainedFitVar("th14", "#theta_{14}") {};
205 
206  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
207  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
208 
209 
210  double LowLimit() const override {return 0;}
211  double HighLimit() const override {return TMath::Pi()/2;}
212  };
213 
214  /// \f$ \theta_{14} \f$
216 
217  //----------------------------------------------------------------------
218 
219  /// \f$ \sin^2\theta_{14} \f$
221  {
222  public:
223  FitSinSqTheta14Sterile() : IConstrainedFitVar("ssth14", "sin^{2}#theta_{14}") {};
224 
225  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
226  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
227 
228 
229  double LowLimit() const override {return 0;}
230  double HighLimit() const override {return 1;}
231  };
232 
233  /// \f$ \sin^2\theta_{14} \f$
235 
236  //----------------------------------------------------------------------
237 
238  /// \f$ \theta_{24} \f$
240  {
241  public:
242  FitTheta24Sterile() : IConstrainedFitVar("th24", "#theta_{24}") {};
243 
244  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
245  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
246 
247 
248  double LowLimit() const override {return 0;}
249  double HighLimit() const override {return TMath::Pi()/4;}
250  };
251 
252  /// \f$ \theta_{24} \f$
254 
255  //----------------------------------------------------------------------
256 
257  /// \f$ \sin^2\theta_{24} \f$
259  {
260  public:
261  FitSinSqTheta24Sterile() : IConstrainedFitVar("ssth24", "sin^{2}#theta_{24}") {};
262 
263  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
264  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
265 
266 
267  double LowLimit() const override {return 0;}
268  double HighLimit() const override {return 1;}
269  };
270 
271  /// \f$ \sin^2\theta_{24} \f$
273 
274  //----------------------------------------------------------------------
275 
276  /// \f$ \theta_{34} \f$
278  {
279  public:
280  FitTheta34Sterile() : IConstrainedFitVar("th34", "#theta_{34}") {};
281 
282  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
283  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
284 
285 
286  double LowLimit() const override {return 0;}
287  double HighLimit() const override {return TMath::Pi()/2;}
288  };
289 
290  /// \f$ \theta_{34} \f$
292 
293  //----------------------------------------------------------------------
294 
295  /// \f$ \sin^2\theta_{34} \f$
297  {
298  public:
299  FitSinSqTheta34Sterile() : IConstrainedFitVar("ssth34", "sin^{2}#theta_{34}") {};
300 
301  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
302  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
303 
304 
305  double LowLimit() const override {return 0;}
306  double HighLimit() const override {return 1;}
307  };
308 
309  /// \f$ \sin^2\theta_{34} \f$
311 
312  //----------------------------------------------------------------------
313 
314  /// \f$ \theta_{13} \f$
316  {
317  public:
318  FitTheta13InDegreesSterile() : IConstrainedFitVar("th13(degrees)", "#theta_{13}") {};
319 
320  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
321  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
322 
323 
324  double LowLimit() const override {return 0;}
325  double HighLimit() const override {return 90;}
326  };
327 
328  /// \f$ \theta_{13} \f$
330 
331  //----------------------------------------------------------------------
332 
333  /// \f$ \theta_{23} \f$
335  {
336  public:
337  FitTheta23InDegreesSterile() : IConstrainedFitVar("th23(degrees)", "#theta_{23}") {};
338 
339  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
340  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
341 
342 
343  double LowLimit() const override {return 0;}
344  double HighLimit() const override {return 90;}
345  };
346 
347  /// \f$ \theta_{23} \f$
349 
350  //----------------------------------------------------------------------
351 
352  /// \f$ \theta_{14} \f$
354  {
355  public:
356  FitTheta14InDegreesSterile() : IConstrainedFitVar("th14(degrees)", "#theta_{14}") {};
357 
358  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
359  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
360 
361 
362  double LowLimit() const override {return 0;}
363  double HighLimit() const override {return 90;}
364  };
365 
366  /// \f$ \theta_{14} \f$
368 
369  //----------------------------------------------------------------------
370 
371  /// \f$ \theta_{24} \f$
373  {
374  public:
375  FitTheta24InDegreesSterile() : IConstrainedFitVar("th24(degrees)", "#theta_{24}") {};
376 
377  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
378  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
379 
380 
381  double LowLimit() const override {return 0;}
382  double HighLimit() const override {return 45;}
383  };
384 
385  /// \f$ \theta_{24} \f$
387 
388  //----------------------------------------------------------------------
389 
390  /// \f$ \theta_{34} \f$
392  {
393  public:
394  FitTheta34InDegreesSterile() : IConstrainedFitVar("th34(degrees)", "#theta_{34}") {};
395 
396  double GetValue(const osc::IOscCalcAdjustable* osc) const override;
397  void SetValue(osc::IOscCalcAdjustable* osc, double val) const override;
398 
399 
400  double LowLimit() const override {return 0;}
401  double HighLimit() const override {return 90;}
402  };
403 
404  /// \f$ \theta_{34} \f$
406 
407  //----------------------------------------------------------------------
408 
409 
410 } // namespace
const FitTheta14InDegreesSterile kFitTheta14InDegreesSterile
double HighLimit() const override
double LowLimit() const override
double LowLimit() const override
const FitSinSqTheta24Sterile kFitSinSqTheta24Sterile
double HighLimit() const override
const FitTheta13InDegreesSterile kFitTheta13InDegreesSterile
Cuts and Vars for the 2020 FD DiF Study.
Definition: vars.h:6
double LowLimit() const override
double HighLimit() const override
double HighLimit() const override
double LowLimit() const override
double HighLimit() const override
double LowLimit() const override
double HighLimit() const override
double LowLimit() const override
const FitSinSqTheta14Sterile kFitSinSqTheta14Sterile
const FitTheta23InDegreesSterile kFitTheta23InDegreesSterile
const FitDmSq32Sterile kFitDmSq32Sterile
double HighLimit() const override
const FitTheta24Sterile kFitTheta24Sterile
const FitTheta34Sterile kFitTheta34Sterile
double HighLimit() const override
const FitTheta24InDegreesSterile kFitTheta24InDegreesSterile
const FitSinSqTheta34Sterile kFitSinSqTheta34Sterile
double HighLimit() const override
double HighLimit() const override
double HighLimit() const override
double LowLimit() const override
double LowLimit() const override
double HighLimit() const override
double HighLimit() const override
const FitDelta24InPiUnitsSterile kFitDelta24InPiUnitsSterile
const FitDelta14InPiUnitsSterile kFitDelta14InPiUnitsSterile
const FitTheta14Sterile kFitTheta14Sterile
const FitSinSqTheta13Sterile kFitSinSqTheta13Sterile
const FitDmSq43Sterile kFitDmSq43Sterile
double HighLimit() const override
double LowLimit() const override
double LowLimit() const override
double HighLimit() const override
const FitSinSq2Theta13Sterile kFitSinSq2Theta13Sterile
double LowLimit() const override
double LowLimit() const override
double LowLimit() const override
double LowLimit() const override
const FitDelta13InPiUnitsSterile kFitDelta13InPiUnitsSterile
double HighLimit() const override
Oscillation probability calculators.
Definition: Calcs.h:5
const FitSinSqTheta23Sterile kFitSinSqTheta23Sterile
const FitTheta34InDegreesSterile kFitTheta34InDegreesSterile
Interface definition for fittable variables.
Definition: IFitVar.h:16
double LowLimit() const override
double LowLimit() const override
double GetValue(const osc::IOscCalcAdjustable *osc) const override
void SetValue(osc::IOscCalcAdjustable *osc, double val) const override
double LowLimit() const override
const FitTheta13Sterile kFitTheta13Sterile
double HighLimit() const override
double HighLimit() const override
double LowLimit() const override
const FitDmSq41Sterile kFitDmSq41Sterile
const FitTheta23Sterile kFitTheta23Sterile