28 const Var kSliceMeanTime =
SIMPLEVAR(hdr.subevtmeantime);
41 Spectrum spec_nus_cvn_outtime(loader, kNusAxisCVN,
45 Spectrum spec_nus_time_outtime(loader, kTimeAxis,
49 Spectrum spec_nus_slctime_outtime(loader, kSliceTimeAxis,
58 Spectrum spec_nus_cvn_intime(loader, kNusAxisCVN,
62 Spectrum spec_nus_time_intime(loader, kTimeAxis,
66 Spectrum spec_nus_slctime_intime(loader, kSliceTimeAxis,
78 std::cout<<
"Making output file, the money number is in here! \n";
80 TFile
fout(
"fout_nus_ana01_box_opening_restricted.root",
"RECREATE");
82 spec_nus_cvn_intime.
SaveTo(&fout,
"spec_nus_cvn_numi");
83 spec_nus_cvn_outtime.
SaveTo(&fout,
"spec_nus_cvn_cosmic");
85 spec_nus_time_intime.
SaveTo(&fout,
"spec_nus_time_numi");
86 spec_nus_time_outtime.
SaveTo(&fout,
"spec_nus_time_cosmic");
88 spec_nus_slctime_intime.
SaveTo(&fout,
"spec_nus_slctime_numi");
89 spec_nus_slctime_outtime.
SaveTo(&fout,
"spec_nus_slctime_cosmic");
91 spec_nus_cale_intime.
SaveTo(&fout,
"spec_nus_cale_numi");
92 spec_nus_cale_outtime.
SaveTo(&fout,
"spec_nus_cale_cosmic");
106 {
"nus_selected_numi.txt",
"nus_selected_cosmic.txt"},
114 std::vector<std::string> fname1 =
Wildcard(
115 diskdirFD +
"by_period/prod_restricteddecaf_S16-05-20_fd_numi_fhc_period1_nus_contain_v1_goodruns_prod2-snapshot/" 116 +
"prod_restricteddecaf_S16-05-20_fd_numi_fhc_period1_nus_contain_v1_goodruns_prod2-snapshot*.root" 118 std::vector<std::string> fname2 =
Wildcard(
119 diskdirFD +
"by_period/prod_restricteddecaf_S16-05-20_fd_numi_fhc_period2_nus_contain_v1_goodruns_prod2-snapshot/" 120 +
"prod_restricteddecaf_S16-05-20_fd_numi_fhc_period2_nus_contain_v1_goodruns_prod2-snapshot*.root" 122 std::vector<std::string> fname3b =
Wildcard(
123 diskdirFD +
"by_period/prod_restricteddecaf_S16-05-20_fd_numi_fhc_epoch3*_nus_contain_v1_goodruns_prod2-snapshot.root" 125 std::vector<std::string> fname3c =
Wildcard(
126 diskdirFD +
"by_period/prod_restricteddecaf_S16-05-20_fd_numi_fhc_epoch3c_nus_contain_v1_goodruns_prod2-snapshot/" 127 +
"prod_restricteddecaf_S16-05-20_fd_numi_fhc_epoch3c_nus_contain_v1_goodruns_prod2-snapshot*.root" 129 std::vector<std::string> fname3d =
Wildcard(
130 diskdirFD +
"by_period/prod_restricteddecaf_S16-05-20_fd_numi_fhc_epoch3d_nus_contain_v1_goodruns_prod2-snapshot/" 131 +
"prod_restricteddecaf_S16-05-20_fd_numi_fhc_epoch3d_nus_contain_v1_goodruns_prod2-snapshot*.root" 133 std::vector<std::string>
ret;
134 for(
const auto&
file : fname1) { ret.push_back(
file); }
135 for(
const auto&
file : fname2) { ret.push_back(
file); }
136 for(
const auto&
file : fname3b) { ret.push_back(
file); }
137 for(
const auto&
file : fname3c) { ret.push_back(
file); }
138 for(
const auto&
file : fname3d) { ret.push_back(
file); }
Cuts and Vars for the 2020 FD DiF Study.
std::vector< std::string > MakeUnblindList()
const Var kSliceTime([](const caf::SRProxy *sr){return sr->slc.meantime/1000;})
void SetSpillCut(const SpillCut &cut)
#define SIMPLEVAR(CAFNAME)
For Vars where literally all you need is a single CAF variable.
Representation of a spectrum in any variable, with associated POT.
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;})
void MakeTextListFile(const std::string &wildcard, const std::vector< Cut > &cut, const std::vector< std::string > &output, const std::vector< const Var * > &floatVars, const std::vector< const Var * > &intVars, const SpillCut *spillCut)
Make a file listing all the events passing the specified cut.
std::vector< std::string > Wildcard(const std::string &wildcardString)
Find files matching a UNIX glob, plus expand environment variables.
const Var kCaloE
Summed calorimetric energy of all hits in slice, uncorrected.
const std::string diskdirFD
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
Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.
void nus_ana01_box_opening()
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 SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
static Binning Simple(int n, double lo, double hi, const std::vector< std::string > &labels={})