YODA::EstimateStorage< AxisT > Class Template Reference EstimateStorage convenience class based on BinnedStorage. More...
Inheritance diagram for YODA::EstimateStorage< AxisT >:
![]()
Detailed Descriptiontemplate<typename... AxisT> class YODA::EstimateStorage< AxisT > EstimateStorage convenience class based on BinnedStorage.
Definition at line 75 of file BinnedEstimate.h. Member Typedef Documentation◆ BaseT
template<typename... AxisT>
Definition at line 80 of file BinnedEstimate.h. ◆ BinningT
template<typename... AxisT>
Definition at line 81 of file BinnedEstimate.h. ◆ BinT
template<typename... AxisT>
Definition at line 82 of file BinnedEstimate.h. ◆ BinType
template<typename... AxisT>
Definition at line 83 of file BinnedEstimate.h. Constructor & Destructor Documentation◆ EstimateStorage() [1/10]
template<typename... AxisT>
Nullary constructor for unique pointers etc. Definition at line 90 of file BinnedEstimate.h. ◆ EstimateStorage() [2/10]
template<typename... AxisT>
Constructor giving explicit bin edges as rvalue reference. Discrete axes have as many edges as bins. Continuous axes have bins.size()+1 edges, the last one being the upper bound of the last bin. Definition at line 98 of file BinnedEstimate.h. 99 : BaseT(Axis<AxisT>(std::move(binsEdges))...), AnalysisObject(mkTypeString<AxisT...>(), path, title) { }
◆ EstimateStorage() [3/10]
template<typename... AxisT>
Constructor giving explicit bin edges as lvalue reference. Discrete axes have as many edges as bins. Continuous axes have bins.size()+1 edges, the last one being the upper bound of the last bin. Definition at line 106 of file BinnedEstimate.h. ◆ EstimateStorage() [4/10]
template<typename... AxisT>
Constructor giving explicit bin edges as initializer list. Discrete axes have as many edges as bins. Continuous axes have bins.size()+1 edges, the last one being the upper bound of the last bin. Definition at line 114 of file BinnedEstimate.h. 115 : BaseT(Axis<AxisT>(std::move(binsEdges))...), AnalysisObject(mkTypeString<AxisT...>(), path, title) { }
◆ EstimateStorage() [5/10]
template<typename... AxisT>
template<typename EdgeT = double, typename = enable_if_all_CAxisT<EdgeT, AxisT...>>
◆ EstimateStorage() [6/10]
template<typename... AxisT>
Constructor given a binning type. Definition at line 127 of file BinnedEstimate.h. const BinningT & binning() const noexcept Returns dimension underlying binning object reference. Definition BinnedStorage.h:321 ◆ EstimateStorage() [7/10]
template<typename... AxisT>
◆ EstimateStorage() [8/10]
template<typename... AxisT>
template<typename EdgeT = double, typename = enable_if_all_CAxisT<EdgeT, AxisT...>>
◆ EstimateStorage() [9/10]
template<typename... AxisT>
Copy constructor.
Definition at line 143 of file BinnedEstimate.h. ◆ EstimateStorage() [10/10]
template<typename... AxisT>
Move constructor.
Definition at line 149 of file BinnedEstimate.h. Member Function Documentation◆ add() [1/2]
template<typename... AxisT>
Add two EstimateStorages.
Definition at line 343 of file BinnedEstimate.h. 344 {
345 if (*this != est)
346 throw BinningError("Arithmetic operation requires compatible binning!");
349 BaseT::bin(i).add(est.bin(i), pat_uncorr);
350 }
352 return *this;
353 }
void rmAnnotation(const std::string &name) Delete an annotation by name. Definition AnalysisObject.h:198 bool hasAnnotation(const std::string &name) const Check if an annotation is defined. Definition AnalysisObject.h:116 void maskBins(const std::vector< size_t > &indicesToMask, const bool status=true) noexcept Mask a range of bins. Definition BinnedStorage.h:356 size_t numBins(const bool includeOverflows=false, const bool includeMaskedBins=false) const noexcept Number of bins in the BinnedStorage. Definition BinnedStorage.h:331 References YODA::BinnedStorage< BinContentT, AxisT >::bin(), YODA::BinnedStorage< Estimate, AxisT... >::bin(), YODA::AnalysisObject::hasAnnotation(), YODA::BinnedStorage< Estimate, AxisT... >::maskBins(), YODA::BinnedStorage< BinContentT, AxisT >::maskedBins(), YODA::BinnedStorage< Estimate, AxisT... >::numBins(), and YODA::AnalysisObject::rmAnnotation(). Referenced by YODA::EstimateStorage< AxisT >::operator+=(), and YODA::EstimateStorage< AxisT >::operator+=(). ◆ add() [2/2]
template<typename... AxisT>
Add two (rvalue) EstimateStorages.
Definition at line 363 of file BinnedEstimate.h. 364 {
365 if (*this != est)
366 throw BinningError("Arithmetic operation requires compatible binning!");
369 BaseT::bin(i).add(std::move(est.bin(i)), pat_uncorr);
370 }
372 return *this;
373 }
References YODA::BinnedStorage< Estimate, AxisT... >::bin(), YODA::AnalysisObject::hasAnnotation(), YODA::BinnedStorage< Estimate, AxisT... >::maskBins(), YODA::BinnedStorage< Estimate, AxisT... >::numBins(), and YODA::AnalysisObject::rmAnnotation(). ◆ areaUnderCurve()
template<typename... AxisT>
Calculate the volume underneath the EstimateStorage.
Definition at line 504 of file BinnedEstimate.h. 506 {
507 double ret = 0.;
509 const double val = fabs(b.val());
510 const double vol = includeBinVol? b.dVol() : 1.0;
511 if (std::isfinite(vol)) ret += val*vol; // aggregate bin volume
512 }
513 return ret;
514 }
BinsVecWrapper< BinsVecT > bins(const bool includeOverflows=false, const bool includeMaskedBins=false) noexcept Returns bins vector wrapper, which skips masked elements when iterated over. Definition BinnedStorage.h:298 References YODA::BinnedStorage< Estimate, AxisT... >::bins(). Referenced by YODA::EstimateStorage< AxisT >::auc(). ◆ auc()
template<typename... AxisT>
Convenient alias for areaUnderCurve() Definition at line 517 of file BinnedEstimate.h. 519 {
521 }
double areaUnderCurve(const bool includeBinVol=true, const bool includeOverflows=false, const bool includeMaskedBins=false) const Calculate the volume underneath the EstimateStorage. Definition BinnedEstimate.h:504 References YODA::EstimateStorage< AxisT >::areaUnderCurve(). ◆ clone()
template<typename... AxisT>
Make a copy on the stack. Definition at line 153 of file BinnedEstimate.h. 153 {
155 }
EstimateStorage(const std::string &path="", const std::string &title="") Nullary constructor for unique pointers etc. Definition BinnedEstimate.h:90 ◆ covarianceMatrix()
template<typename... AxisT>
Construct a covariance matrix from the error breakdown. Definition at line 526 of file BinnedEstimate.h. 529 {
531 std::vector<std::vector<double> > covM(nBins);
532
533 // initialise cov matrix to be the right shape
534 for (size_t i = 0; i < nBins; ++i) {
535 covM[i] = std::vector<double>(nBins, 0.0);
536 }
537
539
540 // nominal-only case, i.e. total uncertainty, labelled as empty string
541 if (error_sources.size() == 1 && error_sources[0] == "") {
542 size_t i = 0;
545 ++i;
546 }
547 return covM;
548 }
549
550 // more interesting case where we actually have some uncertainty breakdown!
551 std::smatch match;
552 const std::regex re(pat_uncorr, std::regex_constants::icase);
553 for (const std::string& sname : error_sources) {
554 if (sname == "") continue;
555 std::vector<double> systErrs(nBins, 0.0);
556 size_t k = 0;
558 if (b.hasSource(sname)) {
559 const auto& errs = b.err(sname); // dn-up pair
560 systErrs[k] = 0.5 *( fabs(errs.first)+fabs(errs.second));
561 }
562 ++k;
563 }
564 const bool skipOffDiag = (ignoreOffDiagonalTerms
565 || std::regex_search(sname, match, re));
566 for (size_t i = 0; i < nBins; ++i) {
567 for (size_t j = 0; j < nBins; ++j) {
568 if (skipOffDiag && i != j) continue;
569 covM[i][j] += systErrs[i]*systErrs[j];
570 }
571 }
572 }
573
574 return covM;
575 }
References YODA::BinnedStorage< Estimate, AxisT... >::bins(), YODA::BinnedStorage< Estimate, AxisT... >::numBins(), YODA::EstimateStorage< AxisT >::sources(), and YODA::sqr(). ◆ deserializeContent()
template<typename... AxisT>
Content deserialisation for MPI reduce operations. Implements YODA::AnalysisObject. Definition at line 711 of file BinnedEstimate.h. 711 {
712
714 const size_t minLen = 2*nBins;
715 if (data.size() < minLen)
716 throw UserError("Length of serialized data should be at least " + std::to_string(minLen)+"!");
717
718 size_t i = 0;
719 auto itr = data.cbegin();
720 const auto itrEnd = data.cend();
721 const bool fixedLen = data.size() == 2*minLen;
722 while (itr != itrEnd) {
723 // for estimates, the first element represents the central,
724 // the subsequent value represents the number of error pairs
725 const size_t nErrs = fixedLen? 1 : (*(itr + 1) + 0.5); // add 0.5 to avoid rounding issues
726 auto last = itr + 2*(nErrs+1); // last element + 1
727 BaseT::bin(i)._deserializeContent(std::vector<double>{itr, last}, fixedLen);
728 // update for next iteration
729 itr = last;
730 ++i;
731 }
732 }
References YODA::BinnedStorage< Estimate, AxisT... >::bin(), and YODA::BinnedStorage< Estimate, AxisT... >::numBins(). ◆ dim()
template<typename... AxisT>
Total dimension of the object (number of axes + estimate) Implements YODA::AnalysisObject. Definition at line 424 of file BinnedEstimate.h. 424{ return sizeof...(AxisT) + 1; }
◆ edges()
template<typename... AxisT>
template<size_t I, typename E = typename BinningT::template getEdgeT<I>>
Templated version to get edges of axis N by value. +-inf edges are included.
Definition at line 434 of file BinnedEstimate.h. 434 {
435 return BaseT::_binning.template edges<I>(includeOverflows);
436 }
◆ lengthContent()
template<typename... AxisT>
Length of serialized content vector for MPI reduce operations. Implements YODA::AnalysisObject. Definition at line 688 of file BinnedEstimate.h. References YODA::BinnedStorage< Estimate, AxisT... >::bin(), and YODA::BinnedStorage< Estimate, AxisT... >::bins(). ◆ max()
template<typename... AxisT>
template<size_t I, typename E = typename BinningT::template getEdgeT<I>>
Get the highest non-overflow edge of the axis.
Definition at line 462 of file BinnedEstimate.h. 462 {
463 return BaseT::_binning.template max<I>();
464 }
◆ min()
template<typename... AxisT>
template<size_t I, typename E = typename BinningT::template getEdgeT<I>>
Get the lowest non-overflow edge of the axis.
Definition at line 454 of file BinnedEstimate.h. 454 {
455 return BaseT::_binning.template min<I>();
456 }
◆ mkEstimates()
template<typename... AxisT>
template<size_t axisN, typename = std::enable_if_t< (axisN < sizeof...(AxisT) && sizeof...(AxisT)>=2) >>
Split into vector of BinnedEstimates along axisN. The binning dimension of the returned objects are reduced by one unit.
Definition at line 648 of file BinnedEstimate.h. 648 {
649
650 // Need to provide a prescription for how to add the two bin contents
652 auto rtn = BaseT::template mkBinnedSlices<axisN, BinnedEstimate>(how2add, includeOverflows);
654 if (a == "Type") continue;
655 for (size_t i = 0; i < rtn.size(); ++i) {
656 rtn[i].setAnnotation(a, annotation(a));
657 }
658 }
659 for (size_t i = 0; i < rtn.size(); ++i) {
661 }
662
663 return rtn;
664 }
std::vector< std::string > annotations() const Definition AnalysisObject.h:107 const std::string & annotation(const std::string &name) const Get an annotation by name (as a string) Definition AnalysisObject.h:122 References YODA::AnalysisObject::annotation(), YODA::AnalysisObject::annotations(), and YODA::AnalysisObject::path(). ◆ mkInert()
template<typename... AxisT>
Method returns clone of the estimate with streamlined error source. Reimplemented from YODA::AnalysisObject. Definition at line 668 of file BinnedEstimate.h. 669 {
671 rtn->setPath(path);
673 if (b.numErrs() == 1) {
674 try {
675 b.renameSource("", source);
676 }
678 }
679 }
680 return rtn;
681 }
Error for problems introduced outside YODA, to put it nicely. Definition Exceptions.h:86 References YODA::BinnedStorage< BinContentT, AxisT >::bins(), YODA::EstimateStorage< AxisT >::newclone(), YODA::AnalysisObject::path(), and YODA::AnalysisObject::setPath(). ◆ mkScatter()
template<typename... AxisT>
Produce a ScatterND from a EstimateStorage. Definition at line 583 of file BinnedEstimate.h. 585 {
586
587 constexpr size_t N = sizeof...(AxisT);
588
589 ScatterND<N+1> rtn;
592 }
594
597
598 // Create the vector of coordinates
599 Utils::ndarray<double, N+1> vals;
600 // first fill bin centres, use bin index if axis non-arithmetic
602 using isContinuous = typename BinningT::template is_CAxis<I>;
603 using isArithmetic = typename BinningT::template is_Arithmetic<I>;
604 vals[I] = coordPicker<I>(b, std::integral_constant<bool, isArithmetic::value>{},
605 std::integral_constant<bool, isContinuous::value>{});
606 };
607 MetaUtils::staticFor<BinningT::Dimension::value>(indexIfDiscrete);
608 // then fill bin content
609 vals[N] = b.val();
610
611 // Create the vector of error pairs, use 0 if axis not continuous
612 Utils::ndarray<std::pair<double,double>, N+1> errs;
614 using isContinuous = typename BinningT::template is_CAxis<I>;
615 errs[I] = nullifyIfDisc<I>(b, vals[I], std::integral_constant<bool, isContinuous::value>{});
616 };
617 MetaUtils::staticFor<BinningT::Dimension::value>(nullifyDiscrete);
618 const double tot = fabs(b.totalErrPos(pat_match)); // use positive error component
619 errs[N] = { tot, tot };
620
621 // Add the PointND
622 rtn.addPoint( PointND<N+1>(vals, errs) );
623 }
624
625 // Decorate output scatter with the discrete edges
628 using isContinuous = typename BinningT::template is_CAxis<I>;
629 if constexpr( !isContinuous::value ) {
631 if (axis.numBins()) {
632 std::stringstream ss;
633 axis._renderYODA(ss);
634 rtn.setAnnotation("EdgesA" + std::to_string(I+1), ss.str());
635 }
636 }
637 };
638 MetaUtils::staticFor<BinningT::Dimension::value>(decorateEdges);
639
640 return rtn;
641 }
std::vector< double > vals(const bool includeOverflows=false, const bool includeMaskedBins=false) const Get list of central values. Definition BinnedEstimate.h:473 typename std::conjunction< std::is_floating_point< EdgeT >... > all_CAxes Definition BinningUtils.h:18 References YODA::ScatterND< N >::addPoint(), YODA::AnalysisObject::annotation(), YODA::AnalysisObject::annotations(), YODA::BinnedStorage< Estimate, AxisT... >::binning(), YODA::BinnedStorage< Estimate, AxisT... >::bins(), YODA::AnalysisObject::path(), YODA::AnalysisObject::setAnnotation(), and YODA::EstimateStorage< AxisT >::vals(). ◆ newclone()
template<typename... AxisT>
Make a copy on the heap. Implements YODA::AnalysisObject. Definition at line 158 of file BinnedEstimate.h. Referenced by YODA::EstimateStorage< AxisT >::mkInert(). ◆ operator+=() [1/2]
template<typename... AxisT>
Definition at line 355 of file BinnedEstimate.h. 355 {
357 }
EstimateStorage & add(const EstimateStorage &est, const std::string &pat_uncorr="^stat|^uncor") Add two EstimateStorages. Definition BinnedEstimate.h:343 References YODA::EstimateStorage< AxisT >::add(). ◆ operator+=() [2/2]
template<typename... AxisT>
Definition at line 375 of file BinnedEstimate.h. References YODA::EstimateStorage< AxisT >::add(). ◆ operator-=() [1/2]
template<typename... AxisT>
Definition at line 396 of file BinnedEstimate.h. 396 {
398 }
EstimateStorage & subtract(const EstimateStorage &est, const std::string &pat_uncorr="^stat|^uncor") Subtract one EstimateStorages from another one. Definition BinnedEstimate.h:384 References YODA::EstimateStorage< AxisT >::subtract(). ◆ operator-=() [2/2]
template<typename... AxisT>
Definition at line 413 of file BinnedEstimate.h. References YODA::EstimateStorage< AxisT >::subtract(). ◆ operator=() [1/2]
template<typename... AxisT>
Copy assignment. Definition at line 322 of file BinnedEstimate.h. 322 {
323 if (this != &est) {
324 AnalysisObject::operator = (est);
325 BaseT::operator = (est);
326 }
327 return *this;
328 }
virtual AnalysisObject & operator=(const AnalysisObject &ao) noexcept Default copy assignment operator. Definition AnalysisObject.h:61 BinnedStorage & operator=(const BinnedStorage &other) noexcept Copy assignment. Definition BinnedStorage.h:481 References YODA::AnalysisObject::operator=(), and YODA::BinnedStorage< Estimate, AxisT... >::operator=(). ◆ operator=() [2/2]
template<typename... AxisT>
Move assignment. Definition at line 331 of file BinnedEstimate.h. 331 {
332 if (this != &est) {
333 AnalysisObject::operator = (est);
334 BaseT::operator = (std::move(est));
335 }
336 return *this;
337 }
References YODA::AnalysisObject::operator=(), and YODA::BinnedStorage< Estimate, AxisT... >::operator=(). ◆ rebin() [1/2]
template<typename... AxisT>
template<size_t axisN>
Overloaded alias for rebinTo. Definition at line 312 of file BinnedEstimate.h. 312 {
313 rebinTo<axisN>(std::move(newedges));
314 }
◆ rebin() [2/2]
template<typename... AxisT>
template<size_t axisN>
Overloaded alias for rebinBy. Definition at line 279 of file BinnedEstimate.h. 279 {
280 rebinBy<axisN>(n, begin, end);
281 }
◆ rebinBy()
template<typename... AxisT>
template<size_t axisN>
Merge every group of n bins, from start to end inclusive. If the number of bins is not a multiple of n, the last m < n bins on the RHS will also be merged, as the closest possible approach to factor
Definition at line 263 of file BinnedEstimate.h. 263 {
264 if (n < 1) throw UserError("Rebinning requested in groups of 0!");
265 if (!begin) throw UserError("Visible bins start with index 1!");
267 for (size_t m = begin; m < end; ++m) {
270 if (myend > m) {
271 BaseT::template mergeBins<axisN>({m, myend});
272 end -= myend-m; //< reduce upper index by the number of removed bins
273 }
274 }
275 }
size_t numBinsAt(const size_t axisN, const bool includeOverflows=false) const noexcept Number of bins in the BinnedStorage. Definition BinnedStorage.h:339 References YODA::BinnedStorage< Estimate, AxisT... >::numBinsAt(). ◆ rebinTo()
template<typename... AxisT>
template<size_t axisN>
Rebin to the given list of bin edges. Definition at line 285 of file BinnedEstimate.h. 285 {
286 if (newedges.size() < 2)
287 throw UserError("Requested rebinning to an edge list which defines no bins");
288 using thisAxisT = typename BinningT::template getAxisT<axisN>;
289 using thisEdgeT = typename thisAxisT::EdgeT;
290 // get list of shared edges
291 thisAxisT& oldAxis = BaseT::_binning.template axis<axisN>();
292 const thisAxisT newAxis(std::move(newedges));
293 const std::vector<thisEdgeT> eshared = oldAxis.sharedEdges(newAxis);
294 if (eshared.size() != newAxis.edges().size())
295 throw BinningError("Requested rebinning to incompatible edges");
296 // loop over new lower bin edges (= first bin index of merge range)
297 for (size_t begin = 0; begin < eshared.size() - 1; ++begin) {
298 // find index of upper edge along old axis
299 // (subtracting 1 gives index of last bin to be merged)
300 size_t end = oldAxis.index(eshared[begin+1]) - 1;
301 // if the current edge is the last visible edge before the overflow
302 // merge the remaining bins into the overflow
303 if (begin == newAxis.numBins(true)-1) end = oldAxis.numBins(true)-1;
304 // merge this range
305 if (end > begin) BaseT::template mergeBins<axisN>({begin, end});
306 if (eshared.size() == oldAxis.edges().size()) break; // we're done
307 }
308 }
◆ reset()
template<typename... AxisT>
Reset the EstimateStorage. Keep the binning but set all bin contents and related quantities to zero Implements YODA::AnalysisObject. Definition at line 319 of file BinnedEstimate.h. 319{ BaseT::clearBins(); }
References YODA::BinnedStorage< Estimate, AxisT... >::clearBins(). ◆ scale()
template<typename... AxisT>
Rescale as if all fill weights had been different by factor scalefactor. Definition at line 246 of file BinnedEstimate.h. 246 {
249 bin.scale(scalefactor);
250 }
251 }
void setAnnotation(const std::string &name, const T &value) Add or set an annotation by name (templated for remaining types) Definition AnalysisObject.h:166 References YODA::BinnedStorage< Estimate, AxisT... >::bin(), and YODA::AnalysisObject::setAnnotation(). ◆ serializeContent()
template<typename... AxisT>
Content serialisation for MPI reduce operations. Implements YODA::AnalysisObject. Definition at line 696 of file BinnedEstimate.h. 696 {
697 std::vector<double> rtn;
699 rtn.reserve(nBins * 4);
700 for (size_t i = 0; i < nBins; ++i) {
702 std::vector<double> bdata = b._serializeContent(fixed_length);
703 rtn.insert(std::end(rtn),
704 std::make_move_iterator(std::begin(bdata)),
705 std::make_move_iterator(std::end(bdata)));
706 }
707 return rtn;
708 }
References YODA::BinnedStorage< Estimate, AxisT... >::bin(), and YODA::BinnedStorage< Estimate, AxisT... >::numBins(). ◆ sources()
template<typename... AxisT>
Get list of error sources. Definition at line 484 of file BinnedEstimate.h. 484 {
485 // Assemble union of error sources, as it's not guaranteed
486 // that every bin has the same error breakdown
487 std::vector<std::string> rtn;
488
490 std::vector<std::string> keys = b.sources();
491 rtn.insert(std::end(rtn),
492 std::make_move_iterator(std::begin(keys)),
493 std::make_move_iterator(std::end(keys)));
494 }
495 std::sort(rtn.begin(), rtn.end());
496 rtn.erase( std::unique(rtn.begin(), rtn.end()), rtn.end() );
497
498 return rtn;
499 }
References YODA::BinnedStorage< Estimate, AxisT... >::bins(). Referenced by YODA::EstimateStorage< AxisT >::covarianceMatrix(). ◆ subtract() [1/2]
template<typename... AxisT>
Subtract one EstimateStorages from another one.
Definition at line 384 of file BinnedEstimate.h. 385 {
386 if (*this != est)
387 throw BinningError("Arithmetic operation requires compatible binning!");
390 BaseT::bin(i).subtract(est.bin(i), pat_uncorr);
391 }
393 return *this;
394 }
References YODA::BinnedStorage< BinContentT, AxisT >::bin(), YODA::BinnedStorage< Estimate, AxisT... >::bin(), YODA::AnalysisObject::hasAnnotation(), YODA::BinnedStorage< Estimate, AxisT... >::maskBins(), YODA::BinnedStorage< BinContentT, AxisT >::maskedBins(), YODA::BinnedStorage< Estimate, AxisT... >::numBins(), and YODA::AnalysisObject::rmAnnotation(). Referenced by YODA::EstimateStorage< AxisT >::operator-=(), and YODA::EstimateStorage< AxisT >::operator-=(). ◆ subtract() [2/2]
template<typename... AxisT>
Subtract one (rvalue) EstimateStorages from another one. Definition at line 401 of file BinnedEstimate.h. 402 {
403 if (*this != est)
404 throw BinningError("Arithmetic operation requires compatible binning!");
407 BaseT::bin(i) -= std::move(est.bin(i), pat_uncorr);
408 }
410 return *this;
411 }
References YODA::BinnedStorage< Estimate, AxisT... >::bin(), YODA::AnalysisObject::hasAnnotation(), YODA::BinnedStorage< Estimate, AxisT... >::maskBins(), YODA::BinnedStorage< Estimate, AxisT... >::numBins(), and YODA::AnalysisObject::rmAnnotation(). ◆ vals()
template<typename... AxisT>
Get list of central values. Definition at line 473 of file BinnedEstimate.h. 474 {
475 std::vector<double> rtn;
476 rtn.reserve(BaseT::numBins(includeOverflows, includeMaskedBins));
478 rtn.push_back(b.val());
479 }
480 return rtn;
481 }
References YODA::BinnedStorage< Estimate, AxisT... >::bins(), and YODA::BinnedStorage< Estimate, AxisT... >::numBins(). Referenced by YODA::EstimateStorage< AxisT >::mkScatter(). ◆ widths()
template<typename... AxisT>
template<size_t I, typename E = typename BinningT::template getEdgeT<I>>
Templated version to get bin widths of axis N by value. Overflows are included depending on includeOverflows Needed by axis-specific version from AxisMixin
Definition at line 446 of file BinnedEstimate.h. 446 {
447 return BaseT::_binning.template widths<I>(includeOverflows);
448 }
The documentation for this class was generated from the following file:
Generated on Sun Feb 9 2025 18:56:41 for YODA - Yet more Objects for Data Analysis by |