15 if(!fdmc_nonswap.empty())
18 if(!fdmc_fluxswap.empty())
21 if(!fdmc_tauswap.empty())
39 prefix+
"_fluxswap_"+suffix);
42 prefix+
"_fluxswap_"+suffix,
43 prefix+
"_tau_"+suffix);
55 const std::map<ECAFType, std::string> mapStringECAFType {
63 auto it = mapStringECAFType.find(type);
64 if(
it == mapStringECAFType.end()) {
79 std::cerr <<
"\nWARNING: FlatCAFs not available, using regular CAFs" 84 std::cerr <<
"\nWARNING: FlatDecafs not available, using regular decafs" 116 fluxType(flux==
kFHC?
"fhc":
"rhc")
124 const bool isRHCPeriod = (
125 (WhichNDPeriod ==
"period4") || (WhichPeriod ==
"period4") ||
126 (WhichNDPeriod ==
"epoch6a") || (WhichPeriod ==
"epoch6a") ||
127 (WhichNDPeriod ==
"epoch7a") || (WhichPeriod ==
"epoch7a"));
129 const bool isFull = ((WhichNDPeriod ==
"full") || (WhichPeriod ==
"full"));
132 if(isRHCPeriod && !isFull)
133 std::cerr <<
"\nWARNING: ND " << WhichNDPeriod <<
" and FD " 137 if(!isRHCPeriod && !isFull)
138 std::cerr <<
"\nWARNING: ND " << WhichNDPeriod <<
" and FD " 139 << WhichPeriod <<
" contains no RHC data" << std::endl <<
std::endl;
141 std::cerr <<
"\nWARNING: " << WhichPeriod
142 <<
" does not include RHC data in epoch7a" << std::endl <<
std::endl;
147 nddata =
"prod_"+
dataTier+
"_R17-09-05-prod4recopreview." + ndrel +
148 "_nd_numi_" +
fluxType +
"_" + WhichNDPeriod +
149 "_v1_addShortSimpleCVN_goodruns_" +
cafType;
152 nddata =
"prod_"+
dataTier+
"_R17-09-05-prod4recopreview." + ndrel +
153 "_nd_numi_" +
fluxType +
"_" + WhichNDPeriod +
"_" +
154 cafType +
"_v1_addShortSimpleCVN_goodruns";
157 nddata =
"prod_"+
dataTier+
"_R17-09-05-prod4recopreview." + ndrel +
158 "_nd_numi_" +
fluxType +
"_" + WhichNDPeriod +
159 "_v1_addShortSimpleCVN_goodruns";
180 if(WhichPeriod ==
"full" && WhichNDPeriod ==
"full")
182 std::cerr <<
"\nWARNING: concats are only available for 'full' dataset" 185 "prod_"+
dataTier+
"_R17-11-14-prod4reco.neutron-respin." + rel +
189 "prod_"+
dataTier+
"_R17-11-14-prod4reco.neutron-respin." + ndrel +
190 "_nd_genie_nonswap_" +
fluxType +
"_nova_v08_" + WhichNDPeriod +
198 std::cerr <<
"\nWARNING: decaf loaders not available, " 208 "prod_"+
dataTier+
"_R17-11-14-prod4reco.neutron-respin." + rel +
"_fd_genie",
209 fluxType +
"_nova_v08_" + WhichPeriod +
"_v1");
211 "prod_"+
dataTier+
"_R17-11-14-prod4reco.neutron-respin." + ndrel +
212 "_nd_genie_nonswap_" +
fluxType +
"_nova_v08_" + WhichNDPeriod +
"_v1");
229 const std::string posneg = (sign > 0) ?
"pos" :
"neg";
233 if(WhichPeriod ==
"full" && WhichNDPeriod ==
"full")
236 "prod_sumdecaf_R17-11-14-prod4reco." + rel +
"_fd_genie",
237 fluxType +
"_nova_v08_" + WhichPeriod +
"_calib-shift-fd-xyview-" +
238 posneg +
"-offset_v1_" +
cafType);
240 "prod_sumdecaf_R17-11-14-prod4reco." + ndrel +
"_nd_genie_nonswap_" +
241 fluxType +
"_nova_v08_" + WhichNDPeriod +
"_calib-shift-nd-xyview-" +
242 posneg +
"-offset_v1_" +
cafType);
248 std::cerr <<
"\nWARNING: decaf loaders not available, " 256 "prod_caf_R17-11-14-prod4reco." + rel +
"_fd_genie",
257 fluxType +
"_nova_v08_" + WhichPeriod +
"_calib-shift-fd-xyview-" +
258 posneg +
"-offset_v1");
260 "prod_caf_R17-11-14-prod4reco." + ndrel +
"_nd_genie_nonswap_" +
261 fluxType +
"_nova_v08_" + WhichNDPeriod +
"_calib-shift-nd-xyview-" +
262 posneg +
"-offset_v1");
280 if(sign == 1) updown =
"lightup-calibdown";
281 else if (sign == -1) updown =
"lightdown-calibup";
283 else if (sign == 0) updown =
"noshift";
290 std::cerr <<
"\nWARNING: concats not available for noshift sample yet " 293 if(WhichPeriod ==
"full" && WhichNDPeriod ==
"full")
296 "prod_sumdecaf_R17-11-14-prod4reco." + rel +
"_fd_genie",
297 fluxType +
"_nova_v08_" + WhichPeriod +
"_lightmodel-" +
301 "prod_sumdecaf_R17-11-14-prod4reco." + ndrel +
302 "_nd_genie_nonswap_" +
fluxType +
"_nova_v08_" + WhichNDPeriod +
303 "_lightmodel-" + updown +
"_v1_" +
cafType);
305 std::cerr <<
"\nWARNING: skipping NDMC loader for LightLevelNom" 312 std::cerr <<
"\nWARNING: decaf loaders not available, " 320 "prod_caf_R17-11-14-prod4reco." + rel +
"_fd_genie",
321 fluxType +
"_nova_v08_" + WhichPeriod +
"_lightmodel-" + updown +
325 "prod_caf_R17-11-14-prod4reco." + ndrel +
"_nd_genie_nonswap_" +
326 fluxType +
"_nova_v08_" + WhichNDPeriod +
"_lightmodel-" + updown +
329 std::cerr <<
"\nWARNING: skipping NDMC loader for LightLevelNom" 347 if(WhichPeriod ==
"full" && WhichNDPeriod ==
"full")
350 "prod_sumdecaf_R17-11-14-prod4reco." + rel +
"_fd_genie",
351 fluxType +
"_nova_v08_" + WhichPeriod +
352 "_ckv-proton-shift-down_v1_" +
cafType);
354 "prod_sumdecaf_R17-11-14-prod4reco." + ndrel +
"_nd_genie_nonswap_" +
355 fluxType +
"_nova_v08_" + WhichNDPeriod +
356 "_ckv-proton-shift-down_v1_" +
cafType);
362 std::cerr <<
"\nWARNING: decaf loaders not available, " 370 "prod_caf_R17-11-14-prod4reco." + rel +
"_fd_genie",
371 fluxType +
"_nova_v08_" + WhichPeriod +
"_ckv-proton-shift-down_v2");
373 "prod_caf_R17-11-14-prod4reco." + ndrel+
"_nd_genie_nonswap_" +
374 fluxType +
"_nova_v08_" + WhichNDPeriod +
"_ckv-proton-shift-down_v1");
390 if(WhichPeriod ==
"full" && WhichNDPeriod ==
"full")
393 "prod_sumdecaf_R17-11-14-prod4reco." + rel +
"_fd_genie",
394 fluxType +
"_nova_v08_" + WhichPeriod +
395 "_calib-shift-fd-func_v1_" +
cafType);
397 "prod_sumdecaf_R17-11-14-prod4reco." + ndrel +
"_nd_genie_nonswap_" +
398 fluxType +
"_nova_v08_" + WhichNDPeriod +
"_calib-shift-nd-func_v1_" +
405 std::cerr <<
"\nWARNING: decaf loaders not available, " 413 "prod_caf_R17-11-14-prod4reco." + rel +
"_fd_genie",
414 fluxType +
"_nova_v08_" + WhichPeriod +
"_calib-shift-fd-func_v1");
416 "prod_caf_R17-11-14-prod4reco." + ndrel +
"_nd_genie_nonswap_" +
417 fluxType +
"_nova_v08_" + WhichNDPeriod +
"_calib-shift-nd-func_v1");
Near Detector underground.
Prod4CherenkovLoaders(ECAFType type, FluxType flux, std::string WhichPeriod="full", std::string WhichNDPeriod="full")
void SetLoaderNDMCPath(const std::string &ndmc)
Far Detector at Ash River.
Cuts and Vars for the 2020 FD DiF Study.
const std::string cafType
Prod4LightLevelLoaders(ECAFType type, FluxType flux, int sign, std::string WhichPeriod="full", std::string WhichNDPeriod="full")
Prod4NomLoaders(ECAFType type, FluxType flux, std::string WhichPeriod="full", std::string WhichNDPeriod="full", EFlatness flat=kNormalCAF)
const std::string fluxType
Prod4AbsCalibLoaders(ECAFType type, FluxType flux, int sign, std::string WhichPeriod="full", std::string WhichNDPeriod="full")
const std::string ECAFTypeToString(ECAFType type)
std::string ECAFTypeFlatToTier(ECAFType type, EFlatness flat) const
assert(nhit_max >=nhit_nbins)
Provide the data loaders only, base class for other loaders.
const std::string dataTier
from "caf" to "flatsumdecaf"
Prod4CalibShapeLoaders(ECAFType type, FluxType flux, std::string WhichPeriod="full", std::string WhichNDPeriod="full")
void SetLoaderPaths(const std::string &fdmc_nonswap, const std::string &fdmc_fluxswap, const std::string &fdmc_tauswap="", const std::string &ndmc="", const std::string &nddata="")
void SetLoaderPath(const std::string &path, caf::Det_t det, DataMC datamc, DataSource src=kBeam, SwappingConfig swap=kNonSwap)
Configure loader via wildcard path.
Prod4DataLoaders(ECAFType type, FluxType flux, std::string WhichPeriod="full", std::string WhichNDPeriod="full", EFlatness flat=kNormalCAF)
void SetLoaderFDMCPaths(const std::string &prefix, const std::string &suffix, const bool noTau=false)