demo3.C
Go to the documentation of this file.
1 // Oscillate the spectrum (numu CC component only)
2 
4 
5 #include "CAFAna/Core/Binning.h"
6 #include "CAFAna/Cuts/Cuts.h"
8 #include "CAFAna/Core/Spectrum.h"
10 #include "CAFAna/Vars/Vars.h"
11 
13 
14 #include "TCanvas.h"
15 #include "TH2.h"
16 
17 using namespace ana;
18 
19 
20 void demo3()
21 {
22  const std::string fname = "prod_sumdecaf_R19-11-18-prod5reco.f_fd_genie_N1810j0211a_nonswap_fhc_nova_v08_full_v1_numu2020";
23 
24  SpectrumLoader loader(fname);
25 
26  const Binning bins = Binning::Simple(100, 0, 1000);
27 
28  const Var kNHit([](const caf::SRProxy* sr)
29  {
30  return sr->slc.nhit;
31  });
32 
33  Spectrum nhit("Number of hits in slice", bins, loader, kNHit, kIsNumuCC);
34 
35  // With true energy axis too
36  OscillatableSpectrum sosc("Number of hits in slice", bins, loader, kNHit, kIsNumuCC);
37 
38  // Do it!
39  loader.Go();
40 
41  // How to scale histograms
42  const double pot = 18e20;
43 
44  // 2D histograms
45  new TCanvas;
46  sosc.ToTH2(pot)->Draw("colz");
47 
48  // Make a calculator. This is the fastest variant
50 
51  calc.SetL(810);
52  calc.SetRho(2.75);
53  calc.SetDmsq21(7.6e-5);
54  calc.SetDmsq32(2.35e-3);
55  calc.SetTh12(asin(sqrt(.87))/2);
56  calc.SetTh13(asin(sqrt(.10))/2);
57  calc.SetTh23(TMath::Pi()/4);
58  calc.SetdCP(0);
59 
60  // Can oscillate a spectrum (numu->numu)
61  Spectrum soscd = sosc.Oscillated(&calc, 14, 14);
62  TH1* h = soscd.ToTH1(pot);
63  h->SetLineColor(kRed);
64  new TCanvas;
65  nhit.ToTH1(pot)->Draw("hist");
66  h->Draw("hist same");
67 }
const Cut kIsNumuCC(CCFlavSel(14, 14))
Select CC .
enum BeamMode kRed
Represent the binning of a Spectrum's x-axis.
Definition: Binning.h:16
Cuts and Vars for the 2020 FD DiF Study.
Definition: vars.h:6
void SetTh13(const T &th13) override
void SetL(double L) override
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.
Definition: Spectrum.cxx:148
Proxy for caf::StandardRecord.
Definition: SRProxy.h:2126
T sqrt(T number)
Definition: d0nt_math.hpp:156
nhit
Definition: demo1.py:25
sosc
Definition: demo2.py:18
osc::OscCalcDumb calc
Representation of a spectrum in any variable, with associated POT.
Definition: Spectrum.h:40
caf::Proxy< unsigned int > nhit
Definition: SRProxy.h:1315
soscd
Definition: demo3.py:40
const Var kNHit
Definition: Vars.cxx:71
Optimized version of OscCalcPMNS.
Definition: StanTypedefs.h:31
#define pot
caf::StandardRecord * sr
virtual void Go() override
Load all the registered spectra.
void SetTh23(const T &th23) override
loader
Definition: demo0.py:10
void SetDmsq21(const T &dmsq21) override
void demo3()
Definition: demo3.C:20
void SetDmsq32(const T &dmsq32) override
const Binning bins
Definition: NumuCC_CPiBin.h:8
Spectrum Oscillated(osc::IOscCalc *calc, int from, int to) const
caf::Proxy< caf::SRSlice > slc
Definition: SRProxy.h:2142
Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.
void SetdCP(const T &dCP) override
void SetTh12(const T &th12) override
Float_t e
Definition: plot.C:35
Spectrum with true energy information, allowing it to be oscillated
static Binning Simple(int n, double lo, double hi, const std::vector< std::string > &labels={})
Definition: Binning.cxx:107
void SetRho(double rho) override
T asin(T number)
Definition: d0nt_math.hpp:60
TH2D * ToTH2(double pot) const
enum BeamMode string