6 #include "CAFAna/Core/Binning.h" 7 #include "CAFAna/Core/Cut.h" 42 const std::string fnamenear =
"defname: prod_decaf_S16-04-08_nd_genie_nonswap_genierw_fhc_nova_v08_full_nus_or_numu_contain_v1 with stride 2 with limit 10000";
43 const std::string fnamefar =
"prod_decaf_S16-04-08_fd_genie_nonswap_fhc_nova_v08_full_nus_contain_v1";
48 const std::string fnamenearcaf =
"defname: prod_caf_R16-03-03-prod2reco.a_nd_genie_nonswap_genierw_fhc_nova_v08_full_v1 with limit 10000";
54 const std::string fnamenear_concat = diskdir +
"prod_decaf_S16-04-08_nd_genie_nonswap_genierw_fhc_nova_v08_full_nus_or_numu_contain_v1/*.root";
56 const std::string fnamenear_concat_fcs = diskdir_fcs +
"prod_decaf_R16-11-12-feature_decaf_size.a_nd_genie_nonswap_genierw_fhc_nova_v08_full_v1_nue_or_numu/*.root";
60 const std::vector<std::string>
fFDMC_non = {diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_genie_nonswap_fhc_nova_v08_period1_nus_contain_v1_prod2-snapshot.root",
61 diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_genie_nonswap_fhc_nova_v08_period2_nus_contain_v1_prod2-snapshot.root",
62 diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_genie_nonswap_fhc_nova_v08_epoch3b_nus_contain_v1_prod2-snapshot.root"};
64 const std::vector<std::string>
fFDMC_swp = {diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_genie_fluxswap_fhc_nova_v08_period1_nus_contain_v1_prod2-snapshot.root",
65 diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_genie_fluxswap_fhc_nova_v08_period2_nus_contain_v1_prod2-snapshot.root",
66 diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_genie_fluxswap_fhc_nova_v08_epoch3b_nus_contain_v1_prod2-snapshot.root"};
68 const std::vector<std::string>
fFDMC_tau = {diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_genie_tau_fhc_nova_v08_period1_nus_contain_v1_prod2-snapshot.root",
69 diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_genie_tau_fhc_nova_v08_period2_nus_contain_v1_prod2-snapshot.root",
70 diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_genie_tau_fhc_nova_v08_epoch3b_nus_contain_v1_prod2-snapshot.root"};
73 const std::string fFDMC_non_3c = diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_genie_nonswap_fhc_nova_v08_epoch3c_nus_contain_v1_prod2-snapshot.root";
74 const std::string fFDMC_swp_3c = diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_genie_fluxswap_fhc_nova_v08_epoch3c_nus_contain_v1_prod2-snapshot.root";
75 const std::string fFDMC_tau_3c = diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_genie_tau_fhc_nova_v08_epoch3c_nus_contain_v1_prod2-snapshot.root";
77 const std::string fFDMC_non_fcs =
"defname: bckhouse_newcaf_overlap_prod_caf_R16-11-12-feature_caf_size.a_fd_genie_nonswap_fhc_nova_v08_period1_v1 OR defname: bckhouse_newcaf_overlap_prod_caf_R16-11-12-feature_caf_size.a_fd_genie_nonswap_fhc_nova_v08_period2_v1 OR defname: bckhouse_newcaf_overlap_prod_caf_R16-11-12-feature_caf_size.a_fd_genie_nonswap_fhc_nova_v08_epoch3b_v1";
78 const std::string fFDMC_swp_fcs =
"defname: bckhouse_newcaf_overlap_prod_caf_R16-11-12-feature_caf_size.a_fd_genie_fluxswap_fhc_nova_v08_period1_v1 OR defname: bckhouse_newcaf_overlap_prod_caf_R16-11-12-feature_caf_size.a_fd_genie_fluxswap_fhc_nova_v08_period2_v1 OR defname: bckhouse_newcaf_overlap_prod_caf_R16-11-12-feature_caf_size.a_fd_genie_fluxswap_fhc_nova_v08_epoch3b_v1";
92 std::vector<std::string> fnamecos_concat_1 =
Wildcard(
93 diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_numi_fhc_period1_nus_contain_v1_goodruns_prod2-snapshot/" 94 +
"prod_decaf_S16-05-20_fd_numi_fhc_period1_nus_contain_v1_goodruns_prod2-snapshot*.root" 96 std::vector<std::string> fnamecos_concat_2 =
Wildcard(
97 diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_numi_fhc_period2_nus_contain_v1_goodruns_prod2-snapshot/" 98 +
"prod_decaf_S16-05-20_fd_numi_fhc_period2_nus_contain_v1_goodruns_prod2-snapshot*.root" 100 std::vector<std::string> fnamecos_concat_3bc =
Wildcard(
101 diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_numi_fhc_epoch3*_nus_contain_v1_goodruns_prod2-snapshot.root" 103 std::vector<std::string> fnamecos_concat_3d =
Wildcard(
104 diskdirFD +
"by_period/prod_decaf_S16-05-20_fd_numi_fhc_epoch3d_nus_contain_v1_goodruns_prod2-snapshot/" 105 +
"prod_decaf_S16-05-20_fd_numi_fhc_epoch3d_nus_contain_v1_goodruns_prod2-snapshot*.root" 107 std::vector<std::string>
ret;
108 for(
const auto&
file : fnamecos_concat_1) { ret.push_back(
file); }
109 for(
const auto&
file : fnamecos_concat_2) { ret.push_back(
file); }
110 for(
const auto&
file : fnamecos_concat_3bc) { ret.push_back(
file); }
111 for(
const auto&
file : fnamecos_concat_3d) { ret.push_back(
file); }
128 const std::string fnamenearsmall =
"defname: prod_decaf_S16-04-08_nd_genie_nonswap_genierw_fhc_nova_v08_full_nus_or_numu_contain_v1 with stride 2 with limit 100";
129 const std::string fnamefarsmall =
"defname: prod_decaf_S16-04-08_fd_genie_nonswap_fhc_nova_v08_full_nus_contain_v1 with limit 100";
135 const std::string fnameneardatasmall =
"defname: prod_decaf_S16-04-08_nd_genie_nonswap_genierw_fhc_nova_v08_full_nus_contain_v1 with stride 2 with offset 1 with limit 100";
155 if(sr->
hdr.
ismc ==
false) { return true; }
156 if(sr->
mc.
nnu < 1) { return false; }
157 if(sr->
mc.
nu[0].vtx.X() <
NDL) {
return false; }
158 if(sr->
mc.
nu[0].vtx.X() >
NDR) {
return false; }
159 if(sr->
mc.
nu[0].vtx.Y() <
NDB) {
return false; }
160 if(sr->
mc.
nu[0].vtx.Y() >
NDT) {
return false; }
161 if(sr->
mc.
nu[0].vtx.Z() <
NDF) {
return false; }
164 if(sr->
mc.
nu[0].vtx.Z() > NDM) {
return false; }
165 if(sr->
mc.
nu[0].vtx.Z() >
NDE) {
167 if(sr->
mc.
nu[0].vtx.Y() > MCT) {
return false; }
174 #define SPECARR(label, bins, loaderbeam, loadercos, var, cut) {Spectrum(label, bins, loaderbeam, var, cut && FlavSel[0]), Spectrum(label, bins, loaderbeam, var, cut && FlavSel[1]), Spectrum(label, bins, loaderbeam, var, cut && FlavSel[2]), Spectrum(label, bins, loaderbeam, var, cut && FlavSel[3]), Spectrum(label, bins, loadercos, var, cut)} 176 #define SPECARR2D(label, loaderbeam, loadercos, binsX, varX, binsY, varY, cut) {Spectrum(label, loaderbeam, binsX, varX, binsY, varY, cut && FlavSel[0]), Spectrum(label, loaderbeam, binsX, varX, binsY, varY, cut && FlavSel[1]), Spectrum(label, loaderbeam, binsX, varX, binsY, varY, cut && FlavSel[2]), Spectrum(label, loaderbeam, binsX, varX, binsY, varY, cut && FlavSel[3]), Spectrum(label, loadercos, binsX, varX, binsY, varY, cut)}
const Cut kIsNumuCC(CCFlavSel(14, 14))
Select CC .
const Cut kNDTruthFull([](const caf::SRProxy *sr){if(sr->hdr.ismc==false){return true;}if(sr->mc.nnu< 1){return false;}if(sr->mc.nu[0].vtx.X()< NDL){return false;}if(sr->mc.nu[0].vtx.X() > NDR){return false;}if(sr->mc.nu[0].vtx.Y()< NDB){return false;}if(sr->mc.nu[0].vtx.Y() > NDT){return false;}if(sr->mc.nu[0].vtx.Z()< NDF){return false;}double NDM=1587.;if(sr->mc.nu[0].vtx.Z() > NDM){return false;}if(sr->mc.nu[0].vtx.Z() > NDE){double MCT=(2./3.)*(NDT-NDB)+NDB;if(sr->mc.nu[0].vtx.Y() > MCT){return false;}}return true;})
Represent the binning of a Spectrum's x-axis.
const std::string fnamefarcaf
Cuts and Vars for the 2020 FD DiF Study.
const std::string fnamefar
const std::string fnametau_concat
const std::string fnamecosnueveto
const std::string fnamefarsmall
const std::string fnamecossmall
caf::Proxy< caf::SRHeader > hdr
const std::string fnamecos_concat
const std::string fnamecos_fcs
Proxy for caf::StandardRecord.
const std::string fnamenear_concat_fcs
caf::Proxy< std::vector< caf::SRNeutrino > > nu
const std::string fnameneardatasmall
const Cut kIsBeamNue(CCFlavSel(12, 12))
Select CC .
const Cut kIsNumuApp(CCFlavSel(14, 12))
Select CC .
const std::vector< std::string > fFDMC_non
void CenterTitles(TH1 *histo)
caf::Proxy< short int > nnu
const Binning kAngleDegBins
const std::string fnamenear
const std::string diskdir
void Preliminary()
Put NOvA Preliminary on plots.
const Binning kExtendedEBins
const std::string fnamefardata
const std::string fnameswap
const std::string fFDMC_non_3c_fcs
const std::string fnamenear_concat
std::vector< std::string > Wildcard(const std::string &wildcardString)
Find files matching a UNIX glob, plus expand environment variables.
const std::string fFDMC_swp_3c_fcs
const std::string fnameswapcaf
const std::string fnameneardata_concat
const std::vector< std::string > fFDMC_swp
const Cut kIsNC([](const caf::SRProxy *sr){if(sr->mc.nnu==0) return false;assert(sr->mc.nnu==1);return!sr->mc.nu[0].iscc;})
Is this a Neutral Current event?
const std::string fFDMC_non_fcs
const std::string fFDMC_non_3c
const Cut kIsSig(CCFlavSel(12, 14))
Select CC .
const Binning kBooleanBins
const std::string diskdirFD
std::vector< std::string > MakeCosOutOfTimeList()
const std::string fnameneardata_concat_fcs
const std::vector< std::string > fnameblind_concat(MakeCosOutOfTimeList())
caf::Proxy< caf::SRTruthBranch > mc
const std::string fFDMC_tau_3c
const std::string fFDMC_swp_fcs
const std::string fnametau
const std::vector< std::string > fFDMC_tau
const std::string fnameswapsmall
const Binning kFinePIDBins
const std::string fFDMC_swp_3c
const std::string fnamenearsmall
const std::string diskdir_fcs
const std::string fnametausmall
Template for Cut and SpillCut.
const std::string fnametaucaf
const std::string fnameswap_concat
const std::string fnamefar_concat
static Binning Simple(int n, double lo, double hi, const std::vector< std::string > &labels={})
const Cut kNoCut
The simplest possible cut: pass everything, used as a default.
const Binning kAngleCosBins
const std::string fnamenearcaf