Does the event reconstruction, and produces a summary of it. More...
#include <AnalysisReco.h>
Public Types | |
enum | DrawDomain { kTimeDomain = 0, kFreqDomain = 1, kStokesParams = 2 } |
Public Member Functions | |
AnalysisReco () | |
Constructor. More... | |
virtual | ~AnalysisReco () |
Destructor. More... | |
void | process (const FilteredAnitaEvent *fEv, AnitaEventSummary *sum, NoiseMonitor *noiseMonitor=NULL, TruthAnitaEvent *truth=NULL) |
Double_t | getDeltaTExpected (AnitaPol::AnitaPol_t pol, Int_t ant1, Int_t ant2, Double_t phiWave, Double_t thetaWave) const |
Get the expected delay between antenna pairs for a given direction. More... | |
Double_t | getDeltaTExpected (AnitaPol::AnitaPol_t pol, Int_t ant, Double_t phiWave, Double_t thetaWave) const |
Get the expected delay between a single antenna and the center of the payload for a given direction. More... | |
Double_t | relativeOffAxisDelay (AnitaPol::AnitaPol_t pol, Int_t ant1, Int_t ant2, Double_t phiDeg) const |
Get the off axis delay between two antennas for a given phi angle. More... | |
Double_t | singleAntennaOffAxisDelay (Double_t deltaPhiDeg) const |
void | drawSummary (TPad *wholePad, AnitaPol::AnitaPol_t pol) |
Draw everything interesting onto a TPad. More... | |
InterferometricMap * | getMap (AnitaPol::AnitaPol_t pol) |
Get a pointer to the coarsely binned interferometric map stored in memory, once called, you own this InterferometricMap and must delete it. More... | |
InterferometricMap * | getZoomMap (AnitaPol::AnitaPol_t pol, UInt_t peakInd=0) |
Get a pointer to a finely binned interferometric map stored in memory, once called, you own this InterferometricMap and must delete it. More... | |
void | reconstruct (AnitaPol::AnitaPol_t pol, const Adu5Pat *pat=NULL) |
produce and store the coarsely binned interferometric map, (overwrites coarseMaps) More... | |
void | reconstructZoom (AnitaPol::AnitaPol_t pol, Int_t peakIndex, Double_t zoomCenterPhiDeg, Double_t zoomCenterThetaDeg, const Adu5Pat *pat=NULL) |
produce and store a finely binned interferometric map, (overwrites fineMaps) More... | |
AnalysisWaveform * | coherentlySum (const FilteredAnitaEvent *fEv, AnitaPol::AnitaPol_t pol, const std::vector< Int_t > &theAnts, Double_t peakPhiDeg, Double_t peakThetaDeg, Double_t *biggestPeakToPeak=NULL, double *forceT0=NULL) |
Make a coherently summed waveform for a given polarization, set of antennas in a particular direction. More... | |
AnalysisWaveform * | coherentlySum (std::vector< const AnalysisWaveform * > &waves, std::vector< Double_t > &dts, const double *forceT0=NULL) |
Coherenty sum a set of AnalysisWaveforms with a set of dts. More... | |
void | insertPhotogrammetryGeometry () |
Inserts the photogrammetry geometry from AnitaGeomTool into this classes copy of the antenna position. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! More... | |
AnalysisWaveform * | getCoherentFiltered (AnitaPol::AnitaPol_t pol, Int_t peakInd=0, bool xPol=false) |
Coherently summed filtered (un-deconvolved) waveform accessor for external processes. Only works once per event processed as ownership is transferred to the function caller. More... | |
AnalysisWaveform * | getCoherent (AnitaPol::AnitaPol_t pol, Int_t peakInd=0, bool xPol=false) |
Coherently summed (un-filtered, un-deconvolved) waveform accessor for external processes. Only works once per event processed as ownership is transferred to the function caller. More... | |
AnalysisWaveform * | getDeconvolved (AnitaPol::AnitaPol_t pol, Int_t peakInd=0, bool xPol=false) |
Coherently summed (un-filtered) deconvolved waveform accessor for external processes. Only works once per event processed as ownership is transferred to the function caller. More... | |
AnalysisWaveform * | getDeconvolvedFiltered (AnitaPol::AnitaPol_t pol, Int_t peakInd=0, bool xPol=false) |
Coherently summed filtered deconvolved waveform accessor for external processes. Only works once per event processed as ownership is transferred to the function caller. More... | |
FilteredAnitaEvent * | getEvMin () |
FilteredAnitaEvent * | getEvMinDeco () |
FilteredAnitaEvent * | getEvDeco () |
void | directionAndAntennasToDeltaTs (const std::vector< Int_t > &theAnts, AnitaPol::AnitaPol_t pol, Double_t peakPhiDeg, Double_t peakThetaDeg, std::vector< double > &dts) |
From a list of antennas, get a set of dts relative to the first antenna. More... | |
void | fillPowerFlags (const FilteredAnitaEvent *fEv, AnitaEventSummary::EventFlags &flags) |
const std::vector< int > & | phiSectorToCoherentAnts (int peakPhiSector) |
Get a list of antenna indices (in a std::vector) for a coherently averaged waveform based from the phi-sector. More... | |
void | wavesInCoherent (std::vector< const AnalysisWaveform * > &waves, std::vector< Double_t > &dts, std::vector< TGraphAligned * > &grs) |
Generate a new set of TGraphAligned such that the peaks are aligned,. More... | |
CrossCorrelator * | getCrossCorrelator () |
const AnitaEventSummary & | lastSummary () |
Int_t | GetDebug () const |
Get the value of fDebug. | |
void | SetDebug (Int_t val) |
Set the value of fDebug. | |
Int_t | GetCoherentDeltaPhi () const |
Get the value of fCoherentDeltaPhi. | |
void | SetCoherentDeltaPhi (Int_t val) |
Set the value of fCoherentDeltaPhi. | |
Int_t | GetWhichResponseDir () const |
Get the value of fWhichResponseDir. | |
void | SetWhichResponseDir (Int_t val) |
Set the value of fWhichResponseDir. | |
Int_t | GetUseOffAxisDelay () const |
Get the value of fUseOffAxisDelay. | |
void | SetUseOffAxisDelay (Int_t val) |
Set the value of fUseOffAxisDelay. | |
Int_t | GetResponseNPad () const |
Get the value of fResponseNPad. | |
void | SetResponseNPad (Int_t val) |
Set the value of fResponseNPad. | |
Int_t | GetNumPeaks () const |
Get the value of fNumPeaks. | |
void | SetNumPeaks (Int_t val) |
Set the value of fNumPeaks. | |
Double_t | GetCoherentDtNs () const |
Get the value of fCoherentDtNs. | |
void | SetCoherentDtNs (Double_t val) |
Set the value of fCoherentDtNs. | |
Double_t | GetSlopeFitStartFreqGHz () const |
Get the value of fSlopeFitStartFreqGHz. | |
void | SetSlopeFitStartFreqGHz (Double_t val) |
Set the value of fSlopeFitStartFreqGHz. | |
Double_t | GetSlopeFitEndFreqGHz () const |
Get the value of fSlopeFitEndFreqGHz. | |
void | SetSlopeFitEndFreqGHz (Double_t val) |
Set the value of fSlopeFitEndFreqGHz. | |
Double_t | GetMeanPowerFlagLowFreqGHz () const |
Get the value of fMeanPowerFlagLowFreqGHz. | |
void | SetMeanPowerFlagLowFreqGHz (Double_t val) |
Set the value of fMeanPowerFlagLowFreqGHz. | |
Double_t | GetMeanPowerFlagHighFreqGHz () const |
Get the value of fMeanPowerFlagHighFreqGHz. | |
void | SetMeanPowerFlagHighFreqGHz (Double_t val) |
Set the value of fMeanPowerFlagHighFreqGHz. | |
Int_t | GetFillChannelInfo () const |
Get the value of fFillChannelInfo. | |
void | SetFillChannelInfo (Int_t val) |
Set the value of fFillChannelInfo. | |
Int_t | GetFillSpectrumInfo () const |
Get the value of fFillSpectrumInfo. | |
void | SetFillSpectrumInfo (Int_t val) |
Set the value of fFillSpectrumInfo. | |
Int_t | GetFillUnfiltered () const |
Get the value of fFillUnfiltered. | |
void | SetFillUnfiltered (Int_t val) |
Set the value of fFillUnfiltered. | |
Int_t | GetInstantaneousStokes () const |
Get the value of fInstantaneousStokes. | |
void | SetInstantaneousStokes (Int_t val) |
Set the value of fInstantaneousStokes. | |
Int_t | GetDrawNPeaks () const |
Get the value of fDrawNPeaks. More... | |
void | SetDrawNPeaks (Int_t val) |
Set the value of fDrawNPeaks. | |
Int_t | GetDrawDomain () const |
Get the value of fDrawDomain as an integer. More... | |
DrawDomain | GetEnumDrawDomain () const |
Get the value of fDrawDomain as AnalysisFlow::selection enum. More... | |
void | SetDrawDomain (Int_t val) |
Set the value of fDrawDomain from an integer value. More... | |
void | SetDrawDomain (DrawDomain val) |
Int_t | GetDrawCoherent () const |
Get the value of fDrawCoherent. | |
void | SetDrawCoherent (Int_t val) |
Set the value of fDrawCoherent. | |
Int_t | GetDrawDedispersed () const |
Get the value of fDrawDedispersed. | |
void | SetDrawDedispersed (Int_t val) |
Set the value of fDrawDedispersed. | |
Int_t | GetDrawXPol () const |
Get the value of fDrawXPol. | |
void | SetDrawXPol (Int_t val) |
Set the value of fDrawXPol. | |
Int_t | GetDrawXPolDedispersed () const |
Get the value of fDrawXPolDedispersed. | |
void | SetDrawXPolDedispersed (Int_t val) |
Set the value of fDrawXPolDedispersed. | |
Static Public Member Functions | |
static Int_t | directlyInsertGeometry (TString pathToLindasFile, AnitaPol::AnitaPol_t pol) |
static void | setTriggerInfoFromPeakPhi (const RawAnitaHeader *header, AnitaPol::AnitaPol_t pol, Int_t peakPhiSector, AnitaEventSummary::PointingHypothesis &peak) |
Calculate and fill the info the AnitaEventSummary relating the compatibility of the hardware trigger and the interferometric peak. More... | |
static void | fillChannelInfo (const FilteredAnitaEvent *fEv, AnitaEventSummary *sum) |
Calculate and fill the numbers for Peng's ChannelInfo object. More... | |
Public Attributes | |
Int_t | fLastCoherentDeltaPhi |
Used to figure out if we need to recalculate the cached values related to coherently summing waveforms. | |
Protected Member Functions | |
void | initializeInternals () |
Sets default values and zeros pointers for dynamically initialised heap members. | |
size_t | checkWavesAndDtsMatch (std::vector< const AnalysisWaveform * > &waves, std::vector< Double_t > &dts) |
Bounds checking for coherent averaging. Checks input vectors are the same length and zero pads/trims the vector in the case they're not. More... | |
void | fillWaveformInfo (AnitaPol::AnitaPol_t pol, Int_t peakInd, AnitaEventSummary::WaveformInfo &info, const FilteredAnitaEvent *fEv, AnalysisWaveform **waveStore, InterferometricMap *h, NoiseMonitor *noiseMonitor, std::vector< double > &I, std::vector< double > &Q, std::vector< double > &U, std::vector< double > &V) |
void | chooseAntennasForCoherentlySumming (int coherentDeltaPhi) |
Generate a set of antennas to use to generate the coherent waveform. More... | |
void | nicelyDeleteInternalFilteredEvents () |
does NULL pointer checking deletion on the internally generated FilteredAnitaEvents, fEvMin, fEvMinDeco, fEvDeco | |
Protected Attributes | |
InterferometricMap * | coarseMaps [AnitaPol::kNotAPol] |
The coarsely binned InterferometricMap from the most recently processed event. | |
InterferometricMap * | fineMaps [AnitaPol::kNotAPol][AnitaEventSummary::maxDirectionsPerPol] |
The finely binned InterferometricMap from the most recently processed event. | |
std::vector< Double_t > | fRArray [AnitaPol::kNotAPol] |
Local copies of the antenna radial positions (metres) from AnitaGeomTool. | |
std::vector< Double_t > | fPhiArrayDeg [AnitaPol::kNotAPol] |
Local copies of the antenna azimuth positions (in degrees) from AnitaGeomTool. | |
std::vector< Double_t > | fZArray [AnitaPol::kNotAPol] |
Local copies of the antenna z positions (metres) from AnitaGeomTool. | |
AnalysisWaveform * | fCoherentFiltered [AnitaPol::kNotAPol][AnitaEventSummary::maxDirectionsPerPol][AnitaPol::kNotAPol] |
Copies of the coherently summed waveforms from the most recently processed event. | |
AnalysisWaveform * | fCoherent [AnitaPol::kNotAPol][AnitaEventSummary::maxDirectionsPerPol][AnitaPol::kNotAPol] |
Copies of the unfiltered, coherently summed waveform from the most recently processed event. | |
AnalysisWaveform * | fDeconvolved [AnitaPol::kNotAPol][AnitaEventSummary::maxDirectionsPerPol][AnitaPol::kNotAPol] |
Copies of the dedispersed, unfiltered coherently summed waveform from the most recently processed event. | |
AnalysisWaveform * | fDeconvolvedFiltered [AnitaPol::kNotAPol][AnitaEventSummary::maxDirectionsPerPol][AnitaPol::kNotAPol] |
Copies of the dedispersed, filtered coherently summed waveform from the most recently processed event. | |
std::vector< Int_t > | fPhiSectorToAnts [NUM_PHI] |
Which antennas to use to make coherently summed waveforms depending on the phi-sector of the peak. | |
AnitaEventSummary | fSummary |
A copy of the AnitaEventSummary from the most recently processed event. | |
CrossCorrelator * | fCrossCorr |
CrossCorrelator generates the set of cross-correlations required to make an InterferometricMap. | |
bool | fSpawnedCrossCorrelator |
Did I initialize a CrossCorrelator for fCrossCorr, or was I given a CrossCorrelator initialized by someone else? | |
InterferometryCache | fDtCache |
Caches antenna delays as a function of incoming angle, for quickly making an Interferometric map. | |
FilterStrategy * | fMinFilter |
Minimum set of filters (no filers, or just ALFA filters for ANITA-3) | |
FilterStrategy * | fMinDecoFilter |
Minimum filter with an appended deconvolution filter. | |
FilteredAnitaEvent * | fEvMin |
Filtered event produced with the fMinFilter. | |
FilteredAnitaEvent * | fEvMinDeco |
Filtered event produced with the fMinDecoFilter. | |
FilteredAnitaEvent * | fEvDeco |
FilteredEvent produced by appending a deconvolution filter to the filter strategy passed to process() | |
UInt_t | fCurrentEventNumber |
Assigned at the start of process(), helpful for printing warning/info messages. | |
Int_t | fCurrentRun |
Assigned at the start of process(), helpful for printing warning/info messages. | |
std::vector< double > | f_dICoherentFiltered [AnitaPol::kNotAPol][AnitaEventSummary::maxDirectionsPerPol] |
Instantaneous I for each source direction for the coherent filtered waveform. | |
std::vector< double > | f_dQCoherentFiltered [AnitaPol::kNotAPol][AnitaEventSummary::maxDirectionsPerPol] |
Instantaneous Q for each source direction for the coherent filtered waveform. | |
std::vector< double > | f_dUCoherentFiltered [AnitaPol::kNotAPol][AnitaEventSummary::maxDirectionsPerPol] |
Instantaneous U for each source direction for the coherent filtered waveform. | |
std::vector< double > | f_dVCoherentFiltered [AnitaPol::kNotAPol][AnitaEventSummary::maxDirectionsPerPol] |
Instantaneous V for each source direction for the coherent filtered waveform. | |
std::vector< double > | f_dIDeconvolvedFiltered [AnitaPol::kNotAPol][AnitaEventSummary::maxDirectionsPerPol] |
Instantaneous I for each source direction for the dedispersed filtered waveform. | |
std::vector< double > | f_dQDeconvolvedFiltered [AnitaPol::kNotAPol][AnitaEventSummary::maxDirectionsPerPol] |
Instantaneous Q for each source direction for the dedispersed filtered waveform. | |
std::vector< double > | f_dUDeconvolvedFiltered [AnitaPol::kNotAPol][AnitaEventSummary::maxDirectionsPerPol] |
Instantaneous U for each source direction for the dedispersed filtered waveform. | |
std::vector< double > | f_dVDeconvolvedFiltered [AnitaPol::kNotAPol][AnitaEventSummary::maxDirectionsPerPol] |
Instantaneous V for each source direction for the dedispersed filtered waveform. | |
Int_t | fDebug |
Controls the printing of debug info, feel free to wrap noisy stderr messages with if(fDebug),. More... | |
Int_t | fCoherentDeltaPhi |
The +/- range of phi-sectors around the map peak phi-sector to use when making a coherently averaged waveform, i.e. antennas from the nearest 1+2*fCoherentDeltaPhi phi-sectors are used. More... | |
Int_t | fWhichResponseDir |
Which version of the antenna response to use? More... | |
Int_t | fUseOffAxisDelay |
Whether or not to use the derived off-axis delay values when making an InterferometricMap. More... | |
Int_t | fResponseNPad |
How up to how many samples do we need to pad the antenna response functions? More... | |
Int_t | fNumPeaks |
How many local maxima in the coarsely binned InterferometricMap should we make a finely binned InterferometricMap? (per polarization). More... | |
Double_t | fCoherentDtNs |
Time in nano-seconds to interpolate to when coherently averaging waveforms. More... | |
Double_t | fSlopeFitStartFreqGHz |
Frequency at which to start the linear fit to the power spectrum of the coherently averaged waveforms. More... | |
Double_t | fSlopeFitEndFreqGHz |
Frequency at which to stop the linear fit to the power spectrum of the coherently averaged waveforms. More... | |
Double_t | fMeanPowerFlagLowFreqGHz |
Frequency at which to start the mean power calculation. More... | |
Double_t | fMeanPowerFlagHighFreqGHz |
Frequency at which to stop the mean power calculation. More... | |
Int_t | fFillChannelInfo |
Whether or not to fill Peng's AnitaEventSummary::ChannelInfo (smaller output files from better compression if you don't) More... | |
Int_t | fFillSpectrumInfo |
Whether or not to fill the spectrum info (smaller output files from better compression if you don't) More... | |
Int_t | fFillUnfiltered |
Whether or not to fill the AnitaEventSummary::WaveformInfo objects for the unfiltered versions of the AnalysisWaveforms (smaller output files from better compression if you don't) More... | |
Int_t | fInstantaneousStokes |
Whether or not to store instantaneous stokes parameters, currently this is only used for plotting. More... | |
Int_t | fDrawNPeaks |
How many peaks to draw in the summary, must be less than or equal to fNumPeaks. More... | |
DrawDomain | fDrawDomain |
Set as 0 to draw time domain, or 1 to draw frequency domain. More... | |
Int_t | fDrawCoherent |
Int_t | fDrawDedispersed |
Int_t | fDrawXPol |
Int_t | fDrawXPolDedispersed |
Friends | |
class | InterferometryCache |
For accessing the antenna position arrays fRArray, fPhiArrayDeg, fZArray. | |
Does the event reconstruction, and produces a summary of it.
The main workhorse function is process(const FilteredAnitaEvent * ev, AnitaEventSummary * summary, NoiseMonitor* noiseMonitor=NULL, TruthAnitaEvent* truth = NULL). This takes in a FilteredAnitaEvent, produced a bunch of InterferometricMap objects, finds their peak directions, creates a coherently averaged waveform (and deconvolved version) for each, and produces some summary numbers from the maps and waveforms and stores them in an AnitaEventSummary.
Definition at line 30 of file AnalysisReco.h.
Acclaim::AnalysisReco::AnalysisReco | ( | ) |
Constructor.
There are no constructor paramters, but a bunch of things are configurable with config files.
Default constructor
Definition at line 20 of file AnalysisReco.cxx.
|
virtual |
|
protected |
Bounds checking for coherent averaging. Checks input vectors are the same length and zero pads/trims the vector in the case they're not.
waves | the waveforms to sum |
dts | the time offsets to apply |
Definition at line 1001 of file AnalysisReco.cxx.
|
protected |
Generate a set of antennas to use to generate the coherent waveform.
coherentDeltaPhi | is the number of neighbouring phi-sectors to use. |
Definition at line 915 of file AnalysisReco.cxx.
AnalysisWaveform* Acclaim::AnalysisReco::coherentlySum | ( | const FilteredAnitaEvent * | fEv, |
AnitaPol::AnitaPol_t | pol, | ||
const std::vector< Int_t > & | theAnts, | ||
Double_t | peakPhiDeg, | ||
Double_t | peakThetaDeg, | ||
Double_t * | biggestPeakToPeak = NULL , |
||
double * | forceT0 = NULL |
||
) |
Make a coherently summed waveform for a given polarization, set of antennas in a particular direction.
fEv | is the FilteredAnitaEvent from which to draw the waveforms to coherently sum |
pol | is the polarisation of the waveforms in the FilteredAnitaEvent |
theAnts | is the set of antennas to use in the coherent sum |
peakPhiDeg | is the incoming phi-direction in degrees in payload coordinates relative to ADU5 aft-fore |
peakThetaDeg | is the elevation in degrees (theta=0 is horizontal, +ve theta is up) in payload coordinates relative to ADU5 aft-fore |
biggestPeakToPeak | if non-NULL stores the largest peak-to-peak in the set of channels passed to the function |
forceT0 | if non-NULL forces the newly created analysis waveform to start at a time pointed to (default is NULL) |
AnalysisWaveform* Acclaim::AnalysisReco::coherentlySum | ( | std::vector< const AnalysisWaveform * > & | waves, |
std::vector< Double_t > & | dts, | ||
const double * | forceT0 = NULL |
||
) |
Coherenty sum a set of AnalysisWaveforms with a set of dts.
waves | is a set of waveforms to coherently sum |
dts | is the set of time offsets (ns) to apply to those waveforms when summing |
forceT0 | if non-NULL forces the newly created analysis waveform to start at a time pointed to (default is NULL) |
void Acclaim::AnalysisReco::directionAndAntennasToDeltaTs | ( | const std::vector< Int_t > & | theAnts, |
AnitaPol::AnitaPol_t | pol, | ||
Double_t | peakPhiDeg, | ||
Double_t | peakThetaDeg, | ||
std::vector< double > & | dts | ||
) |
From a list of antennas, get a set of dts relative to the first antenna.
This function modularizes one of the particular steps in making the coherently summed waveforms
theAnts | are the antenna indices |
pol | is the polarisation |
peakPhiDeg | is the phi angle relative to ADU5 aft-fore (degrees) |
peakThetaDeg | is the theta angle (0 = horizontal, +ve theta is up) |
dts | is a vector which gets filled with the time offsets |
Definition at line 941 of file AnalysisReco.cxx.
|
static |
Directly insert some geometry generated by Linda. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
pathToLindasFile | points to the file containing the antenna positions/cable delays. |
pol | is the polarisation to overwrite. |
Definition at line 861 of file AnalysisReco.cxx.
void Acclaim::AnalysisReco::drawSummary | ( | TPad * | wholePad, |
AnitaPol::AnitaPol_t | pol | ||
) |
Draw everything interesting onto a TPad.
Having this here greatly simplifies the interface with MagicDisplay
pad | is the pad do draw on if it already exists (makes a new Canvas if passed NULL) |
pol | is the polarization to draw |
Definition at line 1121 of file AnalysisReco.cxx.
|
static |
Calculate and fill the numbers for Peng's ChannelInfo object.
Whether or not this actually gets done can be controlled with the fFillChannelInfo setting
fEv | is the filtered event being processed |
sum | is the pointer to the AnitaEventSummary |
Definition at line 326 of file AnalysisReco.cxx.
void Acclaim::AnalysisReco::fillPowerFlags | ( | const FilteredAnitaEvent * | fEv, |
AnitaEventSummary::EventFlags & | flags | ||
) |
Fill the power related values in the AnitaEventSummary::EventFlags
fEv | is a pointer to the FilteredAnitaEvent being processed |
flags | is a reference to the appropriat bit of the AnitaEventSummary for the processed event |
Definition at line 484 of file AnalysisReco.cxx.
|
protected |
Does the calculations and stores the data for the AnitaEventSummary::WaveformInfo object
pol | is the polarisation |
peakInd | is the index of the map peak |
info | is the selected WaveformInfo in the ANITA event summary |
fEv | is the FilteredAnitaEvent from which we are coherently summing |
waveStore | is the internal storage in the AnalysisReco class (used to save a copy for MagicDisplay) |
h | is the InterferometricMap which contains the peak direction in which we want to coherently sum |
noiseMonitor | Contains the min bias RMS values as a function of time, must be non-NULL to fill SNR values |
Definition at line 56 of file AnalysisReco.cxx.
AnalysisWaveform * Acclaim::AnalysisReco::getCoherent | ( | AnitaPol::AnitaPol_t | pol, |
Int_t | peakInd = 0 , |
||
bool | xPol = false |
||
) |
Coherently summed (un-filtered, un-deconvolved) waveform accessor for external processes. Only works once per event processed as ownership is transferred to the function caller.
pol | is the polarisation |
peakInd | corresponds to which peak in the interferometric map (0 is highest up to fNumPeaks) |
xPol | direct or cross polarisation compared to pol. |
Definition at line 1594 of file AnalysisReco.cxx.
AnalysisWaveform * Acclaim::AnalysisReco::getCoherentFiltered | ( | AnitaPol::AnitaPol_t | pol, |
Int_t | peakInd = 0 , |
||
bool | xPol = false |
||
) |
Coherently summed filtered (un-deconvolved) waveform accessor for external processes. Only works once per event processed as ownership is transferred to the function caller.
pol | is the polarisation |
peakInd | corresponds to which peak in the interferometric map (0 is highest up to fNumPeaks) |
xPol | direct or cross polarisation compared to pol. |
Definition at line 1587 of file AnalysisReco.cxx.
|
inline |
Get a pointer to the CrossCorrelator, fCrossCorr
Definition at line 383 of file AnalysisReco.h.
AnalysisWaveform * Acclaim::AnalysisReco::getDeconvolved | ( | AnitaPol::AnitaPol_t | pol, |
Int_t | peakInd = 0 , |
||
bool | xPol = false |
||
) |
Coherently summed (un-filtered) deconvolved waveform accessor for external processes. Only works once per event processed as ownership is transferred to the function caller.
pol | is the polarisation |
peakInd | corresponds to which peak in the interferometric map (0 is highest up to fNumPeaks) |
xPol | direct or cross polarisation compared to pol. |
Definition at line 1602 of file AnalysisReco.cxx.
AnalysisWaveform * Acclaim::AnalysisReco::getDeconvolvedFiltered | ( | AnitaPol::AnitaPol_t | pol, |
Int_t | peakInd = 0 , |
||
bool | xPol = false |
||
) |
Coherently summed filtered deconvolved waveform accessor for external processes. Only works once per event processed as ownership is transferred to the function caller.
pol | is the polarisation |
peakInd | corresponds to which peak in the interferometric map (0 is highest up to fNumPeaks) |
xPol | direct or cross polarisation compared to pol. |
Definition at line 1610 of file AnalysisReco.cxx.
Double_t Acclaim::AnalysisReco::getDeltaTExpected | ( | AnitaPol::AnitaPol_t | pol, |
Int_t | ant1, | ||
Int_t | ant2, | ||
Double_t | phiWave, | ||
Double_t | thetaWave | ||
) | const |
Get the expected delay between antenna pairs for a given direction.
This one is used for interferometry
pol | is the polarisation |
ant1 | is the first antenna |
ant2 | is the second antenna |
phiWave | is the incoming plane wave direction in radians in payload coordinate relative to ADU5 aft-fore |
thetaWave | is the incoming plane wave direction in radians (theta=0 is horizontal, +ve theta is up) |
Definition at line 715 of file AnalysisReco.cxx.
Double_t Acclaim::AnalysisReco::getDeltaTExpected | ( | AnitaPol::AnitaPol_t | pol, |
Int_t | ant, | ||
Double_t | phiWave, | ||
Double_t | thetaWave | ||
) | const |
Get the expected delay between a single antenna and the center of the payload for a given direction.
This one is used for coherent summing
pol | is the polarisation |
ant | is the antenna |
phiWave | is the incoming plane wave direction in radians in payload coordinate relative to ADU5 aft-fore |
thetaWave | is the incoming plane wave direction in radians (theta=0 is horizontal, +ve theta is up) |
Definition at line 727 of file AnalysisReco.cxx.
|
inline |
Get the value of fDrawDomain as an integer.
Definition at line 767 of file AnalysisReco.h.
|
inline |
Get the value of fDrawNPeaks.
He we get variables and functions to tweak the GUI options for #DrawSummary
Definition at line 739 of file AnalysisReco.h.
|
inline |
Get the value of fDrawDomain as AnalysisFlow::selection enum.
Definition at line 767 of file AnalysisReco.h.
FilteredAnitaEvent * Acclaim::AnalysisReco::getEvDeco | ( | ) |
Access for internally produced filtered, deconvolved event Only works once per event processed as ownership is transferred to the function caller.
Definition at line 1635 of file AnalysisReco.cxx.
FilteredAnitaEvent * Acclaim::AnalysisReco::getEvMin | ( | ) |
Access for internally produce minimally filtered event Only works once per event processed as ownership is transferred to the function caller.
Definition at line 1619 of file AnalysisReco.cxx.
FilteredAnitaEvent * Acclaim::AnalysisReco::getEvMinDeco | ( | ) |
Access for internally produced minimally filtered, deconvolved event Only works once per event processed as ownership is transferred to the function caller.
Definition at line 1627 of file AnalysisReco.cxx.
Acclaim::InterferometricMap * Acclaim::AnalysisReco::getMap | ( | AnitaPol::AnitaPol_t | pol | ) |
Get a pointer to the coarsely binned interferometric map stored in memory, once called, you own this InterferometricMap and must delete it.
The InterferometricMap is from the last event passed to process(const FilteredAnitaEvent * ev, AnitaEventSummary * summary, NoiseMonitor* noiseMonitor=NULL, TruthAnitaEvent* truth = NULL) For speed, once this function is called the internal pointer is set to NULL and responsibility for deletion is given to the function caller.
pol | is the polarisation of the map to get. |
Definition at line 773 of file AnalysisReco.cxx.
Acclaim::InterferometricMap * Acclaim::AnalysisReco::getZoomMap | ( | AnitaPol::AnitaPol_t | pol, |
UInt_t | peakInd = 0 |
||
) |
Get a pointer to a finely binned interferometric map stored in memory, once called, you own this InterferometricMap and must delete it.
The InterferometricMap is from the last event passed to process(const FilteredAnitaEvent * ev, AnitaEventSummary * summary, NoiseMonitor* noiseMonitor=NULL, TruthAnitaEvent* truth = NULL) For speed, once this function is called the internal pointer is set to NULL and responsibility for deletion is given to the function caller.
pol | is the polarisation of the map to get. |
peakInd | is the index of the finely binned peak, corresponding to the local maximum in the coarsely binned map (see ) |
Definition at line 784 of file AnalysisReco.cxx.
void Acclaim::AnalysisReco::insertPhotogrammetryGeometry | ( | ) |
Inserts the photogrammetry geometry from AnitaGeomTool into this classes copy of the antenna position. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Definition at line 740 of file AnalysisReco.cxx.
|
inline |
Get a const reference to the AnitaEventSummary generated from the last event given to process(const FilteredAnitaEvent * ev, AnitaEventSummary * summary, NoiseMonitor* noiseMonitor=NULL, TruthAnitaEvent* truth = NULL)
Definition at line 390 of file AnalysisReco.h.
|
inline |
Get a list of antenna indices (in a std::vector) for a coherently averaged waveform based from the phi-sector.
Depending on where the peak in your InterferometricMap lies you will want to use a subset of antennas to make your coherently summed waveform. This function gives you that subset, from the phi sector, which is an index from 0 to #NUM_PHI - 1.
peakPhiSector | is the phi-sector index. |
Definition at line 361 of file AnalysisReco.h.
void Acclaim::AnalysisReco::process | ( | const FilteredAnitaEvent * | fEv, |
AnitaEventSummary * | sum, | ||
NoiseMonitor * | noiseMonitor = NULL , |
||
TruthAnitaEvent * | truth = NULL |
||
) |
Reconstructs the FilteredAnitaEvent and fills all the reconstruction relative stuff in the passed AnitaEventSummary
ev | is the FilteredAnitaEvent to reconstruct |
summary | is the AnitaEventSummary to fill during the recontruction |
noiseMonitor | is an optional parameter, which points to a NoiseMonitor, which tracks the RMS of MinBias events (used in SNR calculation) |
truth | is an optional pointer to the TruthAnitaEvent class generated with MC events |
Definition at line 346 of file AnalysisReco.cxx.
void Acclaim::AnalysisReco::reconstruct | ( | AnitaPol::AnitaPol_t | pol, |
const Adu5Pat * | pat = NULL |
||
) |
produce and store the coarsely binned interferometric map, (overwrites coarseMaps)
pol | is the polarisation |
pat | is a pointer to the GPS data |
Definition at line 804 of file AnalysisReco.cxx.
void Acclaim::AnalysisReco::reconstructZoom | ( | AnitaPol::AnitaPol_t | pol, |
Int_t | peakIndex, | ||
Double_t | zoomCenterPhiDeg, | ||
Double_t | zoomCenterThetaDeg, | ||
const Adu5Pat * | pat = NULL |
||
) |
produce and store a finely binned interferometric map, (overwrites fineMaps)
pol | is the polarisation |
peakIndex | is the index of the coarsely binned maximum (from 0 to fNumPeaks-1) |
zoomCenterPhiDeg | is the centre of the histogram in phi (azimuth, degrees) |
zoomCenterThetaDeg | is the centre of the histogram in theta (elevation, degrees) |
pat | is a pointer to the GPS data for the eventf |
Definition at line 827 of file AnalysisReco.cxx.
Double_t Acclaim::AnalysisReco::relativeOffAxisDelay | ( | AnitaPol::AnitaPol_t | pol, |
Int_t | ant1, | ||
Int_t | ant2, | ||
Double_t | phiDeg | ||
) | const |
Get the off axis delay between two antennas for a given phi angle.
pol | is the polarisation |
ant1 | is the first antenna |
ant2 | is the second antennas |
phiDeg | is the position in degrees in payload coordinates relative to ADU5 aft-fore |
Definition at line 702 of file AnalysisReco.cxx.
|
inline |
Set the value of fDrawDomain from an integer value.
Definition at line 767 of file AnalysisReco.h.
|
static |
Calculate and fill the info the AnitaEventSummary relating the compatibility of the hardware trigger and the interferometric peak.
header | is the event header |
pol | is the polarization of interest |
peakPhiSector | is the phi-sector of the peak in the interferometric map |
peak | is a reference to the relevant part of the AnitaEventSummary |
Definition at line 551 of file AnalysisReco.cxx.
Double_t Acclaim::AnalysisReco::singleAntennaOffAxisDelay | ( | Double_t | deltaPhiDeg | ) | const |
Get the off boresight delay for a single antenna
deltaPhiDeg | is the phi angle from boresight |
Definition at line 662 of file AnalysisReco.cxx.
void Acclaim::AnalysisReco::wavesInCoherent | ( | std::vector< const AnalysisWaveform * > & | waves, |
std::vector< Double_t > & | dts, | ||
std::vector< TGraphAligned * > & | grs | ||
) |
Generate a new set of TGraphAligned such that the peaks are aligned,.
This is only used for plotting during debugging to make sure everything is working.
waves | is a set of waveforms to coherently sum |
dts | is the set of time offsets (ns) to apply to those waveforms when summing |
grs | are the same as the input AnalysisWaveform graphs but time shifted by dts so their peaks are aligned if plotted together. For debugging. |
Definition at line 1094 of file AnalysisReco.cxx.
|
protected |
The +/- range of phi-sectors around the map peak phi-sector to use when making a coherently averaged waveform, i.e. antennas from the nearest 1+2*fCoherentDeltaPhi phi-sectors are used.
Definition at line 504 of file AnalysisReco.h.
|
protected |
Time in nano-seconds to interpolate to when coherently averaging waveforms.
Definition at line 584 of file AnalysisReco.h.
|
protected |
Controls the printing of debug info, feel free to wrap noisy stderr messages with if(fDebug),.
Definition at line 489 of file AnalysisReco.h.
|
protected |
Definition at line 784 of file AnalysisReco.h.
|
protected |
Definition at line 801 of file AnalysisReco.h.
|
protected |
Set as 0 to draw time domain, or 1 to draw frequency domain.
Definition at line 767 of file AnalysisReco.h.
|
protected |
How many peaks to draw in the summary, must be less than or equal to fNumPeaks.
Definition at line 739 of file AnalysisReco.h.
|
protected |
Definition at line 818 of file AnalysisReco.h.
|
protected |
Definition at line 835 of file AnalysisReco.h.
|
protected |
Whether or not to fill Peng's AnitaEventSummary::ChannelInfo (smaller output files from better compression if you don't)
Definition at line 660 of file AnalysisReco.h.
|
protected |
Whether or not to fill the spectrum info (smaller output files from better compression if you don't)
Definition at line 675 of file AnalysisReco.h.
|
protected |
Whether or not to fill the AnitaEventSummary::WaveformInfo objects for the unfiltered versions of the AnalysisWaveforms (smaller output files from better compression if you don't)
Definition at line 690 of file AnalysisReco.h.
|
protected |
Whether or not to store instantaneous stokes parameters, currently this is only used for plotting.
Definition at line 706 of file AnalysisReco.h.
|
protected |
Frequency at which to stop the mean power calculation.
Definition at line 645 of file AnalysisReco.h.
|
protected |
Frequency at which to start the mean power calculation.
Definition at line 630 of file AnalysisReco.h.
|
protected |
How many local maxima in the coarsely binned InterferometricMap should we make a finely binned InterferometricMap? (per polarization).
Must be less than or equal to AnitaEventSummary::maxDirectionsPerPol. Default is 3.
Definition at line 569 of file AnalysisReco.h.
|
protected |
How up to how many samples do we need to pad the antenna response functions?
Definition at line 552 of file AnalysisReco.h.
|
protected |
Frequency at which to stop the linear fit to the power spectrum of the coherently averaged waveforms.
Definition at line 614 of file AnalysisReco.h.
|
protected |
Frequency at which to start the linear fit to the power spectrum of the coherently averaged waveforms.
Definition at line 599 of file AnalysisReco.h.
|
protected |
Whether or not to use the derived off-axis delay values when making an InterferometricMap.
Definition at line 536 of file AnalysisReco.h.
|
protected |
Which version of the antenna response to use?
Definition at line 521 of file AnalysisReco.h.