ROOT logo
// $Id: THealPixCube.h,v 1.6 2009/01/12 20:51:24 oxon Exp $
// Author: Akira Okumura 2008/07/11

/*****************************************************************************
   Copyright (C) 2008-, Akira Okumura
   All rights reserved.
******************************************************************************/

#ifndef T_HEAL_PIX_CUBE
#define T_HEAL_PIX_CUBE

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// THealPixCube                                                         //
//                                                                      //
// Cubic HEALPix Image class                                            //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include "THealPix.h"

class THealPixCube : public TNamed {
private:
  THealPixCube& operator=(const THealPixCube&); // Not implemented
  THealPixCube(const THealPixCube& cube); // Not implemented

protected:
  TAxis         fWaxis;   //W axis descriptor
  Double_t      fMaximum; //Maximum value for plotting
  Double_t      fMinimum; //Minimum value for plotting
  Int_t         fN;       //Number of HEALPix
  THealPix**    fHeals;   //[fN]Pointer to array of THealPix

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); // 3D HEALPix histogram
};

//______________________________________________________________________________
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); // 3D HEALPix histogram (one float per channel)
};

//______________________________________________________________________________
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); // 3D HEALPix histogram (one double per channel)
};

#endif // T_HEAL_PIX_CUBE
 THealPixCube.h:1
 THealPixCube.h:2
 THealPixCube.h:3
 THealPixCube.h:4
 THealPixCube.h:5
 THealPixCube.h:6
 THealPixCube.h:7
 THealPixCube.h:8
 THealPixCube.h:9
 THealPixCube.h:10
 THealPixCube.h:11
 THealPixCube.h:12
 THealPixCube.h:13
 THealPixCube.h:14
 THealPixCube.h:15
 THealPixCube.h:16
 THealPixCube.h:17
 THealPixCube.h:18
 THealPixCube.h:19
 THealPixCube.h:20
 THealPixCube.h:21
 THealPixCube.h:22
 THealPixCube.h:23
 THealPixCube.h:24
 THealPixCube.h:25
 THealPixCube.h:26
 THealPixCube.h:27
 THealPixCube.h:28
 THealPixCube.h:29
 THealPixCube.h:30
 THealPixCube.h:31
 THealPixCube.h:32
 THealPixCube.h:33
 THealPixCube.h:34
 THealPixCube.h:35
 THealPixCube.h:36
 THealPixCube.h:37
 THealPixCube.h:38
 THealPixCube.h:39
 THealPixCube.h:40
 THealPixCube.h:41
 THealPixCube.h:42
 THealPixCube.h:43
 THealPixCube.h:44
 THealPixCube.h:45
 THealPixCube.h:46
 THealPixCube.h:47
 THealPixCube.h:48
 THealPixCube.h:49
 THealPixCube.h:50
 THealPixCube.h:51
 THealPixCube.h:52
 THealPixCube.h:53
 THealPixCube.h:54
 THealPixCube.h:55
 THealPixCube.h:56
 THealPixCube.h:57
 THealPixCube.h:58
 THealPixCube.h:59
 THealPixCube.h:60
 THealPixCube.h:61
 THealPixCube.h:62
 THealPixCube.h:63
 THealPixCube.h:64
 THealPixCube.h:65
 THealPixCube.h:66
 THealPixCube.h:67
 THealPixCube.h:68
 THealPixCube.h:69
 THealPixCube.h:70
 THealPixCube.h:71
 THealPixCube.h:72
 THealPixCube.h:73
 THealPixCube.h:74
 THealPixCube.h:75
 THealPixCube.h:76
 THealPixCube.h:77
 THealPixCube.h:78
 THealPixCube.h:79
 THealPixCube.h:80
 THealPixCube.h:81
 THealPixCube.h:82
 THealPixCube.h:83
 THealPixCube.h:84
 THealPixCube.h:85
 THealPixCube.h:86
 THealPixCube.h:87
 THealPixCube.h:88
 THealPixCube.h:89