Changeset 426 in Sophya


Ignore:
Timestamp:
Sep 24, 1999, 9:15:56 AM (26 years ago)
Author:
ansari
Message:

alpha delta a partir croisement galax

Location:
trunk/Poubelle/archTOI.old
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Poubelle/archTOI.old/archeopsfile.cc

    r419 r426  
    867867
    868868
    869 long ArcheopsFile::getRawBolo(int ibolo, int imesure) {    // donnee brute, avec seulement soustraction offset
     869double ArcheopsFile::getRawBolo(int ibolo, int imesure) {    // donnee brute, avec seulement soustraction offset
    870870  int nb_coups,aa; 
    871871  block_type_bolo* blk = imesure >= 0 ? lastBolo() : llastBolo();
     
    883883  //cout << s*(((val_DS(ibolo,imesure)-aa)<<1)/nb_coups) << "\n";
    884884
    885   return s*(((val_DS(ibolo,imesure)-aa)<<1)/nb_coups);
     885  return s*(((val_DS(ibolo,imesure)-aa)<<1)/double(nb_coups));
    886886}
    887887
     
    10201020}
    10211021
    1022 long ArcheopsFile::getSSTSignalCN(int idiode, int imesure) {
     1022double ArcheopsFile::getSSTSignalCN(int idiode, int imesure) {
    10231023  return getSSTRawSignalCN(SSTHandler::getDiodPermut(idiode),imesure);
    10241024}
    10251025
    1026 long ArcheopsFile::getSSTRawSignalCN(int ichannel, int imesure) {
     1026double ArcheopsFile::getSSTRawSignalCN(int ichannel, int imesure) {
    10271027  // Si pas bloc comprime -> 0
    10281028  if (lastSSTComp() == NULL) return 0;
  • trunk/Poubelle/archTOI.old/archeopsfile.h

    r419 r426  
    130130  int getBoloBlockNum();
    131131  int getBoloCompBlockNum();
    132   long getRawBolo(int ibolo, int imesure);   // donnee brute, avec seulement soustraction offset
     132  double getRawBolo(int ibolo, int imesure);   // donnee brute, avec seulement soustraction offset
    133133  double getRawBoloCN(int ibolo, int imesure);  // bruit de compression, sur donnee brute
    134134  double getMuVBoloCN(int ibolo, int imesure);  // bruit de compression, en microVolts
     
    152152  long getSSTRawSignal(int iDiode, int imesure);
    153153  long getSSTSignal(int iDiode, int imesure);
    154   long getSSTRawSignalCN(int iDiode, int imesure);
    155   long getSSTSignalCN(int iDiode, int imesure);
     154  double getSSTRawSignalCN(int iDiode, int imesure);
     155  double getSSTSignalCN(int iDiode, int imesure);
    156156  double getSSTStarZ(int iStar, int imesure);
    157157  double getSSTStarF(int iStar, int imesure);
  • trunk/Poubelle/archTOI.old/archtoi.cc

    r416 r426  
    133133  cout << "processing" << endl;
    134134  while (iter.Next()) {
    135     int nn = iter.getSampleIndex();
     135    int nn = iter.getSampleIndex() / iter.getUnderSampling(); // Only for tick mark...
    136136    #ifdef __MWERKS__
    137137    yield();
  • trunk/Poubelle/archTOI.old/asigps.cc

    r363 r426  
    1313  double omjd=0;
    1414  while (f) {
    15     char line[200];
    16     f.getline(line,200);
     15    char line[500];
     16    f.getline(line,500);
    1717    if (!f) break;
    1818    char*p = line;
  • trunk/Poubelle/archTOI.old/templocator.cc

    r424 r426  
    8585  double azCr1, azCr2;
    8686  int rc = PlGalCross(ts/3600., lat, (90. - 41.), alpG, delG, azCr1, azCr2);
     87  if (rc != 0) return; // pas deux points d'intersection
    8788 
     89  // Il faut determiner le croisement principal, ie le plus proche
     90  // du centre galactique. Pendant le vol de Trapani, c'etait celui
     91  // le plus proche de 220° d'azimut.
     92 
     93  double azCross = azCr1;
     94  if (fabs(azCr2-220) < fabs(azCr1-220)) azCross = azCr2;
     95 
     96  double rotSpeed = 360./(crossings[icross] - crossings[icross-1]); // °/sample
     97 
     98  azimBolGC = azCross + (sampleNum - crossings[icross-1])*rotSpeed;
     99  if (azimBolGC > 360) azimBolGC -= 360;
    88100}
     101
     102void TempLocator::getAltAzBolo(int sampleNum, int ibolo, double& elv, double& az) {
     103  findGeomFromGC(sampleNum);
     104  double delElv = 0;
     105  double delAz = 0;  // relative to ch3-bolo6
     106  elv = -99999;
     107  az  = -99999;
     108  switch (ibolo) {
     109    case 11:
     110      delElv =   0;
     111      delAz  =   0.78;
     112      break;
     113    case 8:
     114      delElv =   0.78 * sqrt(3.)/2.;
     115      delAz  =   0.78 * 3./2.;
     116      break;
     117    case 13:
     118      delElv = - 0.78 * sqrt(3.)/2.;
     119      delAz  =   0.78 * 3./2.;
     120      break;
     121    case 9:
     122      delElv =   0.78 * sqrt(3.)/2.;
     123      delAz  =   0.78 * 1./2.;
     124      break;
     125    case 4:
     126      delElv =   0.;
     127      delAz  =   0.78 * 2.;
     128      break;
     129    case 15:
     130      delElv =   0.;
     131      delAz  =   0.;
     132      break;
     133    default:
     134      return;
     135  }
     136  delAz /= cos(41 * M_PI/180);
     137  elv = 41. + delElv;
     138  az  = azimBolGC + delAz;
     139  return;
     140}
     141
     142double TempLocator::getAzimutBolo(int sampleNum, int ibolo) {
     143  double elv, az;
     144  getAltAzBolo(sampleNum, ibolo, elv, az);
     145  return az;
     146}
     147
     148double TempLocator::getElvBolo(int sampleNum, int ibolo) {
     149  double elv, az;
     150  getAltAzBolo(sampleNum, ibolo, elv, az);
     151  return elv;
     152}
     153
     154double TempLocator::getAlphaBolo(int sampleNum, int ibolo) {
     155  double elv, az;
     156  getAltAzBolo(sampleNum, ibolo, elv, az);
     157  double ha;
     158  aa_hadec (lat * M_PI/180, elv * M_PI/180, az * M_PI/180, &ha, &dec);
     159  ra = - (ha * 180. / M_PI / 15) + (ts/3600.);
     160  dec = dec * 180. / M_PI;
     161  return ra;
     162}
     163
     164double TempLocator::getDeltaBolo(int sampleNum, int ibolo) {
     165  double elv, az;
     166  getAltAzBolo(sampleNum, ibolo, elv, az);
     167  double ha;
     168  aa_hadec (lat * M_PI/180, elv * M_PI/180, az * M_PI/180, &ha, &dec);
     169  ra = - (ha * 180. / M_PI / 15) + (ts/3600.);
     170  dec = dec * 180. / M_PI;
     171  return dec;
     172}
     173
    89174
    90175
  • trunk/Poubelle/archTOI.old/templocator.h

    r423 r426  
    1919  double getAlphaBolo(int sampleNum, int ibolo);
    2020  double getDeltaBolo(int sampleNum, int ibolo);
     21 
     22  void getAltAzBolo(int sampleNum, int ibolo, double& elv, double& az);
    2123
    2224protected:
  • trunk/Poubelle/archTOI.old/toiiter.cc

    r419 r426  
    5252 
    5353 initDone = false;
     54 
     55 underSample = 1;
    5456}
    5557
     
    8789 
    8890  initDone = x.initDone;
     91  underSample = x.underSample;
    8992}
    9093
     
    238241        trigMask |= block_gps_mask;
    239242        break;
    240       case azimut:
     243      case azimutBolo:
    241244        trigMask |= block_bolo_mask;
    242245        //file->needSSTProcessMask(SSTHandler::findPeriod);
     
    353356}
    354357
    355 
    356358bool TOIIter::Next() {
     359  for (int ii=0; ii<underSample; ii++)
     360    if (!Next1()) return false;
     361  return true;
     362}
     363
     364bool TOIIter::Next1() {
    357365  if (!initDone) Init();
    358366  while (1) {
     
    484492   case tsid:
    485493     return file->hasGPSPos();
    486    case azimut:
     494   case azimutBolo:
    487495   case alphaAxis:
    488496   case deltaAxis:
     497   case alphaBolo:
     498   case deltaBolo:
    489499     return true;
    490500     //return (file->lastGPS() != NULL && file->lastSST() != NULL);
    491501   case alphaSst:
    492502   case deltaSst:
    493    case alphaBolo:
    494    case deltaBolo:
    495503     return false;
    496504     
     
    589597     tSid.setLongitude(file->getGPSLong());
    590598     return tSid.getLST(getMJD());
    591    case azimut:
     599   case azimutBolo:
    592600   case alphaAxis:
    593    case deltaAxis: {
     601   case deltaAxis:
     602   case alphaBolo:
     603   case deltaBolo: {
    594604        double lat, lon;
    595605        if (auxGPS) {
     
    606616        if ((kind) == alphaAxis) return tempLocator.getAlphaZenith();
    607617        if ((kind) == deltaAxis) return tempLocator.getDeltaZenith();
     618        if ((kind) == azimutBolo) return tempLocator.getAzimutBolo(getSampleIndex(),index);
     619        if ((kind) == alphaBolo) return tempLocator.getAlphaBolo(getSampleIndex(),index);
     620        if ((kind) == deltaBolo) return tempLocator.getDeltaBolo(getSampleIndex(),index);
    608621        return 0;
    609622     }
     
    668681     case altitude:
    669682       return file->blockNum() == file->getGPSBlockNum() && imes==0;
    670      case azimut:
     683     case azimutBolo:
     684     case alphaBolo:
     685     case deltaBolo:
    671686       return true; // $CHECK$ with SSTHandler
    672687     case alphaAxis:
     
    726741}
    727742 
     743int TOIIter::getUnderSampling() {
     744  return underSample;
     745}
     746
    728747int TOIIter::getSampleIndex() {
    729748  if (!initDone) Init();
  • trunk/Poubelle/archTOI.old/toiiter.h

    r419 r426  
    4747  altitude,      // position ballon, m
    4848  tsid,          // temps sideral en secondes
    49   azimut,        // azimut centre optique ???
     49  azimutBolo,    // azimut
    5050  alphaAxis,     //
    5151  deltaAxis,     //
     
    7979   int    getBlockSampleIndex();        // numero d''echantillon dans dernier bloc bolo
    8080   int    getSampleIndex();             // numero d''echantillon
     81   int    getUnderSampling();           
    8182   double getMJD();           
    8283
     
    103104   void ScanFiles(); // Parcourt tous les fichiers, cherche le premier echantillon...
    104105   
     106   bool Next1();
    105107   bool NextSample(); // no test of trange
    106108   bool NextFile();
     
    147149   TSid tSid;
    148150   
     151   int underSample;
     152   
    149153   private:
    150154   bool initDone;
  • trunk/Poubelle/archTOI.old/toisvr.cc

    r420 r426  
    4040  if (tEnd>0)   iter.tEnd = tEnd;
    4141}
     42
     43void TOISvr::setUnderSample(int n) {
     44  if (n<=1) n=1;
     45  iter.underSample = n;
     46}
     47
    4248 
    4349void TOISvr::addInfo(TOIKind kind, int index, bool triggering, bool interp) {
     
    133139    else tsttoi(altitude)
    134140    else tsttoi(tsid)
    135     else tsttoi(azimut)
     141    else tsttoi(azimutBolo)
    136142    else tsttoi(alphaAxis)
    137143    else tsttoi(deltaAxis)
     
    198204  } else if (key == "#FILE") {
    199205    addFile(arg);
     206  } else if (key == "#UNDERSAMPLE") {
     207    setUnderSample(atoi(arg.c_str()));
    200208  } else if (key == "#RECORDER") {
    201209    onBoardRecorderFiles(true);
     
    228236  processRequest("#PERECH 0.005836818076");
    229237  processRequest("#ASIGPS ASI_GPS_archeops1999.ascii");
     238  processRequest("#COMMENT Archtoi -- 23 september 1999 -- Eric Aubourg CEA/DAPNIA");
    230239  processRequest("#COMMENT ***WARNING***");
    231240  processRequest("#COMMENT ***SOME TOI'S ARE PRELIMINARY***");
    232241  processRequest("#COMMENT gyroSpeed is not calibrated");
    233   processRequest("#COMMENT azimut/alpha/delta use galaxy crossings");
     242  processRequest("#COMMENT azimut/alpha/delta use galaxy crossings and ASI GPS data");
    234243  processRequest("#COMMENT and assume no pendulation");
    235  
    236 }
     244  processRequest("#COMMENT boloTens2 is not protected against glitches");
     245  processRequest("#COMMENT sst software has not been updated to last DY code");
     246  processRequest("#COMMENT trajectory info only while italian TM got GPS info");
     247  processRequest("#COMMENT boloTemp is not implemented");
     248 
     249}
  • trunk/Poubelle/archTOI.old/toisvr.h

    r417 r426  
    2828 
    2929  void setTimeInterval(double tStart, double tEnd);
     30  void setUnderSample(int n);
    3031 
    3132  void addInfo(TOIKind kind, int index, bool triggering=true, bool interp=false);
Note: See TracChangeset for help on using the changeset viewer.