GpuPowerSpectra.cxx
1 
9 #include "GpuPowerSpectra.h"
10 #include "AnitaPacketUtil.h"
11 #include <iostream>
12 #include <fstream>
13 #include <cstring>
14 
15 ClassImp(GpuPowerSpectra);
16 
18 {
19  //Default Constructor
20 }
21 
23  //Default Destructor
24 }
25 
26 
27 
28 // typedef struct {
29 // short bins[99];
30 // } GpuAnitaBandPowerSpectrumStruct_t;
31 
32 // typedef struct {
33 // GenericHeader_t gHdr;
34 // unsigned int unixTimeFirstEvent;
35 // unsigned int unixTimeLastEvent;
36 // unsigned int numEventsAveraged;
37 // unsigned int firstEventInAverage;
38 // unsigned char phiSector;
39 // unsigned char nothing;
40 // GpuAnitaBandPowerSpectrumStruct_t powSpectra[NUM_ANTENNA_RINGS][2];
41 // } GpuPhiSectorPowerSpectrumStruct_t;
42 
44 {
46 
47  run=trun;
48  realTime=trealTime;
49  for(int phi=0;phi<NUM_PHI;phi++) {
50  memcpy(&powerSpectra[phi][0],&gpuPtr->powSpectra[phi].bins[0],NUM_BINS_GPU_POW_SPEC*sizeof(UChar_t));
51  }
52  unixTimeFirstEvent=gpuPtr->unixTimeFirstEvent;
53  unixTimeLastEvent=gpuPtr->unixTimeLastEvent;
54  numEventsAveraged=gpuPtr->numEventsAveraged;
55  firstEventInAverage=gpuPtr->firstEventInAverage;
56  pol=gpuPtr->pol;
57  ring=gpuPtr->ring;
58 }
59 
60 
61 TGraph* GpuPowerSpectra::getGraph(Int_t phi){
62 
63 
64  const double floatToUCharConversionForPacket = 255./60;
65 
66  // 256 samples per channel on the GPU at the time of writing (ANITA-4)
67  const double deltaF_MHz = 2.6e3/256;
68  std::vector<double> freqs(NUM_BINS_GPU_POW_SPEC);
69  std::vector<double> power(NUM_BINS_GPU_POW_SPEC);
70  const int freqBinOffset = 20;
71  for(int freqInd = 0; freqInd < NUM_BINS_GPU_POW_SPEC; freqInd++){
72  freqs.at(freqInd) = (freqInd+freqBinOffset)*deltaF_MHz;
73  power.at(freqInd) = float(powerSpectra[phi][freqInd])/floatToUCharConversionForPacket;
74  // power.at(freqInd)
75  }
76 
77  return new TGraph(NUM_BINS_GPU_POW_SPEC, &freqs[0], &power[0]);
78 
79 }
~GpuPowerSpectra()
Destructor.
GpuPowerSpectra()
Default constructor.
UInt_t realTime
Time in unixTime.
Int_t run
Run number from offline.
GpuPowerSpectra – The GPU Power Specta Data.
GpuPhiSectorPowerSpectrum_t – Yes.
int simplePacketCheck(GenericHeader_t *gHdr, PacketCode_t code)
simplePacketCheck – utility function