// // C++ Interface: RowAccumulator // // Description: // // // Author: Malte Marquarding , (C) 2005 // // Copyright: See COPYING file that comes with this distribution // // #include #include #include #include "STDefs.h" namespace asap { class RowAccumulator { public: RowAccumulator(WeightType wt = asap::NONE); ~RowAccumulator(); void add(const casa::Vector& v, const casa::Vector& m, const casa::Vector& tsys, casa::Double interval, casa::Double time); void setUserMask(const casa::Vector& m); casa::Vector getSpectrum() const; casa::Vector getTsys() const; casa::Vector getMask() const; casa::Double getInterval() const; casa::Double getTime() const; void reset(); private: void addSpectrum( const casa::Vector& v, const casa::Vector& m, casa::Float weight); casa::Float addTsys(const casa::Vector& v); casa::Float addInterval(casa::Double inter); void addTime(casa::Double t); WeightType weightType_; casa::Bool initialized_; //these are a Vector casa::MaskedArray spectrum_; casa::MaskedArray n_, weightSum_; casa::Vector userMask_; casa::Vector tsysSum_; casa::Double timeSum_; casa::Double intervalSum_; }; }