ROOT logo
#ifndef Map2D_h
#define Map2D_h

#include <TH1D.h>
#include <TH2D.h>

class Map2D : public TH2D {
 public:
   Map2D();
   Map2D(const Map2D &m);
   Map2D(const TH2D &h);
   virtual ~Map2D();

   using TH2D::Add;
   virtual Map2D &Add(const Map2D *map, Double_t c=1);
   virtual Map2D &Add(const Map2D *map1, const Map2D *map2,
                      Double_t c1=1, Double_t c2=1);
   using TH2D::Fill;
   virtual Map2D &Fill(const Map2D *map);
   virtual Map2D &Shift(Double_t dx=0, Double_t dy=0, Double_t dz=0);
   virtual Map2D &Center();
   virtual Map2D &Level();
   virtual Map2D &Normalize();
   virtual Map2D &Rotate(Double_t phi=0, Double_t theta=0,
                         Double_t psi=0, Int_t degrees=0);
   virtual Map2D &Rescale(Double_t sx=1, Double_t sy=1, Double_t sz=1);
   virtual Map2D &Mask(const Map2D *map, Int_t neg=0, Double_t value=0);
   virtual Map2D &Resize(Double_t xlow, Double_t ylow,
                         Double_t xhigh, Double_t yhigh, Int_t pixels=0) const;

   virtual Int_t ZeroSuppress(Double_t threshold, Double_t zero=0);
   virtual Int_t Despeckle(Int_t maxsize=0);
   virtual Int_t Despike(Double_t maxheight, Int_t regionsize=3);
   virtual Double_t Correlation(const Map2D *map, Double_t contrast=1) const;
   virtual Double_t TotalCurl(const Map2D *Vx, const Map2D *Vy,
                              Map2D **silhouette=0);
   virtual Double_t Curl(const Map2D *Vx, const Map2D *Vy);
   virtual Map2D &Uncurl(const Map2D *Vx, const Map2D *Vy, Int_t comp);
   virtual Double_t Divergence(const Map2D *Vx, const Map2D *Vy);
   virtual Int_t Gradient(Map2D *Vx, Map2D *Vy) const;
   virtual Bool_t GreensFunction(Double_t x0, Double_t y0);
   virtual Double_t PoissonIter(const Map2D *rho=0, const Map2D *mask=0);
   virtual Int_t PoissonSolve(const Map2D *rho, const Map2D *mask=0);
   virtual Int_t LaplaceSolve(const Map2D *mask=0);

   virtual TH1D &Profile(const char *name="prof", const char *title="",
                Int_t nbins=100, Double_t xlow=999., Double_t xhigh=999.);

   static const Double_t zunit2xy;

   ClassDef(Map2D,0);

 protected:
   Map2D *rotateX(Double_t thetarad, Double_t y0, Double_t z0) const;
   Map2D *rotateY(Double_t thetarad, Double_t x0, Double_t z0) const;
   Map2D *rotateZ(Double_t phirad, Double_t x0, Double_t y0) const;
   Map2D *shift(Double_t dx, Double_t dy, Double_t dz) const;
   Map2D *rescale(Double_t sx, Double_t sy, Double_t sz,
                  Double_t x0, Double_t y0, Double_t z0) const;
};

#endif
 Map2D.h:1
 Map2D.h:2
 Map2D.h:3
 Map2D.h:4
 Map2D.h:5
 Map2D.h:6
 Map2D.h:7
 Map2D.h:8
 Map2D.h:9
 Map2D.h:10
 Map2D.h:11
 Map2D.h:12
 Map2D.h:13
 Map2D.h:14
 Map2D.h:15
 Map2D.h:16
 Map2D.h:17
 Map2D.h:18
 Map2D.h:19
 Map2D.h:20
 Map2D.h:21
 Map2D.h:22
 Map2D.h:23
 Map2D.h:24
 Map2D.h:25
 Map2D.h:26
 Map2D.h:27
 Map2D.h:28
 Map2D.h:29
 Map2D.h:30
 Map2D.h:31
 Map2D.h:32
 Map2D.h:33
 Map2D.h:34
 Map2D.h:35
 Map2D.h:36
 Map2D.h:37
 Map2D.h:38
 Map2D.h:39
 Map2D.h:40
 Map2D.h:41
 Map2D.h:42
 Map2D.h:43
 Map2D.h:44
 Map2D.h:45
 Map2D.h:46
 Map2D.h:47
 Map2D.h:48
 Map2D.h:49
 Map2D.h:50
 Map2D.h:51
 Map2D.h:52
 Map2D.h:53
 Map2D.h:54
 Map2D.h:55
 Map2D.h:56
 Map2D.h:57
 Map2D.h:58
 Map2D.h:59
 Map2D.h:60
 Map2D.h:61
 Map2D.h:62