Ignore:
Timestamp:
Feb 24, 2003, 10:18:01 AM (23 years ago)
Author:
aubourg
Message:

pour piolib

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ArchTOIPipe/TestPipes/quickmap_p.cc

    r1820 r2328  
    22// Parallel version
    33// Eric Aubourg     CEA/DAPNIA/SPP
    4 // $Id: quickmap_p.cc,v 1.4 2001-12-17 23:33:46 aubourg Exp $
     4// $Id: quickmap_p.cc,v 1.5 2003-02-24 09:18:01 aubourg Exp $
    55
    66#include <stdlib.h>
     
    1313#include "toisegment.h"
    1414
     15
    1516#include "sambainit.h"
    1617#include "toi2map.h"
     
    3940    struct {
    4041      string fname;
     42      string flagfname;
     43      vector<FlagToiDef> flags;
    4144      string coord1;  // TOI name
    4245      string coord2;  // TOI name
     
    4548    struct {
    4649      string fname;
     50      string flagfname;
     51      vector<FlagToiDef> flags;
    4752      string toiname;
    4853    } signal;
     
    7277    cout << "  | pointing\n";
    7378    cout << "  | | fname       " << input.pointing.fname << "\n";
     79    cout << "  | | flagfname   " << input.pointing.flagfname << "\n";
     80    for (int i=0; i<input.pointing.flags.size(); i++) {
     81      cout << "  | | | flag      " << i << " : " << input.pointing.flags[i] << "\n";
     82    }
    7483    cout << "  | | coord1      " << input.pointing.coord1 << "\n";
    7584    cout << "  | | coord2      " << input.pointing.coord2 << "\n";
     
    8594    cout << "  | signal\n";
    8695    cout << "  | | fname       " << input.signal.fname << "\n";
     96    cout << "  | | flagfname   " << input.signal.flagfname << "\n";
     97    {for (int i=0; i<input.signal.flags.size(); i++) {
     98      cout << "  | | | flag      " << i << " : " << input.signal.flags[i] << "\n";
     99    }}
    87100    cout << "  | | toiname     " << input.signal.toiname << "\n";
    88101    cout << "  output\n";
     
    150163  DOM_Node n = DOMGetNode(doc, path);
    151164  return n != 0;
     165}
     166
     167void parseFlags(DOM_Node flagnode, vector<FlagToiDef>& flgs) {
     168  DOM_Element elt = (DOM_Element&) flagnode;
     169  DOM_NodeList l = elt.getElementsByTagName("flag");
     170  // prepare array
     171  flgs.clear();
     172  flgs.insert(flgs.begin(), l.getLength(), (FlagToiDef)0);
     173  for (int i = 0; i<l.getLength(); i++) {
     174    DOM_Node node = l.item(i);
     175    DOM_Element elt = (DOM_Element&) node;
     176    DOMString scol = elt.getAttribute("column");
     177    DOMString sval = elt.getAttribute("kind");
     178    int col = atoi(scol.transcode());
     179    int value = atoi(sval.transcode());
     180    flgs[col-1] = (FlagToiDef) value;
     181  }   
    152182}
    153183
     
    183213 
    184214  prefs.input.pointing.fname  = DOMGetString(doc, "/input/pointing/fname");
     215  if (DOMHasOption(doc, "/input/pointing/flags")) {
     216    prefs.input.pointing.flagfname =
     217      DOMGetString(doc, "/input/pointing/flags/fname");
     218    DOM_Node flagnode = DOMGetNode(doc, "/input/pointing/flags");
     219    parseFlags(flagnode, prefs.input.pointing.flags);
     220  }
    185221  prefs.input.pointing.coord1 = DOMGetString(doc, "/input/pointing/coord1","phi");
    186222  prefs.input.pointing.coord2 = DOMGetString(doc, "/input/pointing/coord2","theta");
     
    209245  prefs.input.signal.fname    = DOMGetString(doc, "/input/signal/fname");
    210246  prefs.input.signal.toiname  = DOMGetString(doc, "/input/signal/toiname");
    211 
     247  if (DOMHasOption(doc, "/input/signal/flags")) {
     248    prefs.input.signal.flagfname =
     249      DOMGetString(doc, "/input/signal/flags/fname");
     250    DOM_Node flagnode = DOMGetNode(doc, "/input/signal/flags");
     251    parseFlags(flagnode, prefs.input.signal.flags);
     252  }
    212253  prefs.output.fname          = DOMGetString(doc, "/output/fname");
    213254  prefs.output.wfname         = DOMGetString(doc, "/output/wfname");
     
    276317    inPoint[i]->setImplicitSN();
    277318    inSig[i]->setImplicitSN();
     319    if (prefs.input.pointing.flagfname != "") {
     320      inPoint[i]->setFlagFile(prefs.input.pointing.flagfname, prefs.input.pointing.flags);
     321    }
     322    if (prefs.input.signal.flagfname != "") {
     323      inSig[i]->setFlagFile(prefs.input.signal.flagfname, prefs.input.signal.flags);
     324    }
    278325  }
    279326
Note: See TracChangeset for help on using the changeset viewer.