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 86 of file BinnedEstimate.h. Constructor & Destructor Documentation◆ EstimateStorage() [1/10]
template<typename... AxisT>
Nullary constructor for unique pointers etc. Definition at line 93 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 101 of file BinnedEstimate.h. 102 : 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 109 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 117 of file BinnedEstimate.h. 118 : 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 130 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 146 of file BinnedEstimate.h. ◆ EstimateStorage() [10/10]
template<typename... AxisT>
Move constructor.
Definition at line 152 of file BinnedEstimate.h. Member Function Documentation◆ add() [1/2]
template<typename... AxisT>
Add two EstimateStorages.
Definition at line 346 of file BinnedEstimate.h. 347 {
348 if (*this != est)
349 throw BinningError("Arithmetic operation requires compatible binning!");
352 BaseT::bin(i).add(est.bin(i), pat_uncorr);
353 }
355 return *this;
356 }
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 366 of file BinnedEstimate.h. 367 {
368 if (*this != est)
369 throw BinningError("Arithmetic operation requires compatible binning!");
372 BaseT::bin(i).add(std::move(est.bin(i)), pat_uncorr);
373 }
375 return *this;
376 }
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 507 of file BinnedEstimate.h. 509 {
510 double ret = 0.;
512 const double val = fabs(b.val());
513 const double vol = includeBinVol? b.dVol() : 1.0;
514 if (std::isfinite(vol)) ret += val*vol; // aggregate bin volume
515 }
516 return ret;
517 }
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 520 of file BinnedEstimate.h. 522 {
524 }
double areaUnderCurve(const bool includeBinVol=true, const bool includeOverflows=false, const bool includeMaskedBins=false) const Calculate the volume underneath the EstimateStorage. Definition BinnedEstimate.h:507 References YODA::EstimateStorage< AxisT >::areaUnderCurve(). ◆ clone()
template<typename... AxisT>
Make a copy on the stack. Definition at line 156 of file BinnedEstimate.h. 156 {
158 }
EstimateStorage(const std::string &path="", const std::string &title="") Nullary constructor for unique pointers etc. Definition BinnedEstimate.h:93 ◆ covarianceMatrix()
template<typename... AxisT>
Construct a covariance matrix from the error breakdown. Definition at line 529 of file BinnedEstimate.h. 532 {
534 std::vector<std::vector<double> > covM(nBins);
535
536 // initialise cov matrix to be the right shape
537 for (size_t i = 0; i < nBins; ++i) {
538 covM[i] = std::vector<double>(nBins, 0.0);
539 }
540
542
543 // nominal-only case, i.e. total uncertainty, labelled as empty string
544 if (error_sources.size() == 1 && error_sources[0] == "") {
545 size_t i = 0;
548 ++i;
549 }
550 return covM;
551 }
552
553 // more interesting case where we actually have some uncertainty breakdown!
554 std::smatch match;
555 const std::regex re(pat_uncorr, std::regex_constants::icase);
556 for (const std::string& sname : error_sources) {
557 if (sname == "") continue;
558 std::vector<double> systErrs(nBins, 0.0);
559 size_t k = 0;
561 if (b.hasSource(sname)) {
562 const auto& errs = b.err(sname); // dn-up pair
563 systErrs[k] = 0.5 *( fabs(errs.first)+fabs(errs.second));
564 }
565 ++k;
566 }
567 const bool skipOffDiag = (ignoreOffDiagonalTerms
568 || std::regex_search(sname, match, re));
569 for (size_t i = 0; i < nBins; ++i) {
570 for (size_t j = 0; j < nBins; ++j) {
571 if (skipOffDiag && i != j) continue;
572 covM[i][j] += systErrs[i]*systErrs[j];
573 }
574 }
575 }
576
577 return covM;
578 }
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 714 of file BinnedEstimate.h. 714 {
715
717 const size_t minLen = 2*nBins;
718 if (data.size() < minLen)
719 throw UserError("Length of serialized data should be at least " + std::to_string(minLen)+"!");
720
721 size_t i = 0;
722 auto itr = data.cbegin();
723 const auto itrEnd = data.cend();
724 const bool fixedLen = data.size() == 2*minLen;
725 while (itr != itrEnd) {
726 // for estimates, the first element represents the central,
727 // the subsequent value represents the number of error pairs
728 const size_t nErrs = fixedLen? 1 : (*(itr + 1) + 0.5); // add 0.5 to avoid rounding issues
729 auto last = itr + 2*(nErrs+1); // last element + 1
730 BaseT::bin(i)._deserializeContent(std::vector<double>{itr, last}, fixedLen);
731 // update for next iteration
732 itr = last;
733 ++i;
734 }
735 }
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 427 of file BinnedEstimate.h. 427{ 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 437 of file BinnedEstimate.h. 437 {
438 return BaseT::_binning.template edges<I>(includeOverflows);
439 }
◆ lengthContent()
template<typename... AxisT>
Length of serialized content vector for MPI reduce operations. Implements YODA::AnalysisObject. Definition at line 691 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 465 of file BinnedEstimate.h. 465 {
466 return BaseT::_binning.template max<I>();
467 }
◆ 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 457 of file BinnedEstimate.h. 457 {
458 return BaseT::_binning.template min<I>();
459 }
◆ 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 651 of file BinnedEstimate.h. 651 {
652
653 // Need to provide a prescription for how to add the two bin contents
655 auto rtn = BaseT::template mkBinnedSlices<axisN, BinnedEstimate>(how2add, includeOverflows);
657 if (a == "Type") continue;
658 for (size_t i = 0; i < rtn.size(); ++i) {
659 rtn[i].setAnnotation(a, annotation(a));
660 }
661 }
662 for (size_t i = 0; i < rtn.size(); ++i) {
664 }
665
666 return rtn;
667 }
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 671 of file BinnedEstimate.h. 672 {
674 rtn->setPath(path);
676 if (b.numErrs() == 1) {
677 try {
678 b.renameSource("", source);
679 }
681 }
682 }
683 return rtn;
684 }
Error for problems introduced outside YODA, to put it nicely. Definition Exceptions.h:100 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 586 of file BinnedEstimate.h. 588 {
589
590 constexpr size_t N = sizeof...(AxisT);
591
592 ScatterND<N+1> rtn;
595 }
597
600
601 // Create the vector of coordinates
602 Utils::ndarray<double, N+1> vals;
603 // first fill bin centres, use bin index if axis non-arithmetic
605 using isContinuous = typename BinningT::template is_CAxis<I>;
606 using isArithmetic = typename BinningT::template is_Arithmetic<I>;
607 vals[I] = coordPicker<I>(b, std::integral_constant<bool, isArithmetic::value>{},
608 std::integral_constant<bool, isContinuous::value>{});
609 };
610 MetaUtils::staticFor<BinningT::Dimension::value>(indexIfDiscrete);
611 // then fill bin content
612 vals[N] = b.val();
613
614 // Create the vector of error pairs, use 0 if axis not continuous
615 Utils::ndarray<std::pair<double,double>, N+1> errs;
617 using isContinuous = typename BinningT::template is_CAxis<I>;
618 errs[I] = nullifyIfDisc<I>(b, vals[I], std::integral_constant<bool, isContinuous::value>{});
619 };
620 MetaUtils::staticFor<BinningT::Dimension::value>(nullifyDiscrete);
621 const double tot = fabs(b.totalErrPos(pat_match)); // use positive error component
622 errs[N] = { tot, tot };
623
624 // Add the PointND
625 rtn.addPoint( PointND<N+1>(vals, errs) );
626 }
627
628 // Decorate output scatter with the discrete edges
631 using isContinuous = typename BinningT::template is_CAxis<I>;
632 if constexpr( !isContinuous::value ) {
634 if (axis.numBins()) {
635 std::stringstream ss;
636 axis._renderYODA(ss);
637 rtn.setAnnotation("EdgesA" + std::to_string(I+1), ss.str());
638 }
639 }
640 };
641 MetaUtils::staticFor<BinningT::Dimension::value>(decorateEdges);
642
643 return rtn;
644 }
std::vector< double > vals(const bool includeOverflows=false, const bool includeMaskedBins=false) const Get list of central values. Definition BinnedEstimate.h:476 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 161 of file BinnedEstimate.h. Referenced by YODA::EstimateStorage< AxisT >::mkInert(). ◆ operator+=() [1/2]
template<typename... AxisT>
Definition at line 358 of file BinnedEstimate.h. 358 {
360 }
EstimateStorage & add(const EstimateStorage &est, const std::string &pat_uncorr="^stat|^uncor") Add two EstimateStorages. Definition BinnedEstimate.h:346 References YODA::EstimateStorage< AxisT >::add(). ◆ operator+=() [2/2]
template<typename... AxisT>
Definition at line 378 of file BinnedEstimate.h. References YODA::EstimateStorage< AxisT >::add(). ◆ operator-=() [1/2]
template<typename... AxisT>
Definition at line 399 of file BinnedEstimate.h. 399 {
401 }
EstimateStorage & subtract(const EstimateStorage &est, const std::string &pat_uncorr="^stat|^uncor") Subtract one EstimateStorages from another one. Definition BinnedEstimate.h:387 References YODA::EstimateStorage< AxisT >::subtract(). ◆ operator-=() [2/2]
template<typename... AxisT>
Definition at line 416 of file BinnedEstimate.h. References YODA::EstimateStorage< AxisT >::subtract(). ◆ operator=() [1/2]
template<typename... AxisT>
Copy assignment. Definition at line 325 of file BinnedEstimate.h. 325 {
326 if (this != &est) {
327 AnalysisObject::operator = (est);
328 BaseT::operator = (est);
329 }
330 return *this;
331 }
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 334 of file BinnedEstimate.h. 334 {
335 if (this != &est) {
336 AnalysisObject::operator = (est);
337 BaseT::operator = (std::move(est));
338 }
339 return *this;
340 }
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 315 of file BinnedEstimate.h. 315 {
316 rebinTo<axisN>(std::move(newedges));
317 }
◆ rebin() [2/2]
template<typename... AxisT>
template<size_t axisN>
Overloaded alias for rebinBy. Definition at line 282 of file BinnedEstimate.h. 282 {
283 rebinBy<axisN>(n, begin, end);
284 }
◆ 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 266 of file BinnedEstimate.h. 266 {
267 if (n < 1) throw UserError("Rebinning requested in groups of 0!");
268 if (!begin) throw UserError("Visible bins start with index 1!");
270 for (size_t m = begin; m < end; ++m) {
273 if (myend > m) {
274 BaseT::template mergeBins<axisN>({m, myend});
275 end -= myend-m; //< reduce upper index by the number of removed bins
276 }
277 }
278 }
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 288 of file BinnedEstimate.h. 288 {
289 if (newedges.size() < 2)
290 throw UserError("Requested rebinning to an edge list which defines no bins");
291 using thisAxisT = typename BinningT::template getAxisT<axisN>;
292 using thisEdgeT = typename thisAxisT::EdgeT;
293 // get list of shared edges
294 thisAxisT& oldAxis = BaseT::_binning.template axis<axisN>();
295 const thisAxisT newAxis(std::move(newedges));
296 const std::vector<thisEdgeT> eshared = oldAxis.sharedEdges(newAxis);
297 if (eshared.size() != newAxis.edges().size())
298 throw BinningError("Requested rebinning to incompatible edges");
299 // loop over new lower bin edges (= first bin index of merge range)
300 for (size_t begin = 0; begin < eshared.size() - 1; ++begin) {
301 // find index of upper edge along old axis
302 // (subtracting 1 gives index of last bin to be merged)
303 size_t end = oldAxis.index(eshared[begin+1]) - 1;
304 // if the current edge is the last visible edge before the overflow
305 // merge the remaining bins into the overflow
306 if (begin == newAxis.numBins(true)-1) end = oldAxis.numBins(true)-1;
307 // merge this range
308 if (end > begin) BaseT::template mergeBins<axisN>({begin, end});
309 if (eshared.size() == oldAxis.edges().size()) break; // we're done
310 }
311 }
◆ 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 322 of file BinnedEstimate.h. 322{ 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 249 of file BinnedEstimate.h. 249 {
252 bin.scale(scalefactor);
253 }
254 }
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 699 of file BinnedEstimate.h. 699 {
700 std::vector<double> rtn;
702 rtn.reserve(nBins * 4);
703 for (size_t i = 0; i < nBins; ++i) {
705 std::vector<double> bdata = b._serializeContent(fixed_length);
706 rtn.insert(std::end(rtn),
707 std::make_move_iterator(std::begin(bdata)),
708 std::make_move_iterator(std::end(bdata)));
709 }
710 return rtn;
711 }
References YODA::BinnedStorage< Estimate, AxisT... >::bin(), and YODA::BinnedStorage< Estimate, AxisT... >::numBins(). ◆ sources()
template<typename... AxisT>
Get list of error sources. Definition at line 487 of file BinnedEstimate.h. 487 {
488 // Assemble union of error sources, as it's not guaranteed
489 // that every bin has the same error breakdown
490 std::vector<std::string> rtn;
491
493 std::vector<std::string> keys = b.sources();
494 rtn.insert(std::end(rtn),
495 std::make_move_iterator(std::begin(keys)),
496 std::make_move_iterator(std::end(keys)));
497 }
498 std::sort(rtn.begin(), rtn.end());
499 rtn.erase( std::unique(rtn.begin(), rtn.end()), rtn.end() );
500
501 return rtn;
502 }
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 387 of file BinnedEstimate.h. 388 {
389 if (*this != est)
390 throw BinningError("Arithmetic operation requires compatible binning!");
393 BaseT::bin(i).subtract(est.bin(i), pat_uncorr);
394 }
396 return *this;
397 }
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 404 of file BinnedEstimate.h. 405 {
406 if (*this != est)
407 throw BinningError("Arithmetic operation requires compatible binning!");
410 BaseT::bin(i) -= std::move(est.bin(i), pat_uncorr);
411 }
413 return *this;
414 }
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 476 of file BinnedEstimate.h. 477 {
478 std::vector<double> rtn;
479 rtn.reserve(BaseT::numBins(includeOverflows, includeMaskedBins));
481 rtn.push_back(b.val());
482 }
483 return rtn;
484 }
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 449 of file BinnedEstimate.h. 449 {
450 return BaseT::_binning.template widths<I>(includeOverflows);
451 }
The documentation for this class was generated from the following file:
Generated on Mon Oct 28 2024 13:47:24 for YODA - Yet more Objects for Data Analysis by 1.9.8 |