/** @file PointingCoder.h @author Brian Magill @date 4/03/2008 $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 Encodes PointingSigParam objects in relation to an Event object */ #include "PointingCoder.h" #include "SOFIE_namespace.h" using namespace std; void PointingCoder::operator()(Event &event) const { if (paramVect.size() == 0 ) return; if (!paramVect[0].hasData() ) return; EventVar IdVar; IdVar.setName("L1_Pointing_Drift_Correction_Performed"); event.addEventVar(IdVar); unsigned long NumberOfChannels = paramVect.size(); EventVar valOffset("L1_Pointing_Offset", 2*paramVect.size() ); EventVar valAzCoef("L1_Pointing_AzCoef", 2*paramVect.size() ); EventVar valElCoef("L1_Pointing_ElCoef", 2*paramVect.size() ); EventVar valQuality("L1_Pointing_Quality", 2*paramVect.size() ); int indx; for(int i = 0; i < NumberOfChannels; i++) { indx = 2*i; if(i == SOFIE::H2O || i == SOFIE::NO) { valOffset[indx] = paramVect[i].getOffset(SOFIE::Weak); valOffset[indx + 1] = paramVect[i].getOffset(SOFIE::Strong); valAzCoef[indx] = paramVect[i].getAzimCoef(SOFIE::Weak); valAzCoef[indx + 1] = paramVect[i].getAzimCoef(SOFIE::Strong); valElCoef[indx] = paramVect[i].getElevCoef(SOFIE::Weak); valElCoef[indx + 1] = paramVect[i].getElevCoef(SOFIE::Strong); valQuality[indx ] = paramVect[i].getQuality(SOFIE::Weak); valQuality[indx + 1] = paramVect[i].getQuality(SOFIE::Strong); } else { valOffset[indx] = paramVect[i].getOffset(SOFIE::Strong); valOffset[indx + 1] = paramVect[i].getOffset(SOFIE::Weak); valAzCoef[indx] = paramVect[i].getAzimCoef(SOFIE::Strong); valAzCoef[indx + 1] = paramVect[i].getAzimCoef(SOFIE::Weak); valElCoef[indx] = paramVect[i].getElevCoef(SOFIE::Strong); valElCoef[indx + 1] = paramVect[i].getElevCoef(SOFIE::Weak); valQuality[indx ] = paramVect[i].getQuality(SOFIE::Strong); valQuality[indx + 1] = paramVect[i].getQuality(SOFIE::Weak); } } event.addEventVar(valOffset); event.addEventVar(valAzCoef); event.addEventVar(valElCoef); event.addEventVar(valQuality); }