Ignore:
Timestamp:
Nov 22, 1999, 10:43:44 AM (26 years ago)
Author:
ansari
Message:

fin de fichier, start

File:
1 edited

Legend:

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

    r555 r612  
    55#include "archexc.h"
    66#include "requesthandler.h"
     7#include "polfitclip.h"
    78
    8 #define filt2 "boloMuV"
     9#define boloMuV "boloMuV"
    910
    1011
    1112TOIBoloProducer::TOIBoloProducer() {
    12   possibleTOIs.insert(TOI(filt2, TOI::all, "", "microVolts")); 
     13  possibleTOIs.insert(TOI(boloMuV, TOI::all, "linfilt sqfilt", "microVolts")); 
    1314}
    1415
     16// No option == linfilt
     17
    1518string TOIBoloProducer::getName() {
    16   return("TOIBoloProducer 1.0");
     19  return("TOIBoloProducer 1.1");
    1720}
     21
     22int TOIBoloProducer::filtHalfRange = 20;
    1823
    1924
     
    2126  if (source->canGetValue(sampleNum-1, toi)) {
    2227    value = (value + source->getValue(sampleNum-1, toi))/2.;
    23     TOI toi2 = toi;
    24     toi2.name = filt2;
     28   
     29    //TOI toi2 = toi;
     30    //toi2.name = boloMuV;
     31
     32    TOI toi2(boloMuV, toi.index, "sqfilt", toi.unit);
    2533    computedValue(toi2, sampleNum, value);
     34  }
     35 
     36  // $CHECK$ possible optimization : keep fit for several successive values
     37 
     38  if (source->canGetValue(sampleNum-2*filtHalfRange, toi)) {
     39    PolFitClip fit(2*filtHalfRange,1);
     40    int s = sampleNum % 2 ? 1 : -1;
     41    for (int i=0; i<2*filtHalfRange-1; i++) {
     42      fit.addData(sampleNum - i,
     43         s*(source->getValue(sampleNum - i, toi) -  source->getValue(sampleNum - i -1, toi))/2);
     44      s = -s;
     45    }
     46    fit.doFit();
     47    double y = source->getValue(sampleNum - filtHalfRange, toi);
     48    s = sampleNum % 2 ? 1 : -1;
     49    y =y - s*fit.value(sampleNum - filtHalfRange);
     50    TOI toi2(boloMuV, toi.index, "linfilt", toi.unit);
     51    if (isProducing(toi2))
     52      computedValue(toi2, sampleNum - filtHalfRange, y);
     53    TOI toi3(boloMuV, toi.index, "", toi.unit);
     54    if (isProducing(toi3))
     55      computedValue(toi3, sampleNum - filtHalfRange, y);
    2656  }
    2757}
    2858
    2959set<TOI> TOIBoloProducer::reqTOIFor(TOI const& toi) {
    30   TOI toi2 = toi;
    3160  set<TOI> t;
    32   if (toi.name == filt2) {
    33     toi2.name = "boloRawMuV";
     61  if (toi.name == boloMuV) {
     62    TOI toi2("boloRawMuV", toi.index);
     63    //toi2.name = "boloRawMuV";
    3464    t.insert(toi2);
    3565  } else {
Note: See TracChangeset for help on using the changeset viewer.