Handles L0 and L1 Triggers for an antenna. More...
#include <trigger.hh>
Public Member Functions | |
| AntTrigger () | |
| AntTrigger (Settings *settings1, int ilayer, int ifold, double *vmmhz, Anita *anita1, double hitangle_e, double hitangle_h, double e_component, double h_component, double *arrival_times, int rx_minarrivaltime_temp, double volts_rx_rfcm_lab_e_all[48][512], double volts_rx_rfcm_lab_h_all[48][512], int inu) | |
| void | ConvertHVtoLRTimedomain (const int nfour, double *vvolts, double *hvolts, double *left, double *right) |
| void | L1Trigger (Anita *anita1, Settings *settings1, int ilayer, int ifold, double timedomain_output_1[5][Anita::NFOUR], double timedomain_output_2[5][Anita::NFOUR], double *powerthreshold, int *channels_passing_e_forglob, int *channels_passing_h_forglob, int &npass) |
| The L1 trigger of the Anita trigger scheme. More... | |
| double | getRate () |
| Returns the thisrate variable value. More... | |
| double | rateToThreshold (double rate, int band) |
| Calculates the trigger threshold for an antenna via a fit from the "singles" rate and band identifier. More... | |
| void | WhichBandsPass (Settings *settings1, Anita *anita1, GlobalTrigger *globaltrig1, Balloon *bn1, int ilayer, int ifold, int inu, double dangle, double emfrac, double hadfrac) |
| void | GetThresholds (Settings *settings1, Anita *anita1, int ilayer, double *thresholds) |
| Sets the threshold values based on which payload and where the antenna is located physically. More... | |
| void | addToChannelSums (Settings *settings1, Anita *anita1, int ibw, int k) |
Static Public Member Functions | |
| static void | ConvertEHtoLREfield (double, double, double &, double &) |
| static void | ConvertEHtoLREnergy (double, double, double &, double &) |
| static double | GetNoise (Settings *settings1, double altitude_bn, double geoid, double theta, double bw, double temp) |
| static double | FindPeak (double *waveform, int n) |
| static int | IsItUnmasked (unsigned short surfTrigBandMask[9][2], int ibw, int ilayer, int ifold, int ipol) |
| Returns whether the indicated antenna and band are "masked". More... | |
Handles L0 and L1 Triggers for an antenna.
| AntTrigger::AntTrigger | ( | ) |
| AntTrigger::AntTrigger | ( | Settings * | settings1, |
| int | ilayer, | ||
| int | ifold, | ||
| double * | vmmhz, | ||
| Anita * | anita1, | ||
| double | hitangle_e, | ||
| double | hitangle_h, | ||
| double | e_component, | ||
| double | h_component, | ||
| double * | arrival_times, | ||
| int | rx_minarrivaltime_temp, | ||
| double | volts_rx_rfcm_lab_e_all[48][512], | ||
| double | volts_rx_rfcm_lab_h_all[48][512], | ||
| int | inu | ||
| ) |
Bug fix: Changed "vm_banding_rfcm_*" to "v_banding_rfcm_*" in all four of term_e, term_h, energyterm_e, and energyterm_h. Stephen Hoover, 10 August 2009
|
static |
|
static |
| void AntTrigger::ConvertHVtoLRTimedomain | ( | const int | nfour, |
| double * | vvolts, | ||
| double * | hvolts, | ||
| double * | left, | ||
| double * | right | ||
| ) |
|
static |
|
static |
| double AntTrigger::getRate | ( | ) |
Returns the thisrate variable value.
| void AntTrigger::GetThresholds | ( | Settings * | settings1, |
| Anita * | anita1, | ||
| int | ilayer, | ||
| double * | thresholds | ||
| ) |
Sets the threshold values based on which payload and where the antenna is located physically.
The nadir antennas had a separate threshold from the other antennas due to the way that they were "OR"'d between their two neighbors.
|
static |
Returns whether the indicated antenna and band are "masked".
| void AntTrigger::L1Trigger | ( | Anita * | anita1, |
| Settings * | settings1, | ||
| int | ilayer, | ||
| int | ifold, | ||
| double | timedomain_output_1[5][Anita::NFOUR], | ||
| double | timedomain_output_2[5][Anita::NFOUR], | ||
| double * | powerthreshold, | ||
| int * | channels_passing_e_forglob, | ||
| int * | channels_passing_h_forglob, | ||
| int & | npass | ||
| ) |
The L1 trigger of the Anita trigger scheme.
| double AntTrigger::rateToThreshold | ( | double | rate, |
| int | band | ||
| ) |
Calculates the trigger threshold for an antenna via a fit from the "singles" rate and band identifier.
This code is stolen from Stephen's AnitaHardwareTrigger in his Aesop software "rate" is the desired singles rate, in MHz. "band" ranges from 0 to 3 The output is the trigger threshold, in units of Diode Output / <Diode output>=""> The output is good for all antennas, and the curves are good fits in the region ~1 MHz to 25 MHz. The curves look like they should continue beyond that range as well.
| void AntTrigger::WhichBandsPass | ( | Settings * | settings1, |
| Anita * | anita1, | ||
| GlobalTrigger * | globaltrig1, | ||
| Balloon * | bn1, | ||
| int | ilayer, | ||
| int | ifold, | ||
| int | inu, | ||
| double | dangle, | ||
| double | emfrac, | ||
| double | hadfrac | ||
| ) |
| double AntTrigger::bwslice_energy_pol0[5] |
| double AntTrigger::bwslice_energy_pol1[5] |
| double AntTrigger::bwslice_energy_pole[5] |
| double AntTrigger::bwslice_energy_polh[5] |
| double AntTrigger::bwslice_volts_pol0[5] |
| double AntTrigger::bwslice_volts_pol0_em[5] |
| double AntTrigger::bwslice_volts_pol1[5] |
| double AntTrigger::bwslice_volts_pol1_em[5] |
| double AntTrigger::bwslice_volts_pole[5] |
| double AntTrigger::bwslice_volts_polh[5] |
| vector<int> AntTrigger::flag_e[5] |
| vector<int> AntTrigger::flag_h[5] |
| double AntTrigger::integral_vmmhz |
| double AntTrigger::noise_eachband[2][Anita::NBANDS_MAX] |
| int AntTrigger::passes_eachband[2][Anita::NBANDS_MAX] |
| double AntTrigger::signal_eachband[2][Anita::NBANDS_MAX] |
| double AntTrigger::threshold_eachband[2][Anita::NBANDS_MAX] |
| int AntTrigger::unwarned |
| double AntTrigger::v_banding_rfcm_e[5][Anita::NFREQ] |
| double AntTrigger::v_banding_rfcm_e_forfft[5][HALFNFOUR] |
| double AntTrigger::v_banding_rfcm_e_forfft_temp[5][HALFNFOUR] |
| double AntTrigger::v_banding_rfcm_h[5][Anita::NFREQ] |
| double AntTrigger::v_banding_rfcm_h_forfft[5][HALFNFOUR] |
| double AntTrigger::v_banding_rfcm_h_forfft_temp[5][HALFNFOUR] |
| double AntTrigger::vm_banding_rfcm_1_forfft[5][HALFNFOUR] |
| double AntTrigger::vm_banding_rfcm_2_forfft[5][HALFNFOUR] |
| double AntTrigger::vm_banding_rfcm_e[5][Anita::NFREQ] |
| double AntTrigger::vm_banding_rfcm_h[5][Anita::NFREQ] |
| vector<double> AntTrigger::vnoise_eachband[2] |
| vector<int> AntTrigger::vpasses_eachband[2] |
| vector<double> AntTrigger::vsignal_eachband[2] |
| vector<double> AntTrigger::vthreshold_eachband[2] |
1.8.3.1