128 fSumw2 += weight * weight;
147 :
TH2Poly(
name, title, nX, xlow, xup, nY, ylow, yup)
156 if (!poly)
return nullptr;
158 if (
fBins ==
nullptr) {
203 fTsumwx2 += weight * xcoord * xcoord;
205 fTsumwy2 += weight * ycoord * ycoord;
206 fTsumwxy += weight * xcoord * ycoord;
214 while ((obj = next())) {
216 if (bin->
IsInside(xcoord, ycoord)) {
234 std::vector<TProfile2Poly *> list;
237 for (
int i = 0; i <
size; i++) {
240 return this->
Merge(list);
249 std::cout <<
"[FAIL] TProfile2Poly::Merge: No objects to be merged " << std::endl;
254 std::set<Int_t> numBinUnique;
255 for (
const auto &histo : list) {
256 if (histo->fBins) numBinUnique.insert(histo->fBins->GetSize());
258 if (numBinUnique.size() != 1) {
259 std::cout <<
"[FAIL] TProfile2Poly::Merge: Bin numbers of TProfile2Polys to be merged differ!" << std::endl;
262 Int_t nbins = *numBinUnique.begin();
265 for (
const auto &histo : list) {
267 this->
fTsumw += histo->fTsumw;
268 this->
fTsumw2 += histo->fTsumw2;
269 this->
fTsumwx += histo->fTsumwx;
271 this->
fTsumwy += histo->fTsumwy;
274 this->
fTsumwz += histo->fTsumwz;
286 for (
Int_t i = 0; i < nbins; i++) {
289 for (
const auto &
e : list) {
307 for (
Int_t i = 0; i < nbins; i++) {
325 for (
Int_t i = 0; i < nbins; i++) {
456 std::cout <<
"\t" << cont <<
"\t";
457 if ((i + 1) % 3 == 0) std::cout << std::endl;
460 std::cout <<
"Total: " <<
total << std::endl;
473 while ((obj = next())) {
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
static unsigned int total
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t src
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Collection abstract base class.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
Int_t fNcells
Number of bins(1D), cells (2D) +U/Overflows.
Double_t fTsumw
Total Sum of weights.
Double_t fTsumw2
Total Sum of squares of weights.
Double_t fTsumwx2
Total Sum of weight*X*X.
Double_t fEntries
Number of entries.
TAxis fXaxis
X axis descriptor.
TAxis fYaxis
Y axis descriptor.
Double_t fTsumwx
Total Sum of weight*X.
Helper class to represent a bin in the TH2Poly histogram.
Bool_t IsInside(Double_t x, Double_t y) const
Return "true" if the point (x,y) is inside the bin.
void SetContent(Double_t content)
Double_t GetContent() const
void SetChanged(Bool_t flag)
2D Histogram with Polygonal Bins
TList * fBins
List of bins. The list owns the contained objects.
Int_t GetNumberOfBins() const
Return the number of bins : it should be the size of the bin list.
Int_t fCellX
Number of partition cells in the x-direction of the histogram.
Double_t fStepY
Dimensions of a partition cell.
TList * fCells
[fNCells] The array of TLists that store the bins that intersect with each cell. List do not own the ...
Int_t fCellY
Number of partition cells in the y-direction of the histogram.
Double_t fTsumwxy
Total Sum of weight*X*Y.
void Reset(Option_t *option="") override
Reset this histogram: contents, errors, etc.
Double_t fTsumwy2
Total Sum of weight*Y*Y.
Double_t fTsumwy
Total Sum of weight*Y.
TObject * At(Int_t idx) const override
Returns the object at position idx. Returns 0 if idx is out of range.
Mother of all ROOT objects.
Helper class to represent a bin in the TProfile2Poly histogram.
Double_t GetEntriesW2() const
Double_t GetEntries() const
void Fill(Double_t value, Double_t weight)
Fill.
Double_t GetError() const
Double_t GetEffectiveEntries() const
TProfile2PolyBin()
TProfile2PolyBin constructor.
void UpdateAverage()
Update average.
Double_t GetEntriesVW() const
void UpdateError()
Update error.
Double_t GetEntriesWV2() const
void Merge(const TProfile2PolyBin *toMerge)
Merge.
void ClearStats()
Clear statistics.
2D Profile Histogram with Polygonal Bins.
void PrintOverflowRegions()
Print overflow regions.
Double_t GetOverflowContent(Int_t idx)
Int_t Fill(Double_t xcoord, Double_t ycoord, Double_t value) override
Fill.
Long64_t Merge(const std::vector< TProfile2Poly * > &list)
Merge.
Double_t GetBinEffectiveEntries(Int_t bin) const
Get bin effective entries.
Double_t GetBinError(Int_t bin) const override
Get bin error.
Double_t GetBinEntriesVW(Int_t bin) const
Get bin entries VW.
Double_t GetBinEntriesW2(Int_t bin) const
Get bin entries W2.
friend class TProfile2PolyBin
void SetContentToError()
Set content to error.
Double_t GetBinContent(Int_t bin) const override
Get bin content.
Int_t GetOverflowRegionFromCoordinates(Double_t x, Double_t y)
The overflow regions are calculated by considering x, y coordinates.
void GetStats(Double_t *stats) const override
Fill the array stats from the contents of this profile.
void Reset(Option_t *option="") override
Reset.
void SetContentToAverage()
Set content to average.
Double_t GetBinEntriesWV2(Int_t bin) const
Get bin entries WV2.
Double_t GetBinEntries(Int_t bin) const
Get bin entries.
void SetErrorOption(EErrorType type)
Set error option.
Int_t OverflowIdxToArrayIdx(Int_t val)
TProfile2PolyBin fOverflowBins[kNOverflow]
TProfile2PolyBin * CreateBin(TObject *poly) override
Create bin.