RawDataReader.cxx
1 
10 #include "RawDataReader.h"
11 #include "RawAnitaEvent.h"
12 #include "RawAnitaHeader.h"
13 #include <iostream>
14 #include <fstream>
15 #include <cstring>
16 #include <cstdlib>
17 #include <zlib.h>
18 #include "TTreeIndex.h"
19 
20 gzFile eventFile;
21 gzFile headFile;
22 
24 
25 {
26  //Default Constructor
27  eventFile=0;
28 
29 }
30 
32  //Default Destructor
33 }
34 
35 int RawDataReader::openFile(char *psevName, char *headName)
36 {
37  eventFile=gzopen(psevName,"rb");
38  if(!eventFile) {
39  std::cerr << "Error opening: " << psevName << std::endl;
40  return -1;
41  }
42  headFile=gzopen(headName,"rb");
43  if(!headFile) {
44  std::cerr << "Error opening: " << headName << std::endl;
45  return -1;
46  }
47  return 0;
48 }
49 
51 {
52  //First check if file is open
53  if(!eventFile || ! headFile) {
54  std::cerr << "File not open, must call RawDataReader::openFile first" << std::endl;
55  return NULL;
56  }
57 
58  //Now try to read in raw data
59  int numBytes=gzread(eventFile,&psBody,sizeof(PedSubbedEventBody_t));
60  if(numBytes!=sizeof(PedSubbedEventBody_t)) {
61  //Will change this later to work
62  std::cerr << "Only read " << numBytes << " bytes from file" << std::endl;
63  gzclose(eventFile);
64  return NULL;
65  }
66 
67  //Now try to read in raw data
68  numBytes=gzread(headFile,&theHeader,sizeof(AnitaEventHeader_t));
69  if(numBytes!=sizeof(AnitaEventHeader_t)) {
70  //Will change this later to work
71  std::cerr << "Only read " << numBytes << " bytes from file" << std::endl;
72  gzclose(headFile);
73  return NULL;
74  }
75 
76 
77  RawAnitaEvent rawEv(&psBody);
78  RawAnitaHeader rawHead(&theHeader,0,0,0,0,0);
79  UsefulAnitaEvent *evPtr = new UsefulAnitaEvent(&rawEv,calType,&rawHead);
80  return evPtr;
81 }
82 
83 
enum WaveCalType::EWaveCalType WaveCalType_t
The calibration enumeration type.
~RawDataReader()
Destructor.
UsefulAnitaEvent * getNextEvent(WaveCalType::WaveCalType_t calType=WaveCalType::kNoCalib)
Get the next event from the file.
Pedestal subtracted event format.
RawAnitaHeader – The Raw ANITA Event Header.
ANITA Event Header – Telemetered.
RawDataReader()
Default constructor.
UsefulAnitaEvent – The Calibrated Useful Anita Event object.
int openFile(char *psevName, char *headName)
Open this psev file.
RawAnitaEvent – The Raw ANITA Event Data.
Definition: RawAnitaEvent.h:22