Main Page
Class Categories
Classes
Namespaces
File List
File Members
exper-sw
cosmosw
AugerSW
Offline
source
main
EventIO
Seneca
SenecaFileParser.h
Go to the documentation of this file.
1
#ifndef _io_SenecaFileParser_h_
2
#define _io_SenecaFileParser_h_
3
4
#include <fstream>
5
#include <string>
6
#include <io/IoCodes.h>
7
8
using namespace
std;
9
10
11
namespace
io {
12
13
enum
SenecaHadronicSim
{
14
eSenecaUnknown
= 0,
15
eSenecaQGS98
= 1,
16
eSenecaQGS01
= 2,
17
eSenecaSib21
= 3,
18
eSenecaNex2
= 4,
19
eSenecaNex397
= 5
20
};
21
22
enum
SenecaEMSim
{
23
eSenecaGheisha
= 1,
24
eSenecaGFluka
= 2,
25
eSenecaGCalor
= 3,
26
eSenecaURQMD
= 4
27
};
28
29
struct
SenecaParticleRecord
{
30
int
ID
;
31
float
Weight
;
32
float
X
;
33
float
Y
;
34
float
T
;
35
float
Px
;
36
float
Py
;
37
float
Pz
;
38
};
39
40
struct
SenecaHeaderRecord
{
41
int
ID
;
42
float
SenecaVersion
;
43
unsigned
char
EMSim
;
44
unsigned
char
HadronicSim
;
45
float
HObs
;
46
int
ILowHadr
;
47
int
IOHadr
;
48
int
IVersion
;
49
float
HINJ
;
50
float
HGround
;
51
float
HCore
;
52
};
53
54
struct
SenecaEventHeaderRecord
{
55
int
ID
;
56
float
E0
;
57
float
Theta
;
58
float
Phi
;
59
int
ID0
;
60
};
61
62
72
class
SenecaFileParser
{
73
public
:
74
SenecaFileParser
(
const
std::string& FileName,
const
Mode
mode =
eRead
);
75
SenecaFileParser
();
76
~
SenecaFileParser
();
77
78
Status
OpenSenecaFile(
const
std::string& FileName,
Mode
mode =
eRead
);
79
void
CloseSenecaFile();
80
unsigned
int
GetCurrentPosition();
81
82
Status
ProcessFile();
83
SenecaHeaderRecord
* GetFileHeader();
84
SenecaEventHeaderRecord
* GetCurrentEventHeader();
85
SenecaParticleRecord
* GetParticleRecord();
86
Status
GotoPosition(
unsigned
int
thePosition);
87
unsigned
int
GetPosition();
88
Status
GotoEvent(
unsigned
int
theEventNumber);
89
Status
GetNextEvent();
90
Status
ReadParticle();
91
unsigned
int
GetNumberEvents();
92
unsigned
int
GetCurrentEvent();
93
Status
FileStatus();
94
95
bool
FileHeaderValid
;
96
bool
EventHeaderValid
;
97
bool
ParticleRecordValid
;
98
99
private
:
100
Status
DecodeFileHeader(
unsigned
char
* Record);
101
Status
DecodeEventHeader(
unsigned
char
* Record);
102
Status
DecodeParticleRecord(
unsigned
char
* Record);
103
104
int
SenecaDecodeInt(
unsigned
char
*
Buffer
);
105
float
SenecaDecodeFloat(
unsigned
char
*
Buffer
);
106
107
std::ifstream
SenecaFile
;
108
string
SenecaFileName
;
109
//std::ofstream DebugFile;
110
111
unsigned
long
EventPositions[1024];
112
113
SenecaEventHeaderRecord
EventHeader
;
114
SenecaHeaderRecord
FileHeader
;
115
SenecaParticleRecord
ParticleRecord
;
116
117
bool
FileOpen
;
118
119
unsigned
int
NumberEvents
;
120
unsigned
int
CurrentEvent,
NextEvent
;
121
122
unsigned
int
FileSize
;
123
unsigned
long
CurrentPosition
;
124
//unsigned int FirstEvent; // unused. LN.
125
};
126
127
}
//io namespace
128
129
#endif //io_SenecaFileParser_h_
io::SenecaHeaderRecord::HObs
float HObs
Definition:
SenecaFileParser.h:45
io::eSenecaSib21
Definition:
SenecaFileParser.h:17
io::SenecaFileParser::EventHeaderValid
bool EventHeaderValid
Definition:
SenecaFileParser.h:96
io::eRead
Definition:
IoCodes.h:17
io::SenecaFileParser
Definition:
SenecaFileParser.h:72
io::SenecaHeaderRecord::HGround
float HGround
Definition:
SenecaFileParser.h:50
io::SenecaEventHeaderRecord
Definition:
SenecaFileParser.h:54
io::SenecaHeaderRecord::ID
int ID
Definition:
SenecaFileParser.h:41
io::SenecaFileParser::SenecaFileName
string SenecaFileName
Definition:
SenecaFileParser.h:108
io::SenecaFileParser::FileHeaderValid
bool FileHeaderValid
Definition:
SenecaFileParser.h:95
io::SenecaHeaderRecord
Definition:
SenecaFileParser.h:40
io::SenecaParticleRecord::Y
float Y
Definition:
SenecaFileParser.h:33
io::SenecaFileParser::NumberEvents
unsigned int NumberEvents
Definition:
SenecaFileParser.h:119
io::SenecaHadronicSim
SenecaHadronicSim
Definition:
SenecaFileParser.h:13
io::SenecaEventHeaderRecord::Phi
float Phi
Definition:
SenecaFileParser.h:58
io::SenecaEMSim
SenecaEMSim
Definition:
SenecaFileParser.h:22
io::SenecaFileParser::EventHeader
SenecaEventHeaderRecord EventHeader
Definition:
SenecaFileParser.h:113
io::Mode
Mode
Available open modes.
Definition:
IoCodes.h:16
io::SenecaFileParser::ParticleRecord
SenecaParticleRecord ParticleRecord
Definition:
SenecaFileParser.h:115
io::SenecaParticleRecord::Px
float Px
Definition:
SenecaFileParser.h:35
io::SenecaEventHeaderRecord::E0
float E0
Definition:
SenecaFileParser.h:56
io::eSenecaGCalor
Definition:
SenecaFileParser.h:25
io::SenecaHeaderRecord::ILowHadr
int ILowHadr
Definition:
SenecaFileParser.h:46
io::SenecaHeaderRecord::HadronicSim
unsigned char HadronicSim
Definition:
SenecaFileParser.h:44
io::SenecaFileParser::FileSize
unsigned int FileSize
Definition:
SenecaFileParser.h:122
io::SenecaParticleRecord::X
float X
Definition:
SenecaFileParser.h:32
io::eSenecaGFluka
Definition:
SenecaFileParser.h:24
io::eSenecaNex2
Definition:
SenecaFileParser.h:18
io::SenecaParticleRecord::Py
float Py
Definition:
SenecaFileParser.h:36
io::SenecaHeaderRecord::HCore
float HCore
Definition:
SenecaFileParser.h:51
io::Status
Status
Return code for seek operation.
Definition:
IoCodes.h:24
io::SenecaFileParser::FileHeader
SenecaHeaderRecord FileHeader
Definition:
SenecaFileParser.h:114
io::SenecaParticleRecord::Pz
float Pz
Definition:
SenecaFileParser.h:37
io::SenecaHeaderRecord::SenecaVersion
float SenecaVersion
Definition:
SenecaFileParser.h:42
io::SenecaFileParser::ParticleRecordValid
bool ParticleRecordValid
Definition:
SenecaFileParser.h:97
io::SenecaHeaderRecord::HINJ
float HINJ
Definition:
SenecaFileParser.h:49
io::eSenecaNex397
Definition:
SenecaFileParser.h:19
io::SenecaFileParser::SenecaFile
std::ifstream SenecaFile
Definition:
SenecaFileParser.h:107
io::eSenecaQGS98
Definition:
SenecaFileParser.h:15
io::eSenecaUnknown
Definition:
SenecaFileParser.h:14
io::SenecaParticleRecord::Weight
float Weight
Definition:
SenecaFileParser.h:31
io::SenecaFileParser::CurrentPosition
unsigned long CurrentPosition
Definition:
SenecaFileParser.h:123
io::SenecaHeaderRecord::EMSim
unsigned char EMSim
Definition:
SenecaFileParser.h:43
io::eSenecaURQMD
Definition:
SenecaFileParser.h:26
io::SenecaEventHeaderRecord::ID
int ID
Definition:
SenecaFileParser.h:55
io::SenecaFileParser::NextEvent
unsigned int NextEvent
Definition:
SenecaFileParser.h:120
io::SenecaEventHeaderRecord::ID0
int ID0
Definition:
SenecaFileParser.h:59
io::SenecaHeaderRecord::IOHadr
int IOHadr
Definition:
SenecaFileParser.h:47
io::SenecaParticleRecord::ID
int ID
Definition:
SenecaFileParser.h:30
io::eSenecaQGS01
Definition:
SenecaFileParser.h:16
io::SenecaEventHeaderRecord::Theta
float Theta
Definition:
SenecaFileParser.h:57
sdet::Trigger::Buffer
void Buffer(sevt::Station &station, const TimeStamp &eventTime, const StationTriggerData::Algorithm algorithm, const int pldBits, const int start, const int stop)
Definition:
StationTriggerUtil.cc:30
io::SenecaParticleRecord::T
float T
Definition:
SenecaFileParser.h:34
io::SenecaHeaderRecord::IVersion
int IVersion
Definition:
SenecaFileParser.h:48
io::eSenecaGheisha
Definition:
SenecaFileParser.h:23
io::SenecaParticleRecord
Definition:
SenecaFileParser.h:29
io::SenecaFileParser::FileOpen
bool FileOpen
Definition:
SenecaFileParser.h:117
, generated on Tue Sep 26 2023.