10 #include "RawAnitaHeader.h" 11 #include "AnitaPacketUtil.h" 12 #include "AnitaVersion.h" 31 UInt_t ttriggerTime, UInt_t ttriggerTimeNs, Int_t tgoodTimeFlag)
73 l1TrigMaskOffline = 0;
85 UInt_t ttriggerTime, UInt_t ttriggerTimeNs, Int_t tgoodTimeFlag)
88 hdPtr->gHdr.verId!=40 ||
91 <<
"code:\t" << hdPtr->gHdr.code <<
"\t" <<
PACKET_HD 92 <<
"\nversion:\t" << (int)hdPtr->gHdr.verId
94 <<
"\nsize:\t" << hdPtr->gHdr.numBytes <<
"\t" 134 l1TrigMaskOffline = 0;
148 UInt_t ttriggerTime, UInt_t ttriggerTimeNs, Int_t tgoodTimeFlag)
151 hdPtr->gHdr.verId!=33 ||
154 <<
"code:\t" << hdPtr->gHdr.code <<
"\t" <<
PACKET_HD 155 <<
"\nversion:\t" << (int)hdPtr->gHdr.verId
156 <<
"\t" << (
int)VER_EVENT_HEADER
157 <<
"\nsize:\t" << hdPtr->gHdr.numBytes <<
"\t" 198 l1TrigMaskOffline = l2TrigMask;
212 UInt_t ttriggerTime, UInt_t ttriggerTimeNs, Int_t tgoodTimeFlag)
215 hdPtr->gHdr.verId!=30 ||
218 <<
"code:\t" << hdPtr->gHdr.code <<
"\t" <<
PACKET_HD 219 <<
"\nversion:\t" << (int)hdPtr->gHdr.verId
220 <<
"\t" << (
int)VER_EVENT_HEADER
221 <<
"\nsize:\t" << hdPtr->gHdr.numBytes <<
"\t" 268 UInt_t ttriggerTime, UInt_t ttriggerTimeNs, Int_t tgoodTimeFlag)
271 hdPtr->gHdr.verId!=13 ||
274 <<
"code:\t" << hdPtr->gHdr.code <<
"\t" <<
PACKET_HD 275 <<
"\nversion:\t" << hdPtr->gHdr.verId
277 <<
"\nsize:\t" << hdPtr->gHdr.numBytes <<
"\t" 310 memcpy(
reserved,hdPtr->reserved,2*
sizeof(UChar_t));
323 UInt_t ttriggerTime, UInt_t ttriggerTimeNs, Int_t tgoodTimeFlag)
326 hdPtr->gHdr.verId!=12 ||
329 <<
"code:\t" << hdPtr->gHdr.code <<
"\t" <<
PACKET_HD 330 <<
"\nversion:\t" << hdPtr->gHdr.verId
332 <<
"\nsize:\t" << hdPtr->gHdr.numBytes <<
"\t" 356 ppsNum=hdPtr->turfio.ppsNum;
365 memset(
reserved,0,2*
sizeof(UChar_t));
379 UInt_t ttriggerTime, UInt_t ttriggerTimeNs, Int_t tgoodTimeFlag)
382 hdPtr->gHdr.verId!=11 ||
385 <<
"code:\t" << hdPtr->gHdr.code <<
"\t" <<
PACKET_HD 386 <<
"\nversion:\t" << hdPtr->gHdr.verId
388 <<
"\nsize:\t" << hdPtr->gHdr.numBytes <<
"\t" 412 ppsNum=hdPtr->turfio.ppsNum;
421 memset(
reserved,0,2*
sizeof(UChar_t));
432 UInt_t ttriggerTime, UInt_t ttriggerTimeNs, Int_t tgoodTimeFlag)
435 hdPtr->gHdr.verId!=10 ||
438 <<
"code:\t" << hdPtr->gHdr.code <<
"\t" <<
PACKET_HD 439 <<
"\nversion:\t" << hdPtr->gHdr.verId
441 <<
"\nsize:\t" << hdPtr->gHdr.numBytes <<
"\t" 465 ppsNum=hdPtr->turfio.ppsNum;
474 memset(
reserved,0,2*
sizeof(UChar_t));
485 static char theString[20];
487 sprintf(theString,
"None");
489 const char *trigTypes[4]={
"RF",
"PPS1",
"PPS2",
"Soft"};
491 for(
int i=0;i<4;i++) {
494 strcpy(theString,trigTypes[i]);
498 sprintf(theString,
"%s + %s",theString,trigTypes[i]);
508 assert(AnitaVersion::get() == 3);
512 return l1TrigMaskOffline;
560 Int_t RawAnitaHeader::setMask (UShort_t newL2Mask, UShort_t newPhiMask,
AnitaPol::AnitaPol_t pol) {
564 l1TrigMaskOffline = l2TrigMask = newL2Mask;
593 if(phi<0 || phi>=PHI_SECTORS)
return -1;
609 if(phi<0 || phi>=PHI_SECTORS)
return -1;
625 if(phi<0 || phi>=PHI_SECTORS)
return -1;
628 return ((l1TrigMaskOffline&(1<<(phi))) ? 1 :0);
641 if(phi<0 || phi>=PHI_SECTORS)
return -1;
657 if(phi<0 || phi>=PHI_SECTORS)
return -1;
660 return ((l2TrigMask&(1<<(phi))) ? 1 :0);
673 if(phi<0 || phi>=PHI_SECTORS)
return -1;
674 return ((l2TrigMask&(1<<(phi))) ? 1 :0);
695 unsigned int curHolds=(
reserved[0]&0xf)>>4;
703 unsigned int curHolds=(
reserved[0]&0xf)>>4;
704 for(
int buffer=0;buffer<4;buffer++) {
705 if(curHolds & (1<<buffer))
711 Float_t RawAnitaHeader::getPeakThetaDeg()
const 713 #define THETA_RANGE 150 714 #define NUM_BINS_THETA 256 717 return THETA_RANGE*((Float_t)peakThetaBin/NUM_BINS_THETA - 0.5);
721 Float_t RawAnitaHeader::getPeakThetaRad()
const 723 return getPeakThetaDeg()*TMath::DegToRad();
726 Float_t RawAnitaHeader::getPeakPhiDeg()
const 729 Int_t phiInd=(phiInd2&0x3f);
730 Int_t phiSector=(phiInd2>>6);
731 const Float_t phiArrayDeg[NUM_SEAVEYS]={-45,-22.5,0,22.5,45,67.5,90,112.5,135,157.5,180,
732 202.5,225,247.5,270,292.5,315,337.5,
733 0,22.5,45,67.5,90,112.5,135,157.5,180,
734 202.5,225,247.5,270,292.5,315,337.5,
735 0,22.5,45,67.5,90,112.5,135,157.5,180,
736 202.5,225,247.5,270,292.5};
746 #define NUM_BINS_PHI 64 747 #define PHI_RANGE 22.5 748 return phiArrayDeg[phiSector] + PHI_RANGE*((Float_t)phiInd/NUM_BINS_PHI - 0.5);
752 Float_t RawAnitaHeader::getPeakPhiRad()
const 754 return getPeakPhiDeg()*TMath::DegToRad();
757 Float_t RawAnitaHeader::getImagePeak()
const 759 return Float_t(imagePeak)/65535.;
763 Float_t RawAnitaHeader::getCoherentSumPeak()
const 765 return coherentSumPeak;
775 Int_t RawAnitaHeader::getAboveThresholdFlag()
const 779 Int_t RawAnitaHeader::getBinToBinIncreaseFlag()
const 783 Int_t RawAnitaHeader::getSaturationFlag()
const unsigned short deadTime
fraction = deadTime/64400
unsigned short ppsNum
1PPS
unsigned short ppsNum
1PPS
unsigned char trigType
The trigger type.
unsigned char peakThetaBin
8-bit peak theta bin from Prioritizer
unsigned int eventNumber
Global event number.
unsigned short trigNum
turf trigger counter
int gpsSubTime
GPS timestamp.
unsigned char priority
priority and other
unsigned char nadirL2TrigPattern
Might just be the same thing.
unsigned short trigNum
turf trigger counter
unsigned short calibStatus
Were we flashing the pulser?
unsigned char errorFlag
Error Flag.
unsigned short deadTime
fraction = deadTime/64400
unsigned int c3poNum
1 number of trigger time ticks per PPS
unsigned char l3Type1Count
L3 counter.
unsigned char l3Type1Count
L3 counter.
TurfioStruct_t turfio
The X byte TURFIO data.
unsigned int turfEventId
Turf event id that doesn't roll.
unsigned short phiTrigMaskH
16-bit phi mask (from TURF)
unsigned int c3poNum
1 number of trigger time ticks per PPS
const char * packetCodeAsString(PacketCode_t code)
packetCodeAsString – utility function
unsigned short deadTime
fraction = deadTime/64400
unsigned short ppsNum
1PPS
unsigned char trigType
The trigger type.
unsigned char bufferDepth
bits 0,1 trigTime depth 2,3 current depth
unsigned short ppsNum
1PPS
unsigned int c3poNum
1 number of trigger time ticks per PPS
unsigned short imagePeak
16-bit image peak from Prioritizer
unsigned char bufferDepth
bits 0,1 trigTime depth 2,3 current depth
unsigned char surfSlipFlag
Sync Slip between SURF 2-9 and SURF 1.
unsigned char bufferDepth
bits 0,1 trigTime depth 2,3 current depth
unsigned short trigNum
turf trigger counter
unsigned char turfUpperWord
The upper 8 bits from the TURF.
unsigned char trigType
The trigger type.
unsigned short prioritizerStuff
TBD.
unsigned int unixTime
unix UTC sec
unsigned short trigNum
turf trigger counter
unsigned char trigType
The trigger type.
unsigned int c3poNum
1 number of trigger time ticks per PPS
unsigned char nadirL2TrigPattern
Might just be the same thing.
unsigned char bufferDepth
bits 0,1 trigTime depth 2,3 current depth
unsigned int unixTimeUs
unix UTC microsec
unsigned short deadTime
fraction = deadTime/64400
unsigned short coherentSumPeak
16-bit coherent sum peak from Prioritizer
unsigned short phiTrigMask
16-bit phi mask (from TURF)
unsigned char l3Type1Count
L3 counter.
enum AnitaPol::EAnitaPol AnitaPol_t
Polarisation enumeration.
unsigned char l3Type1Count
L3 counter.
unsigned short l2TrigMask
16-bit phi ant mask (from TURF)
int simplePacketCheck(GenericHeader_t *gHdr, PacketCode_t code)
simplePacketCheck – utility function