00001
00005 #include <bpm/bpm_messages.h>
00006 #include <bpm/bpm_simulation.h>
00007
00025 int get_dipole_response( double bunchcharge, double chargesens,
00026 double pos, double possens,
00027 double tilt, double tiltsens,
00028 double arrivaltime, double cavityfreq,
00029 double *amp, double *phase ) {
00030
00031
00032
00033 double I = ( pos * possens ) * bunchcharge;
00034 double Q = ( tilt * tiltsens ) * bunchcharge;
00035
00036 *amp = sqrt( I * I + Q * Q );
00037 *phase = ( I > 0 ? asin(I / *amp) : PI - asin(I / *amp) );
00038
00039 return BPM_SUCCESS;
00040 }
00041
00042