{//------------------- test macro for the FFT gROOT->Reset(); FrVect *lsc; FrFile *ifile; FrvRFFT *fft, *fft2, *fft3; 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,3); can_2.SetGrid(); can_3.SetGrid(); can_2.SetLogy(); can_3.SetLogy(); nData = 500; dt = 5./nData; vect = FrVectNew1D("gaussian + sin(phase)",FR_VECT_8R, nData,dt, "time [s]","Volts"); fft1 = FrvRFFTNew("AP",0, 0); fft2 = FrvRFFTNew("AP", 10*nData, 0); fft3 = FrvRFFTNew("HAP", 0, 0); fft4 = FrvRFFTNew("HAP", 10*nData, 0); for(iVect = 0; iVect<50; iVect++) {//----------- we loop on many vecotrs-- for(i=0; idataD[i] = gRandom->Gaus() + sin(phase);} FrvRFFTFor(fft1, vect); FrvRFFTFor(fft2, vect); FrvRFFTFor(fft3, vect); FrvRFFTFor(fft4, vect); can.cd(1); delete histo0; histo0 = FrVP(vect, "DRAW"); can.cd(2); delete histo1; delete histo2; delete histo3; histo1 = FrVP(fft1->amplitude, "DRAW", 1); histo2 = FrVP(fft1->amplitudeA, "SAME", 2); histo3 = FrVP(fft3->amplitudeA, "SAME", 4); histo1->SetMinimum(.002); histo1->SetMaximum(1.2); can.cd(3); delete histo4; delete histo5; delete histo6; histo4 = FrVP(fft2->amplitude, "DRAW", 1); histo5 = FrVP(fft2->amplitudeA, "SAME", 2); histo6 = FrVP(fft4->amplitudeA, "SAME", 4); histo4->SetMinimum(.002); histo4->SetMaximum(1.2); can->Modified(); can->Update();} }