7 #include "CAFAna/Core/Var.h" 26 std::string polarity =
"fhc";
if (!isFHC ) polarity =
"rhc" ;
30 std::cout <<
"\n================================= \n" 31 <<
"\n\t isFHC --> " << isFHC <<
" --> " << polarity
32 <<
"\n\t isData --> " << isData <<
" --> " << data
33 <<
"\n\t Period --> " <<
period 34 <<
"\n\t Far detector isFD --> " << detector
35 <<
"\n================================= \n" 39 std::vector<std::pair<Cut, std::string> > MyCuts =
BasicPIDPlots_Cuts( isFHC,
false, isData );
40 const size_t NCuts = MyCuts.size();
47 std::string MyDef =
"prod_caf_R19-11-18-prod5reco.d_nd_numi_"+polarity+
"_full_v1";
48 if (!isData) MyDef =
"prod_caf_R19-11-18-prod5reco.d_nd_genie_N1810j0211a_nonswap_"+polarity+
"_nova_v08_full_v1";
64 Cut kThisCut = MyCuts[
cc].first;
81 std::string OutName =
"BasicPIDPlots_2020_"+detector+
"_"+data+
"_"+polarity+
"_"+
period+
".root";
82 TFile *
OutFile = TFile::Open(OutName.c_str(),
"RECREATE");
86 sNuRecoE [
cc] ->
SaveTo( OutFile, TString(
"RecoNuE" )+TString(ThisCutNa) ) ;
87 sReMIdScore [
cc] ->
SaveTo( OutFile, TString(
"ReMIdScore" )+TString(ThisCutNa) ) ;
88 sProngScoremuon[
cc] ->
SaveTo( OutFile, TString(
"ProngCVNMuonScore" )+TString(ThisCutNa) ) ;
89 sOldPreselmuon [
cc] ->
SaveTo( OutFile, TString(
"OldPreselMuonScore")+TString(ThisCutNa) ) ;
90 sOldPreselcosm [
cc] ->
SaveTo( OutFile, TString(
"OldPreselCosmScore")+TString(ThisCutNa) ) ;
91 sLoosePTPmuon [
cc] ->
SaveTo( OutFile, TString(
"LoosePtpMuonScore" )+TString(ThisCutNa) ) ;
92 sLoosePTPcosm [
cc] ->
SaveTo( OutFile, TString(
"LoosePtpCosmScore" )+TString(ThisCutNa) ) ;
94 sCosRejScoreP4[
cc]->
SaveTo( OutFile, TString(
"Prod4CosRejScore" )+TString(ThisCutNa) ) ;
95 sCosRejScoreP5[
cc]->
SaveTo( OutFile, TString(
"Prod5CosRejScore" )+TString(ThisCutNa) ) ;
Cuts and Vars for the 2020 FD DiF Study.
void SaveTo(const osc::IOscCalc &x, TDirectory *dir, const std::string &name)
const Binning kRemidBinning
Binning for plotting remid attractively.
std::vector< std::pair< Cut, std::string > > BasicPIDPlots_Cuts(bool isFHC, bool isFD, bool isData)
void SetSpillCut(const SpillCut &cut)
Representation of a spectrum in any variable, with associated POT.
const XML_Char const XML_Char * data
void NuMu2020_BasicPIDPlots_ND(bool isFHC, bool isData, std::string period="full")
const Var kNumuContPID2019
virtual void Go() override
Load all the registered spectra.
std::vector< float > Spectrum
const Var kCVNcos_looseptp
const SystShifts kNoShift
const Var kCVNm_oldpresel
Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.
const Var kCVNcos_oldpresel
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
const Var kCVNBestMuonScore([](const caf::SRProxy *sr){float muonScore=-5.0;if(kCVNMuonIdx(sr)< 0.0) return muonScore;if(!sr->vtx.elastic.IsValid) return muonScore;muonScore=sr->vtx.elastic.fuzzyk.png[(unsigned int) kCVNMuonIdx(sr)].cvnpart.muonid;if(sr->vtx.elastic.fuzzyk.png[(unsigned int) kCVNMuonIdx(sr)].len > 500.0) muonScore=1.0;return muonScore;})
: Muon score for best muon prong by CVN score & length
const Var kUnweighted
The simplest possible Var, always 1. Used as a default weight.