Changeset 3658 in Sophya for trunk/AddOn/TAcq/brproc.cc


Ignore:
Timestamp:
Oct 18, 2009, 11:10:33 AM (16 years ago)
Author:
ansari
Message:

1/ Gestion multi-fibre ds RAcqMemZoneMgr et les DMAReader/DiskWriter (brproc.cc)
2/ Possibilite d'ajout de mot cle ds l'entete FITS par la classe MiniFITSFile

Reza , 18/10/2009

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/AddOn/TAcq/brproc.cc

    r3656 r3658  
    151151    uint_8 firsttt=0;
    152152    bool fgfirst=true;
     153    double moysig[2]={0.,0.};
     154    double sigsig[2]={0.,0.};
     155    uint_8 nbsig[2]={0,0};
     156
    153157    for (uint_4 kmz=0; kmz<nmax_; kmz++) {
    154158      if (stop_) break;
     
    176180            r_4 vts=(r_4)(*(paq.Data1()+j));
    177181            h1.Add((r_8)vts);
     182            moysig[0] += (double)vts;
     183            sigsig[0] += ((double)vts)*((double)vts);
     184            nbsig[0]++;
    178185            vx(j) = vts-127.5;
    179186          }
     
    201208            r_4 vts=(r_4)(*(paq.Data2()+j));
    202209            h2.Add((r_8)vts);
     210            moysig[1] += (double)vts;
     211            sigsig[1] += ((double)vts)*((double)vts);
     212            nbsig[1]++;
    203213            vx(j) = vts-127.5;
    204214          }
     
    306316          po << PPFNameTag(tagh1) << h1;
    307317          po << PPFNameTag(tagh2) << h2;
    308         }
     318
     319          double sspvmax[3] = {0.,0.,0.};
     320          int_4 sspvmaxidx[3] = {-1,-1,-1};
     321          for(int jji=1;jji<visiV12.Size()-1;jji++) {
     322            r_4 zmv2 = Zmod2(visiV12(jji));
     323            if (zmv2>sspvmax[2]) { sspvmax[2]=zmv2; sspvmaxidx[2]=jji; }
     324          }
     325          TVector<r_4>& sspv = spectreV1;
     326          for(int ic=0; ic<2; ic++) {
     327            if (ic==1) sspv = spectreV2;
     328            for(int jji=1;jji<sspv.Size()-1;jji++)
     329              if (sspv(jji)>sspvmax[ic]) { sspvmax[ic]=sspv(jji); sspvmaxidx[ic]=jji; }
     330            if (nbsig[ic] < 1) { moysig[ic]=sigsig[ic]=-1.;  }
     331            else {
     332              moysig[ic] /= (double)nbsig[ic];
     333              sigsig[ic] /= (double)nbsig[ic];
     334              sigsig[ic] -= (moysig[ic]*moysig[ic]);
     335              sigsig[ic] = sqrt(sigsig[ic]);
     336              cout << "===Voie " << ic << " Moy=" << moysig[ic] << " Sig=" << sigsig[ic]
     337                   << " MaxSpec Amp= " << sqrt(sspvmax[ic])/double(pq.DataSize()/2/2)
     338                   << " Pos=" << sspvmaxidx[ic] << "  (NPts=" << nbsig[ic] << ")" << endl;
     339            }
     340          }
     341          cout << "=== Voie1x2 MaxSpec Amp= " << sqrt(sqrt(sspvmax[2])/double(pq.DataSize()/2/2))
     342               << " Pos=" << sspvmaxidx[2] << endl;
     343        }  // fin if (fghist_)
     344
    309345        if (fgtimfreq) {
    310346          timfreqV1 /= (r_4)nzm;
     
    320356          h1.Zero();
    321357          h2.Zero();
     358          moysig[0]=moysig[1]=0.;
     359          sigsig[0]=sigsig[1]=0.;
     360          nbsig[0]=nbsig[1]=0;
    322361        }
    323362        if (fgtimfreq) {
Note: See TracChangeset for help on using the changeset viewer.