HARPO  5.1.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HarpoReader.h
Go to the documentation of this file.
1 #ifndef HARPOREADER_H
2 #define HARPOREADER_H
3 // //
5 // HarpoReader //
6 // //
7 // DCC raw file Reader Class //
8 // //
10 
11 #include "TObject.h"
12 #include "TFile.h"
13 #include "HarpoConfig.h"
14 #include "HarpoDetSet.h"
15 
16 #include "HarpoRunHeader.h"
17 #include "HarpoEvent.h"
18 #include "HarpoEventHeader.h"
19 
20 #include "HarpoReaderBase.h"
21 #include "HarpoDetReader.h"
22 #include "HarpoAnalyse.h"
23 
24 /*
25 enum hReaderType {
26  hDummyReader, // dummy test reader
27  hRawReader, // Harpo Raw Files
28  hSimReader, // Harpo Event Simulation
29  hRootReader // Root file playback (raw2root, hrootwrter)
30 };
31 */
32 
33 class HarpoReader : public HarpoReaderBase {
34 
35 private:
36 
37  HarpoReaderBase *rdr; // Real Reader
38 
39 public:
40 
41  HarpoReader();
43 
44  virtual ~HarpoReader();
45 
46  void SetDetFile(TString *name,Int_t plane) {
47  rdr->SetDetFile(name,plane);
48  }
49  void SetRootFile(TString *name) { rdr->SetRootFile(name); }
50 
51  void SetAnalyseFunction(HarpoAnalyse *func, Int_t i = 0) {
52  func->SetRunHeader(rdr->GetRunHeader());
53  rdr->SetAnalyseFunction(func,i);
54  }
55 
57  func->SetRunHeader(rdr->GetRunHeader());
58  rdr->AddAnalyseFunction(func);
59  }
60 
61  // Read next event from raw file
62  Bool_t NextEvent() { return rdr->NextEvent(); }
63  // Both planes has the same time stamp
64  Bool_t isTimeSynchro() { return rdr->isTimeSynchro(); }
65 
66  void SkipEvent() {rdr->SkipEvent(); } // Skeep Event
67  // Pointer to Current event
68  HarpoEvent *GetEvent() { return rdr->GetEvent(); }
69  // Run Header
71 
72  // Open raw file and check header
73  Bool_t Init(hReadMode mode=hSyncTime) { return rdr->Init(mode); }
75  Bool_t isDone() { return rdr->isDone(); }
77  Bool_t isError() { return rdr->isError(); }
78  // Process all events as defined in config
79  Long_t LoopAll() { return rdr->LoopAll(); }
80  Long_t Loop(Long_t maxevents) { return rdr->Loop(maxevents); }
82  Long_t Find(Long_t eventNo) { return rdr->Find(eventNo); }
83 
84  void SetRunNo(Long_t nRun) { rdr->SetRunNo(nRun); }
85  Long_t GetRunNo() { return rdr->GetRunNo(); }
87  Long_t GetReadEvts() { return rdr->GetReadEvts(); }
88 
89  //static hReaderType gHReaderType;
90 private:
91 
92  ClassDef(HarpoReader,1)
93 };
94 
95 
96 #endif
virtual void AddAnalyseFunction(HarpoAnalyse *func)
Bool_t isError()
Read errors.
Definition: HarpoReader.h:77
Long_t GetRunNo()
Definition: HarpoReader.h:85
Long_t Find(Long_t eventNo)
Find raw event by event number.
Definition: HarpoReader.h:82
void SkipEvent()
Definition: HarpoReader.h:66
void AddAnalyseFunction(HarpoAnalyse *func)
Definition: HarpoReader.h:56
A virtual class which define intrafece between HARPO Reader and Event Analysis code.
Definition: HarpoAnalyse.h:47
virtual HarpoEvent * GetEvent()=0
Bool_t Init(hReadMode mode=hSyncTime)
Definition: HarpoReader.h:73
virtual Long_t LoopAll()
Read errors.
Bool_t isTimeSynchro()
Definition: HarpoReader.h:64
A class hold HARPO run iformation.
A class which instantiate the real top level reader.
Definition: HarpoReader.h:33
Bool_t NextEvent()
Definition: HarpoReader.h:62
Bool_t isDone()
EOF reached.
Definition: HarpoReader.h:75
virtual Bool_t isTimeSynchro()=0
Long_t LoopAll()
Read errors.
Definition: HarpoReader.h:79
virtual Bool_t isError()
EOF reached.
void SetRunNo(Long_t nRun)
Find raw event by event number.
Definition: HarpoReader.h:84
virtual Long_t Find(Long_t eventNo)=0
HarpoReaderBase * rdr
Definition: HarpoReader.h:37
virtual Long_t GetRunNo()
virtual void SetRootFile(TString *name)=0
A base class for all top level HARPO readers.
virtual Long_t Loop(Long_t maxevents)=0
void SetAnalyseFunction(HarpoAnalyse *func, Int_t i=0)
Definition: HarpoReader.h:51
virtual Bool_t Init(hReadMode mode=hSyncTime)=0
virtual HarpoRunHeader * GetRunHeader()=0
virtual Long_t GetReadEvts()
void SetDetFile(TString *name, Int_t plane)
Definition: HarpoReader.h:46
virtual void SetAnalyseFunction(HarpoAnalyse *func, Int_t i=0)
virtual Bool_t NextEvent()=0
virtual void SkipEvent()=0
HarpoEvent * GetEvent()
Definition: HarpoReader.h:68
virtual void SetRunNo(Long_t nRun)
Find raw event by event number.
virtual Bool_t isDone()
virtual ~HarpoReader()
Long_t GetReadEvts()
Number of readed events.
Definition: HarpoReader.h:87
A class store HARPO row event data and header. Provide access metods to the row event data...
Definition: HarpoEvent.h:29
HarpoRunHeader * GetRunHeader()
Definition: HarpoReader.h:70
void SetRunHeader(HarpoRunHeader *hdr)
Definition: HarpoAnalyse.h:60
hReadMode
virtual void SetDetFile(TString *name, Int_t plane)=0
A class which keeps track of the entire configuration of the analysis.
Definition: HarpoConfig.h:50
void SetRootFile(TString *name)
Definition: HarpoReader.h:49
Long_t Loop(Long_t maxevents)
Definition: HarpoReader.h:80