#ifndef MARS_MMirrorHex #define MARS_MMirrorHex #ifndef MARS_MMirror #include "MMirror.h" #endif class MMirrorHex : public MMirror { private: const static Double_t fgCos30; const static Double_t fgCos60; const static Double_t fgSin60; Double_t fD; // half diameter D or better distance between opposite sides Double_t fMaxR; void SetD(Double_t d) { fD=d/2; fMaxR=fD/fgCos30; } public: MMirrorHex() { SetD(24.75); } // MMirror Double_t GetMaxR() const { return fMaxR; } Double_t GetA() const; Bool_t CanHit(const MQuaternion &p) const; Bool_t HasHit(const MQuaternion &p) const; Int_t ReadM(const TObjArray &tok); // TObject void Paint(Option_t *); void Print(Option_t *) const; ClassDef(MMirrorHex, 1) // A spherical hexagon type mirror }; #endif