Ignore:
Timestamp:
Sep 22, 1999, 10:57:36 AM (26 years ago)
Author:
ansari
Message:

nouvelles toi

File:
1 edited

Legend:

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

    r407 r408  
    881881}
    882882
     883double ArcheopsFile::getMuVBolo2(int ibolo, int imesure) { // microvolts, filtre
     884  // On commence par trouver la valeur d'offset, en fittant une droite sur les soustractions
     885  if (!lastBolo() || !llastBolo()) return 0;
     886  block_type_reglage* reglage = lastReglage();
     887  block_type_param*   param = lastParam();
     888  if (!reglage) return 0;
     889  if (!param) return 0;
     890  double sumx=0, sumy=0, sumxy=0, sumx2=0;
     891  int n=20;
     892  int s = imesure % 2 ? 1 : -1;
     893  for (int i=1; i<=n; i++) {
     894    double x = -i;
     895    double y = s*(getRawBolo(ibolo, imesure-i+1) - getRawBolo(ibolo, imesure-i))/2;
     896    s = -s;
     897    sumx += x;
     898    sumy += y;
     899    sumxy += x*y;
     900    sumx2 += x*x;
     901  }
     902  double a = (sumxy/n - (sumx/n)*(sumy/n)) / (sumx2/n - (sumx/n)*(sumx/n));
     903  double b = (sumy/n) - a*(sumx/n);
     904  s = imesure % 2 ? 1 : -1;
     905  double y = getRawBolo(ibolo, imesure);
     906  y = y-s*b;
     907  return bol_micro_volt(y,(double)param->param.bolo[ibolo].bolo_gain*gain_ampli(reglage->reglage.bolo[ibolo]));
     908}
     909
    883910double ArcheopsFile::getGainAmpli(int ibolo) {
    884911     return gain_ampli(lastReglage()->reglage.bolo[ibolo]);
    885912}
     913
     914#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
     915#define pt_micA(uu)     ((4096. * 22. * 20.) / capa(uu) )                       //  pts / micro Amperes
     916
     917
     918#define pt_micV(uu)     (((double)parametr.bolo[uu].bolo_diviseur) / 2441.)     // pts / microvolt
     919
     920
     921double ArcheopsFile::getDACV(int ibolo) {
     922  double dacV = dac_V(lastReglage()->reglage.bolo[ibolo]);
     923  param_bolo& parametr = lastParam()->param;
     924  return dacV / pt_micV(ibolo);
     925}
     926
     927double ArcheopsFile::getDACI(int ibolo) {
     928  double dacI = dac_I(lastReglage()->reglage.bolo[ibolo]);
     929  param_bolo& parametr = lastParam()->param;
     930  return dacI / pt_micA(ibolo);
     931}
     932
    886933
    887934// SST, gyros...
Note: See TracChangeset for help on using the changeset viewer.