#ifndef POINTING_DRIFT_SCALING_06_09_2008 #define POINTING_DRIFT_SCALING_06_09_2008 /** @class PointingDriftScaling.h @author Brian Magill @creation date 6/9/2008 $Date:$ $Revision:$ @copyright (©) Copyright 2008 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 Calculates the factor for normalling the solar source model */ #include class PointingDriftScaling { bool sunsetMode; double calStart; double calEnd; unsigned long sampleSize; std::valarray time; public: PointingDriftScaling():sunsetMode(false), calStart(0), calEnd(0), sampleSize(0), time(0) { } PointingDriftScaling(bool mode, double start, double end, unsigned long size, std::valarray const &ti) { sunsetMode = mode; calStart = start; calEnd = end; sampleSize = size; time.resize(ti.size() ); time = ti; } PointingDriftScaling(PointingDriftScaling const & rhs) { sunsetMode = rhs.sunsetMode; calStart = rhs.calStart; calEnd = rhs.calEnd; sampleSize = rhs.sampleSize; time.resize(rhs.timeSize()); time = rhs.time; } PointingDriftScaling const & operator = (PointingDriftScaling const &rhs) { if (this == &rhs) return *this; sunsetMode = rhs.sunsetMode; calStart = rhs.calStart; calEnd = rhs.calEnd; sampleSize = rhs.sampleSize; time.resize(rhs.timeSize()); time = rhs.time; return *this; }; ~PointingDriftScaling() { }; double operator()(std::valarray const & model) const; unsigned long timeSize() const { return time.size(); } }; #endif