5 #include "CAFAna/Core/HistAxis.h" 6 #include "CAFAna/Core/Cut.h" 7 #include "CAFAna/Core/Var.h" 9 #include "CAFAna/Core/Var.h" 33 const unsigned int& numQuantiles,
44 const unsigned int& numQuantiles,
62 const std::vector<std::vector<double>>& quantileBins);
75 const Cut QuantileCut(
const std::vector<std::vector<double>>& quantileBins,
86 const unsigned int& numQuantiles,
99 const unsigned int& numQuantiles,
107 const unsigned int& numQuantiles,
108 const bool rhc =
true,
_HistAxis< Var > HistAxis
Cuts and Vars for the 2020 FD DiF Study.
Simple record of shifts applied to systematic parameters.
const Cut QuantileCut(const std::vector< std::vector< double >> &quantileBins, const HistAxis &independentAxis, const HistAxis &quantileAxis, const unsigned int &quantile)
Returns a Cut that will only pass events falling into a particular quantile of quantileAxis, where quantiles have been calculated for each independentAxis bin Quantiles have been precalculated in 'quantileBins' (number of quantiles, bin edges etc.)
Proxy for caf::StandardRecord.
std::vector< std::vector< double > > GetQuantileBins(TH2 *quantileHist, const HistAxis &independentAxis, const HistAxis &quantileAxis, const unsigned int &numQuantiles, const bool verbose)
Returns a 2D vector First index is the independentAxis bin number Second index is the high bin edge f...
std::vector< Cut > QuantileCuts(SpectrumLoader &loader, const HistAxis &independentAxis, const HistAxis &quantileAxis, const Cut &cut, const unsigned int &numQuantiles, const SpillCut &spillCut, const SystShifts &shift, const Var &wei, const bool verbose)
Returns a vector of Cuts, each one for a different quantile An individual cut will only pass events f...
_Var< caf::SRProxy > Var
Representation of a variable to be retrieved from a caf::StandardRecord object.
std::vector< std::vector< double > > fQuantileBins
_Cut< caf::SRProxy > Cut
Representation of a cut (selection) to be applied to a caf::StandardRecord object.
_Cut< caf::SRSpillProxy > SpillCut
Equivalent of Cut acting on caf::SRSpill. For use in spill-by-spill data quality cuts.
unsigned int quantile(std::vector< std::vector< double >> v, float E, float hadEfrac)
TH2 * MakeQuantileHistogram(SpectrumLoader &loader, const HistAxis &independentAxis, const HistAxis &quantileAxis, const Cut &cut, const SpillCut &spillCut, const SystShifts &shift, const Var &wei)
Returns a TH2D with xAxis as independentAxis and yAxis as quantileAxis Quantiles in yAxis can be calc...
const SystShifts kNoShift
HistAxis fIndependentAxis
bool operator()(const caf::SRProxy *sr) const
Defines the Cut this Instance generates. Returns true if the slice is in the quantile set in quantile...
std::vector< Cut > QuantileAndPIDCutsFromTH2(TH2 *quantileHist, const HistAxis &independentAxis, const HistAxis &quantileAxis, const unsigned int &numQuantiles, const bool rhc, const bool verbose)
Collaborates with Spectrum and OscillatableSpectrum to fill spectra from CAF files.
std::vector< Cut > QuantileCutsFromTH2(TH2 *quantileHist, const HistAxis &independentAxis, const HistAxis &quantileAxis, const unsigned int &numQuantiles, const bool verbose)
: Do the same as the QuantileCuts function but taking in the TH2 instead of making it...
QuantileCutGenerator(const HistAxis &independentAxis, const HistAxis &quantileAxis, const unsigned int &quantile, const std::vector< std::vector< double >> &quantileBins)
Class to Generate a Quantile ana::Cut that is specialised via the constructor arguments.
const SpillCut kStandardSpillCuts
Apply this unless you're doing something special.
Class to Generate a ana::Cut that passes events that fall into the requested quantile in quantile axi...
const Var kUnweighted
The simplest possible Var, always 1. Used as a default weight.