AnitaConventions.cxx
1 //
2 // Body for AnitaConventions class so that CINT recognizes its existence
3 //
4 #include "AnitaConventions.h"
5 #include <iostream>
6 #include <cstring>
7 
9 {
10  switch(calType) {
11  case kNoCalib:
12  return "The 260 samples straight from raw data";
13  break;
14  case kJustUnwrap:
15  return "The X good samples from raw data (260-hitbus)";
16  break;
17  case kNominal:
18  return "Using mV/ADC = 1 and all dts = 1./2.6 ns";
19  break;
20  case kJustTimeNoUnwrap :
21  return "For calibration: sample-to-sample dts without unwrapping (or voltage calibs)";
22  break;
24  return "No inter-SURF timing (or zero meaning)";
25  break;
27  return "Inter-SURF timing (trigger jitter) without cable delay ";
28  break;
30  return "For calib: opposite RCO from software algorithm";
31  break;
33  return "For calib: applies RCO from firmware (no latch delay)";
34  break;
36  return "For calib: 1-firmware RCO (no latch delay)";
37  break;
38  case kFull:
39  return "deltaTs; voltage; unwrap; trigger jitter; cable delay. The full monty.";
40  break;
41  case kAddPeds:
42  return "Same as full calibration but add pedestal voltages back into waveforms.";
43  break;
44 
45  // case kDefault:
46  // return "Default timing calibration: what you should call for analysis work";
47  // break;
48  case kNotACalib:
49  return "Useful for looping over all calibrations";
50  break;
51 
52  default:
53  return "Unknown Calibration Type";
54  break;
55  }
56  return "Unknown Calibration Type";
57 }
58 
60 {
61  switch(ring) {
62  case kTopRing: return "Top";
63  case kMiddleRing: return "Middle";
64  case kBottomRing: return "Bottom";
65  default:
66  return "Unknown";
67  }
68  return "Unknown";
69 }
70 
71 
73 {
74  switch(ring) {
75  case kTopRing: return 'T';
76  case kMiddleRing: return 'M';
77  case kBottomRing: return 'B';
78  default:
79  return 'U';
80  }
81  return 'U';
82 }
83 
85 {
86  switch(pol) {
87  case kVertical: return 'V';
88  case kHorizontal: return 'H';
89  default:
90  return 'U';
91  }
92  return 'U';
93 }
94 
96 {
97  switch (pol)
98  {
101  default: return AnitaTrigPol::kNotATrigPol;
102  }
103 }
104 
106 {
107  switch(pol) {
108  case kLCP: return 'L';
109  case kRCP: return 'R';
110  case kHorizontal: return 'H';
111  case kVertical: return 'V';
112  default:
113  return 'U';
114  }
115  return 'U';
116 }
117 
118 
120 {
121  switch(band) {
122  case kLow: return "Low";
123  case kMid: return "Mid";
124  case kHigh: return "High";
125  case kFull: return "Full";
126  default:
127  return "Unknown";
128  }
129  return "Unknown";
130 }
131 
133 {
134  std::cout << "Calibration Options" << std::endl;
135  std::cout << "==============================================================================\n\n";
136  for(int i=(int)kNoCalib;i<(int)kNotACalib;i++) {
137  std::cout << i << "\t" << WaveCalType::calTypeAsString((WaveCalType::WaveCalType_t)i) << std::endl;
138  }
139  std::cout << std::endl;
140 }
141 
142 
143 Double_t AnitaLocations::getWaisLatitude() {return AnitaVersion::get() == 3 ? LATITUDE_WAIS_A3 : LATITUDE_WAIS_A4;};
144 Double_t AnitaLocations::getWaisLongitude() {return AnitaVersion::get() == 3 ? LONGITUDE_WAIS_A3 : LONGITUDE_WAIS_A4;};
145 Double_t AnitaLocations::getWaisAltitude() {return AnitaVersion::get() == 3 ? ALTITUDE_WAIS_A3 : ALTITUDE_WAIS_A4;};
const char * calTypeAsString(WaveCalType::WaveCalType_t calType)
Returns the calibration type as a string.
deltaTs, voltage, unwrap, trigger jitter, cable delay. The full monty.
The middle band.
Inter-SURF timing (trigger jitter) without cable delay.
enum WaveCalType::EWaveCalType WaveCalType_t
The calibration enumeration type.
char ringAsChar(AnitaRing::AnitaRing_t ring)
Returns the ring as a character string.
Left-circular polarisation (e.g. A4)
char polAsChar(AnitaTrigPol::AnitaTrigPol_t pol)
Returns the polarisation as a character string.
Horizontal Polarisation (e.g. A3)
USeful in for loops.
Useful for looping over all calibrations.
const Double_t LONGITUDE_WAIS_A4
Longitude of WAIS divide pulser.
const char * ringAsString(AnitaRing::AnitaRing_t ring)
Returns the ring as a character string.
AnitaTrigPol::AnitaTrigPol_t fromAnitaPol(AnitaPol::AnitaPol_t pol)
Right-circular polarisation (e.g. A4)
enum AnitaRing::EAnitaRing AnitaRing_t
Ring enumeration.
enum AnitaTrigPol::EAnitaTrigPol AnitaTrigPol_t
Polarisation enumeration.
const char * bandAsString(AnitaBand::AnitaBand_t band)
Returns the band as a character string.
The low band.
For calibration: sample-to-sample dts without unwrapping (or voltage calibs)
void listAllCalTypes()
Prints a list of all available calibration types.
const Double_t ALTITUDE_WAIS_A4
Altitude of WAIS divide pulser.
The 260 samples straight from raw data.
enum AnitaBand::EAnitaBand AnitaBand_t
Band enumeration.
The high band.
For calib: opposite RCO from software algorithm.
Vertical Polarisation.
The X good samples from raw data (260-hitbus)
char polAsChar(AnitaPol::AnitaPol_t pol)
Returns the polarisation as a character string.
Vertical Polarisation (e.g. A3)
For calib: applies RCO from firmware (no latch delay)
Horizontal Polarisation.
For calib: 1-firmware RCO (no latch delay)
No inter-SURF timing (or zero meaning)
enum AnitaPol::EAnitaPol AnitaPol_t
Polarisation enumeration.
const Double_t ALTITUDE_WAIS_A3
Altitude of WAIS divide pulser.
const Double_t LONGITUDE_WAIS_A3
Longitude of WAIS divide pulser.
Using mV/ADC = 1 and all dts = 1./2.6 ns.