SummedTurfRate.cxx
1 
9 #include "SummedTurfRate.h"
10 #include "AnitaPacketUtil.h"
11 #include <iostream>
12 #include <fstream>
13 #include <cstring>
14 
15 ClassImp(SummedTurfRate);
16 
18 {
19  //Default Constructor
20 }
21 
23  //Default Destructor
24 }
25 
26 SummedTurfRate::SummedTurfRate(Int_t trun, Int_t trealTime, SummedTurfRateStruct_t *turfPtr)
27 {
28  simplePacketCheck(&(turfPtr->gHdr),PACKET_SUM_TURF_RATE);
29  //All the above does is print a warning message
30  run=trun;
31  realTime=trealTime;
32  payloadTime=turfPtr->unixTime;
33  numRates=turfPtr->numRates;
34  deltaT=turfPtr->deltaT;
35  deadTime=turfPtr->deadTime;
36  memcpy(bufferCount,turfPtr->bufferCount,sizeof(UChar_t)*4);
37  for(int phi=0;phi<PHI_SECTORS;phi++) {
38  l3Rates[phi]=turfPtr->l3Rates[phi];
39  l2Rates[phi]=turfPtr->l2Rates[phi];
40 
41  l3RatesH[phi]=0;
42  l2RatesH[phi]=0;
43  }
44  phiTrigMask=turfPtr->phiTrigMask;
45  l2TrigMask=turfPtr->l2TrigMask;
46  l2TrigMaskH=turfPtr->l2TrigMask;
47  phiTrigMaskH=turfPtr->phiTrigMask;
48  errorFlag=turfPtr->errorFlag;
49  intFlag=0;
50 
51 }
52 
53 
54 SummedTurfRate::SummedTurfRate(Int_t trun, Int_t trealTime, SummedTurfRateStructVer40_t *turfPtr)
55 {
56 
57  if(turfPtr->gHdr.code!=PACKET_SUM_TURF_RATE ||
58  turfPtr->gHdr.verId!=VER_SUM_TURF_RATE ||
59  turfPtr->gHdr.numBytes!=sizeof(SummedTurfRateStructVer40_t)) {
60  std::cerr << "Mismatched packet:\t" << packetCodeAsString(PACKET_SUM_TURF_RATE) << "Ver40\n"
61  << "code:\t" << (int)turfPtr->gHdr.code << "\t" << PACKET_SUM_TURF_RATE
62  << "\nversion:\t" << (int)turfPtr->gHdr.verId
63  << "\t" << 40
64  << "\nsize:\t" << turfPtr->gHdr.numBytes << "\t"
65  << sizeof(SummedTurfRateStruct_t) << std::endl;
66  }
67 
68  //All the above does is print a warning message
69  run=trun;
70  realTime=trealTime;
71  payloadTime=turfPtr->unixTime;
72  numRates=turfPtr->numRates;
73  deltaT=turfPtr->deltaT;
74  deadTime=turfPtr->deadTime;
75  memcpy(bufferCount,turfPtr->bufferCount,sizeof(UChar_t)*4);
76  for(int phi=0;phi<PHI_SECTORS;phi++) {
77  l3Rates[phi]=turfPtr->l3Rates[phi][0];
78  l3RatesH[phi]=turfPtr->l3Rates[phi][1];
79  l2Rates[phi]=0;
80  l2RatesH[phi]=0;
81  }
82  phiTrigMask=turfPtr->phiTrigMask;
83  phiTrigMaskH=turfPtr->phiTrigMaskH;
84  l2TrigMask=turfPtr->l1TrigMask;
85  l2TrigMaskH=turfPtr->l1TrigMaskH;
86  errorFlag=turfPtr->errorFlag;
87  intFlag=0;
88 
89 }
90 
91 
92 // Int_t SummedTurfRate::getL1Rate(int phi, int ring)
93 // {
94 // if(phi<0 || phi>15) return -1;
95 // switch(ring) {
96 // case AnitaRing::kUpperRing:
97 // case AnitaRing::kLowerRing:
98 // return 16*l1Rates[phi][ring];
99 // case AnitaRing::kNadirRing:
100 // if(phi%2==0)
101 // return 16*nadirL1Rates[phi/2]; //Might need to change handling of nadirs
102 // default:
103 // return -1;
104 // }
105 // return -1;
106 // }
107 
108 // Int_t SummedTurfRate::getL2Rate(int phi, int ring)
109 // {
110 // if(phi<0 || phi>15) return -1;
111 // switch(ring) {
112 // case AnitaRing::kUpperRing:
113 // return 64*upperL2Rates[phi];
114 // case AnitaRing::kLowerRing:
115 // return 64*lowerL2Rates[phi];
116 // case AnitaRing::kNadirRing:
117 // if(phi%2==0)
118 // return 64*nadirL2Rates[phi/2];
119 // default:
120 // return -1;
121 // }
122 // return -1;
123 // }
124 
125 // Int_t SummedTurfRate::getNadirL12Rate(int phi) {
126 // if(phi<0 || phi>15) return -1;
127 // if(phi%2==0)
128 // return 16*nadirL1Rates[phi/2];
129 // else
130 // return 64*nadirL2Rates[phi/2];
131 // }
132 
134  if(phi<0 || phi>15) return -1;
135  if(pol==AnitaPol::kVertical)
136  return ((phiTrigMask & (1<<phi))?1:0);
137 
138  return ((phiTrigMaskH & (1<<phi))?1:0);
139 }
140 
141 
143  return -1;
144  if(phi<0 || phi>15) return -1;
145  if(pol==AnitaPol::kVertical)
146  return ((l2TrigMask & (1<<phi))?1:0);
147 
148  return ((l2TrigMaskH & (1<<phi))?1:0);
149 }
150 
151 
152 
154  //return -1;
155  if(phi<0 || phi>15) return -1;
156  return ((l2TrigMask & (1<<phi))?1:0);
157 }
UInt_t realTime
Time in unixTime.
unsigned short phiTrigMaskH
16-bit phi-sector mask
Definition: oldStructs.h:589
SummedTurfRate()
Default constructor.
SummedTurfRateStruct_t – yes.
UShort_t l2RatesH[16]
HPol l2 rates (called l1rates in A3) for A3 compatibility. 0 for A4.
UShort_t phiTrigMaskH
Which phi sectors are masked off?
UInt_t payloadTime
Time in unixTime.
UShort_t l3Rates[16]
Summed l3 rates.
Summed Turf Rates – Telemetered.
unsigned char errorFlag
Bit 1-4 bufferdepth, Bits 5,6,7 are for upper,lower,nadir trig mask match.
Definition: oldStructs.h:590
UInt_t l2Rates[16]
Summed l2 rates.
UShort_t l2TrigMaskH
Which phi sectors are masked off?
unsigned short l3Rates[16][2]
/numRates to get Hz z
Definition: oldStructs.h:585
unsigned short deltaT
Difference in time between first and last.
unsigned int unixTime
Time of first hk.
UShort_t l3RatesH[16]
Summed l3 rates.
unsigned int deadTime
Summed dead time between first and last.
unsigned short l3Rates[16]
/numRates to get Hz z
UShort_t deltaT
Time span of data in seconds.
Int_t intFlag
Interpolation flag – zero for raw data.
unsigned short numRates
Number of rates in average.
Definition: oldStructs.h:581
unsigned char errorFlag
Bit 1-4 bufferdepth, Bits 5,6,7 are for upper,lower,nadir trig mask match.
SummedTurfRate – The Summed Turf Rate data.
Int_t isL1Masked(int phi, AnitaPol::AnitaPol_t pol=AnitaPol::kVertical)
Deprecated.
const char * packetCodeAsString(PacketCode_t code)
packetCodeAsString – utility function
UChar_t errorFlag
Error flag.
unsigned short phiTrigMask
16-bit phi-sector mask
Definition: oldStructs.h:588
Int_t isL2Masked(int phi)
Returns 1 if given phi is masked off.
Int_t run
Run number, assigned offline.
unsigned char bufferCount[4]
Counting filled buffers.
unsigned int unixTime
Time of first hk.
Definition: oldStructs.h:580
unsigned char bufferCount[4]
Counting filled buffers.
Definition: oldStructs.h:584
unsigned short l1TrigMask
As read from TURF (16-bit phi)
Definition: oldStructs.h:586
UShort_t l2TrigMask
Which phi sectors are masked off?
Int_t isPhiMasked(int phi, AnitaPol::AnitaPol_t pol=AnitaPol::kVertical)
Returns 1 if given phi is masked off.
unsigned short l1TrigMaskH
As read from TURF (16-bit phi)
Definition: oldStructs.h:587
UChar_t bufferCount[4]
Count of times each buffer is full.
unsigned short l2TrigMask
As read from TURF (16-bit phi)
UInt_t deadTime
Total deadtime (/ by numRates*66535 to get fraction)
Vertical Polarisation.
unsigned short deltaT
Difference in time between first and last.
Definition: oldStructs.h:582
unsigned short numRates
Number of rates in average.
unsigned int deadTime
Summed dead time between first and last.
Definition: oldStructs.h:583
~SummedTurfRate()
Destructor.
UShort_t numRates
Number of rates in the sum.
unsigned short phiTrigMask
16-bit phi-sector mask
enum AnitaPol::EAnitaPol AnitaPol_t
Polarisation enumeration.
int simplePacketCheck(GenericHeader_t *gHdr, PacketCode_t code)
simplePacketCheck – utility function
UShort_t phiTrigMask
Which phi sectors are masked off?
unsigned int l2Rates[16]
Divide by numRates to get Hz.