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

AnitaGeomTool – The ANITA Geometry Tool. More...

#include <AnitaGeomTool.h>

Public Member Functions

virtual ~AnitaGeomTool ()
 Default destructor.
 
Double_t getDirectionWrtNorth (Int_t phi, Double_t heading)
 Get direction that a phi sector is pointing wrt north. Also takes heading as a input. More...
 
void fillAntPositionsFromPrioritizerdConfig ()
 Used for evaluating ANITA-3 Prioritizerd performance. More...
 
void getAntXYZ (Int_t ant, Double_t &x, Double_t &y, Double_t &z, AnitaPol::AnitaPol_t pol=AnitaPol::kVertical)
 get antenna cartesian coordinates (from photogrammetry)
 
Double_t getAntZ (Int_t ant, AnitaPol::AnitaPol_t pol=AnitaPol::kVertical)
 get antenna z position
 
Double_t getAntR (Int_t ant, AnitaPol::AnitaPol_t pol=AnitaPol::kVertical)
 get antenna r position
 
Double_t getAntPhiPosition (Int_t ant, AnitaPol::AnitaPol_t pol=AnitaPol::kVertical)
 get antenna phi position
 
Double_t getAntPhiPositionRelToAftFore (Int_t ant, AnitaPol::AnitaPol_t pol=AnitaPol::kVertical)
 get antenna phi position relative to ADU5 AFT-FORE line
 
Double_t getMeanAntPairPhiRelToAftFore (Int_t firstAnt, Int_t secondAnt, AnitaPol::AnitaPol_t pol=AnitaPol::kVertical)
 The mean of the two antenna phi positions.
 
Int_t getTopAntNearestPhiWave (Double_t phiWave, AnitaPol::AnitaPol_t pol=AnitaPol::kVertical)
 get antenna closest to given plane wave direction
 
Int_t getUpperAntNearestPhiWave (Double_t phiWave, AnitaPol::AnitaPol_t pol=AnitaPol::kVertical)
 
void getAntFaceXYZ (Int_t ant, Double_t &x, Double_t &y, Double_t &z)
 get location fo antenna face in balloon cartesian coordinates
 
Double_t getAntFaceZ (Int_t ant)
 get z position for antenna face
 
Double_t getAntFaceR (Int_t ant)
 get r position for antenna face
 
Double_t getAntFacePhiPosition (Int_t ant)
 get phi position for antenna face
 
Double_t getAntFacePhiPositionRelToAftFore (Int_t ant)
 get phi position relative to ADU5 AFT-FORE direction
 
Int_t getTopAntFaceNearestPhiWave (Double_t phiWave)
 get upper antenna closest to given plane wave direction
 
Int_t getUpperAntFaceNearestPhiWave (Double_t phiWave)
 get upper antenna closest to given plane wave direction
 
void updateAnt (Double_t deltaR, Double_t deltaRL, Double_t deltaUD)
 
void printAntPos ()
 
void addPhaseCenters ()
 
void usePhotogrammetryNumbers (Int_t flag)
 
Double_t getGeoid (Double_t theta)
 Returns the geoid radiuus as a function of theta (the polar angle?)
 
void getCartesianCoords (Double_t lat, Double_t lon, Double_t alt, Double_t p[3])
 
void getLatLonAltFromCartesian (Double_t p[3], Double_t &lat, Double_t &lon, Double_t &alt)
 
Double_t getDistanceToCentreOfEarth (Double_t lat)
 
Double_t getLat (Double_t theta)
 Converts polar angle to latitude.
 
Double_t getLon (Double_t phi)
 Converts a azimuthal angle to longitude.
 
Double_t getThetaFromLat (Double_t lat)
 Converts latitude to polar angle.
 
Double_t getPhiFromLon (Double_t lon)
 Converts longitude to azimuthal angle.
 
Double_t getPhi (Double_t p[3])
 Converts cartesian coordinates to azimuthal angle.
 
Double_t getPhi (TVector3 &thePos)
 Converts cartesian coordinates to azimuthal angle.
 
Double_t getTheta (Double_t p[3])
 Converts cartesian coordinates to polar angle.
 
Double_t getTheta (TVector3 &thePos)
 Converts cartesian coordinates to polar angle.
 
void getLonLat (Double_t p[3], Double_t &lon, Double_t &lat)
 Converts cartesian coordinates to latitude and longitude.
 
void getLonLat (TVector3 &thePos, Double_t &lon, Double_t &lat)
 Converts cartesian coordinates to latitude and longitude.
 

Static Public Member Functions

static AnitaGeomToolInstance (int anita_version=0)
 Instance generator. If version_number == 0, uses AnitaVersion::get();. More...
 
static AnitaRing::AnitaRing_t getRingFromAnt (Int_t ant)
 Get ring form antenna number (0-39)
 
static void getSurfChanAntFromRingPhiPol (AnitaRing::AnitaRing_t ring, Int_t phi, AnitaPol::AnitaPol_t pol, Int_t &surf, Int_t &chan, Int_t &ant)
 Convert ring-phi-pol to surf-chan-ant.
 
static void getRingAntPolPhiFromSurfChan (Int_t surf, Int_t chan, AnitaRing::AnitaRing_t &ring, Int_t &ant, AnitaPol::AnitaPol_t &pol, Int_t &phi)
 Convert surf-chan to ring-ant-pol-phi.
 
static Int_t getChanIndex (Int_t surf, Int_t chan)
 Surf + channel to channel index.
 
static Int_t getChanIndexFromRingPhiPol (AnitaRing::AnitaRing_t ring, Int_t phi, AnitaPol::AnitaPol_t pol)
 Convert ring-phi-pol to logical index.
 
static Int_t getChanIndexFromAntPol (Int_t ant, AnitaPol::AnitaPol_t pol)
 Convert ant-pol to logical index.
 
static Int_t getSurfFromAnt (Int_t ant)
 
static Int_t getChanFromAntPol (Int_t ant, AnitaPol::AnitaPol_t pol)
 
static Int_t getSurfChanFromChanIndex (Int_t chanIndex, Int_t &surf, Int_t &chan)
 Convert logical index to surf and channel.
 
static Int_t getPhiRingPolFromSurfChanTrigger (Int_t surf, Int_t chan, Int_t &phi, AnitaRing::AnitaRing_t &ring, AnitaTrigPol::AnitaTrigPol_t &pol)
 Converts the SURF and channel numbers to phi-sector, ring and polarization.
 
static Int_t getSurfChanTriggerFromPhiRingPol (Int_t phi, AnitaRing::AnitaRing_t ring, AnitaTrigPol::AnitaTrigPol_t pol, Int_t &surf, Int_t &chan)
 Converts the SURF and L1 trigger channel to phi-sector and polarization.
 
static Int_t getPhiRingFromSurfL1Chan (Int_t surf, Int_t l1Chan, Int_t &phi, AnitaRing::AnitaRing_t &ring)
 Converts the SURF and L1 trigger channel to phi-sector and polarization.
 
static Int_t getPhiPolFromSurfL1Chan (Int_t surf, Int_t l1Chan, Int_t &phi, AnitaPol::AnitaPol_t &pol)
 Converts the SURF and L1 trigger channel to phi-sector and polarization.
 
static Int_t getSurfL1TriggerChanFromPhiRing (Int_t phi, AnitaRing::AnitaRing_t ring, Int_t &surf, Int_t &l1Chan)
 Convert phi-sector and polarization from phi-sector and polarization.
 
static Int_t getSurfL1TriggerChanFromPhiPol (Int_t phi, AnitaPol::AnitaPol_t ring, Int_t &surf, Int_t &l1Chan)
 
static Int_t getSurfL2TriggerChanFromPhi (Int_t phi, Int_t &surf, Int_t &l2Chan)
 Converts phi-sector to surf and l2 trigger channel.
 
static Int_t getAntPolFromSurfChan (Int_t surf, Int_t chan, Int_t &ant, AnitaPol::AnitaPol_t &pol)
 Convert surf-chan to ant-pol.
 
static Int_t getAzimuthPartner (Int_t rx)
 output the antenna that points to the same place in phi as the input antenna
 
static void getThetaPartners (Int_t rx, int &rxleft, int &rxright)
 output the antennas that are in neighbouring phi sectors (not the neighbouring antennas)
 
static void getNeighbors (Int_t rx, int &rxleft, int &rxright)
 output the neighboring antennas
 
static Int_t getPhiSector (Int_t rx)
 phi sector of this antenna. rx runs from 0 to 31.
 
static Int_t getLayer (Int_t irx)
 get layer given antenna number
 
static Int_t getPhiFromAnt (Int_t ant)
 get phi from ant
 
static Int_t getAntFromPhiRing (Int_t phi, AnitaRing::AnitaRing_t ring)
 get antenna number from phi and ring
 
static Int_t getAntOrientation (Int_t ant)
 Some of the antennas have their orientation reversed relative to nominal. The effect of this is to switch the sign the of the signal (as up is down and left is right). Returns 1 for nominal orientation and -1 for flipped.
 
static Double_t getPhiDiff (Double_t firstPhi, Double_t secondPhi)
 Returns the angular difference between two phi values (in radians)
 

Public Attributes

Double_t xAntFromDeckHorn [48]
 
Double_t yAntFromDeckHorn [48]
 
Double_t zAntFromDeckHorn [48]
 
Double_t rAntFromDeckHorn [48]
 
Double_t azCentreFromDeckHorn [48]
 
Double_t apertureAzFromDeckHorn [48]
 
Double_t apertureElFromDeckHorn [48]
 
Double_t xPhaseCentreFromDeckHorn [48][2]
 
Double_t yPhaseCentreFromDeckHorn [48][2]
 
Double_t zPhaseCentreFromDeckHorn [48][2]
 
Double_t rPhaseCentreFromDeckHorn [48][2]
 
Double_t azPhaseCentreFromDeckHorn [48][2]
 
Double_t xAntFromDeckBicone [4]
 
Double_t yAntFromDeckBicone [4]
 
Double_t zAntFromDeckBicone [4]
 
Double_t xAntFromDeckDiscone [4]
 
Double_t yAntFromDeckDiscone [4]
 
Double_t zAntFromDeckDiscone [4]
 
Double_t xAnitaBoxFromDeckCorner [4]
 
Double_t yAnitaBoxFromDeckCorner [4]
 
Double_t zAnitaBoxFromDeckCorner [4]
 
Double_t xBatteryBoxFromDeckCorner [4]
 
Double_t yBatteryBoxFromDeckCorner [4]
 
Double_t zBatteryBoxFromDeckCorner [4]
 
Double_t xSipBoxFromDeckCorner [4]
 
Double_t ySipBoxFromDeckCorner [4]
 
Double_t zSipBoxFromDeckCorner [4]
 
Double_t gpsPlaneFromDeck [3]
 
Double_t gpsHeadingFromDeck [3]
 
Double_t aftForeOffsetAngleDeck
 
Double_t xAntFromVerticalHorn [48]
 
Double_t yAntFromVerticalHorn [48]
 
Double_t zAntFromVerticalHorn [48]
 
Double_t rAntFromVerticalHorn [48]
 
Double_t azCentreFromVerticalHorn [48]
 
Double_t apertureAzFromVerticalHorn [48]
 
Double_t apertureElFromVerticalHorn [48]
 
Double_t xPhaseCentreFromVerticalHorn [48][2]
 
Double_t yPhaseCentreFromVerticalHorn [48][2]
 
Double_t zPhaseCentreFromVerticalHorn [48][2]
 
Double_t rPhaseCentreFromVerticalHorn [48][2]
 
Double_t azPhaseCentreFromVerticalHorn [48][2]
 
Double_t xAntFromVerticalBicone [4]
 
Double_t yAntFromVerticalBicone [4]
 
Double_t zAntFromVerticalBicone [4]
 
Double_t xAntFromVerticalDiscone [4]
 
Double_t yAntFromVerticalDiscone [4]
 
Double_t zAntFromVerticalDiscone [4]
 
Double_t xAnitaBoxFromVerticalCorner [4]
 
Double_t yAnitaBoxFromVerticalCorner [4]
 
Double_t zAnitaBoxFromVerticalCorner [4]
 
Double_t xBatteryBoxFromVerticalCorner [4]
 
Double_t yBatteryBoxFromVerticalCorner [4]
 
Double_t zBatteryBoxFromVerticalCorner [4]
 
Double_t xSipBoxFromVerticalCorner [4]
 
Double_t ySipBoxFromVerticalCorner [4]
 
Double_t zSipBoxFromVerticalCorner [4]
 
Double_t gpsPlaneFromVertical [3]
 
Double_t gpsHeadingFromVertical [3]
 
Double_t aftForeOffsetAngleVertical
 
Double_t deltaRPhaseCentre [48][2]
 
Double_t deltaZPhaseCentre [48][2]
 
Double_t deltaPhiPhaseCentre [48][2]
 
Double_t ringPhaseCentreOffset [3]
 
TVector3 fHeadingRotationAxis
 
TVector3 fPitchRotationAxis
 
TVector3 fRollRotationAxis
 
Double_t xAntFromVerticalHornPhotogrammetry [48]
 
Double_t yAntFromVerticalHornPhotogrammetry [48]
 
Double_t zAntFromVerticalHornPhotogrammetry [48]
 
Double_t rAntFromVerticalHornPhotogrammetry [48]
 
Double_t azCentreFromVerticalHornPhotogrammetry [48]
 
Double_t apertureAzFromVerticalHornPhotogrammetry [48]
 
Double_t apertureElFromVerticalHornPhotogrammetry [48]
 
Double_t xPhaseCentreFromVerticalHornPhotogrammetry [48][2]
 
Double_t yPhaseCentreFromVerticalHornPhotogrammetry [48][2]
 
Double_t zPhaseCentreFromVerticalHornPhotogrammetry [48][2]
 
Double_t rPhaseCentreFromVerticalHornPhotogrammetry [48][2]
 
Double_t azPhaseCentreFromVerticalHornPhotogrammetry [48][2]
 
Double_t aftForeOffsetAngleVerticalPhotogrammetry
 

Detailed Description

AnitaGeomTool – The ANITA Geometry Tool.

This is a utility class of useful thingies that can be used for some of the standard conversions that are needed in ANITA analysis. Some of the functions are static and can be called via AnitaGeomTool::functionName(), others require the user to get an instance of the AnitaGeomTool first using AnitaGeomTool *myGeomTool = AnitaGeomTool::Instance()

Definition at line 48 of file AnitaGeomTool.h.

Member Function Documentation

void AnitaGeomTool::fillAntPositionsFromPrioritizerdConfig ( )

Used for evaluating ANITA-3 Prioritizerd performance.

Use the geometrical information from he ANITA-3 Prioritizerd, from feed position numbers.

Definition at line 214 of file AnitaGeomTool.cxx.

Double_t AnitaGeomTool::getDirectionWrtNorth ( Int_t  phi,
Double_t  heading 
)

Get direction that a phi sector is pointing wrt north. Also takes heading as a input.

< Heading increases clockwise but phi-sector numbers increase anticlockwise, hence -ve sign.

Definition at line 765 of file AnitaGeomTool.cxx.

AnitaGeomTool * AnitaGeomTool::Instance ( int  anita_version = 0)
static

Instance generator. If version_number == 0, uses AnitaVersion::get();.

Generates an instance of AnitaGeomTool, required for non-static functions.

Definition at line 431 of file AnitaGeomTool.cxx.


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