#ifndef _evt_SimRadioPulse_h_ #define _evt_SimRadioPulse_h_ #include #include #include #include #include namespace evt { /** \class SimRadioPulse SimRadioPulse.h "evt/SimRadioPulse.h" \brief Data structure for simulated Radio pulses \author Tim Huege \date 11 Aug 2008 \version $Id$ \todo a lot \ingroup shower */ class SimRadioPulse { public: SimRadioPulse(); double GetBinning() const { return fEfieldTimeSeries->GetBinning(); } ///< Get the sampling time scale void SetBinning(const double samplingtime) ///< Set the sampling time scale { fEfieldTimeSeries->SetBinning(samplingtime); } double GetStartTime() const { return fStartTime; } ///< Get the timestamp of the first sample void SetStartTime(const double starttime) ///< Set the timestamp of the first sample { fStartTime = starttime; } const utl::TraceV3D& GetEfieldTimeSeries() const { return *fEfieldTimeSeries; } ///< Get the Trace of the simulated electric field utl::TraceV3D& GetEfieldTimeSeries() { return *fEfieldTimeSeries; } ///< Get the Trace of the simulated electric field utl::Point GetLocation(const utl::CoordinateSystemPtr& localCoordinateSystem) const ///< Get the location to which the radio pulse is associated, based on a given local coordinate system { return utl::Point(fRelativeNorthing, fRelativeEasting, fRelativeHeight, localCoordinateSystem); } void SetRelativeCoordinates(double northing, double easting, double height) { fRelativeNorthing = northing; fRelativeEasting = easting; fRelativeHeight = height; } private: double fStartTime; ///< absolute time of the first sample of the time-series utl::InitializedShadowPtr fEfieldTimeSeries; ///< the Trace holding the electric field time series double fRelativeNorthing; ///< the location at which the pulse was simulated double fRelativeEasting; double fRelativeHeight; }; } #endif // Configure (x)emacs for this file ... // Local Variables: // mode: c++ // End: