Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ana::PredictionExtrap Class Reference

Take the output of an extrapolation and oscillate it as required. More...

#include "/cvmfs/nova-development.opensciencegrid.org/novasoft/releases/N21-04-15/CAFAna/Prediction/PredictionExtrap.h"

Inheritance diagram for ana::PredictionExtrap:
ana::IPrediction ana::PredictionNoExtrap ana::PredictionSterile

Public Member Functions

 PredictionExtrap (std::unique_ptr< IExtrap > &&extrap)
 Takes ownership of extrap. More...
 
 PredictionExtrap ()=delete
 
Spectrum Predict (osc::IOscCalc *calc) const override
 
Spectrum Predict (osc::IOscCalcStan *calc) const override
 
Spectrum PredictComponent (osc::IOscCalc *calc, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const override
 
Spectrum PredictComponent (osc::IOscCalcStan *calc, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const override
 
OscillatableSpectrum ComponentCC (int from, int to) const override
 
Spectrum ComponentNCTotal () const override
 
Spectrum ComponentNC () const override
 
Spectrum ComponentNCAnti () const override
 
virtual void SaveTo (TDirectory *dir, const std::string &name) const override
 
const IExtrapGetExtrap () const
 
virtual Spectrum PredictUnoscillated () const
 
virtual Spectrum PredictSyst (osc::IOscCalc *calc, const SystShifts &syst) const
 
virtual Spectrum PredictSyst (osc::IOscCalcStan *calc, const SystShifts &syst) const
 
virtual Spectrum PredictComponentSyst (osc::IOscCalc *calc, const SystShifts &syst, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const
 
virtual Spectrum PredictComponentSyst (osc::IOscCalcStan *calc, const SystShifts &syst, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const
 

Static Public Member Functions

static std::unique_ptr< PredictionExtrapLoadFrom (TDirectory *dir, const std::string &name)
 

Protected Member Functions

template<typename T >
Spectrum _PredictComponent (osc::_IOscCalc< T > *calc, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const
 Templated helper function called by the non-templated versions. More...
 

Protected Attributes

std::unique_ptr< IExtrapfExtrap
 

Detailed Description

Take the output of an extrapolation and oscillate it as required.

Definition at line 12 of file PredictionExtrap.h.

Constructor & Destructor Documentation

ana::PredictionExtrap::PredictionExtrap ( std::unique_ptr< IExtrap > &&  extrap)

Takes ownership of extrap.

Definition at line 16 of file PredictionExtrap.cxx.

17  : fExtrap(std::move(extrap))
18  {
19  }
std::unique_ptr< IExtrap > fExtrap
ana::PredictionExtrap::PredictionExtrap ( )
delete

Referenced by LoadFrom().

Member Function Documentation

template<typename T >
Spectrum ana::PredictionExtrap::_PredictComponent ( osc::_IOscCalc< T > *  calc,
Flavors::Flavors_t  flav,
Current::Current_t  curr,
Sign::Sign_t  sign 
) const
protected

Templated helper function called by the non-templated versions.

Definition at line 42 of file PredictionExtrap.cxx.

References ana::assert(), ana::Spectrum::Clear(), fExtrap, ana::Flavors::kAll, ana::Sign::kAntiNu, ana::Current::kCC, ana::Current::kNC, ana::Sign::kNu, ana::Flavors::kNuEToNuE, ana::Flavors::kNuEToNuMu, ana::Flavors::kNuEToNuTau, ana::Flavors::kNuMuToNuE, ana::Flavors::kNuMuToNuMu, ana::Flavors::kNuMuToNuTau, and runNovaSAM::ret.

Referenced by GetExtrap(), and PredictComponent().

46  {
47  Spectrum ret = fExtrap->NCTotalComponent(); // Get binning
48  ret.Clear();
49 
50  if(curr & Current::kCC){
51  if(flav & Flavors::kNuEToNuE && sign & Sign::kNu) ret += fExtrap->NueSurvComponent(). Oscillated(calc, +12, +12);
52  if(flav & Flavors::kNuEToNuE && sign & Sign::kAntiNu) ret += fExtrap->AntiNueSurvComponent().Oscillated(calc, -12, -12);
53 
54  if(flav & Flavors::kNuEToNuMu && sign & Sign::kNu) ret += fExtrap->NumuAppComponent(). Oscillated(calc, +12, +14);
55  if(flav & Flavors::kNuEToNuMu && sign & Sign::kAntiNu) ret += fExtrap->AntiNumuAppComponent().Oscillated(calc, -12, -14);
56 
57  if(flav & Flavors::kNuEToNuTau && sign & Sign::kNu) ret += fExtrap->TauFromEComponent(). Oscillated(calc, +12, +16);
58  if(flav & Flavors::kNuEToNuTau && sign & Sign::kAntiNu) ret += fExtrap->AntiTauFromEComponent().Oscillated(calc, -12, -16);
59 
60  if(flav & Flavors::kNuMuToNuE && sign & Sign::kNu) ret += fExtrap->NueAppComponent(). Oscillated(calc, +14, +12);
61  if(flav & Flavors::kNuMuToNuE && sign & Sign::kAntiNu) ret += fExtrap->AntiNueAppComponent().Oscillated(calc, -14, -12);
62 
63  if(flav & Flavors::kNuMuToNuMu && sign & Sign::kNu) ret += fExtrap->NumuSurvComponent(). Oscillated(calc, +14, +14);
64  if(flav & Flavors::kNuMuToNuMu && sign & Sign::kAntiNu) ret += fExtrap->AntiNumuSurvComponent().Oscillated(calc, -14, -14);
65 
66  if(flav & Flavors::kNuMuToNuTau && sign & Sign::kNu) ret += fExtrap->TauFromMuComponent(). Oscillated(calc, +14, +16);
67  if(flav & Flavors::kNuMuToNuTau && sign & Sign::kAntiNu) ret += fExtrap->AntiTauFromMuComponent().Oscillated(calc, -14, -16);
68  }
69  if(curr & Current::kNC){
70  assert(flav == Flavors::kAll); // Don't know how to calculate anything else
71 
72  if(sign & Sign::kNu) ret += fExtrap->NCComponent();
73  if(sign & Sign::kAntiNu) ret += fExtrap->NCAntiComponent();
74  }
75 
76  return ret;
77  }
Antineutrinos-only.
Definition: IPrediction.h:50
(&#39; appearance&#39;)
Definition: IPrediction.h:18
(&#39;beam &#39;)
Definition: IPrediction.h:15
std::vector< double > Spectrum
Definition: Constants.h:743
Charged-current interactions.
Definition: IPrediction.h:39
Neutrinos-only.
Definition: IPrediction.h:49
(&#39; survival&#39;)
Definition: IPrediction.h:19
std::unique_ptr< IExtrap > fExtrap
Neutral-current interactions.
Definition: IPrediction.h:40
assert(nhit_max >=nhit_nbins)
All neutrinos, any flavor.
Definition: IPrediction.h:26
(&#39; appearance&#39;)
Definition: IPrediction.h:16
def sign(x)
Definition: canMan.py:197
OscillatableSpectrum ana::PredictionExtrap::ComponentCC ( int  from,
int  to 
) const
overridevirtual

Reimplemented from ana::IPrediction.

Definition at line 100 of file PredictionExtrap.cxx.

References ana::assert(), and fExtrap.

Referenced by ana::PredictionAddRock::ComponentCC(), and nue_decomp_scales().

101  {
102  if(from == +12 && to == +12) return fExtrap->NueSurvComponent();
103  if(from == -12 && to == -12) return fExtrap->AntiNueSurvComponent();
104 
105  if(from == +12 && to == +14) return fExtrap->NumuAppComponent();
106  if(from == -12 && to == -14) return fExtrap->AntiNumuAppComponent();
107 
108  if(from == +12 && to == +16) return fExtrap->TauFromEComponent();
109  if(from == -12 && to == -16) return fExtrap->AntiTauFromEComponent();
110 
111  if(from == +14 && to == +12) return fExtrap->NueAppComponent();
112  if(from == -14 && to == -12) return fExtrap->AntiNueAppComponent();
113 
114  if(from == +14 && to == +14) return fExtrap->NumuSurvComponent();
115  if(from == -14 && to == -14) return fExtrap->AntiNumuSurvComponent();
116 
117  if(from == +14 && to == +16) return fExtrap->TauFromMuComponent();
118  if(from == -14 && to == -16) return fExtrap->AntiTauFromMuComponent();
119 
120  assert(0 && "Not reached");
121  }
std::unique_ptr< IExtrap > fExtrap
assert(nhit_max >=nhit_nbins)
Spectrum ana::PredictionExtrap::ComponentNC ( ) const
overridevirtual

Reimplemented from ana::IPrediction.

Definition at line 129 of file PredictionExtrap.cxx.

References fExtrap.

Referenced by ana::PredictionAddRock::ComponentNC(), and nue_decomp_scales().

130  {
131  return fExtrap->NCComponent();
132  }
std::unique_ptr< IExtrap > fExtrap
Spectrum ana::PredictionExtrap::ComponentNCAnti ( ) const
overridevirtual

Reimplemented from ana::IPrediction.

Definition at line 133 of file PredictionExtrap.cxx.

References fExtrap.

Referenced by ana::PredictionAddRock::ComponentNCAnti().

134  {
135  return fExtrap->NCAntiComponent();
136  }
std::unique_ptr< IExtrap > fExtrap
Spectrum ana::PredictionExtrap::ComponentNCTotal ( ) const
overridevirtual

Reimplemented from ana::IPrediction.

Definition at line 125 of file PredictionExtrap.cxx.

References fExtrap.

Referenced by ana::PredictionAddRock::ComponentNCTotal().

126  {
127  return fExtrap->NCTotalComponent();
128  }
std::unique_ptr< IExtrap > fExtrap
const IExtrap* ana::PredictionExtrap::GetExtrap ( ) const
inline

Definition at line 43 of file PredictionExtrap.h.

References _PredictComponent(), and fExtrap.

Referenced by ana::GetDecomp(), and make_files_for_decomp_plots().

43 {return fExtrap.get();}
std::unique_ptr< IExtrap > fExtrap
std::unique_ptr< PredictionExtrap > ana::PredictionExtrap::LoadFrom ( TDirectory *  dir,
const std::string name 
)
static

Definition at line 157 of file PredictionExtrap.cxx.

References ana::assert(), dir, ana::LoadFrom< IExtrap >(), PredictionExtrap(), and runNovaSAM::ret.

Referenced by BlessedPlotsAna(), ana::ComparePredictionsPeripheralFromVector(), ana::PredictionSterile::LoadFrom(), ana::LoadMaps(), PlotNus17Prediction(), resolution2018(), and test_stanfit_statsonly().

158  {
159  dir = dir->GetDirectory(name.c_str()); // switch to subdir
160  assert(dir);
161 
162  std::unique_ptr<PredictionExtrap> ret(new PredictionExtrap(ana::LoadFrom<IExtrap>(dir, "extrap")));
163 
164  delete dir;
165 
166  return ret;
167  }
const XML_Char * name
Definition: expat.h:151
std::unique_ptr< IExtrap > LoadFrom< IExtrap >(TDirectory *dir, const std::string &label)
Definition: IExtrap.cxx:15
TDirectory * dir
Definition: macro.C:5
assert(nhit_max >=nhit_nbins)
Spectrum ana::PredictionExtrap::Predict ( osc::IOscCalc calc) const
overridevirtual
Spectrum ana::PredictionExtrap::Predict ( osc::IOscCalcStan calc) const
overridevirtual

Reimplemented from ana::IPrediction.

Definition at line 31 of file PredictionExtrap.cxx.

References ana::Flavors::kAll, ana::Current::kBoth, ana::Sign::kBoth, and PredictComponent().

32  {
33  return PredictComponent(calc,
36  Sign::kBoth);
37  }
Spectrum PredictComponent(osc::IOscCalc *calc, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const override
Interactions of both types.
Definition: IPrediction.h:42
Both neutrinos and antineutrinos.
Definition: IPrediction.h:52
All neutrinos, any flavor.
Definition: IPrediction.h:26
Spectrum ana::PredictionExtrap::PredictComponent ( osc::IOscCalc calc,
Flavors::Flavors_t  flav,
Current::Current_t  curr,
Sign::Sign_t  sign 
) const
overridevirtual

Implements ana::IPrediction.

Reimplemented in ana::PredictionSterile.

Definition at line 81 of file PredictionExtrap.cxx.

References _PredictComponent().

Referenced by BackPredict(), CompareMCCompPrediction(), CVNCuts(), GetExtrap(), getTimePeakPlots(), MakePeriCutPlot(), MCCompPredictionTable(), MichelDecompTest(), nue_pid_effs(), nue_pid_effs_miniprod(), nue_pid_effs_paper_numu_neweff(), PeripheralCuts(), Predict(), ana::PredictionSterile::PredictComponent(), ana::PredictionAddRock::RockComponent(), and test_saloaders().

85  {
86  return _PredictComponent(calc, flav, curr, sign);
87  }
Spectrum _PredictComponent(osc::_IOscCalc< T > *calc, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const
Templated helper function called by the non-templated versions.
def sign(x)
Definition: canMan.py:197
Spectrum ana::PredictionExtrap::PredictComponent ( osc::IOscCalcStan calc,
Flavors::Flavors_t  flav,
Current::Current_t  curr,
Sign::Sign_t  sign 
) const
overridevirtual

Reimplemented from ana::IPrediction.

Definition at line 91 of file PredictionExtrap.cxx.

References _PredictComponent().

95  {
96  return _PredictComponent(calc, flav, curr, sign);
97  }
Spectrum _PredictComponent(osc::_IOscCalc< T > *calc, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const
Templated helper function called by the non-templated versions.
def sign(x)
Definition: canMan.py:197
Spectrum ana::IPrediction::PredictComponentSyst ( osc::IOscCalc calc,
const SystShifts syst,
Flavors::Flavors_t  flav,
Current::Current_t  curr,
Sign::Sign_t  sign 
) const
virtualinherited

Reimplemented in ana::PredictionInterp, ana::PredictionCombinePeriods, and ana::PredictionAddRock.

Definition at line 79 of file IPrediction.cxx.

References ana::assert(), ana::SystShifts::IsNominal(), and ana::IPrediction::PredictComponent().

Referenced by ana::PredictionAddRock::_PredictComponentSyst(), ana::CovMxManager::AddSystematic(), ana::GetBFSystBands(), ana::GetSystBands(), PlotSysts(), ana::PredictionCombinePeriods::PredictComponentSyst(), systematics_extrap_comp_from_pred_interp(), systematics_summary_from_pred_interp(), and systematics_table_from_pred_interp().

84  {
85  assert(syst.IsNominal() && "This Prediction doesn't support PredictSyst(). Did you just mean Predict()?");
86 
87  // Default implementation: no treatment of systematics
88  return PredictComponent(calc, flav, curr, sign);
89  }
virtual Spectrum PredictComponent(osc::IOscCalc *calc, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const =0
assert(nhit_max >=nhit_nbins)
def sign(x)
Definition: canMan.py:197
Spectrum ana::IPrediction::PredictComponentSyst ( osc::IOscCalcStan calc,
const SystShifts syst,
Flavors::Flavors_t  flav,
Current::Current_t  curr,
Sign::Sign_t  sign 
) const
virtualinherited

Reimplemented in ana::PredictionInterp, and ana::PredictionAddRock.

Definition at line 93 of file IPrediction.cxx.

References ana::assert(), ana::SystShifts::IsNominal(), and ana::IPrediction::PredictComponent().

98  {
99  assert(syst.IsNominal() && "This Prediction doesn't support PredictSyst(). Did you just mean Predict()?");
100 
101  // Default implementation: no treatment of systematics
102  return PredictComponent(calc, flav, curr, sign);
103  }
virtual Spectrum PredictComponent(osc::IOscCalc *calc, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const =0
assert(nhit_max >=nhit_nbins)
def sign(x)
Definition: canMan.py:197
Spectrum ana::IPrediction::PredictSyst ( osc::IOscCalc calc,
const SystShifts syst 
) const
virtualinherited
Spectrum ana::IPrediction::PredictSyst ( osc::IOscCalcStan calc,
const SystShifts syst 
) const
virtualinherited

Reimplemented in ana::PredictionInterp, and ana::PredictionAddRock.

Definition at line 59 of file IPrediction.cxx.

References ana::assert(), ana::SystShifts::IsNominal(), and ana::IPrediction::Predict().

61  {
62  assert(syst.IsNominal() && "This Prediction doesn't support PredictSyst(). Did you just mean Predict()?");
63 
64  // Default implementation: no treatment of systematics
65  return Predict(calc);
66  }
virtual Spectrum Predict(osc::IOscCalc *calc) const =0
assert(nhit_max >=nhit_nbins)
Spectrum ana::IPrediction::PredictUnoscillated ( ) const
virtualinherited

Reimplemented in ana::PredictionSterile.

Definition at line 33 of file IPrediction.cxx.

References noosc, and ana::IPrediction::Predict().

Referenced by cc(), demo5(), demo::DrawUpDownRatioCanvas(), efficiency(), efficiencySA(), template_basic(), and test_ana().

34  {
35  // Default implementation
37  return Predict(&noosc);
38  }
Pass neutrinos through unchanged.
Definition: IOscCalc.h:45
virtual Spectrum Predict(osc::IOscCalc *calc) const =0
osc::NoOscillations noosc
Definition: NueSystFuncs.h:44
void ana::PredictionExtrap::SaveTo ( TDirectory *  dir,
const std::string name 
) const
overridevirtual

Reimplemented from ana::IPrediction.

Reimplemented in ana::PredictionNoExtrap, and ana::PredictionSterile.

Definition at line 139 of file PredictionExtrap.cxx.

References dir, fExtrap, and tmp.

Referenced by make_nue_filesyst_pred(), make_nueFDprediction_kinematics(), make_nueFDprediction_kinematics_FHC(), make_nueFDprediction_kinematics_FHC_REW(), make_nueFDprediction_kinematics_REW(), make_nueFDprediction_kinematics_RHC(), make_nueFDprediction_kinematics_RHC_REW(), modularextrap_demo_numu(), and ana::PredictionSterile::SaveTo().

140  {
141  TDirectory* tmp = gDirectory;
142 
143  dir = dir->mkdir(name.c_str()); // switch to subdir
144  dir->cd();
145 
146  TObjString("PredictionExtrap").Write("type");
147 
148  fExtrap->SaveTo(dir, "extrap");
149 
150  dir->Write();
151  delete dir;
152 
153  tmp->cd();
154  }
const XML_Char * name
Definition: expat.h:151
Float_t tmp
Definition: plot.C:36
std::unique_ptr< IExtrap > fExtrap
TDirectory * dir
Definition: macro.C:5

Member Data Documentation

std::unique_ptr<IExtrap> ana::PredictionExtrap::fExtrap
protected

The documentation for this class was generated from the following files: