30 std::vector <const ISyst*>
ret;
31 std::vector<const ISyst*>
tmp;
33 if (option.Contains(
"RelativeCalib") || option.Contains(
"All"))
35 if (option.Contains(
"Calibration") || option.Contains(
"All"))
37 if (option.Contains(
"CalibShape") || option.Contains(
"All"))
39 if (option.Contains(
"LightLevel") || option.Contains(
"All"))
41 if (option.Contains(
"Cherenkov") || option.Contains(
"All"))
44 if(option.Contains(
"BeamTransport"))
47 std::cerr <<
"'FluxSyst' includes both 'BeamTransport' and 'PPFXSyst'" 51 if(option.Contains(
"BeamAllTransport"))
54 std::cerr <<
"'FluxSyst' includes both 'BeamTransport' and 'PPFXSyst'" 58 if(option.Contains(
"PPFXSyst"))
61 std::cerr <<
"'FluxSyst' includes both 'BeamTransport' and 'PPFXSyst'" 66 if(option.Contains(
"FluxSyst") || option.Contains(
"All"))
72 for (
int i = 0;
i < 8;
i++)
75 if(option.Contains(
"GENIEPCASyst") || option.Contains(
"All"))
81 for (
int i = 0;
i < 5;
i++)
84 if(option.Contains(
"XSecSyst") || option.Contains(
"All"))
95 if (option.Contains(
"RPAFix")){
103 int minsyst=0, maxsyst=geniesysts.size();
104 if(option.Contains(
"XSecSyst_Frac"))
110 if(option.Contains(
"XSecSyst_RPATest"))
114 if(option.Contains(
"XSecSyst_COH"))
118 std::cout <<
"\n\nOnly looking at COHCC and COHNC (which replaced MaCOHpi and R0COHpi): " <<
std::endl;
120 if(option.Contains(
"XSecSyst_1of6")){ minsyst= 0; maxsyst=14;}
121 if(option.Contains(
"XSecSyst_2of6")){ minsyst=14; maxsyst=28;}
122 if(option.Contains(
"XSecSyst_3of6")){ minsyst=28; maxsyst=42;}
123 if(option.Contains(
"XSecSyst_4of6")){ minsyst=42; maxsyst=56;}
124 if(option.Contains(
"XSecSyst_5of6")){ minsyst=56; maxsyst=70;}
125 if(option.Contains(
"XSecSyst_6of6")){ minsyst=70; maxsyst=87;}
126 if(option.Contains(
"All")){ minsyst=0; maxsyst=87;}
128 std::cout << minsyst <<
" -- " << maxsyst <<
"\n\n";
130 for(
int i = minsyst;
i < maxsyst; ++
i)
132 if (
i >= (
int)geniesysts.size())
break;
133 ret.push_back(geniesysts[
i]);
136 if (option.Contains(
"MuEnergySyst") || (option.Contains(
"All")))
140 if(option.Contains(
"numu", TString::kIgnoreCase))
152 if(option.Contains(
"NeutronSyst")||(option.Contains(
"All")))
158 if(option.Contains (
"NueExtrapSyst") ||
159 (option.Contains(
"All") && option.Contains(
"nue")))
166 ret.push_back(
entry);
168 if (option.Contains(
"SummedSmall"))
171 ret.push_back(small);
173 if (option.Contains(
"NuMuSmall"))
176 ret.push_back(small);
179 if (option.Contains(
"AcceptanceSyst")|| (option.Contains(
"All") && option.Contains(
"nue")))
188 ret.push_back(
entry);
192 if (option.Contains(
"MichelTaggingSyst")|| (option.Contains(
"All") && option.Contains(
"nue")))
198 if(option.Contains(
"WrongSignScale"))
205 if(option.Contains(
"WrongSignEnergyBin"))
217 std::vector <ShiDef>
ret;
218 TString topstr, lowstr;
221 if (option.Contains(
"All") || option.Contains(
"Nominal"))
223 topstr =
"Nominal"; lowstr=
"noShift";
224 ret.push_back({topstr, lowstr,
kNoShift});
226 if(option.Contains(
"FluxSyst") ||
227 option.Contains(
"GENIEPCASyst") ||
228 option.Contains(
"XSecSyst") ||
229 option.Contains(
"MuEnergySyst") ||
230 option.Contains(
"NueExtrapSyst") ||
231 option.Contains(
"AllSmall") ||
232 option.Contains(
"NuMuSmall") ||
233 option.Contains(
"AcceptanceSyst") ||
234 option.Contains(
"NeutronSyst") ||
235 option.Contains(
"MichelTaggingSyst") ||
236 option.Contains(
"WrongSignScale") ||
237 option.Contains(
"WrongSignEnergyBin") ||
238 option.Contains(
"All"))
242 for (
auto syst:
systs){
243 for (
auto sigma:{+2,+1,-1,-2})
245 TString sig_str = (
sigma>0?
"plus":
"minus");
249 std::cout << (TString)
"Added " + syst->ShortName() +
"_" + sig_str
257 if (option.Contains(
"CalibrationUp") || option.Contains(
"All"))
259 topstr =
"Calibration"; lowstr =
"plusOne";
260 ret.push_back({topstr, lowstr,
kNoShift});
262 if(option.Contains(
"CalibrationDown") || option.Contains(
"All"))
264 topstr =
"Calibration"; lowstr =
"minusOne";
265 ret.push_back({topstr, lowstr,
kNoShift});
267 if(option.Contains(
"RelativeCalibUp") || option.Contains(
"All"))
269 topstr =
"RelativeCalib"; lowstr =
"plusTwo";
270 ret.push_back({topstr, lowstr,
kNoShift});
272 if(option.Contains(
"RelativeCalibDown") || option.Contains(
"All"))
274 topstr =
"RelativeCalib"; lowstr =
"minusTwo";
275 ret.push_back({topstr, lowstr,
kNoShift});
277 if(option.Contains(
"CalibShape") || option.Contains(
"All"))
279 topstr =
"CalibShape"; lowstr =
"plusOne";
280 ret.push_back({topstr, lowstr,
kNoShift});
282 if(option.Contains(
"Cherenkov") || option.Contains(
"All"))
284 topstr =
"Cherenkov"; lowstr =
"plusOne";
285 ret.push_back({topstr, lowstr,
kNoShift});
287 if(option.Contains(
"LightLevelUp") || option.Contains(
"All"))
289 topstr =
"Lightlevel"; lowstr =
"plusOne";
290 ret.push_back({topstr, lowstr,
kNoShift});
292 if(option.Contains(
"LightLevelDown") || option.Contains(
"All"))
294 topstr =
"Lightlevel"; lowstr =
"minusOne";
295 ret.push_back({topstr, lowstr,
kNoShift});
297 if(option.Contains(
"LightLevelNom") || option.Contains(
"All"))
299 topstr =
"Lightlevel"; lowstr =
"noShift";
300 ret.push_back({topstr, lowstr,
kNoShift});
302 if(option.Contains(
"CalibrationUp_2sigmaNoTau") ||
303 option.Contains(
"All"))
305 topstr =
"Calibration"; lowstr =
"plusTwo";
306 ret.push_back({topstr, lowstr,
kNoShift});
308 if(option.Contains(
"CalibrationDown_2sigmaNoTau") ||
309 option.Contains(
"All"))
311 topstr =
"Calibration"; lowstr =
"minusTwo";
312 ret.push_back({topstr, lowstr,
kNoShift});
319 std::vector <SNameDef>
names;
321 if (option.Contains(
"All"))
323 names.push_back({
"SumSmallXSecJoint2018",
324 {
"plusOne",
"minusOne",
"plusTwo",
"minusTwo"}});
325 names.push_back({
"extrap_signalkin",
326 {
"plusOne",
"minusOne",
"plusTwo",
"minusTwo"}});
327 names.push_back({
"extrap_bkg",
328 {
"plusOne",
"minusOne",
"plusTwo",
"minusTwo"}});
330 if((option ==
"Calibration") || option.Contains(
"All"))
331 names.push_back({
"Calibration", {
"plusOne",
"minusOne"}});
332 if((option ==
"RelativeCalib") || option.Contains(
"All"))
333 names.push_back({
"RelativeCalib",{
"plusTwo",
"minusTwo"}});
334 if((option ==
"CalibShape") || option.Contains(
"All"))
335 names.push_back({
"CalibShape", {
"plusOne"}});
336 if((option ==
"Cherenkov") || option.Contains(
"All"))
337 names.push_back({
"Cherenkov", {
"plusOne"}});
338 if((option ==
"Lightlevel") || option.Contains(
"All"))
339 names.push_back({
"Lightlevel", {
"plusOne",
"minusOne"}});
341 if(option.Contains(
"All") && option.Contains(
"Reduced") )
343 std::vector <const ISyst*>
systs;
344 if(!option.Contains(
"Super") )
358 for (
int i =0;
i<5;
i++)
364 if(option.Contains(
"Nue") )
369 if(option.Contains(
"Numu") )
380 for (
auto const & syst:systs)
382 {syst->ShortName(), {
"plusOne",
"minusOne",
"plusTwo",
"minusTwo"}});
384 if (option.Contains(
"All"))
386 for(
auto c:{
"FluxSyst",
"NumuEnergySyst",
387 "NueExtrapSyst",
"AllSmall",
"XSecSyst"})
390 for (
auto const & syst:
systs)
392 {syst->ShortName(),{
"plusOne",
"minusOne",
"plusTwo",
"minusTwo"}});
398 for (
auto const & syst:
systs)
400 {syst->ShortName(), {
"plusOne",
"minusOne",
"plusTwo",
"minusTwo"}});
BeamSyst * GetPPFXPrincipals(int PCIdx)
std::vector< ShiDef > GetShifts2018(const TString option)
const WrongSignScale kWrongSignScale
const NOvARwgtSyst k2ndClassCurrs("2ndclasscurr","Second class currents", novarwgt::kSimpleSecondClassCurrentsSystKnob)
Second-class current syst. See documentation in NOvARwgt.
Cuts and Vars for the 2020 FD DiF Study.
const NueAcceptSystSignalKin2018RHC kNueAcceptSystSignalKin2018RHC
std::vector< const ISyst * > getAllXsecSysts_2018()
Get master XSec syst list for 2018 analyses.
const SummedSyst * getAna2018SummedSmallXsecSysts(const EAnaType2018 ana)
Simple record of shifts applied to systematic parameters.
const WrongSignEnergyBinRHC kWrongSignEnergyBinRHC
const NuTruthSystComponentScale kTauScaleSyst("NuTauScale","#nu_{#tau} Scale", kIsTau_NT &&!kIsNC_NT, 0.6, NuTruthSystComponentScale::kLinear)
100% uncertainty scale on taus
const NOvARwgtSyst kMAQEGenieReducedSyst2017(genie::rew::GSyst::AsString(genie::rew::EGSyst(rwgt::fReweightMaCCQE))++"_reduced", genie::rew::GSyst::AsString(genie::rew::EGSyst(rwgt::fReweightMaCCQE))++"_reduced", novarwgt::kMAQEGenieReducedSyst2017)
2017 'reduced' M_A^QE shift. See documentation in NOvARwgt.
const NeutronVisEScaleSyst2018 kNeutronVisEScalePrimariesSyst2018(false)
const DummyAnaSyst kAnaRelativeCalibSyst("RelativeCalib","RelCalib")
Encapsulate code to systematically shift a caf::SRProxy.
BeamSyst * GetFluxPrincipals2018(int PCIdx)
std::vector< const ISyst * > GetSystematics2018(const TString option)
const NOvARwgtSyst kDISvnCC1pi_2017("DISvnCC1pi_2017","DIS vnCC1pi", novarwgt::kDIS_CC_1pi_nu_n_SystKnob_2017)
const NOvARwgtSyst kRadCorrNuebar("radcorrnuebar","Radiative corrections for #bar{#nu}_{e}", novarwgt::kSimpleRadiativeCorrNuebarXsecSystKnob)
Radiative corrections syst (nuebars). See documentation in NOvARwgt.
const MuEScaleSyst2017 kMuEScaleSyst2017(0.0074, 0.0012)
const DummyAnaSyst kAnaLightlevelSyst("Lightlevel","Lightlevel")
const NOvARwgtSyst kRPACCQEEnhSyst2017("RPAShapeenh2017","RPA shape: higher-Q^{2} enhancement (2017)", novarwgt::kRPACCQEEnhSyst2017)
const DummyAnaSyst kAnaCalibrationSyst("Calibration","AbsCalib")
const DummyAnaSyst kAnaCherenkovSyst("Cherenkov","Cherenkov")
const RelMuEScaleSyst2017 kRelMuEScaleSyst2017(0.0045, 10.5)
const NueAcceptSystBkg2018RHC kNueAcceptSystBkg2018RHC
RHC.
const BeamSyst kBeamAllTransport((FindCAFAnaDir()+"/data/beam/TABeamSyst_2018Dec11.root"),"totErr","beamTransportComb","Combined Beam Transport Systematics")
All Beam Transport systematics combined in quadratures.
const NueAcceptSystSignalKin2018FHC kNueAcceptSystSignalKin2018FHC
const DirectHadEScaleSyst2017 kDirectHadEScaleSyst2017(0.05)
const NueExtrapSystSignalKin2017 kNueExtrapSystSignalKin2017
const NueAcceptSystBkg2018FHC kNueAcceptSystBkg2018FHC
FHC.
const NueExtrapSystBkg2017 kNueExtrapSystBkg2017
const WrongSignScale100 kWrongSignScale100
GeniePCASyst * GetGeniePrincipals2018Small(int PCIdx)
const SystShifts kNoShift
const DirectRelHadEScaleSyst2017 kDirectRelHadEScaleSyst2017(0.05)
std::vector< const ISyst * > getAllXsecSysts_2018_RPAFix()
const WrongSignEnergyBin kWrongSignEnergyBin
const NOvARwgtSyst kMECq0ShapeSyst2017("MECq0Shape","MEC q_{0} shape", novarwgt::kMECq0ShapeSyst2017)
const MichelTaggingSyst2018 kMichelTaggingSyst2018
const NOvARwgtSyst kRPARESSyst2017("RPAShapeRES2017","RPA shape: resonance events", novarwgt::kRPARESSyst2017)
const NOvARwgtSyst * GetGenieKnobSyst(rwgt::ReweightLabel_t knobIdx, std::string altName, std::string altLabel)
Convenience function to get a GENIE knob syst. (Allows using the GENIE knob name & description as the...
const NOvARwgtSyst kRadCorrNue("radcorrnue","Radiative corrections for #nu_{e}", novarwgt::kSimpleRadiativeCorrNueXsecSystKnob)
Radiative corrections syst (nues). See documentation in NOvARwgt.
std::vector< SNameDef > GetShiftNames2018(const TString option)
const DummyAnaSyst kAnaCalibShapeSyst("CalibShape","CalibShape")