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) |
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 |
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 588 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 80 of file TH1Merger.cxx.
|
private |
Definition at line 631 of file TH1Merger.cxx.
Definition at line 19 of file TH1Merger.cxx.
|
private |
Definition at line 729 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 914 of file TH1Merger.cxx.
Definition at line 554 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 488 of file TH1Merger.cxx.
|
private |
Merged histogram when axis can be different.
Histograms are merged looking at bin center positions
Definition at line 801 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 219 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 887 of file TH1Merger.cxx.
helper function for merging
Definition at line 1125 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 945 of file TH1Merger.cxx.
Definition at line 1132 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 1154 of file TH1Merger.cxx.
Bool_t TH1Merger::operator() | ( | ) |
Function performing the actual merge.
Definition at line 27 of file TH1Merger.cxx.
|
private |
Definition at line 755 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.