Index: trunk/Poubelle/archTOI.old/Makefile
===================================================================
--- trunk/Poubelle/archTOI.old/Makefile	(revision 435)
+++ 	(revision )
@@ -1,83 +1,0 @@
-ifeq ($(HOSTTYPE), alpha)
-  CXX  = cxx
-endif
-ifndef (CFITSIODIR)
-  CFITSIODIR = ../cfitsio
-endif
-CPPFLAGS    =-O -g -I$(CFITSIODIR)
-
-LDLIBS=-L$(CFITSIODIR)/$(HOSTTYPE) -lcfitsio
-
-default: archtoi
-
-clean:
-	rm -f archtoi *.o archdump
-
-
-archtoi: archtoimain.o archtoi.o archeopsfile.o decompress.o toiiter.o toisvr.o archeops.o \
-         ssthandler.o toiinterpolator.o gpsparser.o asigps.o \
-         auxinterpgps.o tsid.o archparam.o dyffttools.o fft_mayer.o \
-         formepulse.o pisteetoile.o sstetoile.o transfelec.o \
-	 gyrohandler.o aa_hadec.o templocator.o plgalcross.o
-	$(LINK.cc) $^ $(LOADLIBES) $(LDLIBS) -o $@ -lm 
-archdump: archtoidump.o archeopsfile.o decompress.o archeops.o ssthandler.o
-	$(LINK.cc) $^ $(LOADLIBES) $(LDLIBS) -o $@ -lm
-
-aa_hadec.o: aa_hadec.c aa_hadec.h
-archeops.o: archeops.c archeops_28.c archeops.h archeops_28.h
-archeops_24.o: archeops_24.c archeops.h archeops_28.h
-archeops_25.o: archeops_25.c archeops.h archeops_28.h
-archeops_26.o: archeops_26.c archeops.h archeops_28.h
-archeops_27.o: archeops_27.c archeops.h archeops_28.h
-archeops_28.o: archeops_28.c archeops.h archeops_28.h
-decompress.o: decompress.c archeops.h archeops_28.h compress.h
-opendir.o: opendir.c dirent.h
-archeopsfile.o: archeopsfile.cc archeopsfile.h archeops.h \
- archeops_28.h ssthandler.h sstetoile.h pisteetoile.h transfelec.h \
- formepulse.h gpsparser.h gyrohandler.h compress.h
-archparam.o: archparam.cc archparam.h
-archtoi.o: archtoi.cc archeopsfile.h archeops.h archeops_28.h \
- ssthandler.h sstetoile.h pisteetoile.h transfelec.h formepulse.h \
- gpsparser.h toisvr.h toiiter.h auxgps.h tsid.h archtoi.h \
- ../cfitsio/fitsio.h ../cfitsio/longnam.h archparam.h archvers.h
-archtoidump.o: archtoidump.cc archeopsfile.h archeops.h archeops_28.h \
- ssthandler.h sstetoile.h pisteetoile.h transfelec.h formepulse.h \
- gpsparser.h archtoi.h toisvr.h toiiter.h auxgps.h tsid.h \
- ../cfitsio/fitsio.h ../cfitsio/longnam.h
-archtoimain.o: archtoimain.cc archeopsfile.h archeops.h archeops_28.h \
- ssthandler.h sstetoile.h pisteetoile.h transfelec.h formepulse.h \
- gpsparser.h archtoi.h toisvr.h toiiter.h auxgps.h tsid.h \
- ../cfitsio/fitsio.h ../cfitsio/longnam.h
-asigps.o: asigps.cc asigps.h auxinterpgps.h auxgps.h
-auxinterpgps.o: auxinterpgps.cc auxinterpgps.h auxgps.h \
- ../cfitsio/fitsio.h ../cfitsio/longnam.h archvers.h
-dyffttools.o: dyffttools.cc dyffttools.h
-fft_mayer.o: fft_mayer.cc mayer_fft.h trigtbl.h
-formepulse.o: formepulse.cc mayer_fft.h dyffttools.h transfelec.h \
- formepulse.h ssthardware.h
-gpsparser.o: gpsparser.cc gpsparser.h archeops.h archeops_28.h
-gyrohandler.o: gyrohandler.cc gyrohandler.h archeops.h archeops_28.h
-pisteetoile.o: pisteetoile.cc /usr/include/math.h \
- /usr/local/include/g++/iostream.h archparam.h pisteetoile.h \
- sstetoile.h transfelec.h formepulse.h
-plgalcross.o: plgalcross.cc plgalcross.h
-sstetoile.o: sstetoile.cc sstetoile.h
-ssthandler.o: ssthandler.cc ssthandler.h archeops.h archeops_28.h \
- sstetoile.h pisteetoile.h transfelec.h formepulse.h
-templocator.o: templocator.cc templocator.h aa_hadec.h \
- ../cfitsio/fitsio.h ../cfitsio/longnam.h plgalcross.h
-test.o: test.cc archeopsfile.h archeops.h archeops_28.h ssthandler.h \
- sstetoile.h pisteetoile.h transfelec.h formepulse.h gpsparser.h \
- archtoi.h toisvr.h toiiter.h auxgps.h tsid.h ../cfitsio/fitsio.h \
- ../cfitsio/longnam.h
-toiinterpolator.o: toiinterpolator.cc toiinterpolator.h
-toiiter.o: toiiter.cc archeops.h archeops_28.h toiiter.h \
- archeopsfile.h ssthandler.h sstetoile.h pisteetoile.h transfelec.h \
- formepulse.h gpsparser.h auxgps.h tsid.h toiinterpolator.h \
- archparam.h templocator.h
-toisvr.o: toisvr.cc toisvr.h toiiter.h archeopsfile.h archeops.h \
- archeops_28.h ssthandler.h sstetoile.h pisteetoile.h transfelec.h \
- formepulse.h gpsparser.h auxgps.h tsid.h archparam.h asigps.h \
- auxinterpgps.h
-transfelec.o: transfelec.cc transfelec.h
-tsid.o: tsid.cc tsid.h
Index: trunk/Poubelle/archTOI.old/archeops_28.c
===================================================================
--- trunk/Poubelle/archTOI.old/archeops_28.c	(revision 435)
+++ trunk/Poubelle/archTOI.old/archeops_28.c	(revision 436)
@@ -4,4 +4,5 @@
 #include <stdio.h>
 #include "archeops.h"
+#include "arcunit.h"
 
 /* sauve vol trapani 2eme config de vol   */
@@ -962,5 +963,5 @@
 
 
-
+/*
 unsigned int4	val_long(char x)
 {
@@ -974,4 +975,5 @@
 
 
+
 double	val_double(char x)
 {
@@ -991,5 +993,5 @@
 }
 
-
+*/
 
 
Index: trunk/Poubelle/archTOI.old/archeopsfile.cc
===================================================================
--- trunk/Poubelle/archTOI.old/archeopsfile.cc	(revision 435)
+++ trunk/Poubelle/archTOI.old/archeopsfile.cc	(revision 436)
@@ -9,4 +9,5 @@
 extern "C" {
 #include "compress.h"
+#include "arcunit.h"
 }
 #include <iostream.h>
@@ -257,4 +258,6 @@
 ArcheopsFile::ArcheopsFile(string const& fname) {
   f = fopen(fname.c_str(), "rb");
+  setvbuf(f, NULL, _IOFBF, 1024L*1024L);
+
   fn = fname;
   if (!f) throw ArchExc("file not found");
@@ -294,4 +297,5 @@
   fn         = x.fn;
   f = fopen(fn.c_str(), "rb");
+  setvbuf(f, NULL, _IOFBF, 1024L*1024L);
 
   rawMJD     = x.rawMJD;
@@ -867,73 +871,58 @@
 
 
-double ArcheopsFile::getRawBolo(int ibolo, int imesure) {    // donnee brute, avec seulement soustraction offset
-  int nb_coups,aa;  
+double ArcheopsFile::getBoloRawMuV(int ibolo, int imesure) {    // microvolts bruts
   block_type_bolo* blk = imesure >= 0 ? lastBolo() : llastBolo();
-  //cout << "raw " << imesure << " ";
   if (imesure < 0) imesure += nEchBlock();
+  block_type_reglage* reglage = lastReglage();
+  block_type_param*   param = lastParam();
   if (!blk) return 0;
-  block_type_reglage* reglage = lastReglage();
   if (!reglage) return 0;
-
-  nb_coups= reglage->reglage.horloge.nb_mesures/2 - reglage->reglage.horloge.temp_mort;
-  aa = (nb_coups<<14) + (nb_coups*190) ;
-  
+  if (!param) return 0;
+
   int s = imesure % 2 ? 1 : -1;
-  
-  //cout << s*(((val_DS(ibolo,imesure)-aa)<<1)/nb_coups) << "\n";
-
-  return s*(((val_DS(ibolo,imesure)-aa)<<1)/double(nb_coups));
-}
-
-double ArcheopsFile::getRawBoloCN(int ibolo, int imesure) {    
-  // Si pas bloc comprime -> 0
-  if (lastBoloComp() == NULL) return 0;
-  if (numero_block(lastBoloComp()) != numero_block(lastBolo())) return 0;
-  block_type_reglage* reglage = lastReglage();
-  if (!reglage) return 0;
-
-  int nb_coups= reglage->reglage.horloge.nb_mesures/2 - reglage->reglage.horloge.temp_mort;
-  unsigned int4* data = lastBoloComp()->data_bolo[ibolo];
-  // Les deux premieres valeurs sont codees directement...
-  if (imesure<2) return 0;
-  int iExp = (imesure-2)/4 + 1;
-  int expo = data[iExp] & 0xf;
-  int noise = 1 << expo;
-  return (noise << 1)/double(nb_coups)/2.;
-}
-
-
-
-def_gains 
-
-double ArcheopsFile::getMuVBolo(int ibolo, int imesure) { // microvolts, filtre avec filtre carre
-  double y = (getRawBolo(ibolo, imesure-1) + getRawBolo(ibolo, imesure))/2.;
-  //if (imesure%2) y=-y;
+    
+  return s*bolo_muV(&param->param, &reglage->reglage, val_DS(ibolo,imesure), ibolo);
+}
+
+double ArcheopsFile::getBoloRawMuVCN(int ibolo, int imesure) {    
+  // Si pas bloc comprime -> 1 bit
+  int lastbit = 1;
+  if (!(lastBoloComp() == NULL) &&
+      (numero_block(lastBoloComp()) != numero_block(lastBolo()))) {
+    unsigned int4* data = lastBoloComp()->data_bolo[ibolo];
+    // Les deux premieres valeurs sont codees directement...
+    if (imesure>=2) {
+      int iExp = (imesure-2)/4 + 1;
+      int expo = data[iExp] & 0xf;
+      lastbit = 1 << expo;
+    }
+  }
   block_type_reglage* reglage = lastReglage();
   block_type_param*   param = lastParam();
   if (!reglage) return 0;
   if (!param) return 0;
-  //cout << "muv " << imesure << " " << y << "\n";
-  return bol_micro_volt(y,(double)param->param.bolo[ibolo].bolo_gain*gain_ampli(reglage->reglage.bolo[ibolo]));
-  //return ((1e5*y)/(65536.*gain_ampli(reglage->reglage.bolo[ibolo])));
-}
-
-double ArcheopsFile::getMuVBoloCN(int ibolo, int imesure) { // microvolts, sur valeur unique 
-  double y = getRawBoloCN(ibolo, imesure);
-  block_type_reglage* reglage = lastReglage();
-  block_type_param*   param = lastParam();
-  if (!reglage) return 0;
-  if (!param) return 0;
-  return bol_micro_volt(y,(double)param->param.bolo[ibolo].bolo_gain*gain_ampli(reglage->reglage.bolo[ibolo]));
-}
-
-
-double ArcheopsFile::getMuVBolo2(int ibolo, int imesure) { // microvolts, filtre 
+  double noise = (
+    bolo_muV(&param->param, &reglage->reglage, lastbit, ibolo) -
+    bolo_muV(&param->param, &reglage->reglage, 0, ibolo)) /2.;
+
+  return noise; 
+}
+
+
+
+def_gains 
+
+double ArcheopsFile::getBoloMuV(int ibolo, int imesure) { // microvolts, filtre avec filtre carre
+  double y = (getBoloRawMuV(ibolo, imesure-1) + getBoloRawMuV(ibolo, imesure))/2.;
+  return y;
+}
+
+double ArcheopsFile::getBoloMuV2(int ibolo, int imesure) { // microvolts, filtre 
   // On commence par trouver la valeur d'offset, en fittant une droite sur les soustractions
   if (!lastBolo() || !llastBolo()) return 0;
-  block_type_reglage* reglage = lastReglage();
-  block_type_param*   param = lastParam();
-  if (!reglage) return 0;
-  if (!param) return 0;
+  //block_type_reglage* reglage = lastReglage();
+  //block_type_param*   param = lastParam();
+  //if (!reglage) return 0;
+  //if (!param) return 0;
   double sumx=0, sumy=0, sumxy=0, sumx2=0;
   int n=20;
@@ -941,5 +930,5 @@
   for (int i=1; i<=n; i++) {
     double x = -i;
-    double y = s*(getRawBolo(ibolo, imesure-i+1) - getRawBolo(ibolo, imesure-i))/2;
+    double y = s*(getBoloRawMuV(ibolo, imesure-i+1) - getBoloRawMuV(ibolo, imesure-i))/2;
     s = -s;
     sumx += x;
@@ -951,8 +940,42 @@
   double b = (sumy/n) - a*(sumx/n);
   s = imesure % 2 ? 1 : -1;
-  double y = getRawBolo(ibolo, imesure);
+  double y = getBoloRawMuV(ibolo, imesure);
   y = y-s*b;
-  return bol_micro_volt(y,(double)param->param.bolo[ibolo].bolo_gain*gain_ampli(reglage->reglage.bolo[ibolo]));
-}
+  return y;
+}
+
+/*
+double ArcheopsFile::getBoloMuV2(int ibolo, int imesure) { // microvolts, filtre 
+  // On commence par trouver la valeur d'offset, en fittant une droite sur les soustractions
+  if (!lastBolo() || !llastBolo()) return 0;
+  double sumx=0, sumy=0, sumxy=0, sumx2=0;
+  int n=20;
+  int s = (imesure-n) % 2 ? 1 : -1;
+  static double* data = NULL;
+  if (!data) data = new double[n+1];
+  for (int i=0; i<=n; i++) {
+    data[i] = getBoloRawMuV(ibolo, imesure-n+i);
+  }
+  for (int i=0; i<=n; i++) {
+    
+  }
+  for (int i=1; i<=n; i++) {
+    double x = -i;
+    double y = s*(getBoloRawMuV(ibolo, imesure-i+1) - getBoloRawMuV(ibolo, imesure-i))/2;
+    s = -s;
+    sumx += x;
+    sumy += y;
+    sumxy += x*y;
+    sumx2 += x*x;
+  }
+  double a = (sumxy/n - (sumx/n)*(sumy/n)) / (sumx2/n - (sumx/n)*(sumx/n));
+  double b = (sumy/n) - a*(sumx/n);
+  s = imesure % 2 ? 1 : -1;
+  double y = getBoloRawMuV(ibolo, imesure);
+  y = y-s*b;
+  return y;
+}
+*/
+
 
 double ArcheopsFile::getGainAmpli(int ibolo) {
@@ -960,33 +983,41 @@
 }
 
-#define capa(uu)	((parametr.bolo[uu].bolo_bebo==10)?0.000868 * (double)parametr.bolo[uu].bolo_capa:0.001 * (double)parametr.bolo[uu].bolo_capa)		// capa en pF
-#define pt_micA(uu)	((4096. * 22. * 20.) / capa(uu) )			//  pts / micro Amperes
-
-
-#define pt_micV(uu)	(((double)parametr.bolo[uu].bolo_diviseur) / 2441.)	// pts / microvolt
-
 
 double ArcheopsFile::getDACV(int ibolo) {
-  double dacV = dac_V(lastReglage()->reglage.bolo[ibolo]);
-  param_bolo& parametr = lastParam()->param;
-  return dacV / pt_micV(ibolo);
+  block_type_reglage* reglage = lastReglage();
+  block_type_param*   param = lastParam();
+  if (!reglage) return 0;
+  if (!param) return 0;
+  return DAC_muV(&param->param, &reglage->reglage, ibolo);
 }
 
 double ArcheopsFile::getDACI(int ibolo) {
-  double dacI = dac_I(lastReglage()->reglage.bolo[ibolo]);
-  param_bolo& parametr = lastParam()->param;
-  return dacI / pt_micA(ibolo);
-}
-
-double ArcheopsFile::getMuVBolo2T(int ibolo, int imesure) {
-  return getMuVBolo2(ibolo, imesure) - getDACV(ibolo);
+  block_type_reglage* reglage = lastReglage();
+  block_type_param*   param = lastParam();
+  if (!reglage) return 0;
+  if (!param) return 0;
+  return DAC_muA(&param->param, &reglage->reglage, ibolo);
+}
+
+double ArcheopsFile::getBoloMuV2T(int ibolo, int imesure) {
+  return getDACV(ibolo) - getBoloMuV2(ibolo, imesure) ;
 }
 
 double ArcheopsFile::getBoloRes(int ibolo, int imesure) {
   double i = getDACI(ibolo); // microAmps
-  double v = getMuVBolo2T(ibolo, imesure); // microVolts
+  double v = getBoloMuV2T(ibolo, imesure); // microVolts
   double r = v/i; // Ohms
   return r;
 }
+
+double ArcheopsFile::getBoloTemp(int ibolo, int imesure) {
+  double r = getBoloRes(ibolo, imesure);
+  block_type_reglage* reglage = lastReglage();
+  block_type_param*   param = lastParam();
+  if (!reglage) return 0;
+  if (!param) return 0;
+  return bolo_temp(&param->param, &reglage->reglage, r, ibolo);
+}
+
 
 // Dilution
Index: trunk/Poubelle/archTOI.old/archeopsfile.h
===================================================================
--- trunk/Poubelle/archTOI.old/archeopsfile.h	(revision 435)
+++ trunk/Poubelle/archTOI.old/archeopsfile.h	(revision 436)
@@ -130,14 +130,14 @@
   int getBoloBlockNum();
   int getBoloCompBlockNum();
-  double getRawBolo(int ibolo, int imesure);   // donnee brute, avec seulement soustraction offset
-  double getRawBoloCN(int ibolo, int imesure);  // bruit de compression, sur donnee brute
-  double getMuVBoloCN(int ibolo, int imesure);  // bruit de compression, en microVolts
-  double getMuVBolo(int ibolo, int imesure); // microvolts, filtre avec filtre carre
-  double getMuVBolo2(int ibolo, int imesure); // microvolts, filtre +sioux
+  double getBoloRawMuV(int ibolo, int imesure);   // donnee brute en microvolts et signe change.
+  double getBoloRawMuVCN(int ibolo, int imesure);  // bruit de compression, en microVolts
+  double getBoloMuV(int ibolo, int imesure); // microvolts, filtre avec filtre carre
+  double getBoloMuV2(int ibolo, int imesure); // microvolts, filtre +sioux
   double getGainAmpli(int ibolo);
   double getDACV(int ibolo); // offset en microvolt
   double getDACI(int ibolo); // courant en microAmps
-  double getMuVBolo2T(int ibolo, int imesure); // avec soustraction dacV
+  double getBoloMuV2T(int ibolo, int imesure); // avec soustraction dacV
   double getBoloRes(int ibolo, int imesure); // Ohms
+  double getBoloTemp(int ibolo, int imesure); // K
   
   // Dilution
Index: trunk/Poubelle/archTOI.old/archtoi.cc
===================================================================
--- trunk/Poubelle/archTOI.old/archtoi.cc	(revision 435)
+++ trunk/Poubelle/archTOI.old/archtoi.cc	(revision 436)
@@ -186,5 +186,5 @@
   block_type_param* blk = iter.lastParam();
   if (blk) {
-    int nb = blk->param.nb_bolo;
+    int nb = blk->param.n_max_bolo;
     for (int i=0; i<nb; i++) {
 #if version_num > 25
@@ -280,5 +280,5 @@
   block_type_param* blk = iter.lastParam();
   if (blk) {
-    int nb = blk->param.nb_bolo;
+    int nb = blk->param.n_max_bolo;
     j=0;
     for (int i=0; i<nb; i++) {
Index: trunk/Poubelle/archTOI.old/archtoimain.cc
===================================================================
--- trunk/Poubelle/archTOI.old/archtoimain.cc	(revision 435)
+++ trunk/Poubelle/archTOI.old/archtoimain.cc	(revision 436)
@@ -10,4 +10,5 @@
 #include "toisvr.h"
 
+//#include <profiler.h>
 
 #ifdef __MWERKS__
@@ -27,6 +28,11 @@
     }
     
+//   ProfilerInit(collectDetailed, bestTimeBase, 10000, 200);
+
+    
     ArchTOI toi(argv[1]);
     toi.run(argv[2]);
+    
+//    ProfilerDump("\pprofiler.data");
     return(0);
 }
Index: trunk/Poubelle/archTOI.old/arcunit.h
===================================================================
--- trunk/Poubelle/archTOI.old/arcunit.h	(revision 435)
+++ trunk/Poubelle/archTOI.old/arcunit.h	(revision 436)
@@ -1,2 +1,4 @@
+#define ARCUNIT_H
+
 
 /*======================================================================*/
@@ -112,4 +114,5 @@
 #define chauffage7		0x00000100	/*  0: chauffage 7	*/
 
+#ifndef ARCUNIT_H
 enum{nbit_chauffage7,nbit_chauffage6,nbit_chauffage5,nbit_chauffage4,nbit_chauffage3
 	,nbit_chauffage2,nbit_chauffage1,nbit_vanne_EVB,nbit_vanne_EVO
@@ -132,4 +135,6 @@
 /* T_A1 EST AUSSI LE DRIVER DU MOTEUR DE PIVOT   */
 
+#endif
+
 #define  val_multiplex(qq)	(0.0003052*(double)((qq)-0x8000))	
 #define  val_temperature(qq)	((val_multiplex(qq)<0.2)?-99:((1146.3/(val_multiplex(qq)-0.1)) - 245.13))
Index: trunk/Poubelle/archTOI.old/templocator.cc
===================================================================
--- trunk/Poubelle/archTOI.old/templocator.cc	(revision 435)
+++ trunk/Poubelle/archTOI.old/templocator.cc	(revision 436)
@@ -17,5 +17,5 @@
 {
   lon = lat = ts = 0;
-  ra  = dec = -99999;
+  raZ  = decZ = -99999;
   xSampleNum = -99999;
   fitsfile* fptr;
@@ -40,5 +40,5 @@
   this->lon = lon;
   this->lat = lat;
-  ra  = dec = -99999; xSampleNum = -99999;
+  raZ  = decZ = -99999; xSampleNum = -99999;
 }
 
@@ -46,28 +46,32 @@
   if (this->ts == ts) return;
   this->ts  = ts;
-  ra  = dec = -99999; xSampleNum = -99999;
+  raZ  = decZ = -99999; xSampleNum = -99999;
 }
   
 void   TempLocator::ComputeZenith() {
   double ha;
-  aa_hadec (lat * M_PI/180, .5 * M_PI, 0, &ha, &dec);
-  ra = - (ha * 180. / M_PI / 15) + (ts/3600.);
-  dec = dec * 180. / M_PI;
+  aa_hadec (lat * M_PI/180, .5 * M_PI, 0, &ha, &decZ);
+  raZ = - (ha * 180. / M_PI / 15) + (ts/3600.);
+  if (raZ>24) raZ -= 24;
+  if (raZ<0)  raZ += 24;
+  decZ = decZ * 180. / M_PI;
 }
   
 double TempLocator::getAlphaZenith() {
-  if (ra < -100) ComputeZenith();
-  return ra;
+  if (raZ < -100) ComputeZenith();
+  return raZ;
 }
 
 double TempLocator::getDeltaZenith() {
-  if (dec < -100) ComputeZenith();
-  return dec;
-}
+  if (decZ < -100) ComputeZenith();
+  return decZ;
+}
+
+#define altbolo1 41.5
 
 void TempLocator::findGeomFromGC(int sampleNum) // pour le bolo qui voit les xing
 {
   if (sampleNum == xSampleNum) return;
-  if (dec < -100) ComputeZenith();
+  if (decZ < -100) ComputeZenith();
   
   azimBolGC = -9999;
@@ -84,5 +88,5 @@
   double delG = 27. + 07./60. + 42./3600.;
   double azCr1, azCr2;
-  int rc = PlGalCross(ts/3600., lat, (90. - 41.), alpG, delG, azCr1, azCr2);
+  int rc = PlGalCross(ts/3600., lat, (90. - altbolo1), alpG, delG, azCr1, azCr2);
   if (rc != 0) return; // pas deux points d'intersection
   
@@ -97,5 +101,5 @@
   
   azimBolGC = azCross - (sampleNum - (crossings[icross-1]+12))*rotSpeed;
-  // azimut du bolo 1 (central) pour sampleNum
+  // azimut bolo 1 from crossing, for sampleNum
   if (azimBolGC > 360) azimBolGC -= 360;
 }
@@ -121,6 +125,6 @@
       break;
     case 9:
-      delElv = - 0.78 * sqrt(3.)/2.;
-      delAz  =   0.78 * 1./2.;
+      delElv =   0.78 * sqrt(3.)/2.;
+      delAz  = - 0.78 * 1./2.;
       break;
     case 4:
@@ -136,6 +140,8 @@
   }
   delAz /= cos(41 * M_PI/180);
-  elv = 41. + delElv;
+  elv = altbolo1 + delElv;
   az  = azimBolGC + delAz;
+  if (az>360) az -= 360;
+  if (az<0)   az += 360;
   return;
 }
@@ -157,4 +163,5 @@
   getAltAzBolo(sampleNum, ibolo, elv, az);
   double ha;
+  double ra,dec;
   aa_hadec (lat * M_PI/180, elv * M_PI/180, az * M_PI/180, &ha, &dec);
   ra = - (ha * 180. / M_PI / 15) + (ts/3600.);
@@ -167,4 +174,5 @@
   getAltAzBolo(sampleNum, ibolo, elv, az);
   double ha;
+  double ra,dec;
   aa_hadec (lat * M_PI/180, elv * M_PI/180, az * M_PI/180, &ha, &dec);
   ra = - (ha * 180. / M_PI / 15) + (ts/3600.);
Index: trunk/Poubelle/archTOI.old/templocator.h
===================================================================
--- trunk/Poubelle/archTOI.old/templocator.h	(revision 435)
+++ trunk/Poubelle/archTOI.old/templocator.h	(revision 436)
@@ -32,6 +32,6 @@
   long*   crossings; // samplenum des croisements galactiques
   
-  double ra;
-  double dec;
+  double raZ;  //zenith
+  double decZ; //zenith
   int xSampleNum; // pour le dernier calcul
   double azimBolGC;
Index: trunk/Poubelle/archTOI.old/toiiter.cc
===================================================================
--- trunk/Poubelle/archTOI.old/toiiter.cc	(revision 435)
+++ trunk/Poubelle/archTOI.old/toiiter.cc	(revision 436)
@@ -7,4 +7,5 @@
 extern "C" {
 #include "archeops.h"
+#include "arcunit.h"
 }
 #endif
@@ -303,4 +304,40 @@
         trigMask |= block_gps_mask;
         break;
+      case voyantEVO:
+      case voyantEVF:
+      case commandeEV0:
+      case commandeEVF:
+      case commandeEVB:
+      case commandeEVV:
+      case pressEnt3He:
+      case debit3He:
+      case pressSor3He:
+      case pressEnt4He:
+      case debit4He:
+      case pressSor4He:
+      case pressAirVanne:
+      case pressPompChar:
+      case pressMembrane:
+      case pressExterne:
+      case tensPile10T:
+      case tensPileP18D:
+      case tensPileM18D:
+      case tensPile10B:
+      case tensPileP18B:
+      case tensPileM18B:
+      case tensPileCh:
+      case swPile5:
+      case swPile15:
+      case tempCaissH1:
+      case tempCaissH2:
+      case tempCaissB1:
+      case tempCaissB2:
+      case tempCaissTHe:
+      case tempCaissPiles:
+      case tempCaissDrv:
+      case pressHeBain:
+      case pressPirani:
+        trigMask |= block_dilution_mask;
+        break;
       }
     }
@@ -480,4 +517,5 @@
    case boloRes:
    case boloRawMuVCN:
+   case boloTemp:
      if (imes==0 && file->llastBolo()==NULL) return false;
      return file->lastBolo() != NULL;
@@ -531,7 +569,39 @@
    case deltaSst:
      return false;
-     
-   case boloTemp:
-     return false;
+   case voyantEVO:
+   case voyantEVF:
+   case commandeEV0:
+   case commandeEVF:
+   case commandeEVB:
+   case commandeEVV:
+   case pressEnt3He:
+   case debit3He:
+   case pressSor3He:
+   case pressEnt4He:
+   case debit4He:
+   case pressSor4He:
+   case pressAirVanne:
+   case pressPompChar:
+   case pressMembrane:
+   case pressExterne:
+   case tensPile10T:
+   case tensPileP18D:
+   case tensPileM18D:
+   case tensPile10B:
+   case tensPileP18B:
+   case tensPileM18B:
+   case tensPileCh:
+   case swPile5:
+   case swPile15:
+   case tempCaissH1:
+   case tempCaissH2:
+   case tempCaissB1:
+   case tempCaissB2:
+   case tempCaissTHe:
+   case tempCaissPiles:
+   case tempCaissDrv:
+   case pressHeBain:
+   case pressPirani:
+     return file->lastDilution() != NULL;
    }
    return false;
@@ -573,11 +643,11 @@
      return (getMJD()-archParam.acq.utcOrigin)*24.;
    case boloMuV:
-     return file->getMuVBolo(index, imes);
+     return file->getBoloMuV(index, imes);
    case boloMuV2:
-     return file->getMuVBolo2(index, imes);
+     return file->getBoloMuV2(index, imes);
    case boloRawMuV:
-     return file->getRawBolo(index, imes);
+     return file->getBoloRawMuV(index, imes);
    case boloRawMuVCN:
-     return file->getMuVBoloCN(index, imes);
+     return file->getBoloRawMuVCN(index, imes);
    case boloGainAmpli:
      return file->getGainAmpli(index);
@@ -587,7 +657,9 @@
      return file->getDACI(index);
    case boloMuV2T:
-     return file->getMuVBolo2T(index, imes);
+     return file->getBoloMuV2T(index, imes);
    case boloRes:
      return file->getBoloRes(index, imes);
+   case boloTemp:
+     return file->getBoloTemp(index, imes);
    case dilDAC:
      return file->getADCDil(index);
@@ -659,4 +731,72 @@
         return 0;
      }
+   case voyantEVO:
+        return voyant_EVO(file->lastDilution());
+   case voyantEVF:
+        return voyant_EVF(file->lastDilution());
+   case commandeEV0:
+        return commande_EVO(file->lastDilution());
+   case commandeEVF:
+        return commande_EVF(file->lastDilution());
+   case commandeEVB:
+        return commande_EVB(file->lastDilution());
+   case commandeEVV:
+        return commande_EVV(file->lastDilution());
+   case pressEnt3He:
+        return pression_entree_3He(file->lastDilution());
+   case debit3He:
+        return debit_3He(file->lastDilution());
+   case pressSor3He:
+        return pression_sortie_3He(file->lastDilution());
+   case pressEnt4He:
+        return pression_entree_4He(file->lastDilution());
+   case debit4He:
+        return debit_4He(file->lastDilution());
+   case pressSor4He:
+        return pression_sortie_4He(file->lastDilution());
+   case pressAirVanne:
+        return pression_air_vanne(file->lastDilution());
+   case pressPompChar:
+        return pression_pompe_charbon(file->lastDilution());
+   case pressMembrane:
+        return pression_membranne(file->lastDilution());
+   case pressExterne:
+        return pression_externe(file->lastDilution());
+   case tensPile10T:
+        return tension_pile_10T(file->lastDilution());
+   case tensPileP18D:
+        return tension_pile_p18D(file->lastDilution());
+   case tensPileM18D:
+        return tension_pile_m18D(file->lastDilution());
+   case tensPile10B:
+        return tension_pile_10B(file->lastDilution());
+   case tensPileP18B:
+        return tension_pile_p18B(file->lastDilution());
+   case tensPileM18B:
+        return tension_pile_m18B(file->lastDilution());
+   case tensPileCh:
+        return tension_pile_Ch(file->lastDilution());
+   case swPile5:
+        return switch_pile_5(file->lastDilution());
+   case swPile15:
+        return switch_pile_15(file->lastDilution());
+   case tempCaissH1:
+        return temperature_caisson_haut1(file->lastDilution());
+   case tempCaissH2:
+        return temperature_caisson_haut2(file->lastDilution());
+   case tempCaissB1:
+        return temperature_caisson_bas1(file->lastDilution());
+   case tempCaissB2:
+        return temperature_caisson_bas2(file->lastDilution());
+   case tempCaissTHe:
+        return temperature_caisson_tube_helium(file->lastDilution());
+   case tempCaissPiles:
+        return temperature_caisson_piles(file->lastDilution());
+   case tempCaissDrv:
+        return temperature_caisson_driver_moteur(file->lastDilution());
+   case pressHeBain:
+        return pression_helium_bain(file->lastDilution());
+   case pressPirani:
+        return pression_pirani(file->lastDilution());
    }
    return -1;
@@ -685,4 +825,5 @@
      case boloMuV2T:
      case boloRes:
+     case boloTemp:
        return file->blockNum() == file->getBoloBlockNum();
      case boloRawMuV:
@@ -731,4 +872,39 @@
      case deltaRotAxis:
        return true; // $CHECK$ with SSTHandler
+     case voyantEVO:
+     case voyantEVF:
+     case commandeEV0:
+     case commandeEVF:
+     case commandeEVB:
+     case commandeEVV:
+     case pressEnt3He:
+     case debit3He:
+     case pressSor3He:
+     case pressEnt4He:
+     case debit4He:
+     case pressSor4He:
+     case pressAirVanne:
+     case pressPompChar:
+     case pressMembrane:
+     case pressExterne:
+     case tensPile10T:
+     case tensPileP18D:
+     case tensPileM18D:
+     case tensPile10B:
+     case tensPileP18B:
+     case tensPileM18B:
+     case tensPileCh:
+     case swPile5:
+     case swPile15:
+     case tempCaissH1:
+     case tempCaissH2:
+     case tempCaissB1:
+     case tempCaissB2:
+     case tempCaissTHe:
+     case tempCaissPiles:
+     case tempCaissDrv:
+     case pressHeBain:
+     case pressPirani:
+       return file->blockNum() == file->getDilutionBlockNum() && imes==0;
    }
    return false;
Index: trunk/Poubelle/archTOI.old/toiiter.h
===================================================================
--- trunk/Poubelle/archTOI.old/toiiter.h	(revision 435)
+++ trunk/Poubelle/archTOI.old/toiiter.h	(revision 436)
@@ -58,5 +58,39 @@
   deltaFPAxis,   //
   alphaBolo,     // sur le ciel, indexe par bolometre
-  deltaBolo      // sur le ciel, indexe par bolometre
+  deltaBolo,     // sur le ciel, indexe par bolometre
+  voyantEVO,
+  voyantEVF,
+  commandeEV0,
+  commandeEVF,
+  commandeEVB,
+  commandeEVV,
+  pressEnt3He,
+  debit3He,
+  pressSor3He,
+  pressEnt4He,
+  debit4He,
+  pressSor4He,
+  pressAirVanne,
+  pressPompChar,
+  pressMembrane,
+  pressExterne,
+  tensPile10T,
+  tensPileP18D,
+  tensPileM18D,
+  tensPile10B,
+  tensPileP18B,
+  tensPileM18B,
+  tensPileCh,
+  swPile5,
+  swPile15,
+  tempCaissH1,
+  tempCaissH2,
+  tempCaissB1,
+  tempCaissB2,
+  tempCaissTHe,
+  tempCaissPiles,
+  tempCaissDrv,
+  pressHeBain,
+  pressPirani
 }; 
 
Index: trunk/Poubelle/archTOI.old/toisvr.cc
===================================================================
--- trunk/Poubelle/archTOI.old/toisvr.cc	(revision 435)
+++ trunk/Poubelle/archTOI.old/toisvr.cc	(revision 436)
@@ -276,5 +276,4 @@
   processRequest("#COMMENT sst software has not been updated to last DY code");
   processRequest("#COMMENT trajectory info only while italian TM got GPS info");
-  processRequest("#COMMENT boloTemp is not implemented");
-  
-}
+  
+}
