/** @file ApplyDark.cpp @author Brian Magill @creation date 1/1/2007 $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 the dark signal correction for a given channel */ #include "ApplyDark.h" #include "SOFIE_namespace.h" using namespace std; ChannelSignals ApplyDark::operator()(ChannelSignals const &in, DarkSigParam const &darkParam) const { int gasId = in.getID(); const int GOOD = 0; valarray strong = in.getSignal(SOFIE::Strong); valarray weak = in.getSignal(SOFIE::Weak); valarray diff = in.getSignal(SOFIE::Diff); if (darkParam.getQuality(SOFIE::Strong) == GOOD) strong = strong - darkParam.getOffset(SOFIE::Strong); if (darkParam.getQuality(SOFIE::Weak) == GOOD) weak = weak - darkParam.getOffset(SOFIE::Weak); if (darkParam.getQuality(SOFIE::Diff) == GOOD) diff = diff - darkParam.getOffset(SOFIE::Diff); double strong_atten = in.getAttenuation(SOFIE::Strong); double weak_atten = in.getAttenuation(SOFIE::Weak); return ChannelSignals(gasId, strong_atten, weak_atten, strong, weak, diff); }