Changeset 612 in Sophya for trunk/Poubelle/archTOI.old/toiboloproducer.cc
- Timestamp:
- Nov 22, 1999, 10:43:44 AM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Poubelle/archTOI.old/toiboloproducer.cc
r555 r612 5 5 #include "archexc.h" 6 6 #include "requesthandler.h" 7 #include "polfitclip.h" 7 8 8 #define filt2"boloMuV"9 #define boloMuV "boloMuV" 9 10 10 11 11 12 TOIBoloProducer::TOIBoloProducer() { 12 possibleTOIs.insert(TOI( filt2, TOI::all, "", "microVolts"));13 possibleTOIs.insert(TOI(boloMuV, TOI::all, "linfilt sqfilt", "microVolts")); 13 14 } 14 15 16 // No option == linfilt 17 15 18 string TOIBoloProducer::getName() { 16 return("TOIBoloProducer 1. 0");19 return("TOIBoloProducer 1.1"); 17 20 } 21 22 int TOIBoloProducer::filtHalfRange = 20; 18 23 19 24 … … 21 26 if (source->canGetValue(sampleNum-1, toi)) { 22 27 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); 25 33 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); 26 56 } 27 57 } 28 58 29 59 set<TOI> TOIBoloProducer::reqTOIFor(TOI const& toi) { 30 TOI toi2 = toi;31 60 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"; 34 64 t.insert(toi2); 35 65 } else {
Note:
See TracChangeset
for help on using the changeset viewer.