Changeset 8893 for trunk/MagicSoft/Mars/mhbase/MH3.h
- Timestamp:
- 05/19/08 15:44:32 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/MagicSoft/Mars/mhbase/MH3.h
r8888 r8893 8 8 #include "MH.h" 9 9 #endif 10 #ifndef MARS_MObjLookup 11 #include "MObjLookup.h" 12 #endif 10 13 11 14 class TH1; … … 15 18 class MH3 : public MH 16 19 { 20 public: 21 enum Labels_t { 22 kNoLabels = 0, 23 kLabelsX = BIT(0), 24 kLabelsY = BIT(1), 25 kLabelsZ = BIT(2), 26 kLabelsXY = kLabelsX|kLabelsY, 27 kLabelsXZ = kLabelsX|kLabelsZ, 28 kLabelsYZ = kLabelsY|kLabelsZ, 29 kLabelsXYZ = kLabelsX|kLabelsY|kLabelsZ, 30 }; 31 17 32 private: 18 33 static const TString gsDefName; 19 34 static const TString gsDefTitle; 35 36 // Helper for constructor 37 void Init(); 38 39 // Helper for dealing with labeled histograms 40 MObjLookup *GetLabels(char axe); 41 void InitLabels(TAxis &x) const; 42 void DeflateLabels() const; 43 Labels_t GetLabels() const; 44 const char *GetLabel(Int_t axe, Double_t val) const; 45 46 MObjLookup fLabels[3]; //! Lookup table to conflate and name labels 20 47 21 48 protected: … … 23 50 Int_t fDimension; // Number of dimensions of histogram 24 51 TH1 *fHist; // Histogram to fill 25 MData *fData[ 3]; // Object from which the data is filled52 MData *fData[4]; // Object from which the data is filled (+additional weight) 26 53 MBinning *fBins[3]; // Binning set omitting the parlist access 27 54 Double_t fScale[3]; // Scale for the three axis (eg unit) … … 43 70 enum Type_t { 44 71 kHistogram, 45 kProfile 72 kProfile, 46 73 }; 47 74 48 75 MH3(const Int_t dim=0, Type_t type=MH3::kHistogram); 49 76 MH3(const TH1 &h1); 50 MH3(const char *memberx );77 MH3(const char *memberx, Type_t type=MH3::kHistogram); 51 78 MH3(const char *memberx, const char *membery, Type_t type=MH3::kHistogram); 52 79 MH3(const char *memberx, const char *membery, const char *memberz, Type_t type=MH3::kHistogram); … … 75 102 76 103 void Sumw2() const { if (fHist) fHist->Sumw2(); } 104 105 void InitLabels(Labels_t labels) const; 106 107 void DefaultLabel(char axe, const char *name=0); 108 void DefaultLabelX(const char *name=0) { DefaultLabel('x', name); } 109 void DefaultLabelY(const char *name=0) { DefaultLabel('y', name); } 110 void DefaultLabelZ(const char *name=0) { DefaultLabel('z', name); } 111 112 void DefineLabel(char axe, Int_t label=0, const char *name=0); 113 void DefineLabelX(Int_t label, const char *name) { DefineLabel('x', label, name); } 114 void DefineLabelY(Int_t label, const char *name) { DefineLabel('y', label, name); } 115 void DefineLabelZ(Int_t label, const char *name) { DefineLabel('z', label, name); } 116 117 void DefineLabels(char axe, const TString &labels); 118 void DefineLabelsX(const TString &labels) { DefineLabels('x', labels); } 119 void DefineLabelsY(const TString &labels) { DefineLabels('y', labels); } 120 void DefineLabelsZ(const TString &labels) { DefineLabels('z', labels); } 121 122 void SetWeight(const char *phrase); 77 123 78 124 // Getter … … 109 155 void Paint(Option_t *opt=""); 110 156 111 ClassDef(MH3, 3) // Generalized 1/2/3D-histogram for Mars variables157 ClassDef(MH3, 4) // Generalized 1/2/3D-histogram for Mars variables 112 158 }; 113 159
Note:
See TracChangeset
for help on using the changeset viewer.