Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
THStack.h
Go to the documentation of this file.
1// @(#)root/hist:$Id$
2// Author: Rene Brun 10/12/2001
3
4/*************************************************************************
5 * Copyright (C) 1995-2001, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_THStack
13#define ROOT_THStack
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// THStack //
19// //
20// A collection of histograms //
21// //
22//////////////////////////////////////////////////////////////////////////
23
24#include "TNamed.h"
25#include "TObjArray.h"
26
27#ifdef R__LESS_INCLUDES
28class TH1;
29class TList;
30class TAxis;
31#else
32#include "TH1.h"
33#endif
34
35class TBrowser;
36class TFileMergeInfo;
37
38class THStack : public TNamed {
39private:
40 THStack& operator=(const THStack&) = delete;
41
42protected:
43 TList *fHists{nullptr}; ///< Pointer to array of TH1
44 TObjArray *fStack{nullptr}; ///<! Pointer to array of sums of TH1
45 TH1 *fHistogram{nullptr}; ///< Pointer to histogram used for drawing axis
46 Double_t fMaximum{-1111}; ///< Maximum value for plotting along y
47 Double_t fMinimum{-1111}; ///< Minimum value for plotting along y
48
49 void BuildStack();
50
51 void BuildAndPaint(Option_t *chopt, Bool_t paint);
52
53public:
54
56 THStack(const char *name, const char *title);
57 THStack(TH1* hist, Option_t *axis="x",
58 const char *name = nullptr, const char *title = nullptr,
59 Int_t firstbin = 1, Int_t lastbin = -1,
60 Int_t firstbin2 = 1, Int_t lastbin2 = -1,
61 Option_t *proj_option = "", Option_t *draw_option = "");
62 THStack(const THStack &hstack);
63 ~THStack() override;
64 virtual void Add(TH1 *h, Option_t *option="");
65 void BuildPrimitives(Option_t *chopt = "") { BuildAndPaint(chopt, kFALSE); }
66 void Browse(TBrowser *b) override;
67 Int_t DistancetoPrimitive(Int_t px, Int_t py) override;
68 void Draw(Option_t *chopt="") override;
69 TH1 *GetHistogram() const;
70 TList *GetHists() const { return fHists; }
71 TIter begin() const;
72 TIter end() const { return TIter::End(); }
73 Int_t GetNhists() const;
77 TAxis *GetXaxis() const;
78 TAxis *GetYaxis() const;
79 TAxis *GetZaxis() const;
80 void ls(Option_t *option="") const override;
81 virtual Long64_t Merge(TCollection* li, TFileMergeInfo *info);
82 virtual void Modified();
83 void Paint(Option_t *chopt = "") override;
84 void Print(Option_t *chopt = "") const override;
85 void RecursiveRemove(TObject *obj) override;
86 void SavePrimitive(std::ostream &out, Option_t *option = "") override;
87 virtual void SetHistogram(TH1 *h) { fHistogram = h; }
88 virtual void SetMaximum(Double_t maximum=-1111); // *MENU*
89 virtual void SetMinimum(Double_t minimum=-1111); // *MENU*
90
91 ClassDefOverride(THStack,2) //A collection of histograms
92};
93
94#endif
95
#define b(i)
Definition RSha256.hxx:100
#define h(i)
Definition RSha256.hxx:106
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
double Double_t
Definition RtypesCore.h:59
long long Long64_t
Definition RtypesCore.h:80
const char Option_t
Definition RtypesCore.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:341
Option_t Option_t option
char name[80]
Definition TGX11.cxx:110
Class to manage histogram axis.
Definition TAxis.h:30
Using a TBrowser one can browse all ROOT objects.
Definition TBrowser.h:37
Collection abstract base class.
Definition TCollection.h:65
TH1 is the base class of all histogram classes in ROOT.
Definition TH1.h:58
The Histogram stack class.
Definition THStack.h:38
TIter begin() const
Get iterator over internal hists list.
Definition THStack.cxx:1089
~THStack() override
THStack destructor.
Definition THStack.cxx:323
void BuildPrimitives(Option_t *chopt="")
Definition THStack.h:65
THStack()
Definition THStack.h:55
void ls(Option_t *option="") const override
List histograms in the stack.
Definition THStack.cxx:651
TObjArray * fStack
! Pointer to array of sums of TH1
Definition THStack.h:44
void BuildAndPaint(Option_t *chopt, Bool_t paint)
Create all additional objects and stack (if specified)
Definition THStack.cxx:708
Double_t fMinimum
Minimum value for plotting along y.
Definition THStack.h:47
void BuildStack()
build sum of all histograms Build a separate list fStack containing the running sum of all histograms
Definition THStack.cxx:389
TList * GetHists() const
Definition THStack.h:70
TAxis * GetYaxis() const
Get y axis of the histogram used to draw the stack.
Definition THStack.cxx:624
virtual Long64_t Merge(TCollection *li, TFileMergeInfo *info)
Merge the THStack in the TList into this stack.
Definition THStack.cxx:664
TH1 * GetHistogram() const
Returns a pointer to the histogram used to draw the axis Takes into account the two following cases.
Definition THStack.cxx:480
virtual Double_t GetMaximum(Option_t *option="")
returns the maximum of all added histograms returns the maximum of all histograms if option "nostack"...
Definition THStack.cxx:494
virtual void SetHistogram(TH1 *h)
Definition THStack.h:87
void RecursiveRemove(TObject *obj) override
Recursively remove object from the list of histograms.
Definition THStack.cxx:1011
virtual void Add(TH1 *h, Option_t *option="")
add a new histogram to the list Only 1-d and 2-d histograms currently supported.
Definition THStack.cxx:364
void Print(Option_t *chopt="") const override
Print the list of histograms.
Definition THStack.cxx:997
TObjArray * GetStack()
Return pointer to Stack. Build it if not yet done.
Definition THStack.cxx:596
THStack & operator=(const THStack &)=delete
Int_t GetNhists() const
Return the number of histograms in the stack.
Definition THStack.cxx:587
virtual Double_t GetMinimum(Option_t *option="")
returns the minimum of all added histograms returns the minimum of all histograms if option "nostack"...
Definition THStack.cxx:543
void Paint(Option_t *chopt="") override
Paint the list of histograms.
Definition THStack.cxx:700
TIter end() const
Definition THStack.h:72
TList * fHists
Pointer to array of TH1.
Definition THStack.h:43
virtual void SetMaximum(Double_t maximum=-1111)
Set maximum.
Definition THStack.cxx:1071
TH1 * fHistogram
Pointer to histogram used for drawing axis.
Definition THStack.h:45
TAxis * GetZaxis() const
Get z axis of the histogram used to draw the stack.
Definition THStack.cxx:639
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitive as a C++ statement(s) on output stream out.
Definition THStack.cxx:1021
void Browse(TBrowser *b) override
Browse.
Definition THStack.cxx:379
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute distance from point px,py to each graph.
Definition THStack.cxx:412
virtual void Modified()
invalidate sum of histograms
Definition THStack.cxx:687
virtual void SetMinimum(Double_t minimum=-1111)
Set minimum.
Definition THStack.cxx:1080
TAxis * GetXaxis() const
Get x axis of the histogram used to draw the stack.
Definition THStack.cxx:609
Double_t fMaximum
Maximum value for plotting along y.
Definition THStack.h:46
static TIter End()
Pointing to the element after the last - to a nullptr value in our case.
A doubly linked list.
Definition TList.h:38
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
An array of TObjects.
Definition TObjArray.h:31
Mother of all ROOT objects.
Definition TObject.h:41
th1 Draw()