BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
RawDataMining Class Referencefinal

#include <RawDataMining.h>

Public Member Functions

 RawDataMining ()=delete
 RawDataMining (const std::string &filename)
 ~RawDataMining ()
FileStartRecordfileStartRecord ()
FileNameStringsfileNameStrings ()
RunParametersRecordrunParametersRecord ()
FileEndRecordfileEndRecord ()
DataSeparatorRecorddataSeparatorRecord ()
uint32_t * nextEvent ()
bool eof ()
void dump ()
 RawDataMining ()=delete
 RawDataMining (const std::string &filename)
 ~RawDataMining ()
FileStartRecordfileStartRecord ()
FileNameStringsfileNameStrings ()
RunParametersRecordrunParametersRecord ()
FileEndRecordfileEndRecord ()
DataSeparatorRecorddataSeparatorRecord ()
uint32_t * nextEvent ()
bool eof ()
void dump ()
 RawDataMining ()=delete
 RawDataMining (const std::string &filename)
 ~RawDataMining ()
FileStartRecordfileStartRecord ()
FileNameStringsfileNameStrings ()
RunParametersRecordrunParametersRecord ()
FileEndRecordfileEndRecord ()
DataSeparatorRecorddataSeparatorRecord ()
uint32_t * nextEvent ()
bool eof ()
void dump ()

Detailed Description

Definition at line 8 of file Event/RawFile/include/RawFile/RawDataMining.h.

Constructor & Destructor Documentation

◆ RawDataMining() [1/6]

RawDataMining::RawDataMining ( )
delete

◆ RawDataMining() [2/6]

RawDataMining::RawDataMining ( const std::string & filename)

Definition at line 4 of file RawDataMining.cxx.

5 : m_fname(filename)
6{
7 m_ifstream = new raw_ifstream( std::vector<std::string>{ filename } );
8 m_cache = new RawDataCache(512*1024);
9
10 auto p = m_ifstream->tellg();
11 m_ifstream->seekg( -sizeof( FileEndRecord ), std::ios::end );
12 *m_ifstream >> m_fileEndRecord;
13 m_ifstream->seekg( p );
14}

◆ ~RawDataMining() [1/3]

RawDataMining::~RawDataMining ( )

Definition at line 16 of file RawDataMining.cxx.

16{ delete m_ifstream; }

◆ RawDataMining() [3/6]

RawDataMining::RawDataMining ( )
delete

◆ RawDataMining() [4/6]

RawDataMining::RawDataMining ( const std::string & filename)

◆ ~RawDataMining() [2/3]

RawDataMining::~RawDataMining ( )

◆ RawDataMining() [5/6]

RawDataMining::RawDataMining ( )
delete

◆ RawDataMining() [6/6]

RawDataMining::RawDataMining ( const std::string & filename)

◆ ~RawDataMining() [3/3]

RawDataMining::~RawDataMining ( )

Member Function Documentation

◆ dataSeparatorRecord() [1/3]

DataSeparatorRecord & RawDataMining::dataSeparatorRecord ( )
inline

Definition at line 21 of file Event/RawFile/include/RawFile/RawDataMining.h.

21{ return m_dataSeparatorRecord; }

◆ dataSeparatorRecord() [2/3]

DataSeparatorRecord & RawDataMining::dataSeparatorRecord ( )
inline

Definition at line 21 of file InstallArea/x86_64-el9-gcc13-dbg/include/RawFile/RawDataMining.h.

21{ return m_dataSeparatorRecord; }

◆ dataSeparatorRecord() [3/3]

DataSeparatorRecord & RawDataMining::dataSeparatorRecord ( )
inline

Definition at line 21 of file InstallArea/x86_64-el9-gcc13-opt/include/RawFile/RawDataMining.h.

21{ return m_dataSeparatorRecord; }

◆ dump() [1/3]

void RawDataMining::dump ( )

Definition at line 54 of file RawDataMining.cxx.

54 {
55 m_ifstream->fileStartRecord().dump();
56 m_ifstream->fileNameStrings().dump();
57 m_ifstream->runParametersRecord().dump();
58 //m_dataSeparatorRecord.dump();
59 m_fileEndRecord.dump();
60}

Referenced by BOOST_PYTHON_MODULE().

◆ dump() [2/3]

void RawDataMining::dump ( )

◆ dump() [3/3]

void RawDataMining::dump ( )

◆ eof() [1/3]

bool RawDataMining::eof ( )
inline

Definition at line 25 of file Event/RawFile/include/RawFile/RawDataMining.h.

25{ return m_eof; }

◆ eof() [2/3]

bool RawDataMining::eof ( )
inline

Definition at line 25 of file InstallArea/x86_64-el9-gcc13-dbg/include/RawFile/RawDataMining.h.

25{ return m_eof; }

◆ eof() [3/3]

bool RawDataMining::eof ( )
inline

Definition at line 25 of file InstallArea/x86_64-el9-gcc13-opt/include/RawFile/RawDataMining.h.

25{ return m_eof; }

◆ fileEndRecord() [1/3]

FileEndRecord & RawDataMining::fileEndRecord ( )
inline

Definition at line 18 of file Event/RawFile/include/RawFile/RawDataMining.h.

18{ return m_fileEndRecord; }

◆ fileEndRecord() [2/3]

FileEndRecord & RawDataMining::fileEndRecord ( )
inline

Definition at line 18 of file InstallArea/x86_64-el9-gcc13-dbg/include/RawFile/RawDataMining.h.

18{ return m_fileEndRecord; }

◆ fileEndRecord() [3/3]

FileEndRecord & RawDataMining::fileEndRecord ( )
inline

Definition at line 18 of file InstallArea/x86_64-el9-gcc13-opt/include/RawFile/RawDataMining.h.

18{ return m_fileEndRecord; }

◆ fileNameStrings() [1/3]

FileNameStrings & RawDataMining::fileNameStrings ( )
inline

Definition at line 16 of file Event/RawFile/include/RawFile/RawDataMining.h.

16{ return m_ifstream->fileNameStrings(); }

◆ fileNameStrings() [2/3]

FileNameStrings & RawDataMining::fileNameStrings ( )
inline

Definition at line 16 of file InstallArea/x86_64-el9-gcc13-dbg/include/RawFile/RawDataMining.h.

16{ return m_ifstream->fileNameStrings(); }

◆ fileNameStrings() [3/3]

FileNameStrings & RawDataMining::fileNameStrings ( )
inline

Definition at line 16 of file InstallArea/x86_64-el9-gcc13-opt/include/RawFile/RawDataMining.h.

16{ return m_ifstream->fileNameStrings(); }

◆ fileStartRecord() [1/3]

FileStartRecord & RawDataMining::fileStartRecord ( )
inline

Definition at line 15 of file Event/RawFile/include/RawFile/RawDataMining.h.

15{ return m_ifstream->fileStartRecord(); }

◆ fileStartRecord() [2/3]

FileStartRecord & RawDataMining::fileStartRecord ( )
inline

Definition at line 15 of file InstallArea/x86_64-el9-gcc13-dbg/include/RawFile/RawDataMining.h.

15{ return m_ifstream->fileStartRecord(); }

◆ fileStartRecord() [3/3]

FileStartRecord & RawDataMining::fileStartRecord ( )
inline

Definition at line 15 of file InstallArea/x86_64-el9-gcc13-opt/include/RawFile/RawDataMining.h.

15{ return m_ifstream->fileStartRecord(); }

◆ nextEvent() [1/3]

uint32_t * RawDataMining::nextEvent ( )

Definition at line 18 of file RawDataMining.cxx.

19{
20 try {
21 *m_ifstream >> m_dataSeparatorRecord;
22 }
23 catch ( ReachEndOfFile& e ) {
24 //makeEndRecord(m_dataSeparatorRecord, *m_ifstream, m_fileEndRecord);
25 m_eof = true;
26 return nullptr;
27 }
28 catch ( ... ) {
29 std::cerr << "Error: invalid data in file " << m_fname << std::endl;
30 return nullptr;
31 }
32
33 uint32_t size = m_dataSeparatorRecord.getRecord().data_block_size;
34 if ( size > m_cache->capacity() ) {
35 uint32_t _capacity = m_cache->capacity();
36 do {
37 _capacity *= 2;
38 } while ( size > _capacity );
39 m_cache->reserve<char>(_capacity);
40 }
41
42 uint32_t* dptr = m_cache->data<uint32_t>();
43
44 m_ifstream->read(reinterpret_cast<char*>(dptr), size);
45
46 if ( dptr[0] != 0xaa1234aa ) {
47 std::cerr << "Error: wrong event marker" << std::endl;
48 dptr = nullptr;
49 }
50
51 return dptr;
52}

◆ nextEvent() [2/3]

uint32_t * RawDataMining::nextEvent ( )

◆ nextEvent() [3/3]

uint32_t * RawDataMining::nextEvent ( )

◆ runParametersRecord() [1/3]

RunParametersRecord & RawDataMining::runParametersRecord ( )
inline

Definition at line 17 of file Event/RawFile/include/RawFile/RawDataMining.h.

17{ return m_ifstream->runParametersRecord(); }

◆ runParametersRecord() [2/3]

RunParametersRecord & RawDataMining::runParametersRecord ( )
inline

Definition at line 17 of file InstallArea/x86_64-el9-gcc13-dbg/include/RawFile/RawDataMining.h.

17{ return m_ifstream->runParametersRecord(); }

◆ runParametersRecord() [3/3]

RunParametersRecord & RawDataMining::runParametersRecord ( )
inline

Definition at line 17 of file InstallArea/x86_64-el9-gcc13-opt/include/RawFile/RawDataMining.h.

17{ return m_ifstream->runParametersRecord(); }

The documentation for this class was generated from the following files: