Public Member Functions | List of all members
ana::NueAcceptSystBkg2018FHC Class Reference

FHC systs. More...

#include "/cvmfs/nova-development.opensciencegrid.org/novasoft/releases/N20-11-30/3FlavorAna/Systs/NueAcceptSysts.h"

Inheritance diagram for ana::NueAcceptSystBkg2018FHC:
ana::ISyst

Public Member Functions

 NueAcceptSystBkg2018FHC ()
 
void Shift (double sigma, caf::SRProxy *sr, double &weight) const override
 FHC implementation. More...
 
virtual const std::stringShortName () const final
 The name printed out to the screen. More...
 
virtual const std::stringLatexName () const final
 The name used on plots (ROOT's TLatex syntax) More...
 
virtual void TruthShift (double sigma, caf::SRNeutrinoProxy *nu, double &weight) const
 
virtual bool IsGenieReweight () const
 GENIE reweights can only provide +/-1,2sigma. More...
 

Detailed Description

FHC systs.

Definition at line 14 of file NueAcceptSysts.h.

Constructor & Destructor Documentation

ana::NueAcceptSystBkg2018FHC::NueAcceptSystBkg2018FHC ( )
inline

Definition at line 17 of file NueAcceptSysts.h.

References ana::kNueAcceptSystBkg2018FHC, Shift(), sigma(), sr, and ana::weight.

17 : ISyst("accept_bkg_FHC", "Acceptance Bkg FHC") {}
ISyst(const std::string &shortName, const std::string &latexName)
Definition: ISyst.cxx:10

Member Function Documentation

virtual bool ana::ISyst::IsGenieReweight ( ) const
inlinevirtualinherited

GENIE reweights can only provide +/-1,2sigma.

Reimplemented in ana::SummedSyst.

Definition at line 56 of file ISyst.h.

56 {return false;}
virtual const std::string& ana::ISyst::LatexName ( ) const
inlinefinalvirtualinherited

The name used on plots (ROOT's TLatex syntax)

Definition at line 30 of file ISyst.h.

References ana::ISyst::fLatexName, ana::ISyst::Shift(), sigma(), sr, and ana::weight.

Referenced by ana::PredictionInterp::DebugPlotColz(), GetGENIEShiftLabels(), ana::NuISyst::SaveTo(), SystsGENIEAna(), and WriteSystName().

30 {return fLatexName;}
std::string fLatexName
Definition: ISyst.h:60
void ana::NueAcceptSystBkg2018FHC::Shift ( double  sigma,
caf::SRProxy sr,
double &  weight 
) const
overridevirtual

FHC implementation.

FHC values

Reimplemented from ana::ISyst.

Definition at line 34 of file NueAcceptSysts.cxx.

References abs(), caf::Proxy< caf::SRHeader >::det, caf::Proxy< caf::StandardRecord >::hdr, caf::kFARDET, ana::kIsRHC, ana::kNue2018FDPeripheral(), caf::Proxy< caf::StandardRecord >::mc, caf::Proxy< caf::SRTruthBranch >::nnu, caf::Proxy< caf::SRTruthBranch >::nu, and sigma().

Referenced by NueAcceptSystBkg2018FHC(), ana::NueAcceptSystBkg2018RHC::NueAcceptSystBkg2018RHC(), ana::NueAcceptSystSignalKin2018FHC::NueAcceptSystSignalKin2018FHC(), ana::NueAcceptSystSignalKin2018RHC::NueAcceptSystSignalKin2018RHC(), ana::NueAcceptSystSignalKin2020FHC::NueAcceptSystSignalKin2020FHC(), and ana::NueAcceptSystSignalKin2020RHC::NueAcceptSystSignalKin2020RHC().

35  {
36  // Nue acceptance systs of bkg from docdb-27935 ND subcomponents extrapolation
37  // maximal core / peripheral FHC (RHC) difference: +- 1.5% / +-1.2% (+- 4.1% / +- 2.3%)
38 
39  /// FHC values
40  const double core = .015;
41  const double peri = .012;
42 
43  // Check if FHC, otherwise left unaltered
44  if(kIsRHC(sr)) return;
45 
46  // Check if in FD, otherwise left unaltered
47  if(sr->hdr.det != caf::kFARDET) return;
48 
49  // Check if neutrino, but not numu->nue signal, otherwise left unaltered
50  if(sr->mc.nnu == 0) return;
51  if(abs(sr->mc.nu[0].pdg) == 12 && abs(sr->mc.nu[0].pdgorig) == 14 && sr->mc.nu[0].iscc) return;
52  // Left unaltered if tau neutrino
53  if(abs(sr->mc.nu[0].pdg) == 16 && sr->mc.nu[0].iscc) return;
54 
55  if(sigma == 0) return;
56 
57  double kFDBkgCorr = core;
58 
59  // Check whether in peripheral or core sample
60  if(kNue2018FDPeripheral(sr))
61  kFDBkgCorr = peri;
62 
63  weight *= 1+kFDBkgCorr*sigma;
64  }
Far Detector at Ash River.
Definition: SREnums.h:11
const Var weight
caf::Proxy< caf::SRHeader > hdr
Definition: SRProxy.h:2137
caf::Proxy< std::vector< caf::SRNeutrino > > nu
Definition: SRProxy.h:618
void abs(TH1 *hist)
caf::Proxy< short int > nnu
Definition: SRProxy.h:617
const Cut kNue2018FDPeripheral(kNue2018FDPeripheralFunc)
double sigma(TH1F *hist, double percentile)
caf::Proxy< caf::SRTruthBranch > mc
Definition: SRProxy.h:2138
const Cut kIsRHC([](const caf::SRProxy *sr){return sr->spill.isRHC;})
Definition: Vars.h:16
caf::Proxy< caf::Det_t > det
Definition: SRProxy.h:232
virtual const std::string& ana::ISyst::ShortName ( ) const
inlinefinalvirtualinherited
virtual void ana::ISyst::TruthShift ( double  sigma,
caf::SRNeutrinoProxy nu,
double &  weight 
) const
inlinevirtualinherited

For systematics that deal only with the neutrino truth and not any reconstruction/PID details. Systematics defined this way will work on nuTree-derived spectra too (e.g. denominators of efficiencies).

Reimplemented in demo::DemoSyst1, ana::BeamSyst, ana::GenericSystComponentScale< T >, ana::GenericSystComponentScale< T >, ana::GenericSystComponentScale< T >, and ana::NOvARwgtSyst.

Definition at line 46 of file ISyst.h.

Referenced by ana::ISyst::Shift().

49  {
50  // Implement this function if your systematic depends only
51  // SRNeutrino. Left blank by default, since systematics using other
52  // information can do nothing sensible to the nuTree.
53  }

The documentation for this class was generated from the following files: