Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
Anita Class Reference

Contains everything about positions within payload and signals it sees for each event, in both the trigger and signal paths. More...

#include <anita.hh>

Public Member Functions

void Initialize (Settings *settings1, ofstream &foutput, int inu, TString outputdir)
 initialize a bunch of stuff
 
void initializeFixedPowerThresholds (ofstream &foutput)
 
void readVariableThresholds (Settings *settings1)
 
void readAmplification ()
 
void getDiodeDataAndAttenuation (Settings *settings1, TString outputdir)
 
void getPulserData ()
 
void MakeArrayforFFT (double *vsignalarray_e, double *vsignal_e_forfft, double phasedelay, bool useconstantdelay)
 
void GetArrayFromFFT (double *tmp_fftvhz, double *vhz_rx)
 
int Match (int ilayer, int ifold, int rx_minarrivaltime)
 
int getLabAttn (int NPOINTS_LAB, double *freqlab, double *labattn)
 
void labAttn (double *vhz)
 
void SetNoise (Settings *settings1, Balloon *bn1, IceModel *antarctica)
 
void calculate_antenna_positions (Settings *settings1, double pitch, double roll, double phi_spin, Vector n_north, Vector n_east)
 
void setphiTrigMaskAnita3 (UInt_t realTime_flightdata)
 
void setphiTrigMask (UInt_t realTime_flightdata)
 
void setTimeDependentThresholds (UInt_t realTime_flightdata)
 
void BoxAverageComplex (double *array, const int n, int navg)
 
void BoxAverage (double *array, const int n, int navg)
 
int GetRx (int ilayer, int ifold)
 get antenna number based on which layer and position it is
 
int GetRxTriggerNumbering (int ilayer, int ifold)
 get antenna number based on which layer and position it is
 
void getDiodeModel ()
 
void setDiodeRMS (Settings *settings1, TString outputdir)
 
void myconvlv (double *timedomain_forconvl, const int NFOUR, double *fdiode, double &maxdiodeconvl, double &onediodeconvl, double *power_noise, double *diodeconv)
 
void GetArrivalTimes (const Vector &rf_direction, Balloon *bn1, Settings *settings1)
 
void GetArrivalTimesBoresights (const Vector rf_direction[NLAYERS_MAX][NPHI_MAX])
 
void GetArrivalTimesBoresights (const Vector rf_direction[NLAYERS_MAX][NPHI_MAX], Balloon *bn1, Settings *settings1)
 
int AntennaWaveformtoSurf (int ilayer, int ifold)
 
void Banding (int j, double *freq_noise, double *powerperfreq, int NPOINTS_NOISE)
 
void Banding (int iband, double *vmmhz)
 
void RFCMs (int ilayer, int ifold, double *vmmhz)
 
void normalize_for_nsamples (double *spectrum, double nsamples, double nsamp)
 
void convert_power_spectrum_to_voltage_spectrum_for_fft (int length, double *spectrum, double domain[], double phase[])
 
void GetNoiseWaveforms ()
 
void GetPhases ()
 
int GetBeamWidths (Settings *settings1)
 
void Set_gain_angle (Settings *settings1, double nmedium_receiver)
 
double Get_gain_angle (int gain_type, int k, double hitangle)
 
void ReadGains ()
 
void AntennaGain (Settings *settings1, double hitangle_e, double hitangle_h, double e_component, double h_component, int k, double &vsignalarray_e, double &vsignalarray_h)
 
void SetDiffraction ()
 
double GetDiffraction (int ilayer, double zenith_angle, int ifreq)
 
void calculate_all_offsets (void)
 
void getDifferentOffsets ()
 
void printDifferentOffsets ()
 
void calculate_single_offset (const unsigned center_phi_sector_index, const double angle_phi, const double angle_theta, double hypothesis_offset[][3])
 
void calculate_single_offset (const unsigned center_phi_sector_index, const unsigned index_phi, const unsigned index_theta, double hypothesis_offset[][3])
 
void fill_coherent_waveform_sum_tree (unsigned inu, unsigned center_phi_sector, Settings *settings1, double rms_noise, double actual_rms, unsigned window_start, unsigned window_end, double deg_theta, double deg_phi, double actual_deg_theta, double actual_deg_phi, vector< double > &summed_wfm, vector< double > &power_of_summed_wfm, double power)
 
void GetPayload (Settings *, Balloon *)
 
void calculateDelaysForEfficiencyScan ()
 
void GetPhasesFromFFT (double *tmp_fftvhz, double *phases)
 
void FromTimeDomainToIcemcArray (double *vsignalarray, double vhz[NFREQ])
 

Static Public Member Functions

static int SurfChanneltoBand (int isurf)
 
static int AntennaNumbertoSurfNumber (int ilayer, int ifold)
 
static int GetAntennaNumber (int ilayer, int ifold)
 
static int GetLayer (int rx)
 
static int GetIfold (int rx)
 
static int GetSurfChannel (int antenna, int ibw, int ipol)
 
static int WhichBand (int ibw, int ipol)
 

Public Attributes

int tuffIndex
 
int number_all_antennas
 this keeps count of the number of antennas for use with timing calculations, etc.
 
Vector ANTENNA_POSITION_START [2][NLAYERS_MAX][NPHI_MAX]
 antenna positions from Kurt's measurements
 
double ANTENNA_DOWN [NLAYERS_MAX][NPHI_MAX]
 down angles of antennas from Kurt's measurements
 
double SIMON_DELTA_R [NLAYERS_MAX][NPHI_MAX]
 measurements by Simon used in analysis ANITA-2
 
double SIMON_DELTA_PHI [NLAYERS_MAX][NPHI_MAX]
 measurements by Simon used in analysis ANITA-2
 
Vector antenna_positions [2][NLAYERS_MAX *NPHI_MAX]
 these are the antenna positions in space in a coordinate system where x=north and y=west and the origin is at the center of the payload
 
int NRX_PHI [NLAYERS_MAX]
 number of antennas around in each layer. (radians)
 
double PHI_EACHLAYER [NLAYERS_MAX][NPHI_MAX]
 phi of the center of each antenna on each layer
 
double PHI_OFFSET [NLAYERS_MAX]
 antenna offset in phi for each layer (radians)
 
double THETA_ZENITH [NLAYERS_MAX]
 how the antenna is tilted in theta (in radians with 0=up)
 
int inu
 Neutrino number.
 
double LAYER_VPOSITION [Anita::NLAYERS_MAX]
 position of layers in z relative to vertical center of the payload
 
double LAYER_HPOSITION [Anita::NLAYERS_MAX]
 distance in horizontal plane between center axis of the "payload" and each "layer".
 
double LAYER_PHIPOSITION [Anita::NLAYERS_MAX]
 phi corresponding to the position of each "layer" on the "payload"
 
double RRX [Anita::NLAYERS_MAX]
 radius that the antenna sits from the axis of the payload (feedpoint)
 
Double_t deltaTPhaseCentre [2][NLAYERS_MAX][NPHI_MAX]
 Relative to photogrammetry + ring offset.
 
double THERMALNOISE_FACTOR
 factor to multiply thermal noise for error analysis
 
double additionalDt
 
TFile * fnoise
 
TTree * tdiode
 
int NBANDS
 number of frequency sub-bands (not counting full band)
 
int PERCENTBW
 percent bandwidth
 
double signal_vpol_inanita [5][HALFNFOUR]
 this is the signal waveform in the vertical polarization, before converting to LCP, RCP where applicable
 
double total_vpol_inanita [5][HALFNFOUR]
 this is the sum of the signal and noise in the vertical polarization, before converting to LCP, RCP where applicable
 
double timedomainsignal_rfcm [HALFNFOUR]
 
double timedomainsignal_lab [HALFNFOUR]
 
TTree * turfratechain
 
TTree * surfchain
 
TFile * fturf
 
TFile * fsurf
 
UShort_t phiTrigMask
 
UShort_t phiTrigMaskH
 
UShort_t l1TrigMask
 
UShort_t l1TrigMaskH
 
Double_t deadTime
 fractional deadTime
 
unsigned int realTime_turfrate
 realtime from the turf rate file
 
unsigned int realTime_tr_min
 min realtime from the turf rate file
 
unsigned int realTime_tr_max
 max realtime from the turf rate file
 
unsigned int realTime_surf
 realtime from the surf file
 
unsigned int realTime_surf_min
 min realtime from the surf file
 
unsigned int realTime_surf_max
 max realtime from the surf file
 
UShort_t thresholds [2][48]
 thresholds as read from the surf file: first index is pol, second is antenna number (only working for Anita3)
 
UShort_t scalers [2][48]
 scalers as read from the surf file: first index is pol, second is antenna number (only working for Anita3)
 
Double_t fakeThresholds [2][48]
 Fake thresholds (coming from converting fake scalers to thresholds)
 
Double_t fakeThresholds2 [2][48]
 Fake thresholds 2 (coming from converting flight scalers to thresholds)
 
Double_t fakeScalers [2][48]
 Fake scalers (coming from converting threhsolds during flight to scalers using threshold scan)
 
int iturf
 
int isurf
 
int iturfevent
 
Float_t threshScanThresh [2][48][npointThresh]
 adc thresholds from threshold scan
 
Float_t threshScanScaler [2][48][npointThresh]
 scalers from threshold scan
 
Float_t minadcthresh [2][48]
 
Float_t maxadcthresh [2][48]
 
double total_diodeinput_1_inanita [5][HALFNFOUR]
 this is the waveform that is input to the tunnel diode in the first (LCP or vertical) polarization
 
double total_diodeinput_2_inanita [5][HALFNFOUR]
 this is the waveform that is input to the tunnel diode in the second (RCP or horizontal) polarization
 
double total_diodeinput_1_allantennas [48][HALFNFOUR]
 this is across all antennas, just the full band
 
double total_diodeinput_2_allantennas [48][HALFNFOUR]
 needs comment
 
double timedomain_output_inanita [2][5][HALFNFOUR]
 this is just for writing out to the following tree
 
double time_trig [HALFNFOUR]
 
double weight_inanita
 
int arrayofhits_inanita [3][16][2][HALFNFOUR]
 
int arrayofhits_forgaryanderic [3][16][2][HALFNFOUR]
 
int l1trig_anita3and4_inanita [2][16][HALFNFOUR]
 
int l1trig_anita4lr_inanita [3][16][HALFNFOUR]
 
int l1trig_anita4lr_forgaryanderic [3][16][HALFNFOUR]
 
int l2trig_anita4lr_inanita [16][3][HALFNFOUR]
 
int l2trig_anita4lr_forgaryanderic [16][HALFNFOUR]
 when it passes 2/3
 
int l3type0trig_anita4lr_inanita [16][HALFNFOUR]
 
int l3trig_anita4lr_inanita [16][HALFNFOUR]
 
int l3type0trig_anita4lr_forgaryanderic [16][HALFNFOUR]
 
int l3type1trig_anita4lr_forgaryanderic [16][HALFNFOUR]
 
double timedomain_output_corrected_forplotting [2][6][HALFNFOUR]
 this is just for writing out to the following tree
 
double timedomain_output_allantennas [2][48][HALFNFOUR]
 this is across all antennas, just the full band
 
int flag_e_inanita [5][HALFNFOUR]
 
int flag_h_inanita [5][HALFNFOUR]
 
double dangle_inanita
 
double emfrac_inanita
 
double hadfrac_inanita
 
double ston [5]
 signal to noise;
 
int iminbin [5]
 this is the minimum bin to start
 
int imaxbin [5]
 
int maxbin_fortotal [5]
 when it sums the noise and signal together it shortens the waveform
 
double peak_v_banding_rfcm [2][5]
 peak V in e/h polarization after rfcm's and banding
 
double peak_rx_signalonly [2]
 peak voltage in e/h polarization received by the antenna
 
double peak_rx_rfcm [2]
 peak voltage in e/h polarization received by the antenna
 
double peak_rx_rfcm_signalonly [2]
 peak voltage in e/h polarization received by the antenna
 
double peak_rx_rfcm_lab [2]
 peaks of the previous arrays
 
int channels_passing [2][5]
 channels passing. This is reset for every antenna for every event
 
int channels_passing_justNoise [2][5]
 channels passing. This is reset for every antenna for every event
 
int l1_passing
 
int l1_passing_allantennas [48]
 
int irx
 
double avgfreq_rfcm [NFREQ]
 
double avgfreq_rfcm_lab [NFREQ]
 
double vmmhz_banding [NFREQ]
 V/m/MHz after banding.
 
double vmmhz_banding_rfcm [NFREQ]
 V/m/MHz after banding and rfcms.
 
double rms_rfcm_e_single_event
 This is in Volts, not mV!
 
double rms_rfcm [2]
 rms noise just after rfcm's
 
double rms_lab [2]
 rms noise at lab chip
 
TFile * fsignals
 
TTree * tsignals
 
TFile * fdata
 
TTree * tdata
 writing data out for the analysers
 
TTree * tgaryanderic
 writing data out for the analysers
 
TTree * tglob
 
TH1F * hsignals [5]
 s/n (max diode output/mean diode output) for vertical polarization in each band
 
double f_pulser [NFOUR/4]
 
double f_phases [NFOUR/4]
 
double f_noise [NFOUR/4]
 
double v_pulser [NFOUR/4]
 
double v_phases [NFOUR/4]
 
double v_noise [NFOUR/4]
 
double cumulat_prob [9]
 
double cumulat_prob_plus1 [9]
 
double timedomainnoise_rfcm_banding [2][5][HALFNFOUR]
 
double timedomainnoise_rfcm_banding_long [2][5][HALFNFOUR]
 
double timedomainnoise_rfcm [2][HALFNFOUR]
 
double timedomainnoise_lab [2][HALFNFOUR]
 
double timedomainnoise_rfcm_long [2][HALFNFOUR]
 
double timedomainnoise_lab_long [2][HALFNFOUR]
 
double phases [5][HALFNFOUR]
 
int passglobtrig [2]
 
double integral_vmmhz_foranita
 
int nnoiseevents
 total number of noise events we're choosing from
 
int noiseeventcounter
 counts which event we're on so we go in order
 
double FREQ_LOW
 lowest frequency
 
double FREQ_HIGH
 highest frequency
 
double NOTCH_MIN
 low edge of notch filter. This is set in the input file
 
double NOTCH_MAX
 
int BANDING
 
double freq [NFREQ]
 
double freq_forfft [NFOUR]
 
double freq_forplotting [NFOUR/4]
 
double freq_forfft_long [2 *NFOUR]
 
double freq_forplotting_long [NFOUR/2]
 
double time [NFOUR/2]
 
double time_long [NFOUR]
 
double time_centered [NFOUR/2]
 
double freqdomain_rfcm_banding [5][HALFNFOUR/2]
 
double freqdomain_rfcm_banding_long [5][HALFNFOUR]
 
double freqdomain_rfcm [HALFNFOUR/2]
 
double freqdomain_rfcm_long [HALFNFOUR]
 
double freqdomain_rfcm_theory [HALFNFOUR/2]
 
double avgfreqdomain_lab [HALFNFOUR/2]
 
double avgfreqdomain_lab_long [HALFNFOUR]
 
double phases_rfcm_banding [2][5][HALFNFOUR/2]
 
double phases_rfcm_banding_long [2][5][HALFNFOUR]
 
double phases_rfcm [2][HALFNFOUR/2]
 
double phases_rfcm_long [2][HALFNFOUR]
 
double phases_lab [2][HALFNFOUR]
 
double phases_lab_long [2][HALFNFOUR]
 
TF1 fdiode
 
double maxt_diode
 
int idelaybeforepeak [5]
 
int iwindow [5]
 
double diode_real [5][NFOUR]
 
double fdiode_real [5][NFOUR]
 
int rx_minarrivaltime
 
double arrival_times [2][NLAYERS_MAX *NPHI_MAX]
 
int count_getnoisewaveforms
 
double freq_bands [5][NPOINTS_BANDS]
 
double attn_bands [5][NPOINTS_BANDS]
 
double bandsattn [5][NPOINTS_BANDS]
 
double correl_banding [5][NPOINTS_BANDS]
 
double correl_lab [NPOINTS_BANDS]
 
double freq_ampl [NANTENNAS_MAX][NPOINTS_AMPL]
 
double ampl [NANTENNAS_MAX][NPOINTS_AMPL]
 
double ampl_notdb [NANTENNAS_MAX][NPOINTS_AMPL]
 
double noisetemp [NANTENNAS_MAX][NPOINTS_AMPL]
 
double bwslice_vnoise [NLAYERS_MAX][5]
 
double probability [5]
 
double bwslice_enoise [5]
 
double bwslice_fwhmnoise [5]
 
double bwslice_rmsdiode [2][5]
 
double bwslice_meandiode [5]
 
double bwslice_vrms [5]
 
double bwslice_dioderms_fullband_allchan [2][48][7]
 
double bwslice_diodemean_fullband_allchan [2][48][7]
 
double freq_noise [5][NPOINTS_NOISE]
 
double impedence
 
double phase
 
double powerthreshold [5]
 
double powerthreshold_nadir [5]
 
int NCH_PASS
 
double l1window
 
double minsignalstrength
 
double INTEGRATIONTIME
 
double TIMESTEP
 
double DEADTIME
 
double TRIG_TIMESTEP
 
unsigned N_STEPS_PHI
 
unsigned N_STEPS_THETA
 
double energythreshold
 
double MIN_PHI_HYPOTHESIS
 
double MAX_PHI_HYPOTHESIS
 
double MIN_THETA_HYPOTHESIS
 
double MAX_THETA_HYPOTHESIS
 
int USEPHASES
 
int NTRIGGERLAYERS
 
int PHITRIG [NLAYERS_MAX]
 
int REQUIRE_CENTRE
 
int GAINS
 
double gainv_measured [NPOINTS_GAIN]
 
double gainh_measured [NPOINTS_GAIN]
 
double gainhv_measured [NPOINTS_GAIN]
 
double gainvh_measured [NPOINTS_GAIN]
 
double frequency_forgain_measured [NPOINTS_GAIN]
 
double gain_angle [4][NPOINTS_GAIN][7]
 
double flare [4][NFREQ]
 
double gain [2][NFREQ]
 
double reference_angle [7]
 
double inv_angle_bin_size [6]
 
int whichbin [NFREQ]
 
double scalef2 [NFREQ]
 
double scalef1 [NFREQ]
 
double vvGaintoHeight [NFREQ]
 
double hhGaintoHeight [NFREQ]
 
double hvGaintoHeight [NFREQ]
 
double vhGaintoHeight [NFREQ]
 
double diffraction [2][89][NFREQ]
 
double freqlab [NPOINTS_LAB]
 
double labattn [NPOINTS_LAB]
 
double VNOISE [NLAYERS_MAX]
 
int trigRequirements [NLAYERS_MAX]
 
int antennatosurf [32]
 
double maxthreshold
 
double bwslice_thresholds [5]
 
int bwslice_allowed [5]
 
int bwslice_required [5]
 
int pol_allowed [2]
 
int pol_required [2]
 
double bwslice_center [5]
 
double bwslice_width [5]
 
double bwslice_min [5]
 
double bwslice_max [5]
 
double bwmin
 
TFile * coherent_datafile
 
TTree * coherent_waveform_sum_tree
 
unsigned hypothesis_offsets [16][200][200][4][3]
 
vector< vector< vector< double > > > hypothesis_angles
 
vector< vector< int > > vdifferent_offsets
 
vector< vector< double > > vdifferent_angles
 
unsigned cwst_event_number
 
unsigned cwst_center_phi_sector
 
double cwst_rms_noise
 
double cwst_actual_rms
 
double cwst_threshold
 
unsigned cwst_window_start
 
unsigned cwst_window_end
 
double cwst_deg_theta
 
double cwst_deg_phi
 
double cwst_actual_deg_theta
 
double cwst_actual_deg_phi
 
Vector cwst_rf_direction
 
Vector cwst_0th_sector_position
 
double cwst_timesteps [HALFNFOUR]
 
RX cwst_RXs [48]
 
RX cwst_aligned_wfms [9]
 
vector< double > cwst_summed_wfm
 
vector< double > cwst_power_of_summed_wfm
 
double cwst_power
 
double VNOISE_ANITALITE [NPHI_MAX]
 
double INCLINE_TOPTHREE
 
double INCLINE_NADIR
 
double LIVETIME
 
double SIGMA_THETA
 
double extraCableDelays [2][48]
 
Double_t fTimes [HALFNFOUR]
 
Double_t fSignalChainResponseA3DigitizerFreqDomain [2][3][16][400]
 
Double_t fSignalChainResponseDigitizerFreqDomain [2][3][16][7][400]
 
Double_t fSignalChainResponseTriggerFreqDomain [2][3][16][7][400]
 
Double_t fRatioTriggerToA3DigitizerFreqDomain [2][3][16][7][400]
 
Double_t fRatioDigitizerToA3DigitizerFreqDomain [2][3][16][7][400]
 
Double_t deltaT
 
Int_t trigEffScanPhi
 
Double_t trigEffScanAtt [5]
 
Double_t trigEffScanPhiDelay [5]
 
Double_t trigEffScanRingDelay [3]
 
Int_t trigEffScanApplyRingDelay [5]
 
Int_t trigEffScanRingsUsed [3]
 
Double_t trigEffScanPulseAtAmpa [HALFNFOUR]
 
Double_t trigEffScanPulseAtAmpaUpsampled [NFOUR]
 
Double_t trigEffScanAmplitudeAtAmpa [NFREQ]
 
Double_t trigEffScanPulseAtSurf [250][HALFNFOUR]
 
int TUFFstatus [3]
 
int ntuffs
 

Static Public Attributes

static const int NBANDS_MAX =100
 max number of bands
 
static const int NPOL =2
 number of polarizations
 
static const int NFREQ =128
 
static const int NTRIG =5
 
static const int NANTENNAS_MAX =2000
 
static const int NLAYERS_MAX =5
 max number of layers (in smex design, it's 4)
 
static const int NTRIGGERLAYERS_MAX =3
 
static const int NPHI_MAX =400
 max number of antennas around in phi (in smex, 16)
 
static const int NFOUR =1024
 
static const int HALFNFOUR =512
 
static const int npointThresh = 1640
 
static const int NPOINTS_BANDS =601
 
static const int NPOINTS_AMPL =58
 
static const int NPOINTS_NOISE =2000
 
static const int nsamp =100
 
static const unsigned N_SUMMED_PHI_SECTORS = 4
 
static const unsigned N_SUMMED_LAYERS = 3
 
static const int NTRIGPHISECTORS =16
 
static const int NPOINTS_GAIN =131
 
static const int NPOINTS_LAB =272
 
static const unsigned int NUM_COHERENT_ANTENNAS = 9
 

Detailed Description

Contains everything about positions within payload and signals it sees for each event, in both the trigger and signal paths.

Definition at line 32 of file anita.hh.

Collaboration diagram for Anita:
Collaboration graph
[legend]

The documentation for this class was generated from the following files: