#ifndef Map2D_h #define Map2D_h #include class Map2D : public TH2D { public: Map2D(); Map2D(const Map2D &m); Map2D(const TH2D &h); virtual ~Map2D(); virtual Map2D &Add(const Map2D *h1, Double_t c1=1); virtual Map2D &Add(const Map2D *h1, const Map2D *h2, Double_t c1=1, Double_t c2=1); virtual Map2D &Shift(Double_t dx=0, Double_t dy=0, Double_t dz=0); 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 Double_t Correlation(const Map2D *h1, Double_t contrast=1); virtual Map2D &Align(const Map2D *h1, Double_t contrast=1); 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