StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StMultiH2F.h
1 
9 #ifndef ClassStMultiH2F
10 #define ClassStMultiH2F
11 
12 #include "TH3.h"
13 #include "TH2.h"
14 class TString;
15 #define StMultiH2FMaxBins 10
16 // change in MaxBins requires change in ClassDef version
17 
18 class StMultiH2F : public TH3F {
19  public:
20  StMultiH2F();
21  StMultiH2F(const char *name,const char *title,Int_t nbinsx,Axis_t xlow,
22  Axis_t xup,Int_t nbinsy,Axis_t ylow,Axis_t yup,Int_t nbinsz);
23  virtual ~StMultiH2F();
24  virtual void Draw(Option_t *option="");
25  // Probably only the "box" and "cont" options are reasonable here
26  virtual void Draw3F(Option_t *option="") { TH3F::Draw(option); } // access inherited
27 
28  virtual void SetNames(Int_t zbin, const char* name)
29  { if (zbin<StMultiH2FMaxBins) names[zbin] = name; }
30  virtual void SetNames(Float_t zbin, const char* name)
31  { SetNames((Int_t) zbin, name); }
32  virtual const char* GetNames(Int_t zbin) const
33  { return (zbin<StMultiH2FMaxBins ? names[zbin].Data() : 0); }
34  virtual const char* GetNames(Float_t zbin) const
35  { return GetNames((Int_t) zbin); }
36  // Overload the Rebin() function to allow naming of z bins with TH3F pointer
37  virtual TH1* Rebin(Int_t ngroup, const char* newname)
38  { SetNames(ngroup, newname); return 0; }
39  virtual TH1* Rebin(Int_t ngroup, const char* newname, const Double_t* xbins)
40  { SetNames(ngroup, newname); return 0; }
41  virtual void SavePrimitive(std::ostream& out, Option_t* option = "");
42  virtual TH2D* GetSubHist(Int_t zbin) { return (subHists ? subHists[zbin] : 0); }
43  protected:
44  TString names[StMultiH2FMaxBins];
45  virtual TH2D* XYProjection(const char* name, Int_t zbin=-1);
46  TH2D** subHists;
47  ClassDef(StMultiH2F,2)
48 };
49 
50 #endif
51 
52 // $Id: StMultiH2F.h,v 1.6 2016/05/27 18:02:41 genevb Exp $
53 // $Log: StMultiH2F.h,v $
54 // Revision 1.6 2016/05/27 18:02:41 genevb
55 // Garbage collection (Coverity), remove unnecessary ROOT types
56 //
57 // Revision 1.5 2013/11/22 16:48:39 genevb
58 // Access to inherited Draw() functions
59 //
60 // Revision 1.4 2013/11/21 22:22:48 genevb
61 // Protect against array out-of-bounds, use inherited axis handles
62 //
63 // Revision 1.3 2012/06/11 15:05:34 fisyak
64 // std namespace
65 //
66 // Revision 1.2 2008/07/09 20:52:38 genevb
67 // Implement SavePrimitive functions
68 //
69 // Revision 1.1 2007/03/13 16:22:32 genevb
70 // Introduce StMultiH2F class
71 //
72 //