4 #include "CAFAna/Core/Binning.h" 8 #include "CAFAna/Cuts/QuantileCuts.h" 14 #include "CAFAna/Vars/CosmicRejBDTVars.h" 19 #include "CAFAna/Vars/NumuVars.h" 45 if (!isFHC) sFHC_RHC =
"rhc";
47 std::string OutName =
"CalcCutVals-"+sFHC_RHC+
"-"+sIdentifier+
".root";
50 std::cout <<
"\n\nLots of input parameters, so I'm going to write them out now....;" 51 <<
"\n\t isFHC " << (isFHC ==
true ?
"true --> Run in FHC " :
"false --> Run in RHC" ) <<
" ==> sFHC_RHC is " << sFHC_RHC
52 <<
"\n\t sIdentifier is " << sIdentifier
53 <<
"\n\n OutName is therefore " << OutName
73 std::string MyDataDef =
"karlwarb-prod4reco-cosmicrej-fd-cosmics-loose-"+sFHC_RHC+
"-"+sIdentifier;
78 std::string NonSwap =
"karlwarb-prod4reco-cosmicrej-fd-genie-nonswap-" +sFHC_RHC+
"-"+sIdentifier+
"_Test";
79 std::string FluxSwap =
"karlwarb-prod4reco-cosmicrej-fd-genie-fluxswap-"+sFHC_RHC+
"-"+sIdentifier+
"_Test";
80 std::string TauSwap =
"karlwarb-prod4reco-cosmicrej-fd-genie-tau-" +sFHC_RHC+
"-"+sIdentifier+
"_Test";
83 auto MontLoader =
new Loaders();
160 sData_FHC_BPF_MLP_Per1 =
new Spectrum(
"Data_FHC_BPF_MLP_Per1", RatioBins, DataLoader, kMLPCosRej_BPF_FHCPer1, DataCut );
162 sData_FHC_BPF_MLP_Per2 =
new Spectrum(
"Data_FHC_BPF_MLP_Per2", RatioBins, DataLoader, kMLPCosRej_BPF_FHCPer2, DataCut );
164 sData_FHC_BPF_MLP_High =
new Spectrum(
"Data_FHC_BPF_MLP_High", RatioBins, DataLoader, kMLPCosRej_BPF_FHCHigh, DataCut );
166 sData_RHC_BPF_MLP_High =
new Spectrum(
"Data_RHC_BPF_MLP_High", RatioBins, DataLoader, kMLPCosRej_BPF_RHCHigh, DataCut );
170 sData_FHC_Kal_MLP_Per1 =
new Spectrum(
"Data_FHC_Kal_MLP_Per1", RatioBins, DataLoader, kMLPCosRej_Kal_FHCPer1, DataCut );
172 sData_FHC_Kal_MLP_Per2 =
new Spectrum(
"Data_FHC_Kal_MLP_Per2", RatioBins, DataLoader, kMLPCosRej_Kal_FHCPer2, DataCut );
174 sData_FHC_Kal_MLP_High =
new Spectrum(
"Data_FHC_Kal_MLP_High", RatioBins, DataLoader, kMLPCosRej_Kal_FHCHigh, DataCut );
176 sData_RHC_Kal_MLP_High =
new Spectrum(
"Data_RHC_Kal_MLP_High", RatioBins, DataLoader, kMLPCosRej_Kal_RHCHigh, DataCut );
183 sMont_FHC_BPF_MLP_Per1 =
new PredictionNoExtrap( *MontLoader,
"Mont_FHC_BPF_MLP_Per1", RatioBins, kMLPCosRej_BPF_FHCPer1, MontCut,
kNoShift, kEvtWgt );
185 sMont_FHC_BPF_MLP_Per2 =
new PredictionNoExtrap( *MontLoader,
"Mont_FHC_BPF_MLP_Per2", RatioBins, kMLPCosRej_BPF_FHCPer2, MontCut,
kNoShift, kEvtWgt );
187 sMont_FHC_BPF_MLP_High =
new PredictionNoExtrap( *MontLoader,
"Mont_FHC_BPF_MLP_High", RatioBins, kMLPCosRej_BPF_FHCHigh, MontCut,
kNoShift, kEvtWgt );
189 sMont_RHC_BPF_MLP_High =
new PredictionNoExtrap( *MontLoader,
"Mont_RHC_BPF_MLP_High", RatioBins, kMLPCosRej_BPF_RHCHigh, MontCut,
kNoShift, kEvtWgt );
193 sMont_FHC_Kal_MLP_Per1 =
new PredictionNoExtrap( *MontLoader,
"Mont_FHC_Kal_MLP_Per1", RatioBins, kMLPCosRej_Kal_FHCPer1, MontCut,
kNoShift, kEvtWgt );
195 sMont_FHC_Kal_MLP_Per2 =
new PredictionNoExtrap( *MontLoader,
"Mont_FHC_Kal_MLP_Per2", RatioBins, kMLPCosRej_Kal_FHCPer2, MontCut,
kNoShift, kEvtWgt );
197 sMont_FHC_Kal_MLP_High =
new PredictionNoExtrap( *MontLoader,
"Mont_FHC_Kal_MLP_High", RatioBins, kMLPCosRej_Kal_FHCHigh, MontCut,
kNoShift, kEvtWgt );
199 sMont_RHC_Kal_MLP_High =
new PredictionNoExtrap( *MontLoader,
"Mont_RHC_Kal_MLP_High", RatioBins, kMLPCosRej_Kal_RHCHigh, MontCut,
kNoShift, kEvtWgt );
209 TFile *
outFile =
new TFile( OutName.c_str(),
"RECREATE" );
216 sData_FHC_BPF_MLP_Per1 ->
SaveTo( outFile->mkdir( TString(
"Data_FHC_BPF_MLP_Per1") ) );
217 sData_FHC_BPF_BDT_Per1 ->
SaveTo( outFile->mkdir( TString(
"Data_FHC_BPF_BDT_Per1") ) );
218 sData_FHC_BPF_MLP_Per2 ->
SaveTo( outFile->mkdir( TString(
"Data_FHC_BPF_MLP_Per2") ) );
219 sData_FHC_BPF_BDT_Per2 ->
SaveTo( outFile->mkdir( TString(
"Data_FHC_BPF_BDT_Per2") ) );
220 sData_FHC_BPF_MLP_High ->
SaveTo( outFile->mkdir( TString(
"Data_FHC_BPF_MLP_High") ) );
221 sData_FHC_BPF_BDT_High ->
SaveTo( outFile->mkdir( TString(
"Data_FHC_BPF_BDT_High") ) );
222 sData_RHC_BPF_MLP_High ->
SaveTo( outFile->mkdir( TString(
"Data_RHC_BPF_MLP_High") ) );
223 sData_RHC_BPF_BDT_High ->
SaveTo( outFile->mkdir( TString(
"Data_RHC_BPF_BDT_High") ) );
226 sData_FHC_Kal_MLP_Per1 ->
SaveTo( outFile->mkdir( TString(
"Data_FHC_Kal_MLP_Per1") ) );
227 sData_FHC_Kal_BDT_Per1 ->
SaveTo( outFile->mkdir( TString(
"Data_FHC_Kal_BDT_Per1") ) );
228 sData_FHC_Kal_MLP_Per2 ->
SaveTo( outFile->mkdir( TString(
"Data_FHC_Kal_MLP_Per2") ) );
229 sData_FHC_Kal_BDT_Per2 ->
SaveTo( outFile->mkdir( TString(
"Data_FHC_Kal_BDT_Per2") ) );
230 sData_FHC_Kal_MLP_High ->
SaveTo( outFile->mkdir( TString(
"Data_FHC_Kal_MLP_High") ) );
231 sData_FHC_Kal_BDT_High ->
SaveTo( outFile->mkdir( TString(
"Data_FHC_Kal_BDT_High") ) );
232 sData_RHC_Kal_MLP_High ->
SaveTo( outFile->mkdir( TString(
"Data_RHC_Kal_MLP_High") ) );
233 sData_RHC_Kal_BDT_High ->
SaveTo( outFile->mkdir( TString(
"Data_RHC_Kal_BDT_High") ) );
239 sMont_FHC_BPF_MLP_Per1 ->
SaveTo( outFile->mkdir( TString(
"Mont_FHC_BPF_MLP_Per1") ) );
240 sMont_FHC_BPF_BDT_Per1 ->
SaveTo( outFile->mkdir( TString(
"Mont_FHC_BPF_BDT_Per1") ) );
241 sMont_FHC_BPF_MLP_Per2 ->
SaveTo( outFile->mkdir( TString(
"Mont_FHC_BPF_MLP_Per2") ) );
242 sMont_FHC_BPF_BDT_Per2 ->
SaveTo( outFile->mkdir( TString(
"Mont_FHC_BPF_BDT_Per2") ) );
243 sMont_FHC_BPF_MLP_High ->
SaveTo( outFile->mkdir( TString(
"Mont_FHC_BPF_MLP_High") ) );
244 sMont_FHC_BPF_BDT_High ->
SaveTo( outFile->mkdir( TString(
"Mont_FHC_BPF_BDT_High") ) );
245 sMont_RHC_BPF_MLP_High ->
SaveTo( outFile->mkdir( TString(
"Mont_RHC_BPF_MLP_High") ) );
246 sMont_RHC_BPF_BDT_High ->
SaveTo( outFile->mkdir( TString(
"Mont_RHC_BPF_BDT_High") ) );
249 sMont_FHC_Kal_MLP_Per1 ->
SaveTo( outFile->mkdir( TString(
"Mont_FHC_Kal_MLP_Per1") ) );
250 sMont_FHC_Kal_BDT_Per1 ->
SaveTo( outFile->mkdir( TString(
"Mont_FHC_Kal_BDT_Per1") ) );
251 sMont_FHC_Kal_MLP_Per2 ->
SaveTo( outFile->mkdir( TString(
"Mont_FHC_Kal_MLP_Per2") ) );
252 sMont_FHC_Kal_BDT_Per2 ->
SaveTo( outFile->mkdir( TString(
"Mont_FHC_Kal_BDT_Per2") ) );
253 sMont_FHC_Kal_MLP_High ->
SaveTo( outFile->mkdir( TString(
"Mont_FHC_Kal_MLP_High") ) );
254 sMont_FHC_Kal_BDT_High ->
SaveTo( outFile->mkdir( TString(
"Mont_FHC_Kal_BDT_High") ) );
255 sMont_RHC_Kal_MLP_High ->
SaveTo( outFile->mkdir( TString(
"Mont_RHC_Kal_MLP_High") ) );
256 sMont_RHC_Kal_BDT_High ->
SaveTo( outFile->mkdir( TString(
"Mont_RHC_Kal_BDT_High") ) );
Far Detector at Ash River.
Represent the binning of a Spectrum's x-axis.
Cuts and Vars for the 2020 FD DiF Study.
const Var kBDTCosRej_BPF_FHCHigh
void SaveTo(const osc::IOscCalc &x, TDirectory *dir, const std::string &name)
Collection of SpectrumLoaders for many configurations.
void SetSpillCut(const SpillCut &cut)
Representation of a spectrum in any variable, with associated POT.
const Var kBDTCosRej_Kal_RHCHigh
const Cut kInCosmicTimingWindow
Is the event far from the start and ends of the spill ? For FD cosmic selection.
const Var kBDTCosRej_BPF_FHCPer1
const Var kBDTCosRej_BPF_FHCPer2
const Cut kNumuContainFD2017
const Var kBDTCosRej_BPF_RHCHigh
virtual void Go() override
Load all the registered spectra.
std::vector< float > Spectrum
void CalcCutVals(bool isFHC, std::string sIdentifier)
const Var kBDTCosRej_Kal_FHCPer1
const SystShifts kNoShift
const Var kBDTCosRej_Kal_FHCHigh
Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.
const Cut kNumuPID2018([](const caf::SRProxy *sr){std::cout<< "ERROR::kNumuPID2018, cutting on both cvnProd3Train and cvn2017."<< " Neither branch exists anymore. Returning False."<< std::endl;abort();return false;})
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
const Var kBDTCosRej_Kal_FHCPer2
static Binning Simple(int n, double lo, double hi, const std::vector< std::string > &labels={})
const Var kXSecCVWgt2018RPAFix_noDIS