00001
00005 #include <bpm/bpm_messages.h>
00006 #include <bpm/bpm_simulation.h>
00007 #include <math.h>
00008
00023 int get_dipole_amp( double bunchcharge, double bunchlength,
00024 double pos, double possens,
00025 double slope, double slopesens,
00026 double tilt, double tiltsens,
00027 double *amp, double *phase ){
00028
00029
00030 double I = ( pos * possens ) * bunchcharge;
00031 double Q = (-1) * ( slope * slopesens ) * bunchcharge;
00032
00033
00034 *amp = sqrt( I * I + Q * Q );
00035 if ( *amp == 0 ) *phase = 0; else
00036 *phase = acos(I / *amp);
00037
00038 return BPM_SUCCESS;
00039 }
00040
00041