#ifndef _evt_BeamQuantities_h_ #define _evt_BeamQuantities_h_ #include namespace evt { /** \class BeamQuantities BeamQuantities.h "evt/BeamQuantities.h" \brief Result quantities of radio beam forming by interferometry. The BeamQuantities class is just a structured way to save the \f$4 + 3\cdot4\f$ double values which are to be determined by radio interferometry. As calculating the individual quantities should be cheap when interferometry calculation is done at all, there is hardly reason to leave out one; so I keep the class design that primitive without the ubiquous ShadowPointer+HasXXX pattern. \author Ingolf Jandt \date April 2011 \version $Id$ \ingroup shower */ class BeamPeak { public: BeamPeak(double height=0.0, double time=0.0, double RMS=0.0, double offset=0.0) : height (height), time (time), RMS (RMS), offset (offset) {} double GetHeight() const { return height; } double GetRMS() const { return RMS; } double GetOffset() const { return offset; } double GetTime() const { return time; } protected: double height; double time; double RMS; double offset; }; class BeamQuantities { public: BeamQuantities(double zenith, double azimuth, double curvature, double cone, BeamPeak &cc, BeamPeak &power, BeamPeak &x) : fZenith (zenith), fAzimuth (azimuth), fCurvature (curvature), fCone (cone), fCCPeak (cc), fPowerPeak (power), fXPeak (x) {} double GetZenith() const { return fZenith; } double GetAzimuth() const { return fAzimuth; } double GetCurvature() const { return fCurvature; } double GetCone() const { return fCone; } const BeamPeak &GetCCPeak() const { return fCCPeak; } // BeamPeak &GetCCPeak() { return fCCPeak; } // writable version not really sensible if the double quantities are const const BeamPeak &GetPowerPeak() const { return fPowerPeak; } // BeamPeak &GetPowerPeak() { return fPowerPeak; } const BeamPeak &GetXPeak() const { return fXPeak; } // BeamPeak &GetXPeak() { return fXPeak; } protected: double fZenith; double fAzimuth; double fCurvature; double fCone; BeamPeak fCCPeak; BeamPeak fPowerPeak; BeamPeak fXPeak; friend class utl::LameShadowPtr; }; } #endif