37 bool mccomponly =
false,
bool overlay =
false);
54 gPad->Print((TString)
"plot_nue_fd_"+
decomp+
"_rock_spectrum.pdf");
60 auto pred_file =
new TFile(
"/nova/ana/nu_e_ana/Ana2017/Predictions/provisional/pred_nue_reduced_v4.root",
"read");
61 auto xp_dir = pred_file->GetDirectory((TString)
"pred_" +
"xp_combo" +
63 auto xp_dir2 = pred_file->GetDirectory((TString)
"pred_" +
"xp_prop" +
65 TString deco_dir =
"extrap/EEextrap/Decomp";
71 gPad->Print(
"plot_nue_nd_nominal_mconly.pdf");
74 gPad->Print(
"plot_nue_nd_nominal_combo_vs_mc.pdf");
77 gPad->Print(
"plot_nue_nd_nominal_prop_vs_mc.pdf");
89 assert(mcnom.size()==labels.size());
92 int Nbins = mcnom[0]->GetNbinsX();
93 int binNbins = Nbins / N;
94 for(TString
b:{
"Bin1",
"Bin2",
"Bin3",
"Bin4",
"AllBins"}){
98 for(
int i = 0;
i < (
int) mcnom.size(); ++
i){
100 for(
int n = 0;
n < 5; ++
n){
101 int bin1 = 1 + (
n * binNbins);
102 int bin2 = (
n+1) * binNbins;
103 if(
n==4) {bin1 = 1; bin2 =
Nbins;}
105 << (
n == 4 ?
"\t \\\\\n" :
"\t & \t ");
115 std::vector <TH1D*>
ret;
130 std::vector <TH1D*>
ret;
148 auto hdata =
data.ToTH1(ndpot);
152 comp.insert(comp.begin(),hdata);
153 std::vector <TString>
labels = {
"Data",
"Tot MC",
"Beam",
"NC",
"Numu"};
154 std::cout << std::setprecision(0) << std::fixed;
162 std::vector <TH1D*> comp;
165 std::vector <TString>
labels = {
"Tot MC",
"Beam",
"NC",
"Numu"};
166 std::cout << std::setprecision(0) << std::fixed;
176 auto hdata =
data.ToTH1(ndpot);
177 hdata->SetMarkerStyle(kFullCircle);
180 std::vector <TH1D*> comp_decomp;
184 if(!mccomponly)
for (
auto h:comp_decomp)
h->Draw(
"hist same");
186 std::vector <TH1D*> comp_mc;
188 if( overlay )
for (
auto h:comp_mc)
h->SetLineStyle(7);
189 if( mccomponly || overlay)
for (
auto h:comp_mc)
h->Draw(
"hist same");
190 hdata->Draw(
"e1 same");
192 hdata->GetYaxis()->SetTitle(
"Events / 0.5 GeV bin");
193 hdata->SetMaximum(1.2*hdata->GetMaximum());
198 auto leg =
new TLegend (0.70,0.2,0.89,0.75);
199 leg->SetTextSize(hdata->GetYaxis()->GetLabelSize());
202 leg->AddEntry(hdata,
"ND Data",
"epl");
203 leg->AddEntry(comp_decomp[0],
"Total",
"l");
204 leg->AddEntry(comp_decomp[1],
"Beam #nu_{e} CC",
"l");
205 leg->AddEntry(comp_decomp[2],
"NC",
"l");
206 leg->AddEntry(comp_decomp[3],
"#nu_{#mu} CC",
"l");
208 auto dummy =
new TGraph();
209 dummy->SetLineWidth(2);
210 dummy->SetLineColor(kGray+2);
211 dummy->SetLineStyle(7);
212 leg->AddEntry(
dummy,
"Uncorr. MC",
"l");
230 for(
auto h:{
hsig,hbeam,hnc,hnumu})
h->Draw(
"hist same");
232 htot->GetYaxis()->SetTitle(
"Events / 0.5 GeV bin");
233 htot->SetMaximum(1.2*htot->GetMaximum());
238 auto leg =
new TLegend (0.12,0.4,0.35,0.75);
239 leg->SetTextSize(htot->GetYaxis()->GetLabelSize());
242 leg->AddEntry(htot,
"Nominal Osc. Pred.",
"l");
243 leg->AddEntry(
hsig,
"Signal",
"l");
244 leg->AddEntry(hbeam,
"Beam #nu_{e} CC",
"l");
245 leg->AddEntry(hnc,
"NC",
"l");
246 leg->AddEntry(hnumu,
"#nu_{#mu} CC",
"l");
267 std::vector <TH1D*> mcnom = {htot,
hsig,
hbkg,hbeam,hnc,hnumu, htau};
268 std::vector <TString>
labels = {
"Total",
"Signal",
"Bkg.",
"Beam",
"NC",
"Numu",
"Tau"};
void Nue2017FourBinLabels(const double yNDC, const double textsize, const int color, const bool merged)
void Nue2017FourBinAxis(TH1 *axes, bool drawLabels, bool merged)
virtual Spectrum Data_Component() const override
Cuts and Vars for the 2020 FD DiF Study.
virtual Spectrum PredictComponent(osc::IOscCalc *calc, Flavors::Flavors_t flav, Current::Current_t curr, Sign::Sign_t sign) const =0
Spectrum MC_AntiNumuComponent() const override
std::vector< TH1D * > GetNueNDComponentsMC(MichelDecomp *decomp, double pot)
virtual Spectrum AntiNueComponent() const =0
void TableNueNDComponents(MichelDecomp *combo, ProportionalDecomp *prop=0)
TH1D * ToTH1(double exposure, Color_t col=kBlack, Style_t style=kSolid, EExposureType expotype=kPOT, EBinType bintype=kBinContent) const
Histogram made from this Spectrum, scaled to some exposure.
void TableNuePredictionFourBins(const IPrediction *pred, osc::IOscCalc *calc, double fdpot)
virtual Spectrum NumuComponent() const =0
virtual Spectrum Predict(osc::IOscCalc *calc) const =0
void plot_nominal_spectra()
General interface to oscillation calculators.
osc::IOscCalcAdjustable * DefaultOscCalc()
Create a new calculator with default assumptions for all parameters.
const Color_t kNumuBackgroundColor
static std::unique_ptr< ProportionalDecomp > LoadFrom(TDirectory *dir, const std::string &name)
const Color_t kNueSignalColor
static std::unique_ptr< MichelDecomp > LoadFrom(TDirectory *dir, const std::string &name)
std::vector< TH1D * > GetNueNDComponents(IDecomp *decomp, double pot)
const XML_Char const XML_Char * data
void PrintTableFourBins(std::vector< TH1D * > mcnom, std::vector< TString > labels)
Charged-current interactions.
Spectrum MC_NCTotalComponent() const override
const Color_t kBeamNueBackgroundColor
void PlotNueDecompFourBins(MichelDecomp *combo=0, ProportionalDecomp *prop=0, bool mccomponly=false, bool overlay=false)
virtual Spectrum AntiNumuComponent() const =0
void PlotNuePredictionFourBins(const IPrediction *pred, osc::IOscCalc *calc, double fdpot)
Spectrum MC_NumuComponent() const override
Splits Data proportionally according to MC.
const double kAna2017FullDetEquivPOT
virtual Spectrum NCTotalComponent() const
Standard interface to all decomposition techniques.
Neutral-current interactions.
assert(nhit_max >=nhit_nbins)
Both neutrinos and antineutrinos.
Standard interface to all prediction techniques.
void Format(TGraph *gr, int lcol, int lsty, int lwid, int mcol, int msty, double msiz)
Spectrum MC_NueComponent() const override
const Color_t kTotalMCColor
void Nue2017FourBinDivisions(const int color, const int style)
All neutrinos, any flavor.
void TableNueNDDataMC(MichelDecomp *combo)
Spectrum MC_AntiNueComponent() const override
const Color_t kNCBackgroundColor
std::string UniqueName()
Return a different string each time, for creating histograms.
virtual Spectrum NueComponent() const =0