#include #include #include #include "mayer_fft.h" #include "dyffttools.h" #include "transfelec.h" #include "formepulse.h" #include "ssthardware.h" #define LTab (2048) #define LSave (128) #define Tpas (5.e-4) //float PulseOptOrigin=LTab/16.*Tpas; float PulseOptOrigin=0.; //#define DYTestRun FormePulse::FormePulse(TransFuncElec TF) { Dcomplex j(0.,1.); double Fpas=1./(Tpas*LTab); double *PulseInReel=new double[LTab]; double *PulseInImg=new double[LTab]; double *PulseOut=new double[LTab]; Dcomplex* PulseFFT=new Dcomplex[LTab]; for(long i=0; iMax) { Max=PulseInReel[i]; MaxIndex=i; } gainElec=Max/SSTFPulseCourant; //En Volt/ampere // On calcule la LMH int HalfMaxInf; for(HalfMaxInf=MaxIndex;HalfMaxInf>0;HalfMaxInf--) if(fabs(PulseInReel[HalfMaxInf])<(Max/2.)) break; int HalfMaxSup; for(HalfMaxSup=MaxIndex;HalfMaxSup=LSave) returnValue= ShapeArr[127]; else { double Min=ShapeArr[ientier]; double Max=ShapeArr[ientier+1]; // double test=temps/Tpas-ientier; returnValue=Min+(Max-Min)*(temps/Tpas-ientier); } return returnValue; } double FormePulse::LongPulseOptique() { double returnVal; returnVal=SSTLongPhotDiode/SSTLongFocale*PeriodRotTeles/2/3.1415/sin(SSTTelesElevation); //en secondes return returnVal; } double FormePulse::pulseOptique(double temps) { double value; if((temps>PulseOptOrigin)&&(temps<=PulseOptOrigin+LongPulseOptique())) value=SSTFPulseCourant; // Amplitude: 1 nanoampère else value=0.; // for(long i=0; i