Ignore:
Timestamp:
05/19/08 15:44:32 (16 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mhbase/MH3.h

    r8888 r8893  
    88#include "MH.h"
    99#endif
     10#ifndef MARS_MObjLookup
     11#include "MObjLookup.h"
     12#endif
    1013
    1114class TH1;
     
    1518class MH3 : public MH
    1619{
     20public:
     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
    1732private:
    1833    static const TString gsDefName;
    1934    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
    2047
    2148protected:
     
    2350    Int_t       fDimension;      // Number of dimensions of histogram
    2451    TH1        *fHist;           // Histogram to fill
    25     MData      *fData[3];        // Object from which the data is filled
     52    MData      *fData[4];        // Object from which the data is filled (+additional weight)
    2653    MBinning   *fBins[3];        // Binning set omitting the parlist access
    2754    Double_t    fScale[3];       // Scale for the three axis (eg unit)
     
    4370    enum Type_t {
    4471        kHistogram,
    45         kProfile
     72        kProfile,
    4673    };
    4774
    4875    MH3(const Int_t dim=0, Type_t type=MH3::kHistogram);
    4976    MH3(const TH1 &h1);
    50     MH3(const char *memberx);
     77    MH3(const char *memberx, Type_t type=MH3::kHistogram);
    5178    MH3(const char *memberx, const char *membery, Type_t type=MH3::kHistogram);
    5279    MH3(const char *memberx, const char *membery, const char *memberz, Type_t type=MH3::kHistogram);
     
    75102
    76103    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);
    77123
    78124    // Getter
     
    109155    void Paint(Option_t *opt="");
    110156
    111     ClassDef(MH3, 3) // Generalized 1/2/3D-histogram for Mars variables
     157    ClassDef(MH3, 4) // Generalized 1/2/3D-histogram for Mars variables
    112158};
    113159
Note: See TracChangeset for help on using the changeset viewer.