23 std::string fnear =
"defname: prod_decaf_S16-04-08_nd_genie_nonswap_genierw_fhc_nova_v08_full_nus_or_numu_contain_v1 with stride 5";
24 std::string ffar =
"defname: prod_decaf_S16-04-08_fd_genie_nonswap_fhc_nova_v08_full_nus_contain_v1 with stride 5";
25 std::string fswap =
"defname: prod_decaf_S16-04-08_fd_genie_fluxswap_fhc_nova_v08_full_nus_contain_v1 with stride 5";
26 std::string ftau =
"defname: prod_decaf_S16-04-08_fd_genie_tau_fhc_nova_v08_full_nus_contain_v1 with stride 5";
40 std::map<std::string, std::string> shiftlabels;
41 shiftlabels[
"Set1"] =
"Set 1";
42 shiftlabels[
"Set2"] =
"Set 2";
43 shiftlabels[
"Set3"] =
"Set 3";
44 shiftlabels[
"Set4"] =
"Set 4";
49 if(sr->
hdr.
ismc ==
false) { return true; }
51 if((evtno % 5) == 0) { return true; }
57 if(sr->
hdr.
ismc ==
false) { return true; }
59 if((evtno % 5) == 1) { return true; }
65 if(sr->
hdr.
ismc ==
false) { return true; }
67 if((evtno % 5) == 2) { return true; }
73 if(sr->
hdr.
ismc ==
false) { return true; }
75 if((evtno % 5) == 3) { return true; }
81 if(sr->
hdr.
ismc ==
false) { return true; }
83 if((evtno % 5) == 4) { return true; }
88 std::map<std::string, Cut*> systematics;
89 systematics[
"Set1"] =
new Cut(kMod1);
90 systematics[
"Set2"] =
new Cut(kMod2);
91 systematics[
"Set3"] =
new Cut(kMod3);
92 systematics[
"Set4"] =
new Cut(kMod4);
96 std::string labelRecoE =
"Calorimetric Energy (GeV)";
97 std::map<std::string, std::pair<HistAxis*, std::pair<Cut*, Cut*> > > cut_samples;
99 cut_samples[
"Ana01"] = std::pair<HistAxis*, std::pair<Cut*, Cut*> >(
107 std::map<std::string, IDecomp*> decomps_nominal;
108 std::map<std::string, std::map<std::string, std::map<int, IDecomp*> > > decomps_shifted;
109 std::map<std::string, PredictionNoExtrap*> predsNE_nominal;
110 std::map<std::string, std::map<std::string, std::map<int, PredictionNoExtrap*> > > predsNE_shifted;
111 std::map<std::string, PredictionSterile*> predsSt_nominal;
112 std::map<std::string, std::map<std::string, std::map<int, PredictionSterile*> > > predsSt_shifted;
119 for(
const auto& sample : cut_samples) {
124 *sample.second.first, *sample.second.second.first && kMod0,
129 *sample.second.first, *sample.second.second.second && kMod0,
135 *sample.second.first, *sample.second.second.first && kMod0,
144 loaders, *decompnc_n, *decompnumu_n,
146 *sample.second.second.second && kMod0,
147 *sample.second.second.first && kMod0,
155 for(
const auto& systlabel : systematics) {
163 *sample.second.first, *sample.second.second.first && *systlabel.second,
168 *sample.second.first, *sample.second.second.second && *systlabel.second,
174 *sample.second.first, *sample.second.second.first && *systlabel.second,
183 loaders, *decompnc_s, *decompnumu_s,
185 *sample.second.second.second && *systlabel.second,
186 *sample.second.second.first && *systlabel.second,
201 std::string fullLocation = folder + filenm +
".root";
202 TFile* rootF =
new TFile(fullLocation.c_str(),
"RECREATE");
205 decomps_nominal, decomps_shifted,
206 predsNE_nominal, predsNE_shifted,
207 predsSt_nominal, predsSt_shifted
Near Detector underground.
void SaveMaps(TDirectory *dir, TString prefix, std::vector< const IFitVar * > profvars, std::vector< TString > profnames, std::map< const IFitVar *, TGraph * > &profMap, std::vector< const ISyst * > systs, std::map< const ISyst *, TGraph * > &systMap)
_HistAxis< Var > HistAxis
Far Detector at Ash River.
const std::string fnametau_concat
caf::Proxy< caf::SRHeader > hdr
Proxy for caf::StandardRecord.
Collection of SpectrumLoaders for many configurations.
void Go()
Call Go() on all the loaders.
const SpillCut kOnly14DB([](const caf::SRSpillProxy *spill){if(spill->det!=caf::kFARDET) return true;std::bitset< 14 > binary(spill->dibmask);for(int i=0;i< 14;++i){if(!binary[i]) return false;}return true;})
const std::string fnamenear_concat
void SetSpillCut(const SpillCut &cut)
const std::string fnameneardata_concat
const Var kCaloE
Summed calorimetric energy of all hits in slice, uncorrected.
const SystShifts kNoShift
const HistAxis kNCBinsNumuCCAxis("Reconstructed Neutrino Energy (GeV)", kNCDisappearanceEnergyBinning, kCCE)
Splits Data proportionally according to MC.
A prediction object compatible with sterile oscillations.
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
const std::string fnameswap_concat
const std::string fnamefar_concat
void SetLoaderPath(const std::string &path, caf::Det_t det, DataMC datamc, DataSource src=kBeam, SwappingConfig swap=kNonSwap)
Configure loader via wildcard path.
const Binning kNCDisappearanceEnergyBinning
Energy binnings used in Ana01 for nus extrapolation.