1 #ifndef UCORRELATOR_ANALYZER_H 2 #define UCORRELATOR_ANALYZER_H 4 #include "Correlator.h" 5 #include "WaveformCombiner.h" 6 #include "UCorrelatorGUI.h" 9 #include "simpleStructs.h" 10 #include "AnitaEventSummary.h" 11 #include "ResponseManager.h" 12 #include "UsefulAnitaEvent.h" 95 void drawSummary(TPad *chpol = 0, TPad * cvpol = 0,
int draw_filtered = 0)
const;
98 double getRoughTheta(
AnitaPol::AnitaPol_t pol,
int i)
const {
return -rough_peaks[pol][i].second; }
100 void clearInteractiveMemory(
double frac = 0.5)
const;
103 void setDisallowedAntennas(ULong64_t hpol=0, ULong64_t vpol=0) {disallowedAnts[0] = hpol; disallowedAnts[1] = vpol; }
106 void setExcludePhiRange(
double phiMin,
double phiMax) {phiRange[0] = phiMin; phiRange[1] = phiMax; exclude =
true; }
108 void setExcludeThetaRange(
double thetaMin,
double thetaMax) {thetaRange[0] = thetaMin; thetaRange[1] = thetaMax; exclude =
true; }
110 void setExcludeThetaPhiRange(
double thetaMin,
double thetaMax,
double phiMin,
double phiMax) {thetaRange[0] = thetaMin; thetaRange[1] = thetaMax; phiRange[0] = phiMin; phiRange[1] = phiMax; exclude =
true; }
113 void setPhiRange(
double phiMin,
double phiMax) {phiRange[0] = phiMin; phiRange[1] = phiMax; exclude =
false; }
115 void setThetaRange(
double thetaMin,
double thetaMax) {thetaRange[0] = thetaMin; thetaRange[1] = thetaMax; exclude =
false; }
117 void setThetaPhiRange(
double thetaMin,
double thetaMax,
double phiMin,
double phiMax) {thetaRange[0] = thetaMin; thetaRange[1] = thetaMax; phiRange[0] = phiMin; phiRange[1] = phiMax; exclude =
false; }
119 void setTrackSource(
double setLon,
double setLat,
double setAlt,
double setdTheta = 2.5,
double setdPhi = 5.,
bool blockOut =
false) {sourceLon = setLon; sourceLat = setLat; sourceAlt = setAlt; dTheta = setdTheta; dPhi = setdPhi; exclude = blockOut; trackSource =
true; }
121 void setTrackSun(
double setdTheta = 2.5,
double setdPhi = 5.,
bool blockOut =
false) {dTheta = setdTheta; dPhi = setdPhi; exclude = blockOut; trackSun =
true; }
123 void setTrackWAIS(
double setdTheta = 2.5,
double setdPhi = 5.,
bool blockOut =
false) {sourceLon = AnitaLocations::getWaisLongitude(); sourceLat = AnitaLocations::getWaisLatitude(); sourceAlt = AnitaLocations::getWaisAltitude(); dTheta = setdTheta; dPhi = setdPhi; exclude = blockOut; trackSource =
true; }
135 UsefulAdu5Pat * pat,
double hwAngle, UShort_t triggered_sectors, UShort_t masked_sectors, UShort_t triggered_sectors_xpol, UShort_t masked_sectors_xpol);
140 std::vector<gui::Map*> zoomed_correlation_maps[2];
141 std::vector<AnalysisWaveform *> coherent[2][2];
142 std::vector<AnalysisWaveform *> deconvolved[2][2];
143 std::vector<TGraphAligned *> coherent_power[2][2];
144 std::vector<TGraphAligned *> deconvolved_power[2][2];
145 std::vector<AnalysisWaveform *> coherent_xpol[2][2];
146 std::vector<AnalysisWaveform *> deconvolved_xpol[2][2];
147 std::vector<TGraphAligned *> coherent_power_xpol[2][2];
148 std::vector<TGraphAligned *> deconvolved_power_xpol[2][2];
149 std::vector<std::pair<double,double> > rough_peaks[2];
151 TGraph* avg_spectra[2];
164 bool interactive_deconvolved;
165 bool interactive_xpol_deconvolved;
166 ULong64_t disallowedAnts[2];
168 double thetaRange[2];
178 mutable std::vector<TObject*> delete_list;
void setTrackLDB(double setdTheta=2.5, double setdPhi=5., bool blockOut=false)
void analyze(const FilteredAnitaEvent *event, AnitaEventSummary *summary, const TruthAnitaEvent *truth=0)
const AnalysisWaveform * getDeconvolvedXpol(AnitaPol::AnitaPol_t pol, int i, bool filtered=false) const
void setPhiRange(double phiMin, double phiMax)
Correlator * getCorrelator()
const gui::Map * getCorrelationMap(AnitaPol::AnitaPol_t pol) const
Analyzer(const AnalysisConfig *cfg=0, bool interactive=false)
void setDisallowedAntennas(ULong64_t hpol=0, ULong64_t vpol=0)
void setExtraFiltersDeconvolved(FilterStrategy *extra)
const gui::Map * getZoomedCorrelationMap(AnitaPol::AnitaPol_t pol, int i) const
void setThetaRange(double thetaMin, double thetaMax)
A filter strategy defines the sets of filters that are used and provides some introspection abilities...
void setTrackSource(double setLon, double setLat, double setAlt, double setdTheta=2.5, double setdPhi=5., bool blockOut=false)
WaveformCombiner * getWaveformCombiner()
void setExcludePhiRange(double phiMin, double phiMax)
void setExcludeThetaPhiRange(double thetaMin, double thetaMax, double phiMin, double phiMax)
void setTrackWAIS(double setdTheta=2.5, double setdPhi=5., bool blockOut=false)
const Double_t LATITUDE_LDB
Latitude at LDB.
WaveformCombiner * getXPolWaveformCombiner()
TruthAnitaEvent – The Truth ANITA Event.
As UsefulAnitaEvent is to RawAnitaEvent, UsefulAdu5Pat is to Adu5Pat. Well not quite as useful but yo...
const Double_t LONGITUDE_LDB
Longitude at LDB.
const AnalysisWaveform * getDeconvolved(AnitaPol::AnitaPol_t pol, int i, bool filtered=false) const
void setExtraFilters(FilterStrategy *extra)
void setThetaPhiRange(double thetaMin, double thetaMax, double phiMin, double phiMax)
const AnalysisWaveform * getCoherent(AnitaPol::AnitaPol_t pol, int i, bool filtered=false) const
Common analysis format between UCorrelator and Acclaim.
const TGraphAligned * getCoherentPower(AnitaPol::AnitaPol_t pol, int i, bool filtered=false) const
void setTrackSun(double setdTheta=2.5, double setdPhi=5., bool blockOut=false)
This class is intended to store all the necessary data about an ANITA event for filtering and analysi...
enum AnitaPol::EAnitaPol AnitaPol_t
Polarisation enumeration.
void setExcludeThetaRange(double thetaMin, double thetaMax)
const AnalysisWaveform * getCoherentXpol(AnitaPol::AnitaPol_t pol, int i, bool filtered=false) const
void drawSummary(TPad *chpol=0, TPad *cvpol=0, int draw_filtered=0) const
const TGraphAligned * getDeconvolvedPower(AnitaPol::AnitaPol_t pol, int i, bool filtered=false) const
const Double_t ALTITUDE_LDB
Altitude at LDB.