Definition at line 20 of file TH1Merger.h.
Public Types | |
enum | EMergerType { kNotCompatible = -1 , kAllSameAxes = 0 , kAllNoLimits = 1 , kHasNewLimits = 2 , kAllLabel = 3 , kLabelAndNewLimits = 4 , kAutoP2HaveLimits = 5 , kAutoP2NeedLimits = 6 } |
Public Member Functions | |
TH1Merger (TH1 &h, TCollection &l, Option_t *opt="") | |
~TH1Merger () | |
Bool_t | operator() () |
Function performing the actual merge. | |
Static Public Member Functions | |
static Bool_t | AxesHaveLimits (const TH1 *h) |
static Int_t | CheckForDuplicateLabels (const TH1 *hist) |
Check if histogram has duplicate labels Return an integer with bit set correponding on the axis that has duplicate labels e.g. | |
static Int_t | FindBinNumber (Int_t ibin, const TAxis &inAxis, TAxis &outAxis) |
static Int_t | FindFixBinNumber (Int_t ibin, const TAxis &inAxis, const TAxis &outAxis) |
static Bool_t | HasDuplicateLabels (const THashList *labels) |
Find a duplicate labels in an axis label list. | |
static Bool_t | IsBinEmpty (const TH1 *hist, Int_t bin, Int_t profileDim=0) |
helper function for merging | |
Private Member Functions | |
Bool_t | AutoP2BufferMerge () |
Bool_t | AutoP2BuildAxes (TH1 *) |
Determine final boundaries and number of bins for histograms created in power-of-2 autobin mode. | |
Bool_t | AutoP2Merge () |
Bool_t | BufferMerge () |
void | CopyBuffer (TH1 *hsrc, TH1 *hdes) |
void | DefineNewAxes () |
Function to define new histogram axis when merging It is call only in case of merging with different axis or with the buffer (kHasNewLimits) | |
Bool_t | DifferentAxesMerge () |
Merged histogram when axis can be different. | |
EMergerType | ExamineHistograms () |
Examine the list of histograms to find out which type of Merge we need to do Pass the input list containing the histogram to merge and h0 which is the initial histogram on which all the histogram of the list will be merged This are the possible cases: | |
Bool_t | LabelMerge (bool newLimits=false) |
Merge histograms with labels and if newLimits is set support the case that one of the axis can set new limits, if the axes are compatible. | |
void | MergeBin (const TH1 *hist, Int_t inbin, Int_t outbin) |
void | MergeBin (const TProfile *hist, Int_t inbin, Int_t outbin) |
void | MergeBin (const TProfile2D *hist, Int_t inbin, Int_t outbin) |
void | MergeBin (const TProfile3D *hist, Int_t inbin, Int_t outbin) |
template<class TProfileType > | |
void | MergeProfileBin (const TProfileType *p, Int_t ibin, Int_t outbin) |
Bool_t | SameAxesMerge () |
Private Attributes | |
TH1 * | fH0 |
TH1 * | fHClone |
histogram on which the list is merged | |
TList | fInputList |
copy of fH0 - managed by this class | |
Bool_t | fIsProfile1D = kFALSE |
Bool_t | fIsProfile2D = kFALSE |
Bool_t | fIsProfile3D = kFALSE |
Bool_t | fIsProfileMerge = kFALSE |
UInt_t | fNewAxisFlag |
TAxis | fNewXAxis |
TAxis | fNewYAxis |
TAxis | fNewZAxis |
Bool_t | fNoCheck = kFALSE |
Bool_t | fNoLabelMerge = kFALSE |
#include </github/home/ROOT-CI/src/hist/hist/src/TH1Merger.h>
Enumerator | |
---|---|
kNotCompatible | |
kAllSameAxes | |
kAllNoLimits | |
kHasNewLimits | |
kAllLabel | |
kLabelAndNewLimits | |
kAutoP2HaveLimits | |
kAutoP2NeedLimits |
Definition at line 23 of file TH1Merger.h.
|
inline |
Definition at line 64 of file TH1Merger.h.
|
inline |
Definition at line 91 of file TH1Merger.h.
|
private |
Definition at line 589 of file TH1Merger.cxx.
Determine final boundaries and number of bins for histograms created in power-of-2 autobin mode.
Return kTRUE if compatible, updating fNewXaxis accordingly; return kFALSE if something wrong.
The histograms are not merge-compatible if
1. have different variable-size bins 2. larger bin size is not an integer multiple of the smaller one 3. the final estimated range is smalle then the bin size
Definition at line 81 of file TH1Merger.cxx.
|
private |
Definition at line 632 of file TH1Merger.cxx.
Definition at line 20 of file TH1Merger.cxx.
|
private |
Definition at line 730 of file TH1Merger.cxx.
Check if histogram has duplicate labels Return an integer with bit set correponding on the axis that has duplicate labels e.g.
duplicate labels on x axis : return 1 duplicate labels on x and z axis : return 5
Definition at line 925 of file TH1Merger.cxx.
Definition at line 555 of file TH1Merger.cxx.
|
private |
Function to define new histogram axis when merging It is call only in case of merging with different axis or with the buffer (kHasNewLimits)
Definition at line 489 of file TH1Merger.cxx.
|
private |
Merged histogram when axis can be different.
Histograms are merged looking at bin center positions
Definition at line 802 of file TH1Merger.cxx.
|
private |
Examine the list of histograms to find out which type of Merge we need to do Pass the input list containing the histogram to merge and h0 which is the initial histogram on which all the histogram of the list will be merged This are the possible cases:
Definition at line 220 of file TH1Merger.cxx.
|
inlinestatic |
Definition at line 45 of file TH1Merger.h.
|
inlinestatic |
Definition at line 36 of file TH1Merger.h.
Find a duplicate labels in an axis label list.
Definition at line 898 of file TH1Merger.cxx.
helper function for merging
profileDim | 0 if it's a regular TH1 merge (default), 1 for TProfile, 2 for TProfile2D and 3 for TProfile3D |
Definition at line 1137 of file TH1Merger.cxx.
Merge histograms with labels and if newLimits is set support the case that one of the axis can set new limits, if the axes are compatible.
Definition at line 956 of file TH1Merger.cxx.
Definition at line 1156 of file TH1Merger.cxx.
Definition at line 129 of file TH1Merger.h.
|
inlineprivate |
Definition at line 130 of file TH1Merger.h.
|
inlineprivate |
Definition at line 131 of file TH1Merger.h.
|
private |
Definition at line 1178 of file TH1Merger.cxx.
Bool_t TH1Merger::operator() | ( | ) |
Function performing the actual merge.
Definition at line 28 of file TH1Merger.cxx.
|
private |
Definition at line 756 of file TH1Merger.cxx.
|
private |
Definition at line 139 of file TH1Merger.h.
|
private |
histogram on which the list is merged
Definition at line 140 of file TH1Merger.h.
|
private |
copy of fH0 - managed by this class
Definition at line 141 of file TH1Merger.h.
Definition at line 136 of file TH1Merger.h.
Definition at line 137 of file TH1Merger.h.
Definition at line 138 of file TH1Merger.h.
Definition at line 135 of file TH1Merger.h.
|
private |
Definition at line 145 of file TH1Merger.h.
|
private |
Definition at line 142 of file TH1Merger.h.
|
private |
Definition at line 143 of file TH1Merger.h.
|
private |
Definition at line 144 of file TH1Merger.h.
Definition at line 134 of file TH1Merger.h.
Definition at line 133 of file TH1Merger.h.