31 const std::vector<const ISyst*>&
systs,
37 const std::vector<Spectrum>& upShifts,
38 const std::vector<Spectrum>& downShifts,
98 const double pot_p1p2e3b =
108 TFile* rootF =
new TFile(
"Ana01_FDDataMCSystBandLoad.root",
"RECREATE");
110 TDirectory*
tmp = gDirectory;
111 TDirectory* saveDir = gDirectory;
114 saveDir = rootF->mkdir(
"sCosmic");
116 saveDir = rootF->mkdir(
"sCosOOT");
118 saveDir = rootF->mkdir(
"sData");
120 saveDir = rootF->mkdir(
"pred123b");
122 saveDir = rootF->mkdir(
"pred3c3d");
124 saveDir = rootF->mkdir(
"pred");
125 pred.SaveTo(saveDir);
Near Detector underground.
void split(double tt, double *fr)
Implements systematic errors by interpolation between shifted templates.
Far Detector at Ash River.
Cuts and Vars for the 2020 FD DiF Study.
void PlotSysts(IPrediction *pred, const std::vector< const ISyst * > &systs, osc::IOscCalc *calc, TDirectory *out, FILE *text, strings strs, Spectrum *sData)
const double kSecondAnaPeriod2POT
Collection of SpectrumLoaders for many configurations.
General interface to oscillation calculators.
const double kSecondAnaEpoch3dPOT
std::vector< double > Spectrum
const double kSecondAnaEpoch3bPOT
Adapt the PMNS_Sterile calculator to standard interface.
const std::vector< std::string > fFDMC_non
void SetSpillCut(const SpillCut &cut)
std::pair< Spectrum *, CheatDecomp * > make_pair(SpectrumLoaderBase &loader_data, SpectrumLoaderBase &loader_mc, HistAxis *axis, Cut *cut, const SystShifts &shift, const Var &wei)
const double kSecondAnaPeriod1POT
Generates extrapolated NC predictions using ProportionalDecomp.
void FDDataMCSystBandLoad()
Encapsulate code to systematically shift a caf::SRProxy.
Representation of a spectrum in any variable, with associated POT.
void Go()
Call Go() on all the loaders.
const Cut kInTimingSideband([](const caf::SRProxy *sr){if(sr->spill.run > util::kLastBadTimingRun) return(kInTimingSideband_before(sr)|| kInTimingSideband_after(sr));else return(kInTimingSideband_before(sr)|| kInTimingSideband_afterA(sr)|| kInTimingSideband_afterB(sr));}, [](const caf::SRSpillProxy *spill){if(spill->run > util::kLastBadTimingRun) return(kInTimingSideband_before.Livetime(spill)+ kInTimingSideband_after.Livetime(spill));else return(kInTimingSideband_before.Livetime(spill)+ kInTimingSideband_afterA.Livetime(spill)+ kInTimingSideband_afterB.Livetime(spill));}, [](const caf::SRSpillProxy *spill){return 0;})
const std::string fnamenear_concat
void SetSpillCut(const SpillCut &cut)
virtual void SaveTo(TDirectory *dir, const std::string &name) const override
osc::OscCalcSterile * DefaultSterileCalc(int nflavors)
Create a sterile calculator with default assumptions for all parameters.
std::vector< const ISyst * > getAllNusSysts()
Get a vector of all the nus group systs.
const std::string fnameneardata_concat
const std::vector< std::string > fFDMC_swp
const std::string fFDMC_non_3c
virtual void Go() override
Load all the registered spectra.
void SaveTo(TDirectory *dir, const std::string &name) const
const HistAxis kNCAxis("Calorimetric Energy (GeV)", kNCDisappearanceEnergyBinning, kCaloE)
Axes used in Ana01 analysis by nus group.
const SystShifts kNoShift
void SetLoaderFiles(const std::vector< std::string > &files, caf::Det_t det, DataMC datamc, DataSource src=kBeam, SwappingConfig swap=kNonSwap)
Configure loader via explicit file list.
const std::string fFDMC_tau_3c
const HistAxis kNCBinsNumuCCAxis("Reconstructed Neutrino Energy (GeV)", kNCDisappearanceEnergyBinning, kCCE)
Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.
const std::vector< std::string > fFDMC_tau
const std::string fFDMC_swp_3c
const Cut kInBeamSpill([](const caf::SRProxy *sr){if(sr->spill.run > util::kLastBadTimingRun) return kInBeamSpill_main(sr);else return kInBeamSpill_main(sr)||kInBeamSpill_shifted(sr);}, [](const caf::SRSpillProxy *spill){if(spill->run > util::kLastBadTimingRun) return kInBeamSpill_main.Livetime(spill);else return kInBeamSpill_main.Livetime(spill)+kInBeamSpill_shifted.Livetime(spill);}, [](const caf::SRSpillProxy *spill) -> double{return spill->spillpot;})
Does the event fall inside the window we call the beam spill?
const double kSecondAnaEpoch3cPOT
Standard interface to all prediction techniques.
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
Sum MC predictions from different periods scaled according to data POT targets.
void SetLoaderPath(const std::string &path, caf::Det_t det, DataMC datamc, DataSource src=kBeam, SwappingConfig swap=kNonSwap)
Configure loader via wildcard path.
TH1 * GetHist(strings strs, int sigma)
A helper structure to contain a group of string for plotting.
const std::vector< std::string > fnamefardata_unblind(MakeUnblindList())