#ifndef T_HEAL_PIX_CUBE
#define T_HEAL_PIX_CUBE
#include "THealPix.h"
class THealPixCube : public TNamed {
private:
THealPixCube& operator=(const THealPixCube&);
THealPixCube(const THealPixCube& cube);
protected:
TAxis fWaxis;
Double_t fMaximum;
Double_t fMinimum;
Int_t fN;
THealPix** fHeals;
protected:
THealPixCube();
THealPixCube(const char* name, const char* title, Int_t nbins,
Double_t wlow, Double_t wup);
public:
virtual ~THealPixCube();
virtual Int_t GetN() const {return fN;}
virtual THealPix* GetSlice(Int_t n) const;
virtual Int_t GetType() const = 0;
virtual std::string GetTypeString() const = 0;
TAxis* GetWaxis() const {return &((THealPixCube*)this)->fWaxis;}
THealPix* operator[](Int_t n) const;
ClassDef(THealPixCube, 1);
};
class THealPixCubeF : public THealPixCube {
private:
protected:
THealPixCubeF();
public:
THealPixCubeF(const char* name, const char* title, Int_t order, Int_t nbins,
Double_t wlow, Double_t wup, Bool_t nested = kFALSE);
virtual ~THealPixCubeF();
virtual Int_t GetType() const;
virtual std::string GetTypeString() const;
static THealPixCubeF* ReadFits(const char* fname, const char* colname);
ClassDef(THealPixCubeF, 1);
};
class THealPixCubeD : public THealPixCube {
private:
protected:
THealPixCubeD();
public:
THealPixCubeD(const char* name, const char* title, Int_t order, Int_t nbins,
Double_t wlow, Double_t wup, Bool_t nested = kFALSE);
virtual ~THealPixCubeD();
virtual Int_t GetType() const;
virtual std::string GetTypeString() const;
static THealPixCubeD* ReadFits(const char* fname, const char* colname);
ClassDef(THealPixCubeD, 1);
};
#endif // T_HEAL_PIX_CUBE