|
YODA - Yet more Objects for Data Analysis 2.0.2
|
- Namespace MetaUtils
- Merge with Traits.h
- Namespace YODA
- Add SFINAE math type stuff (see Rivet) and add inrange() and inrange_closed_closed() etc. aliases cf. MCUtils
- Member YODA::AnalysisObject::annotations () const
- Change this to return the str->str map, with a separate annotationKeys, etc.
- Member YODA::Axis< T, isCAxis< T > >::hasSameEdges (const Axis< EdgeT, CAxisT > &other) const noexcept
- Be careful about using fuzzyEquals... should be an exact comparison?
- Member YODA::Counter::Counter (const Counter &c, const std::string &path="")
- Don't copy the path?
- Member YODA::Counter::err () const
- Implement on Dbn0D and feed through to this and Dbn1D, 2D, etc.
- Member YODA::Counter::relErr () const
Throw excp if sumW2 is 0?
Implement on Dbn0D and feed through to this and Dbn1D, 2D, etc.
- Member YODA::DbnStorage< DbnN, AxisT >::DbnStorage (const DbnStorage &other, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::DbnStorage< DbnN, AxisT >::DbnStorage (DbnStorage &&other, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::DbnStorage< DbnN, AxisT >::mkMarginalHisto (const std::string &path="") const
- use a parameter pack and allow marginalising over multiple axes?
- Member YODA::DbnStorage< DbnN, AxisT >::mkMarginalProfile (const std::string &path="") const
- use a parameter pack and allow marginalising over multiple axes?
- Member YODA::DbnStorage< DbnN, AxisT >::operator+= (const DbnStorage &dbn)
- What happens if two storages disagree on masked bins?
- Member YODA::divide (const Counter &numer, const Counter &denom)
- Add skipnullpts extra optional arg
- Member YODA::efficiency (const Counter &accepted, const Counter &total)
Or throw a LowStatsError exception if h.effNumEntries() (or sumW()?) == 0?
Provide optional alt behaviours to fill with NaN or remove the invalid point, or...
Add skipnullpts extra optional arg
- Member YODA::efficiency (const Estimate &accepted, const Estimate &total, const std::string &pat_uncorr="^stat|^uncor")
- Need to check that bins are all positive? Integral could be zero due to large +ve/-ve in different bins :O
- Member YODA::efficiency (const Counter &accepted, const Counter &total)
- Add divide functions/operators on pointers
- Member YODA::EstimateStorage< AxisT >::EstimateStorage (const EstimateStorage &other, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::EstimateStorage< AxisT >::EstimateStorage (EstimateStorage &&other, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::inRange (NUM value, NUM low, NUM high, RangeBoundary lowbound=CLOSED, RangeBoundary highbound=OPEN)
- Optimise to one-line at compile time?
- Member YODA::inRange (int value, int low, int high, RangeBoundary lowbound=CLOSED, RangeBoundary highbound=CLOSED)
- Optimise to one-line at compile time?
- Class YODA::LogBinEstimator
- Make a generalised version of this with a transform function
- Member YODA::mkIntegralEff (const BinnedDbn< DbnN, AxisT... > &histo, const bool includeOverflows=true)
Or throw a LowStatsError exception if h.effNumEntries() == 0?
Need to check that bins are all positive? Integral could be zero due to large +ve/-ve in different bins :O
Provide optional alt behaviours
- Member YODA::mkReader (const std::string &format_name)
- Improve/remove... .ydat?
- Member YODA::mkWriter (const std::string &format_name)
- Improve/remove... .ydat?
- Member YODA::operator/ (double a, const Weights &w)
- Is this really needed?
- Member YODA::pdfspace (size_t nbins, double xmin, double xmax, std::function< double(double)> &fn, size_t nsample=10000)
- fspace() for uniform sampling from f(x); requires ability to invert fn... how, in general?
- Member YODA::read (const std::string &filename, std::vector< AnalysisObject * > &aos, const std::string &match="", const std::string &unmatch="")
- Use SFINAE magic to allow ~arbitrary collection<AnalysisObject*> (with push_back()?) to be passed
- Member YODA::read (std::istream &is, std::vector< AnalysisObject * > &aos, const std::string &fmt, const std::string &match="", const std::string &unmatch="")
- Use SFINAE magic to allow ~arbitrary collection<AnalysisObject*> (with push_back()?) to be passed
- Member YODA::Reader::read (std::istream &stream, CONT &aos, const std::string &match="", const std::string &unmatch="")
- Extend SFINAE Pushable cf. Writer to allow adding to containers of smart ptr type
- Member YODA::Reader::read (const std::string &filename, CONT &aos, const std::string &match="", const std::string &unmatch="")
- Extend SFINAE Pushable cf. Writer to allow adding to containers of smart ptr type
- Member YODA::Scatter::~Scatter ()
- Add a generic Scatter base class, providing reset(), rmPoint(), etc.
- Member YODA::ScatterND< N >::combineWith (std::vector< ScatterND< N > > &&others)
- Better name?
- Member YODA::ScatterND< N >::combineWith (const ScatterND< N > &other)
- Better name?
- Member YODA::ScatterND< N >::combineWith (ScatterND< N > &&other)
- Better name?
- Member YODA::ScatterND< N >::combineWith (const std::vector< ScatterND< N > > &others)
- Better name?
- Member YODA::variance (const double sumWX, const double sumW, const double sumWX2, const double sumW2)
Is this the correct approach? There is no information online other than "weights are non-negative"...
Isn't this sensitive to the overall scale of the weights? Shouldn't it check if den is bigger then num by a set number of orders of magnitude and vice versa?
- Class YODA::Weights
Accept general Boost.Ranges as constructor args... but start with literal arrays for convenience
Autogenerate numerical names if not given
- Member YODA::Weights::operator- () const
- Can/should this modify itself and return a reference?
- Member YODA::Writer::write (const std::string &filename, const AOITER &begin, const AOITER &end)
- Add SFINAE trait checking for AOITER = DerefableToAO
- Member YODA::Writer::write (std::ostream &stream, const AOITER &begin, const AOITER &end)
- Add SFINAE trait checking for AOITER = DerefableToAO
- Member YODA::Writer::write (std::ostream &stream, const std::vector< const AnalysisObject * > &aos)
Remove the head/body/foot distinction?
Why specifically LowStatsError?
- Member YODA::WriterYODA1::writeHisto2D (std::ostream &stream, const Histo2D &h)
- Disabled for now, reinstate with a full set of outflow info to allow marginalisation
- Member YODA::WriterYODA1::writeProfile2D (std::ostream &stream, const Profile2D &p)
- Disabled for now, reinstate with a full set of outflow info to allow marginalisation
- Member YODA::WriterYODA1::writeScatter2D (std::ostream &stream, const Scatter2D &s)
Change ordering to {vals} {errs} {errs} ...
Change ordering to {vals} {errs} {errs} ...
- Member YODA::WriterYODA1::writeScatter3D (std::ostream &stream, const Scatter3D &s)
Change ordering to {vals} {errs} {errs} ...
Change ordering to {vals} {errs} {errs} ...
|