Changeset 957 for trunk/src/STFocus.cpp


Ignore:
Timestamp:
03/31/06 17:01:45 (18 years ago)
Author:
mar637
Message:

Polarisation changes according to Ticket #8; Fix Ticket #10

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/STFocus.cpp

    r896 r957  
    3737{
    3838  rotationCol_.attach(table_,"ROTATION");
    39   angleCol_.attach(table_,"ANGLE");
     39  axisCol_.attach(table_,"AXIS");
    4040  tanCol_.attach(table_,"TAN");
     41  handCol_.attach(table_,"HAND");
     42  userCol_.attach(table_,"USERPHASE");
     43  mountCol_.attach(table_,"MOUNT");
     44  xyphCol_.attach(table_,"XYPHASE");
     45  xyphoffCol_.attach(table_,"XYPHASEOFFSET");
    4146}
    4247
     
    5055    static_cast<STSubTable&>(*this) = other;
    5156    rotationCol_.attach(table_,"ROTATION");
    52     angleCol_.attach(table_,"ANGLE");
     57    axisCol_.attach(table_,"AXIS");
    5358    tanCol_.attach(table_,"TAN");
     59    handCol_.attach(table_,"HAND");
     60    userCol_.attach(table_,"USERPHASE");
     61    mountCol_.attach(table_,"MOUNT");
     62    xyphCol_.attach(table_,"XYPHASE");
     63    xyphoffCol_.attach(table_,"XYPHASEOFFSET");
    5464  }
    5565  return *this;
     
    5969  // add to base class table
    6070  table_.addColumn(ScalarColumnDesc<Float>("ROTATION"));
    61   table_.addColumn(ScalarColumnDesc<Float>("ANGLE"));
     71  table_.addColumn(ScalarColumnDesc<Float>("AXIS"));
    6272  table_.addColumn(ScalarColumnDesc<Float>("TAN"));
     73  table_.addColumn(ScalarColumnDesc<Float>("HAND"));
     74  table_.addColumn(ScalarColumnDesc<Float>("USERPHASE"));
     75  table_.addColumn(ScalarColumnDesc<Float>("MOUNT"));
     76  table_.addColumn(ScalarColumnDesc<Float>("XYPHASE"));
     77  table_.addColumn(ScalarColumnDesc<Float>("XYPHASEOFFSET"));
    6378
    6479  // new cached columns
    6580  rotationCol_.attach(table_,"ROTATION");
    66   angleCol_.attach(table_,"ANGLE");
     81  axisCol_.attach(table_,"AXIS");
    6782  tanCol_.attach(table_,"TAN");
     83  handCol_.attach(table_,"HAND");
     84  userCol_.attach(table_,"USERPHASE");
     85  mountCol_.attach(table_,"MOUNT");
     86  xyphCol_.attach(table_,"XYPHASE");
     87  xyphoffCol_.attach(table_,"XYPHASEOFFSET");
    6888}
    6989
    70 uInt STFocus::addEntry( Float rotation, Float angle, Float ftan)
     90uInt STFocus::addEntry( Float fax, Float ftan, Float frot, Float hand,
     91                        Float user, Float mount,
     92                        Float xyphase, Float xyphaseoffset)
    7193{
    72   Table result = table_( near(table_.col("ROTATION"), rotation)
    73                     && near(table_.col("ANGLE"), angle)
    74                     && near(table_.col("TAN"), ftan) );
     94  Table result = table_( near(table_.col("ROTATION"), frot)
     95                    && near(table_.col("AXIS"), fax)
     96                    && near(table_.col("TAN"), ftan)
     97                    && near(table_.col("HAND"), hand)
     98                    && near(table_.col("USERPHASE"), user)
     99                    && near(table_.col("MOUNT"), mount)
     100                    && near(table_.col("XYPHASE"), xyphase)
     101                    && near(table_.col("XYPHASEOFFSET"), xyphaseoffset)
     102                    );
    75103  uInt resultid = 0;
    76104  if ( result.nrow() > 0) {
     
    85113      resultid++;
    86114    }
    87     rotationCol_.put(rno, rotation);
    88     angleCol_.put(rno, angle);
     115    rotationCol_.put(rno, frot);
     116    axisCol_.put(rno, fax);
    89117    tanCol_.put(rno, ftan);
     118    handCol_.put(rno, hand);
     119    userCol_.put(rno, user);
     120    mountCol_.put(rno, mount);
     121    xyphCol_.put(rno, xyphase);
     122    xyphoffCol_.put(rno, xyphaseoffset);
    90123    idCol_.put(rno, resultid);
    91124  }
     
    94127
    95128void asap::STFocus::getEntry( Float& rotation, Float& angle, Float& ftan,
     129                              Float& hand, Float& user, Float& mount,
     130                              Float& xyphase, Float& xyphaseoffset,
    96131                              uInt id) const
    97132{
     
    104139  const TableRecord& rec = row.get(0);
    105140  rotation = rec.asFloat("ROTATION");
    106   angle = rec.asFloat("ANGLE");
     141  angle = rec.asFloat("AXIS");
    107142  ftan = rec.asFloat("TAN");
     143  hand = rec.asFloat("HAND");
     144  user = rec.asFloat("USERPHASE");
     145  mount = rec.asFloat("MOUNT");
     146  xyphase = rec.asFloat("XYPHASE");
     147  xyphaseoffset = rec.asFloat("XYPHASEOFFSET");
    108148}
    109149
    110150
     151casa::Float asap::STFocus::getTotalFeedAngle( casa::uInt id ) const
     152{
     153  Float total = 0.0f;
     154  Table t = table_(table_.col("ID") == Int(id) );
     155  if (t.nrow() == 0 ) {
     156    throw(AipsError("STFocus::getEntry - id out of range"));
     157  }
     158  ROTableRow row(t);
     159  // get first row - there should only be one matching id
     160  const TableRecord& rec = row.get(0);
     161  total += rec.asFloat("ROTATION");
     162  total += rec.asFloat("USERPHASE");
     163  total += rec.asFloat("MOUNT");
     164  return total;
    111165}
     166}
     167
     168casa::Float asap::STFocus::getFeedHand( casa::uInt id ) const
     169{
     170  Table t = table_(table_.col("ID") == Int(id) );
     171  if (t.nrow() == 0 ) {
     172    throw(AipsError("STFocus::getEntry - id out of range"));
     173  }
     174  ROTableRow row(t);
     175  const TableRecord& rec = row.get(0);
     176  return rec.asFloat("HAND");
     177}
     178
Note: See TracChangeset for help on using the changeset viewer.