{//------------------- test macro for the filter gROOT->Reset(); FrVect *lsc; FrFile *ifile; FrvRFFT *fft, *fft2, *fft3; FrvFilter2 *filter1, *filter2; TH1F *histo0, *histo1, *histo2, *histo3, *histo4, *histo5, *histo6; FrameH *frame = NULL; int nData, iVect, i; double dt, phase = 0; can = new TCanvas("can","RUN",600,800); can.Divide(1,2); can_2.SetGrid(); can_2.SetLogy(); nData = 500; dt = 5./nData; vect = FrVectNew1D("gaussian + sin(phase)",FR_VECT_8R, nData,dt, "time [s]","Volts"); fft1 = FrvRFFTNew("HAP", 0, 0); fft2 = FrvRFFTNew("HAP", 0, 0); fft3 = FrvRFFTNew("HAP", 0, 0); fft4 = FrvRFFTNew("HAP", 0, 0); filter1 = FrvFilter2New(0.,0.,1.,0.,1./(6.14*50.),1.); filter2 = FrvFilter2New(0.,0.,1.,1./(6.14*30*6.14*30),1./(6.14*30.),1.); filter3 = FrvFilter2New(0.,0.,1.,1./(6.14*30*6.14*30),1./(6.14*30.),1.); filter4 = FrvFilter2New(0.,1.,0.,0.,1.,20.); for(iVect = 0; iVect<100; iVect++) {//----------- we loop on many vectors-- for(i=0; idataD[i] = gRandom->Gaus() + sin(phase);} FrvFilter2Proc(filter1, vect); FrvFilter2Proc(filter2, vect); FrvFilter2Proc(filter3, filter2->output); FrvFilter2Proc(filter4, filter3->output); FrvRFFTFor(fft1, vect); FrvRFFTFor(fft2, filter1->output); FrvRFFTFor(fft3, filter3->output); FrvRFFTFor(fft4, filter4->output); can.cd(1); delete histo0; delete histo5; histo0 = FrVP(vect, "DRAW"); histo5 = FrVP(filter4->output, "SAME",6); can.cd(2); delete histo1; delete histo2; delete histo3; delete histo4; histo1 = FrVP(fft1->amplitudeA, "DRAW", 1); histo2 = FrVP(fft2->amplitudeA, "SAME", 2); histo3 = FrVP(fft3->amplitudeA, "SAME", 4); histo4 = FrVP(fft4->amplitudeA, "SAME", 6); histo1->SetMinimum(.001); histo1->SetMaximum(1.2); can->Modified(); can->Update();} }