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] |