#ifndef CORRECT_DETECTOR_TIME_04_12_06 #define CORRECT_DETECTOR_TIME_04_12_06 /** @file CorrectDetectorTime.h @author Brian Magill @datecreated 04/12/2006 $Date:$ $Revision:$ @copyright (©) Copyright 2006 by GATS Inc. 11864 Canon Blvd., Suite 101, Newport News, VA 23606 All Rights Reserved. No part of this software or publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise without the prior written permission of GATS Inc. @brief: Applies a time correction to a detector signal Applies a time correction to a time offset to a signal and then interpolates the signal back to the original time. Time shift in the detectors is due to a shift caused by the antialiasing filters and MUXing the signals for telemetry */ //---------------------------------------------------------------------- // #include #include class CorrectDetectorTime { private: std::vector offset; ///< offsets due telemetry muxing double filter_shift; ///< time shift due to antialiasing filters public: CorrectDetectorTime():offset(0), filter_shift(0.0) { }; CorrectDetectorTime(std::vector const &ofs, double shift = 0.0): offset(ofs), filter_shift(shift) { }; CorrectDetectorTime(CorrectDetectorTime const &rhs): offset(rhs.offset), filter_shift(rhs.filter_shift) { }; CorrectDetectorTime& operator = (CorrectDetectorTime const& rhs ); ~CorrectDetectorTime() { }; /// /// @param inSignals - array of input signals /// @param time - corresponding time array /// @param outSignals - array of corrected signals /// /// @brief Corrects signals for time shifts due to electronic filtering and MUXing /// void correct_signal(std::vector > const &inSignals, std::valarray const &time, std::vector > &outSignals) const; }; #endif