HARPO  5.1.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Pmm2Reader.h
Go to the documentation of this file.
1 #ifndef PMM2READER_H
2 #define PMM2READER_H
3 // //
5 // Pmm2Reader //
6 // //
7 // PMM2 Reader Class, read row file and produce row events //
8 // //
10 #include "TString.h"
11 #include "TFile.h"
12 //#include "TTree.h"
13 
14 #include "Pmm2Event.h"
15 #include "HarpoDetAnalyse.h"
16 
17 #include "HarpoDetReader.h"
18 #include "Pmm2Header.h"
19 #include "HarpoConfig.h"
20 
22 // we need this constants only in reader
23 //
24 #define N_MES_IN_BLOCK 212
25 #define N_WORD_IN_BLOCK 371
27 
28 
29 //TODO split readers by mode
30 
31 class Pmm2Reader : public HarpoDetReader {
32 
33 public:
34 
35  Pmm2Reader();
36  Pmm2Reader(HarpoConfig *cfg);
37 
38  virtual ~Pmm2Reader();
39 
40  // void SetRootFile(TString *name);
42 
43  Bool_t NextEvent();
44 
45  Pmm2Event *GetEvent(); // Pointer to Current event
46  Pmm2Header *GetDetHeader(); // Run Header
47 
48  Bool_t Init(); // Open raw file and check header
49  Bool_t isDone() { return fDone; }
50  Bool_t isError() { return fError; }
51 
52  Long_t Loop(); // Process all events as defined in config
53  Long_t Loop(Long_t maxevents);
54 
55  void SetReadOutMode(Long_t version) { fRVer = version; }
56  Int_t GetReadOutMode() { return fRVer; }
57 
58 private:
59 
61  void unPackRawDigi();
62 
63  Bool_t NextDigi();
64  Bool_t NextBuffer();
65  void ReadBuffer();
66 
67  Long_t fRVer; // File Readout Mode
68 
69  FILE *fIn; // Raw File discriptor
70 
71  Long_t fNbufs; // Readed buffers
72  Long_t fNdigs; // Readed Raw Digi's (measurements)
73  Long_t fNstats; // Readed status buffers
74 
75 
76  Pmm2Event *fEvent; // Current Event
77  Pmm2Event *fSaveEvent; // Pushed event pointer
78 
79  HarpoDetAnalyse *fRawAnalyse; // User Analisysis Function
80 
81  EventHeader_t lHeader; // local buffer
82  UInt_t lData[N_WORD_IN_BLOCK]; // local buffer
83  UInt_t BuffType; // Buffer Type ( 0 - Measurements , else Status )
84 
85  Int_t fNreset;
86  Int_t verbose;
87 
88  ULong_t fPrevTimeStamp2;
89  // ULong_t fTimeStamp, fPrevTimeStamp;
90 
91  Pmm2MesList fRawDigi; // List of RawDigi (Mesurements) from one Raw Buffer
92 
93  ClassDef(Pmm2Reader,1)
94 };
95 #endif
Pmm2Event * GetEvent()
Can Read next event from raw file.
Definition: Pmm2Reader.cxx:387
Pmm2MesList fRawDigi
Definition: Pmm2Reader.h:91
#define N_WORD_IN_BLOCK
n word := n mes * sizeof(OneChannelData) / sizeof(int)
Definition: Pmm2Reader.h:26
A class hold HARPO run information.
Definition: Pmm2Header.h:17
Long_t fNbufs
Definition: Pmm2Reader.h:71
Pmm2Event * fSaveEvent
Definition: Pmm2Reader.h:77
void unPackRawDigi()
Unpack Raw Buffer and create Digi List.
Definition: Pmm2Reader.cxx:327
Bool_t isError()
EOF reached.
Definition: Pmm2Reader.h:50
Long_t fNstats
Definition: Pmm2Reader.h:73
Bool_t NextDigi()
Definition: Pmm2Reader.cxx:125
A list of all mesurements in readout buffer for Pmm2 v2 card The class is place holder for all mesure...
Definition: Pmm2MesList.h:51
HarpoDetAnalyse * fRawAnalyse
Definition: Pmm2Reader.h:79
void SetReadOutMode(Long_t version)
Definition: Pmm2Reader.h:55
A virtual base class for all HARPO detectors readers.
Long_t fRVer
Read buffer from file.
Definition: Pmm2Reader.h:67
Pmm2Event * fEvent
Definition: Pmm2Reader.h:76
Int_t fNreset
Definition: Pmm2Reader.h:85
ULong_t fPrevTimeStamp2
Definition: Pmm2Reader.h:88
Bool_t Init()
Init method : Open in/out files and check run header signature.
Definition: Pmm2Reader.cxx:401
void SetAnalyseFunction(HarpoDetAnalyse *func)
Definition: Pmm2Reader.cxx:119
Long_t fNdigs
Definition: Pmm2Reader.h:72
FILE * fIn
Definition: Pmm2Reader.h:69
Bool_t NextEvent()
Definition: Pmm2Reader.cxx:154
Harpo Event Header.
Definition: HarpoDetEvent.h:26
UInt_t BuffType
Definition: Pmm2Reader.h:83
A class store HARPO raw PMM2 event buffer and header. End provide access metods to the row data...
Definition: Pmm2Event.h:19
A virtual class which define interface between HARPO Det Reader and Event Analysis code...
void ReadBuffer()
Can Read next Buffer from raw file.
Definition: Pmm2Reader.cxx:382
A class which read HARPO raw file from PMM2 and create Raw Events objects.
Definition: Pmm2Reader.h:31
Int_t GetReadOutMode()
ReadOut Mode.
Definition: Pmm2Reader.h:56
Long_t Loop()
Read errors.
Definition: Pmm2Reader.cxx:478
virtual ~Pmm2Reader()
Definition: Pmm2Reader.cxx:107
Bool_t NextBuffer()
Have we more Digi to Process.
Definition: Pmm2Reader.cxx:233
EventHeader_t lHeader
Definition: Pmm2Reader.h:81
A class which keeps track of the entire configuration of the analysis.
Definition: HarpoConfig.h:50
Int_t verbose
Definition: Pmm2Reader.h:86
Bool_t isDone()
Definition: Pmm2Reader.h:49
Pmm2Header * GetDetHeader()
Definition: Pmm2Reader.cxx:392
UInt_t lData[N_WORD_IN_BLOCK]
Definition: Pmm2Reader.h:82