All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CalcsNuFit.h
Go to the documentation of this file.
1 #pragma once
2 
5 
6 #include "TMath.h"
7 
8 #include "TRandom3.h"
9 
10 namespace ana
11 {
12  // http://www.nu-fit.org/?q=node/177
13  // NuFit November 2018
14  const double kNuFitDmsq21CV = 7.39e-5;
15  const double kNuFitTh12CV = 33.82 * TMath::Pi()/180;
16 
17  // Have to adjust for nu-fit's weird convention in NH
18  const double kNuFitDmsq32CVNH = +2.525e-3 - kNuFitDmsq21CV;
19  const double kNuFitTh23CVNH = 49.6 * TMath::Pi()/180;
20  const double kNuFitTh13CVNH = 8.61 * TMath::Pi()/180;
21  const double kNuFitdCPCVNH = 215 * TMath::Pi()/180;
22 
23  const double kNuFitDmsq32CVIH = -2.512e-3;
24  const double kNuFitTh23CVIH = 49.8 * TMath::Pi()/180;
25  const double kNuFitTh13CVIH = 8.65 * TMath::Pi()/180;
26  const double kNuFitdCPCVIH = 284 * TMath::Pi()/180;
27 
28  // Based on 1/6 of the +/- 3sigma error
29  const double kNuFitDmsq21Err = ((8.01-6.79)/6)*1e-5;
30  const double kNuFitTh12Err = ((36.27-31.61)/6) * TMath::Pi()/180;
31 
32  const double kNuFitDmsq32ErrNH = ((2.625-2.427)/6)*1e-3;
33  const double kNuFitTh23ErrNH = ((52.4-40.3)/6) * TMath::Pi()/180;
34  const double kNuFitTh13ErrNH = ((8.99-8.22)/6) * TMath::Pi()/180;
35 
36  const double kNuFitDmsq32ErrIH = ((2.611-2.412)/6)*1e-3;
37  const double kNuFitTh23ErrIH = ((52.5-40.6)/6) * TMath::Pi()/180;
38  const double kNuFitTh13ErrIH = ((9.03-8.27)/6) * TMath::Pi()/180;
39 
40  //https://arxiv.org/pdf/1707.02322.pdf
41  const double kBaseline = 1284.9; // km
42  const double kEarthDensity = 2.848; // g/cm^3
43 
44  // hie = +/-1
46 
48 
49  // Add in a throw for toys
50  osc::IOscCalcAdjustable* ThrownNuFitOscCalc(int hie, std::vector<const IFitVar*> oscVars);
51 
52  bool HasVar(std::vector<const IFitVar*> oscVars, std::string name);
53 
54 
56  {
57  public:
58  double ChiSq(osc::IOscCalcAdjustable* calc,
59  const SystShifts& syst = SystShifts::Nominal()) const override;
60  };
61 
63  {
64  public:
65  Penalizer_GlbLike(osc::IOscCalcAdjustable* cvcalc, int hietrue, bool weakOnly=false);
66 
67  double Dmsq21CV() const {return fDmsq21;}
68  double Th12CV() const {return fTh12;}
69  double Dmsq32CV() const {return fDmsq32;}
70  double Th23CV() const {return fTh23;}
71  double Th13CV() const {return fTh13;}
72  double RhoCV() const {return fRho;}
73 
74  double Dmsq21Err() const {return fDmsq21Err;}
75  double Th12Err() const {return fTh12Err;}
76  double Dmsq32Err() const {return fDmsq32Err;}
77  double Th23Err() const {return fTh23Err;}
78  double Th13Err() const {return fTh13Err;}
79  double RhoErr() const {return fRhoErr;}
80 
81  double ChiSq(osc::IOscCalcAdjustable* calc,
82  const SystShifts& syst = SystShifts::Nominal()) const override;
83 
84  protected:
85  double fDmsq21;
86  double fTh12;
87  double fDmsq32;
88  double fTh23;
89  double fTh13;
90  double fRho;
91 
92  double fDmsq21Err;
93  double fTh12Err;
94  double fDmsq32Err;
95  double fTh23Err;
96  double fTh13Err;
97  double fRhoErr;
98 
99  private:
100  // Okay, I'm bad at naming things. This is a flag to apply a penalty to all parameters
101  // or only those that are weakly constained in DUNE (12 sector, rho)
102  bool fWeakOnly;
103  };
104 
105 }
double ChiSq(osc::IOscCalcAdjustable *calc, const SystShifts &syst=SystShifts::Nominal()) const override
Definition: CalcsNuFit.cxx:176
const double kNuFitDmsq32ErrNH
Definition: CalcsNuFit.h:32
const double kNuFitTh23ErrIH
Definition: CalcsNuFit.h:37
Simple record of shifts applied to systematic parameters.
Definition: SystShifts.h:16
const double kNuFitDmsq32ErrIH
Definition: CalcsNuFit.h:36
double Th13Err() const
Definition: CalcsNuFit.h:78
double Th13CV() const
Definition: CalcsNuFit.h:71
double Dmsq21CV() const
Definition: CalcsNuFit.h:67
process_name opflashCryoW ana
const double kNuFitTh12Err
Definition: CalcsNuFit.h:30
static SystShifts Nominal()
Definition: SystShifts.h:23
const double kNuFitdCPCVIH
Definition: CalcsNuFit.h:26
const double kNuFitDmsq32CVIH
Definition: CalcsNuFit.h:23
osc::IOscCalcAdjustable * ThrownNuFitOscCalc(int hie, std::vector< const IFitVar * > oscVars)
Definition: CalcsNuFit.cxx:45
const double kNuFitTh23CVIH
Definition: CalcsNuFit.h:24
const double kEarthDensity
Definition: CalcsNuFit.h:42
double Dmsq32Err() const
Definition: CalcsNuFit.h:76
const double kNuFitTh23CVNH
Definition: CalcsNuFit.h:19
const double kNuFitTh13ErrIH
Definition: CalcsNuFit.h:38
const double kNuFitDmsq21Err
Definition: CalcsNuFit.h:29
Penalizer_GlbLike(osc::IOscCalcAdjustable *cvcalc, int hietrue, bool weakOnly=false)
Definition: CalcsNuFit.cxx:152
const double kNuFitDmsq21CV
Definition: CalcsNuFit.h:14
double ChiSq(osc::IOscCalcAdjustable *calc, const SystShifts &syst=SystShifts::Nominal()) const override
Definition: CalcsNuFit.cxx:126
const double kNuFitdCPCVNH
Definition: CalcsNuFit.h:21
osc::IOscCalcAdjustable * NuFitOscCalcPlusOneSigma(int hie)
Definition: CalcsNuFit.cxx:98
const double kBaseline
Definition: CalcsNuFit.h:41
double Th23Err() const
Definition: CalcsNuFit.h:77
double Dmsq32CV() const
Definition: CalcsNuFit.h:69
double Th12CV() const
Definition: CalcsNuFit.h:68
const double kNuFitTh13CVIH
Definition: CalcsNuFit.h:25
double RhoErr() const
Definition: CalcsNuFit.h:79
const double kNuFitDmsq32CVNH
Definition: CalcsNuFit.h:18
Base class defining interface for experiments.
Definition: IExperiment.h:21
const double kNuFitTh23ErrNH
Definition: CalcsNuFit.h:33
do i e
double Dmsq21Err() const
Definition: CalcsNuFit.h:74
double Th23CV() const
Definition: CalcsNuFit.h:70
const double kNuFitTh13ErrNH
Definition: CalcsNuFit.h:34
double RhoCV() const
Definition: CalcsNuFit.h:72
then echo fcl name
double Th12Err() const
Definition: CalcsNuFit.h:75
osc::IOscCalcAdjustable * NuFitOscCalc(int hie)
Definition: CalcsNuFit.cxx:12
bool HasVar(std::vector< const IFitVar * > oscVars, std::string name)
Definition: CalcsNuFit.cxx:39
const double kNuFitTh12CV
Definition: CalcsNuFit.h:15
const double kNuFitTh13CVNH
Definition: CalcsNuFit.h:20