Todo List - Module Accessors
- Sorted iterators of pair<std::string, double>
- Module Bin accessors
Makes sense for differential histos but not profiles: discriminate the types? These make sense in 1D; less clear about other dimensionalities - Module Bin accessors
- These make sense in 1D; less clear about other dimensionalities
- Module Bin adding and removal
- Needs RTTI for inequivalent types
- Module Bin adding and removal
- Needs RTTI for inequivalent types
- Module Bin adding and removing
TODO TODO TODO TODO TODO TODO TODO - Module Conversion functions from YODA to ROOT data types
- Add toScatter2D(TGraph&/*) and toScatter3D(TGraph2D&/*)
- Module Conversion functions from YODA to ROOT data types
- Add toScatter2D(TGraph&/*) and toScatter3D(TGraph2D&/*)
- Module Coordinate accessors
- addError, addErrors, setErrors
- Module Uncertainty variations
- Resolve the inconsistency between point properties and the parent annotation
- Module x error accessors
- Uniform "coords" accessor across all Scatters: returning fixed-size tuple?
- Namespace YODA
- Add SFINAE math type stuff (see Rivet) and add inrange() and inrange_closed_closed() etc. aliases cf. MCUtils
- Member YODA::add (const Histo1D &histo, const Scatter2D &scatt)
- Create a compatibleBinning function? Or just compare vectors of edges().
- Member YODA::AnalysisObject::annotations () const
- Change this to return the str->str map, with a separate annotationKeys, etc.
- Member YODA::AnalysisObject::dim () const =0
- Provide a distinct fillDim() method on Fillables, and make dim always report the total dimension
- Member YODA::AnalysisObject::setAnnotation (const std::string &name, long double value)
- Can we cover all FP types in one function via SFINAE?
- Member YODA::AnalysisObject::setAnnotation (const std::string &name, double value)
- Can we cover all FP types in one function via SFINAE?
- Member YODA::AnalysisObject::setAnnotation (const std::string &name, float value)
- Can we cover all FP types in one function via SFINAE?
- Member YODA::Axis1D< BIN1D, DBN >::addBin (const Bin &b)
- Efficiency?
- Member YODA::Axis1D< BIN1D, DBN >::Axis1D (size_t nbins, double lower, double upper)
- Rewrite interface to use a pair for the low/high
- Member YODA::Axis1D< BIN1D, DBN >::subsetBinning (const Axis1D &other) const
- Do we require the finite axis begin/end to be the same?
- Member YODA::Axis1D< BIN1D, DBN >::xEdges () const
- Make the +-inf stripping controllable by a default-valued bool arg
- Member YODA::Axis2D< BIN2D, DBN >::eraseBins (const std::pair< double, double > &xrange, const std::pair< double, double > &yrange)
How to test this? Beware the specialisation problems with vector<bool>... Beware the specialisation problems with vector<bool>... - Member YODA::Axis2D< BIN2D, DBN >::operator== (const Axis2D &other) const
- Change as discussed below if we expose the Axis classes for direct use
- Member YODA::Axis2D< BIN2D, DBN >::rebinX (unsigned int nx)
- WRITE THIS!
- Member YODA::Axis2D< BIN2D, DBN >::rebinY (unsigned int ny)
- WRITE THIS!
- Member YODA::Axis2D< BIN2D, DBN >::xEdges () const
- Make the +-inf stripping controllable by a default-valued bool arg
- Member YODA::Axis2D< BIN2D, DBN >::xMin () const
- Add xMins, xMaxs, xMids, xFoci, and y-versions
- Member YODA::Axis2D< BIN2D, DBN >::yEdges () const
- Make the +-inf stripping controllable by a default-valued bool arg
- Class YODA::Bin1D< DBN >
- It would also be nice to have an
*untemplated*generic Bin1D interface - Member YODA::Bin1D< DBN >::dim ()
- Convert to total dimension
- Member YODA::Bin2D< DBN >::dim ()
- Convert to total dimension
- Member YODA::Bin::dim ()=0
- Convert to be the total dimension
- Member YODA::Binned::eraseBin (size_t index)
- Implement, cf. Scatter::rmPoints()
- Class YODA::CIterable< T >
- Replace with C++11 std stuff
- Member YODA::Counter::Counter (const Counter &c, const std::string &path="")
- Don't copy the path?
- Member YODA::Counter::dim () const
- Change to return total dimension
- Member YODA::Counter::err () const
- Implement on Dbn0D and feed through to this and Dbn1D, 2D, etc.
- Member YODA::Counter::relErr () const
Implement on Dbn0D and feed through to this and Dbn1D, 2D, etc. Throw excp if sumW2 is 0? Throw excp if sumW2 is 0? - Member YODA::Dbn0D::fill (double weight=1.0, double fraction=1.0)
- Be careful about negative weights.
- Member YODA::Dbn1D::xStdErr () const
- Unbiased should check that Neff > 1 and divide by N-1?
- Member YODA::Dbn1D::xVariance () const
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? Is this the correct approach? There is no information online other than "weights are non-negative"... Is this the correct approach? There is no information online other than "weights are non-negative"... - Member YODA::Dbn2D::transformX ()
- Rename
- Member YODA::Dbn2D::transformY ()
- Rename
- Member YODA::Dbn3D::transformX ()
- Rename
- Member YODA::Dbn3D::transformY ()
- Rename
- Member YODA::Dbn3D::transformZ ()
- Rename
- Member YODA::divide (const Histo1D &numer, const Histo1D &denom)
Add multiply(H1, H1) -> Scatter2D? Wouldn't it be nice to be able to supply a correlation matrix or function as optional arg? Create a compatibleBinning function? Or just compare vectors of edges(). Provide optional alt behaviours to fill with NaN or remove the invalid point or throw Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Wouldn't it be nice to be able to supply a correlation matrix or function as optional arg? Create a compatibleBinning function? Or just compare vectors of edges(). Provide optional alt behaviours to fill with NaN or remove the invalid point or throw Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Wouldn't it be nice to be able to supply a correlation matrix or function as optional arg? Create a compatibleBinning function? Or just compare vectors of edges(). Provide optional alt behaviours to fill with NaN or remove the invalid point or throw Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Wouldn't it be nice to be able to supply a correlation matrix or function as optional arg? Create a compatibleBinning function? Or just compare vectors of edges(). Provide optional alt behaviours to fill with NaN or remove the invalid point or throw Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Wouldn't it be nice to be able to supply a correlation matrix or function as optional arg? Create a compatibleBinning function? Or just compare vectors of edges(). Provide optional alt behaviours to fill with NaN or remove the invalid point or throw Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Wouldn't it be nice to be able to supply a correlation matrix or function as optional arg? Create a compatibleBinning function? Or just compare vectors of edges(). Provide optional alt behaviours to fill with NaN or remove the invalid point or throw Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. - Member YODA::divide (const Histo1D &numer, const Scatter2D &denom)
Create a compatibleBinning function? Or just compare vectors of edges(). Ok? Ok? Ok? Ok? Ok? Ok? - Member YODA::divide (const Scatter2D &numer, const Histo1D &denom)
Create a compatibleBinning function? Or just compare vectors of edges(). Ok? Ok? Ok? Ok? Ok? Ok? - Member YODA::divide (const Histo2D &numer, const Histo2D &denom)
Add multiply(H2, H2) -> Scatter3D? Wouldn't it be nice to be able to supply a correlation matrix or function as optional arg? Create a compatibleBinning function? Or just compare vectors of edges(). Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Wouldn't it be nice to be able to supply a correlation matrix or function as optional arg? Create a compatibleBinning function? Or just compare vectors of edges(). Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Wouldn't it be nice to be able to supply a correlation matrix or function as optional arg? Create a compatibleBinning function? Or just compare vectors of edges(). Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Wouldn't it be nice to be able to supply a correlation matrix or function as optional arg? Create a compatibleBinning function? Or just compare vectors of edges(). Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Wouldn't it be nice to be able to supply a correlation matrix or function as optional arg? Create a compatibleBinning function? Or just compare vectors of edges(). Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Wouldn't it be nice to be able to supply a correlation matrix or function as optional arg? Create a compatibleBinning function? Or just compare vectors of edges(). Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. - Member YODA::divide (const Profile1D &numer, const Profile1D &denom)
Create a compatibleBinning function? Or just compare vectors of edges(). Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. - Member YODA::divide (const Profile2D &numer, const Profile2D &denom)
Create a compatibleBinning function? Or just compare vectors of edges(). Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. Ok? Is this the exact error treatment for all (uncorrelated) cases? Behaviour around 0? +1 and -1 fills? check correctness with different signed numerator and denominator. - Member YODA::divide (const Counter &numer, const Counter &denom)
Or just return a Point1D? Add skipnullpts extra optional arg Add skipnullpts extra optional arg Add skipnullpts extra optional arg Add skipnullpts extra optional arg Add skipnullpts extra optional arg Add skipnullpts extra optional arg - Member YODA::efficiency (const Counter &accepted, const Counter &total)
Add divide functions/operators on pointers Or just return a Point1D? Add skipnullpts extra optional arg Provide optional alt behaviours to fill with NaN or remove the invalid point, or... Or throw a LowStatsError exception if h.effNumEntries() (or sumW()?) == 0? Or just return a Point1D? Add skipnullpts extra optional arg Provide optional alt behaviours to fill with NaN or remove the invalid point, or... Or throw a LowStatsError exception if h.effNumEntries() (or sumW()?) == 0? Or just return a Point1D? Add skipnullpts extra optional arg Provide optional alt behaviours to fill with NaN or remove the invalid point, or... Or throw a LowStatsError exception if h.effNumEntries() (or sumW()?) == 0? Or just return a Point1D? Add skipnullpts extra optional arg Provide optional alt behaviours to fill with NaN or remove the invalid point, or... Or throw a LowStatsError exception if h.effNumEntries() (or sumW()?) == 0? Or just return a Point1D? Add skipnullpts extra optional arg Provide optional alt behaviours to fill with NaN or remove the invalid point, or... Or throw a LowStatsError exception if h.effNumEntries() (or sumW()?) == 0? Or just return a Point1D? Add skipnullpts extra optional arg Provide optional alt behaviours to fill with NaN or remove the invalid point, or... Or throw a LowStatsError exception if h.effNumEntries() (or sumW()?) == 0? - Member YODA::efficiency (const Histo1D &accepted, const Histo1D &total)
Add functions/operators on pointers Add functions/operators on pointers Add functions/operators on pointers Add functions/operators on pointers Add functions/operators on pointers Add functions/operators on pointers Add functions/operators on pointers - Member YODA::flip (Scatter2D &s)
Add external scale, scaleX, scaleY functions Be careful about transforms which could switch around min and max errors, or send both in the same direction! Be careful about transforms which could switch around min and max errors, or send both in the same direction! Be careful about transforms which could switch around min and max errors, or send both in the same direction! - Member YODA::Histo1D::binIndexAt (double x)
- Convert to ssize_t?
- Member YODA::Histo1D::dim () const
- Change this to the total dimension (in v2)
- Member YODA::Histo1D::fill (double x, double weight=1.0, double fraction=1.0)
- Replace try block with a check that there is a bin at x
- Member YODA::Histo1D::Histo1D (const Profile1D &p, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Histo1D::Histo1D (const Histo1D &h, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Histo1D::Histo1D (const Scatter2D &s, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Histo1D::integralRange (size_t binindex1, size_t binindex2) const
- Allow int bin index args for type compatibility with binIndexAt()?
- Member YODA::Histo1D::integralTo (size_t binindex, bool includeunderflow=true) const
- Allow int bin index args for type compatibility with binIndexAt()?
- Member YODA::Histo1D::normalize (double normto=1.0, bool includeoverflows=true)
- Check that this is the desired behaviour
- Member YODA::Histo1D::operator+= (const Histo1D &toAdd)
- What about if one histo sets ScaledBy, and the other doesn't?!? Aaaargh
- Member YODA::Histo1D::xEdges () const
- Make the +-inf stripping controllable by a default-valued bool arg
- Member YODA::Histo2D::dim () const
- Change this to the total dimension (in v2)
- Member YODA::Histo2D::fill (double x, double y, double weight=1.0, double fraction=1.0)
Replace try block with a check that there is a bin at x, y Reinstate! With outflow axis bin lookup Reinstate! With outflow axis bin lookup - Member YODA::Histo2D::Histo2D (const Histo2D &h, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Histo2D::Histo2D (const Scatter3D &s, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Histo2D::Histo2D (const Profile2D &h, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Histo2D::rmBin (size_t index)
TODO TODO TODO TODO TODO TODO TODO - Member YODA::Histo2D::xEdges () const
- Make the +-inf stripping controllable by a default-valued bool arg
- Member YODA::Histo2D::xMin () const
- Add xMins, xMaxs, xMids, xFoci, and y-versions
- Member YODA::Histo2D::yEdges () const
- Make the +-inf stripping controllable by a default-valued bool arg
- Member YODA::Histo::eraseBin (size_t index)
- Implement, cf. Scatter::rmPoints()
- Member YODA::HistoBin1D::relErr () const
- Throw excp if sumW2 is 0?
- 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::Iterable< T >
- Replace with C++11 std stuff
- Member YODA::mkReader (const std::string &format_name)
- Improve/remove... .ydat?
- Member YODA::mkWriter (const std::string &format_name)
- Improve/remove... .ydat?
- Member YODA::multiply (const Histo1D &histo, const Scatter2D &scatt)
- Create a compatibleBinning function? Or just compare vectors of edges().
- Member YODA::operator/ (double a, const Weights &w)
- Is this really needed?
- Member YODA::operator/ (const Counter &numer, const Counter &denom)
- Or just return a Point1D?
- Member YODA::operator== (const YODA::Point1D &a, const YODA::Point1D &b)
- Base on a named fuzzyEquals(a,b,tol=1e-3) unbound function
- Member YODA::operator== (const Point3D &a, const YODA::Point3D &b)
- Base on a named fuzzyEquals(a,b,tol=1e-3) unbound function
- Member YODA::operator== (const YODA::Point2D &a, const YODA::Point2D &b)
- Base on a named fuzzyEquals(a,b,tol=1e-3) unbound function
- 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::Point2D::xMax () const
- Remove (or extend) when multiple errors are supported No: doesn't need to change since (for now) we only store multiple errors for the highest dimentsion
- Member YODA::Point2D::xMin () const
- Remove (or extend) when multiple errors are supported No: doesn't need to change since (for now) we only store multiple errors for the highest dimentsion
- Member YODA::Point2D::xy () const
- Uniform "coords" accessor across all Scatters: returning fixed-size tuple?
- Member YODA::Point3D::setXYZ (double x, double y, double z)
- Uniform "coords" accessor across all Scatters: returning fixed-size tuple?
- Member YODA::Point< N >::setParent (Scatter *parent)
- void transform(size_t i, FN f) = 0;
- Member YODA::Profile1D::dim () const
- Change this to the total dimension (in v2)
- Member YODA::Profile1D::fill (double x, double y, double weight=1.0, double fraction=1.0)
- Replace try block with a check that there is a bin at x
- Member YODA::Profile1D::numEntries (bool includeoverflows=true) const
- Add integrals? Or are they too ambiguous to make a core function?
- Member YODA::Profile1D::Profile1D (const Profile1D &p, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Profile1D::Profile1D (const Scatter2D &s, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Profile1D::Profile1D (const Histo1D &h, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Profile1D::xEdges () const
- Make the +-inf stripping controllable by a default-valued bool arg
- Member YODA::Profile2D::dim () const
- Change this to the total dimension (in v2)
- Member YODA::Profile2D::fill (double x, double y, double z, double weight=1.0, double fraction=1.0)
Replace try block with a check that there is a bin at x, y Reinstate! With outflow axis bin lookup Reinstate! With outflow axis bin lookup - Member YODA::Profile2D::Profile2D (const Histo2D &h, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Profile2D::Profile2D (const Profile2D &p, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Profile2D::Profile2D (const Scatter3D &s, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Profile2D::rmBin (size_t index)
- TODO
- Member YODA::Profile2D::scaleW (double scalefactor)
- Is this ScaledBy annotation needed?
- Member YODA::Profile2D::scaleZ (double scalefactor)
- Need to rescale overflows too, when they exist.
- Member YODA::Profile2D::xEdges () const
- Make the +-inf stripping controllable by a default-valued bool arg
- Member YODA::Profile2D::xMin () const
- Add xMins, xMaxs, xMids, xFoci, and y-versions
- Member YODA::Profile2D::yEdges () const
- Make the +-inf stripping controllable by a default-valued bool arg
- Member YODA::ProfileBin2D::sumWZ () const
- : Check if it is correct
- Class YODA::Pushable< T, VAL >
- Replace with C++11 std stuff
- Member YODA::read (std::istream &is, std::vector< AnalysisObject *> &aos, const std::string &fmt)
- Use SFINAE magic to allow ~arbitrary collection<AnalysisObject*> (with push_back()?) to be passed
- Member YODA::read (const std::string &filename, std::vector< AnalysisObject *> &aos)
- Use SFINAE magic to allow ~arbitrary collection<AnalysisObject*> (with push_back()?) to be passed
- Member YODA::Reader::read (const std::string &filename, CONT &aos)
- Extend SFINAE Pushable cf. Writer to allow adding to containers of smart ptr type
- Member YODA::Reader::read (std::istream &stream, CONT &aos)
- Extend SFINAE Pushable cf. Writer to allow adding to containers of smart ptr type
- Class YODA::Scatter1D
- Add a generic Scatter base class, providing reset(), rmPoint(), etc.
- Member YODA::Scatter1D::combineWith (const Scatter1D &other)
- Better name?
- Member YODA::Scatter1D::combineWith (const std::vector< Scatter1D > &others)
Better name? Make this the add operation? Convert/extend to accept a Range or generic - Member YODA::Scatter1D::Scatter1D (const Scatter1D &s1, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Scatter1D::variations () const
Reduce duplication between Scatter types Auto-run parseVariations? Why expose the machinery to the user? - Member YODA::Scatter2D::combineWith (const std::vector< Scatter2D > &others)
Better name? Convert/extend to accept a Range or generic - Member YODA::Scatter2D::combineWith (const Scatter2D &other)
- Better name? Make this the add operation?
- Member YODA::Scatter2D::Scatter2D (const Scatter2D &s2, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Scatter2D::variations () const
- Reduce duplication between Scatter types
- Member YODA::Scatter3D::combineWith (const Scatter3D &other)
- Better name?
- Member YODA::Scatter3D::combineWith (const std::vector< Scatter3D > &others)
Better name? Convert to accept a Range or generic - Member YODA::Scatter3D::Scatter3D (const Scatter3D &s3, const std::string &path="")
- Also allow title setting from the constructor?
- Member YODA::Scatter3D::variations () const
- Reduce duplication between Scatter types
- Member YODA::Scatter< N >::addPoints (Points pts)
- More addPoint combinations with arrays for errors
- Member YODA::Scatter< N >::combineWith (const Scatter< N > &other)
- Better name?
- Member YODA::Scatter< N >::combineWith (const std::vector< Scatter< N > > &others)
- Better name?
- Member YODA::Scatter< N >::~Scatter ()
- Add a generic Scatter base class, providing reset(), rmPoint(), etc.
- Member YODA::SFINAE::yes [1]
- Replace by C++11 std::false/true_type
- Member YODA::subtract (const Scatter2D &scatt, const Histo1D &histo)
- Create a compatibleBinning function? Or just compare vectors of edges().
- Member YODA::subtract (const Histo1D &histo, const Scatter2D &scatt)
- Create a compatibleBinning function? Or just compare vectors of edges().
- Member YODA::toIntegralEfficiencyHisto (const Histo1D &h, bool includeunderflow=true, bool includeoverflow=true)
Rename/alias as mkIntegralEff Or throw a LowStatsError exception if h.effNumEntries() == 0? Provide optional alt behaviours Need to check that bins are all positive? Integral could be zero due to large +ve/-ve in different bins :O Should the total integral *error*be sqrt(sumW2)? Or more complex, cf. Simon etc.?Or throw a LowStatsError exception if h.effNumEntries() == 0? Provide optional alt behaviours Need to check that bins are all positive? Integral could be zero due to large +ve/-ve in different bins :O Should the total integral *error*be sqrt(sumW2)? Or more complex, cf. Simon etc.?Or throw a LowStatsError exception if h.effNumEntries() == 0? Provide optional alt behaviours Need to check that bins are all positive? Integral could be zero due to large +ve/-ve in different bins :O Should the total integral *error*be sqrt(sumW2)? Or more complex, cf. Simon etc.?Or throw a LowStatsError exception if h.effNumEntries() == 0? Provide optional alt behaviours Should the total integral *error*be sqrt(sumW2)? Or more complex, cf. Simon etc.?Or throw a LowStatsError exception if h.effNumEntries() == 0? Provide optional alt behaviours Should the total integral *error*be sqrt(sumW2)? Or more complex, cf. Simon etc.?Or throw a LowStatsError exception if h.effNumEntries() == 0? Provide optional alt behaviours Should the total integral *error*be sqrt(sumW2)? Or more complex, cf. Simon etc.?- Member YODA::toIntegralHisto (const Histo1D &h, bool includeunderflow=true)
Rename/alias as mkIntegral Check that the histogram binning has no gaps, otherwise throw a BinningError Check that the histogram binning has no gaps, otherwise throw a BinningError Check that the histogram binning has no gaps, otherwise throw a BinningError Check that the histogram binning has no gaps, otherwise throw a BinningError Check that the histogram binning has no gaps, otherwise throw a BinningError Check that the histogram binning has no gaps, otherwise throw a BinningError - Member YODA::toScatter2D (const TH1 &th1, bool scalebywidth=false)
Check that direct Scatter filling gives the same result at mkScatter(h) for ROOT -> YODA toProfile1D: TProfile -> Profile1D toScatter2D: TGraph(AsymmErrs) -> Scatter2D toProfile1D: TProfile -> Profile1D toScatter2D: TGraph(AsymmErrs) -> Scatter2D toProfile1D: TProfile -> Profile1D toScatter2D: TGraph(AsymmErrs) -> Scatter2D toProfile1D: TProfile -> Profile1D toScatter2D: TGraph(AsymmErrs) -> Scatter2D - Member YODA::toTGraph (const Scatter2D &s)
Convert a YODA Profile2D to a ROOT TProfile2D Check/improve/extend. Check/improve/extend. Check/improve/extend. Check/improve/extend. - Member YODA::toTH1D (const Histo1D &h, bool scalebywidth=false)
- Check/improve/extend – needs SetBinError or not?
- Member YODA::toTH2D (const Histo2D &h, bool scalebyarea=false)
Check/improve/extend – needs SetBinError or not? Connect up when supported in YODA... if 2D overflows are possible in ROOT?! Connect up when supported in YODA... if 2D overflows are possible in ROOT?! Connect up when supported in YODA... if 2D overflows are possible in ROOT?! Connect up when supported in YODA... if 2D overflows are possible in ROOT?! - Member YODA::toTProfile (const Profile1D &p)
Check/improve/extend. How to set all the y-weights in ROOT profiles? Need to set the following, according to Roman Lysak: Need to set the following, according to Roman Lysak: Need to set the following, according to Roman Lysak: Need to set the following, according to Roman Lysak: - Member YODA::transformX (Scatter2D &s, FNX fx)
- Member YODA::transformX (Scatter3D &s, FNX fx)
- Member YODA::transformX (Scatter1D &s, FNX fx)
- Member YODA::transformY (Scatter3D &s, FNY fy)
- Member YODA::transformY (Scatter2D &s, FNY fy)
- Member YODA::transformZ (Scatter3D &s, FNZ fz)
- 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 (std::ostream &stream, const std::vector< const AnalysisObject *> &aos)
Remove the head/body/foot distinction? Why specifically LowStatsError? Why specifically LowStatsError? - Member YODA::Writer::write (std::ostream &stream, const AOITER &begin, const AOITER &end)
- Add SFINAE trait checking for AOITER = DerefableToAO
- Member YODA::Writer::write (const std::string &filename, const AOITER &begin, const AOITER &end)
- Add SFINAE trait checking for AOITER = DerefableToAO
- Member YODA::WriterAIDA::write (const std::string &filename, const AOITER &begin, const AOITER &end)
- Add SFINAE trait checking for AOITER = DerefableToAO
- Member YODA::WriterAIDA::write (std::ostream &stream, const AOITER &begin, const AOITER &end)
- Add SFINAE trait checking for AOITER = DerefableToAO
- Member YODA::WriterFLAT::write (std::ostream &stream, const AOITER &begin, const AOITER &end)
- Add SFINAE trait checking for AOITER = DerefableToAO
- Member YODA::WriterFLAT::write (const std::string &filename, const AOITER &begin, const AOITER &end)
- Add SFINAE trait checking for AOITER = DerefableToAO
- Member YODA::WriterYODA::write (const std::string &filename, const AOITER &begin, const AOITER &end)
- Add SFINAE trait checking for AOITER = DerefableToAO
- Member YODA::WriterYODA::write (std::ostream &stream, const AOITER &begin, const AOITER &end)
- Add SFINAE trait checking for AOITER = DerefableToAO
- Member YODA::WriterYODA::writeHisto2D (std::ostream &stream, const Histo2D &h)
- Disabled for now, reinstate with a
*full*set of outflow info to allow marginalisation - Member YODA::WriterYODA::writeProfile2D (std::ostream &stream, const Profile2D &p)
- Disabled for now, reinstate with a
*full*set of outflow info to allow marginalisation - Member YODA::WriterYODA::writeScatter2D (std::ostream &stream, const Scatter2D &s)
Change ordering to {vals} {errs} {errs} ... Change ordering to {vals} {errs} {errs} ... - Member YODA::WriterYODA::writeScatter3D (std::ostream &stream, const Scatter3D &s)
Change ordering to {vals} {errs} {errs} ... Change ordering to {vals} {errs} {errs} ...
Generated on Wed Mar 31 2021 17:08:57 for YODA - Yet more Objects for Data Analysis by 1.8.13 |