HARPO  5.1.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HarpoFeminosReader.h
Go to the documentation of this file.
1 #ifndef HARPOFEMINOSREADER_H
2 #define HARPOFEMINOSREADER_H
3 // //
5 // HarpoFeminosReader //
6 // //
7 // FEMINOS raw file Reader Class //
8 // //
10 #include "TString.h"
11 #include "TFile.h"
12 
13 #include "HarpoDetReader.h"
14 
15 #include "HarpoFeminosFrame.h"
16 #include "HarpoFeminosEvent.h"
17 #include "HarpoFeminosHeader.h"
18 #include "HarpoDetAnalyse.h"
19 #include "HarpoConfig.h"
20 #include "HarpoDccDecode.h"
21 
22 // Maximum event size is:
23 // 24 Feminos * 4 ASICs * 80 channels * 512 time-bins * 2 bytes = 7.5 MByte
24 //#define MAX_EVENT_SIZE (24 * 4 * 80 * 512 * 2)
25 
26 //we have one feminos card
27 #define MAX_EVENT_SIZE (1 * 4 * 80 * 512 * 2)
28 // /* static */ const int Event_Buffer_Size = MAX_EVENT_SIZE;
29 
31 
32 public:
33 
36 
37  virtual ~HarpoFeminosReader();
38 
39  //TODO : HarpoDetAnalisy
41 
42  Bool_t NextEvent(); // Read next event from raw file
43  void SkipEvent(); // Skipping not "intersting" event
44  void PushBack(); // Reread current event on follwing NextEvent
45 
46 
47  //TODO : GetDetEvent
48  HarpoFeminosEvent *GetEvent(); // Pointer to Current event
49  //TODO : GetDetHeader
50  HarpoFeminosHeader *GetDetHeader(); // Run Header
51 
52  Bool_t Init(); // Open raw file and check header
53  Bool_t isDone() { return fDone; }
54  Bool_t isError() { return fError; }
55 
56  Long_t Loop(); // Process all events as defined in config
57  Long_t Loop(Long_t maxevents);
58 
59  Bool_t Find(Long_t eventNo);
60 
61  /* void Save(); */
62 
63 private:
64  //TODO File for next subrun exist and can be opened
65  Bool_t NextSegment();
66  //Bool_t NextFile() { return false; }
67  int NextFrame(); // Next Frame exist
68  int ProcessFrame(void *fr, int fr_sz);
69  void AddPedestals();
70  //HarpoFeminosFrame *GetFrame(); // Get Next Frame
71 
72  Bool_t fContinuous;
73 
74  Bool_t fDone; // Finished reading
75  Bool_t fError; // Read error of event format error
76 
77  FILE *fIn; // Dcc File discriptor
78 
79  HarpoDccMap *lMap; // local map
80  HarpoFeminosEvent *fEvent; // Current Event
81  HarpoFeminosEvent *fSaveEvent; // Pushed event pointer
82 
83  // HarpoFeminosHeader *fRunHeader; // Run Header
84 
85  HarpoDetAnalyse *fDccAnalyse; // User Analisysis Function
86 
87  EventHeader_t lHeader; // local buffer
88  UShort_t lData[MAX_EVENT_SIZE]; // local buffer
89 
90  ULong_t TotBytes;
91  ULong_t TotFrames;
92  ULong_t fFrSize;
93  ULong_t fSegment;
94 
96 
97  ClassDef(HarpoFeminosReader,1)
98 };
99 #endif
HarpoFeminosEvent * fSaveEvent
#define MAX_EVENT_SIZE
UShort_t lData[MAX_EVENT_SIZE]
void SetAnalyseFunction(HarpoDetAnalyse *func)
void PushBack()
Skeeping not "intersting" event.
A class store HARPO row FEMINOS event data and header. End provide access metods to the row data...
HarpoDetAnalyse * fDccAnalyse
unpacked dcc data The class contains the data map for DCC or Feminos The data is stored as a 2D TMatr...
Definition: HarpoDccMap.h:29
A virtual base class for all HARPO detectors readers.
A class hold HARPO run iformation.
A class which define DCC channel mapping.
Bool_t Find(Long_t eventNo)
Bool_t isError()
EOF reached.
void SkipEvent()
Read next event from raw file.
Harpo Event Header.
Definition: HarpoDetEvent.h:26
A virtual class which define interface between HARPO Det Reader and Event Analysis code...
Long_t Loop()
Read errors.
A class which read HARPO dcc file from one FEMINOS and creant Dcc Events and Dcc Headers for FEMINOS ...
HarpoDccDecode * decoder
Bool_t Init()
Init method : Open in/out files and check run header signature.
HarpoFeminosEvent * GetEvent()
Bool_t NextSegment()
Find raw event by event number */.
HarpoFeminosHeader * GetDetHeader()
HarpoFeminosEvent * fEvent
A class which keeps track of the entire configuration of the analysis.
Definition: HarpoConfig.h:50
int ProcessFrame(void *fr, int fr_sz)