Skip to content

Midas C++ API - midasio (reading and writing midas files)

This page contains the full API reference for midasio (midasio/midasio.h), the C++ library for reading and writing midas data files, including compressed files.

For how events and banks are laid out, see Event data format.

For writing midas files during a run, see Data logging: midas files.

midasio/midasio.h

Classes

TMBank

Defined in midasio/midasio.h:43

Attributes
data_offset
size_t data_offset = 0

offset of data for this bank in the event data[] container

Defined in midasio/midasio.h:49

data_size
uint32_t data_size = 0

size of bank data in bytes

Defined in midasio/midasio.h:48

name
std::string name

bank name, 4 characters max

Defined in midasio/midasio.h:46

type
uint32_t type = 0

type of bank data, enum of TID_xxx

Defined in midasio/midasio.h:47

TMEvent

Defined in midasio/midasio.h:52

Methods
AddBank
void AddBank(const char* bank_name, int tid, const char* buf, size_t size)

add new MIDAS bank

Declared in midasio/midasio.h:91, defined in midasio/midasio.cxx:853

BankListToString const
std::string BankListToString() const

print the list of MIDAS banks

Declared in midasio/midasio.h:99, defined in midasio/midasio.cxx:693

BankToString const
std::string BankToString(const TMBank*b) const

print definition of one MIDAS bank

Declared in midasio/midasio.h:100, defined in midasio/midasio.cxx:704

DumpHeader const
void DumpHeader() const

Declared in midasio/midasio.h:104, defined in midasio/midasio.cxx:1185

FindAllBanks
void FindAllBanks()

scan the MIDAS event, find all data banks

Declared in midasio/midasio.h:83, defined in midasio/midasio.cxx:1133

FindBank
TMBank*FindBank(const char* bank_name)

scan the MIDAS event

Declared in midasio/midasio.h:84, defined in midasio/midasio.cxx:1092

GetBankData

Note: this method has 2 different signatures.

GetBankData
char*GetBankData(const TMBank* b)

get pointer to MIDAS data bank

Declared in midasio/midasio.h:87, defined in midasio/midasio.cxx:1066

GetBankData const
const char*GetBankData(const TMBank* b) const

get pointer to MIDAS data bank

Declared in midasio/midasio.h:88, defined in midasio/midasio.cxx:1079

GetEventData

Note: this method has 2 different signatures.

GetEventData
char*GetEventData()

get pointer to MIDAS event data

Declared in midasio/midasio.h:85, defined in midasio/midasio.cxx:1040

GetEventData const
const char*GetEventData() const

get pointer to MIDAS event data

Declared in midasio/midasio.h:86, defined in midasio/midasio.cxx:1053

HeaderToString const
std::string HeaderToString() const

print the MIDAS event header

Declared in midasio/midasio.h:98, defined in midasio/midasio.cxx:686

Init
void Init(uint16_t event_id, uint16_t trigger_mask = 0, uint32_t serial_number = 0, uint32_t time_stamp = 0, size_t capacity = 0)

Declared in midasio/midasio.h:80, defined in midasio/midasio.cxx:808

ParseEvent
void ParseEvent()

parse event data

Declared in midasio/midasio.h:78, defined in midasio/midasio.cxx:736

ParseHeader
void ParseHeader(const void* buf, size_t buf_size)

parse event header

Declared in midasio/midasio.h:79, defined in midasio/midasio.cxx:746

PrintBanks
void PrintBanks(int level = 0)

Declared in midasio/midasio.h:103, defined in midasio/midasio.cxx:1156

PrintHeader const
void PrintHeader() const

Declared in midasio/midasio.h:102, defined in midasio/midasio.cxx:1143

Reset
void Reset()

reset everything

Declared in midasio/midasio.h:77, defined in midasio/midasio.cxx:716

TMEvent

Note: this method has 2 different signatures.

TMEvent
TMEvent()

ctor

Declared in midasio/midasio.h:75, defined in midasio/midasio.cxx:711

TMEvent
TMEvent(const void* buf, size_t buf_size)

Declared in midasio/midasio.h:76, defined in midasio/midasio.cxx:772

Attributes
bank_header_flags
uint32_t bank_header_flags

flags from the MIDAS event bank header

Defined in midasio/midasio.h:64

bank_scan_position
size_t bank_scan_position

location where scan for MIDAS banks was last stopped

Defined in midasio/midasio.h:72

banks
std::vector<TMBank> banks

list of MIDAS banks, fill using FindAllBanks()

Defined in midasio/midasio.h:66

data
std::vector<char> data

MIDAS event bytes

Defined in midasio/midasio.h:67

data_size
uint32_t data_size

MIDAS event data size

Defined in midasio/midasio.h:61

error
bool error

event has an error - incomplete, truncated, inconsistent or corrupted

Defined in midasio/midasio.h:55

event_header_size
size_t event_header_size

size of MIDAS event header

Defined in midasio/midasio.h:63

event_id
uint16_t event_id

MIDAS event ID

Defined in midasio/midasio.h:57

found_all_banks
bool found_all_banks

all the banks in the event data have been discovered

Defined in midasio/midasio.h:71

serial_number
uint32_t serial_number

MIDAS event serial number

Defined in midasio/midasio.h:59

time_stamp
uint32_t time_stamp

MIDAS event time stamp (unix time in sec)

Defined in midasio/midasio.h:60

trigger_mask
uint16_t trigger_mask

MIDAS trigger mask

Defined in midasio/midasio.h:58

TMReaderInterface

Defined in midasio/midasio.h:107

Methods
Close virtualpure virtual
virtual int Close() = 0

Defined in midasio/midasio.h:112

Read virtualpure virtual
virtual int Read(void* buf, int count) = 0

Defined in midasio/midasio.h:111

TMReaderInterface
TMReaderInterface()

ctor

Declared in midasio/midasio.h:110, defined in midasio/midasio.cxx:20

~TMReaderInterface virtual
virtual ~TMReaderInterface()

Defined in midasio/midasio.h:113

Attributes
fError
bool fError

Defined in midasio/midasio.h:115

fErrorString
std::string fErrorString

Defined in midasio/midasio.h:116

fgTrace static
static bool fgTrace = false

Defined in midasio/midasio.h:117

TMWriterInterface

Defined in midasio/midasio.h:120

Methods
Close virtualpure virtual
virtual int Close() = 0

Defined in midasio/midasio.h:124

Write virtualpure virtual
virtual int Write(const void* buf, int count) = 0

Defined in midasio/midasio.h:123

~TMWriterInterface virtual
virtual ~TMWriterInterface()

Defined in midasio/midasio.h:125

Attributes
fgTrace static
static bool fgTrace = false

Defined in midasio/midasio.h:127

Functions

TMNewReader

TMReaderInterface*TMNewReader(const char* source)

Declared in midasio/midasio.h:130, defined in midasio/midasio.cxx:469

TMNewWriter

TMWriterInterface*TMNewWriter(const char* destination)

Declared in midasio/midasio.h:131, defined in midasio/midasio.cxx:565

TMReadEvent

TMEvent*TMReadEvent(TMReaderInterface* reader)

returns NULL if there is no more data to read, and there will be no more data to read. can be an end of file or a read error or a broken pipe.

Declared in midasio/midasio.h:133, defined in midasio/midasio.cxx:611

TMWriteEvent

void TMWriteEvent(TMWriterInterface* writer, const TMEvent* event)

Declared in midasio/midasio.h:134, defined in midasio/midasio.cxx:681

Macros

MIDAS Data Type Definitions

TID_ARRAY
#define TID_ARRAY 13

array with unknown contents

Defined in midasio/midasio.h:33

TID_BITFIELD
#define TID_BITFIELD 11

32 Bits Bitfield 0 111... (32)

Defined in midasio/midasio.h:31

TID_BOOL
#define TID_BOOL 8

four bytes bool 0 1

Defined in midasio/midasio.h:26

TID_BYTE
#define TID_BYTE 1

DEPRECATED, use TID_UINT8 instead

Defined in midasio/midasio.h:13

TID_CHAR
#define TID_CHAR 3

single character 0 255

Defined in midasio/midasio.h:17

TID_DOUBLE
#define TID_DOUBLE 10

8 Byte float format

Defined in midasio/midasio.h:29

TID_DWORD
#define TID_DWORD 6

DEPRECATED, use TID_UINT32 instead

Defined in midasio/midasio.h:22

TID_FLOAT
#define TID_FLOAT 9

4 Byte float format

Defined in midasio/midasio.h:27

TID_FLOAT32
#define TID_FLOAT32 9

4 Byte float format

Defined in midasio/midasio.h:28

TID_FLOAT64
#define TID_FLOAT64 10

8 Byte float format

Defined in midasio/midasio.h:30

TID_INT
#define TID_INT 7

DEPRECATED, use TID_INT32 instead

Defined in midasio/midasio.h:24

TID_INT16
#define TID_INT16 5

signed word -32768 32767

Defined in midasio/midasio.h:21

TID_INT32
#define TID_INT32 7

signed dword -2^31 2^31-1

Defined in midasio/midasio.h:25

TID_INT64
#define TID_INT64 17

8 bytes int -2^63 2^63-1

Defined in midasio/midasio.h:37

TID_INT8
#define TID_INT8 2

signed byte -128 127

Defined in midasio/midasio.h:16

TID_KEY
#define TID_KEY 15

key in online database

Defined in midasio/midasio.h:35

TID_LAST
#define TID_LAST 19

end of TID list indicator

Defined in midasio/midasio.h:40

#define TID_LINK 16

link in online database

Defined in midasio/midasio.h:36

TID_QWORD
#define TID_QWORD 18

8 bytes unsigned int 0 2^64-1

Defined in midasio/midasio.h:39

TID_SBYTE
#define TID_SBYTE 2

DEPRECATED, use TID_INT8 instead

Defined in midasio/midasio.h:15

TID_SHORT
#define TID_SHORT 5

DEPRECATED, use TID_INT16 instead

Defined in midasio/midasio.h:20

TID_STRING
#define TID_STRING 12

zero terminated string

Defined in midasio/midasio.h:32

TID_STRUCT
#define TID_STRUCT 14

structure with fixed length

Defined in midasio/midasio.h:34

TID_UINT16
#define TID_UINT16 4

two bytes 0 65535

Defined in midasio/midasio.h:19

TID_UINT32
#define TID_UINT32 6

four bytes 0 2^32-1

Defined in midasio/midasio.h:23

TID_UINT64
#define TID_UINT64 18

8 bytes unsigned int 0 2^64-1

Defined in midasio/midasio.h:38

TID_UINT8
#define TID_UINT8 1

unsigned byte 0 255

Defined in midasio/midasio.h:14

TID_WORD
#define TID_WORD 4

DEPRECATED, use TID_UINT16 instead

Defined in midasio/midasio.h:18

Variables

TMTraceCtorDtor extern

bool TMTraceCtorDtor

Defined in midasio/midasio.h:136