BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Builder Class Referenceabstract

#include <Builder.h>

Inheritance diagram for Builder:

Classes

class  DataErrException

Public Types

typedef std::map< uint32_t, uint32_t > TE2REMAP
typedef std::map< uint32_t, uint32_t > TE2REMAP
typedef std::map< uint32_t, uint32_t > TE2REMAP

Public Member Functions

virtual StatusCode initialize (string &initFile)
virtual uint32_t getTEID (uint32_t teid)=0
virtual uint32_t getREID (uint32_t reid)=0
virtual StatusCode initialize (string &initFile)
virtual uint32_t getTEID (uint32_t teid)=0
virtual uint32_t getREID (uint32_t reid)=0
virtual StatusCode initialize (string &initFile)
virtual uint32_t getTEID (uint32_t teid)=0
virtual uint32_t getREID (uint32_t reid)=0

Static Public Member Functions

static bool expect (ifstream &f, string msg, string fname)
static bool expectInt (ifstream &f, string msg, string fname, uint32_t &val1, uint32_t &val2)
static bool expectLong (ifstream &f, string msg, string fname, uint64_t &val)
static bool find (ifstream &f, string msg, string fname)
static bool expect (ifstream &f, string msg, string fname)
static bool expectInt (ifstream &f, string msg, string fname, uint32_t &val1, uint32_t &val2)
static bool expectLong (ifstream &f, string msg, string fname, uint64_t &val)
static bool find (ifstream &f, string msg, string fname)
static bool expect (ifstream &f, string msg, string fname)
static bool expectInt (ifstream &f, string msg, string fname, uint32_t &val1, uint32_t &val2)
static bool expectLong (ifstream &f, string msg, string fname, uint64_t &val)
static bool find (ifstream &f, string msg, string fname)

Protected Member Functions

 Builder ()
virtual ~Builder ()
void append2event (WriteRawEvent *&re, uint32_t source_id, uint32_t size, uint32_t shift=0)
 Builder ()
virtual ~Builder ()
void append2event (WriteRawEvent *&re, uint32_t source_id, uint32_t size, uint32_t shift=0)
 Builder ()
virtual ~Builder ()
void append2event (WriteRawEvent *&re, uint32_t source_id, uint32_t size, uint32_t shift=0)

Protected Attributes

uint32_t * m_buf
uint32_t m_status

Static Protected Attributes

static string m_confFile

Detailed Description

Member Typedef Documentation

◆ TE2REMAP [1/3]

typedef std::map<uint32_t, uint32_t> Builder::TE2REMAP

◆ TE2REMAP [2/3]

typedef std::map<uint32_t, uint32_t> Builder::TE2REMAP

◆ TE2REMAP [3/3]

typedef std::map<uint32_t, uint32_t> Builder::TE2REMAP

Constructor & Destructor Documentation

◆ Builder() [1/3]

Builder::Builder ( )
protected

Definition at line 11 of file Builder.cxx.

11 {
12 // default 128k bytes buffer size, it's dangerous!!!
13 // a smarter method is expected !!!
14 m_buf = new uint32_t[32768];
15
16 if ( !m_confFile.empty() ) return;
17
18 auto optSvc = Gaudi::svcLocator()->service<IOptionsSvc>( "JobOptionsSvc" );
19 Gaudi::Parsers::parse( m_confFile, optSvc->get( "Builder.RawDataCnvConfFile" ) ).ignore();
20 Gaudi::Parsers::parse( m_status, optSvc->get( "Builder.Status", "4294967295" ) ).ignore(); // 0xFFFFFFFF = 4294967295
21}

Referenced by EmcBuilder::EmcBuilder(), EmcMcHitBuilder::EmcMcHitBuilder(), HltBuilder::HltBuilder(), McParticleBuilder::McParticleBuilder(), MdcBuilder::MdcBuilder(), MdcMcHitBuilder::MdcMcHitBuilder(), MucBuilder::MucBuilder(), MucMcHitBuilder::MucMcHitBuilder(), TofBuilder::TofBuilder(), and TofMcHitBuilder::TofMcHitBuilder().

◆ ~Builder() [1/3]

Builder::~Builder ( )
protectedvirtual

Definition at line 23 of file Builder.cxx.

23{ delete m_buf; }

◆ Builder() [2/3]

Builder::Builder ( )
protected

◆ ~Builder() [2/3]

virtual Builder::~Builder ( )
protectedvirtual

◆ Builder() [3/3]

Builder::Builder ( )
protected

◆ ~Builder() [3/3]

virtual Builder::~Builder ( )
protectedvirtual

Member Function Documentation

◆ append2event() [1/3]

void Builder::append2event ( WriteRawEvent *& re,
uint32_t source_id,
uint32_t size,
uint32_t shift = 0 )
protected

Definition at line 69 of file Builder.cxx.

70 {
71 uint32_t run_no = re->run_no();
72 uint32_t lvl1_id = re->lvl1_id();
73 uint32_t bc_id = 0; // ?
74 // ROB
75 eformat::write::ROBFragment* nrob = new eformat::write::ROBFragment( source_id, // source_id
76 run_no, // run_no
77 lvl1_id, // lvl1_id
78 bc_id, // bc_id
79 0, // lvl1_type
80 0, // detev_type
81 size, // ndata
82 m_buf + shift, // data
83 0 // status_position
84 );
85 if ( m_status == 0xFFFFFFFF )
86 {
87 nrob->status( 0, NULL );
88 nrob->rod_status( 0, NULL );
89 }
90 else
91 { // fucd
92 nrob->status( 1, &m_status );
93 nrob->rod_status( 1, &m_status );
94 }
95 // ROS
96 eformat::write::ROSFragment* nros = new eformat::write::ROSFragment( source_id, // source_id
97 run_no, // run_no
98 lvl1_id, // lvl1_id
99 bc_id // bc_id
100 );
101 if ( m_status == 0xFFFFFFFF ) nros->status( 0, NULL );
102 else nros->status( 1, &m_status ); // fucd
103 // SubDetector
104 eformat::write::SubDetectorFragment* nsd =
105 new eformat::write::SubDetectorFragment( source_id );
106 if ( m_status == 0xFFFFFFFF ) nsd->status( 0, NULL );
107 else nsd->status( 1, &m_status ); // fucd
108 // append to FullEventFragment
109 nros->append( nrob );
110 nsd->append( nros );
111 re->append( nsd );
112}
void append(eformat::write::SubDetectorFragment *sd)
void status(uint32_t n, const uint32_t *status)
void rod_status(uint32_t n, const uint32_t *status)
void status(uint32_t n, const uint32_t *status)
void append(eformat::write::ROBFragment *rob)
void status(uint32_t n, const uint32_t *status)
void append(eformat::write::ROSFragment *ros)

Referenced by EmcBuilder::pack(), HltBuilder::pack(), McParticleBuilder::pack(), MdcBuilder::pack(), MucBuilder::pack(), and TofBuilder::pack().

◆ append2event() [2/3]

void Builder::append2event ( WriteRawEvent *& re,
uint32_t source_id,
uint32_t size,
uint32_t shift = 0 )
protected

◆ append2event() [3/3]

void Builder::append2event ( WriteRawEvent *& re,
uint32_t source_id,
uint32_t size,
uint32_t shift = 0 )
protected

◆ expect() [1/3]

bool Builder::expect ( ifstream & f,
string msg,
string fname )
static

Definition at line 25 of file Builder.cxx.

25 {
26 string str;
27 if ( f.bad() )
28 {
29 cerr << "Error: file " << fname << " is bad" << endl;
30 return false;
31 }
32 f >> str;
33 if ( str == msg ) return true;
34
35 cerr << "Error: expected `" << msg << "|" << str << "` in " << fname << endl;
36 return false;
37}
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")

Referenced by expectInt(), expectLong(), EmcBuilder::initialize(), EmcMcHitBuilder::initialize(), HltBuilder::initialize(), MdcBuilder::initialize(), MdcMcHitBuilder::initialize(), MucMcHitBuilder::initialize(), TofBuilder::initialize(), and TofMcHitBuilder::initialize().

◆ expect() [2/3]

bool Builder::expect ( ifstream & f,
string msg,
string fname )
static

◆ expect() [3/3]

bool Builder::expect ( ifstream & f,
string msg,
string fname )
static

◆ expectInt() [1/3]

bool Builder::expectInt ( ifstream & f,
string msg,
string fname,
uint32_t & val1,
uint32_t & val2 )
static

Definition at line 39 of file Builder.cxx.

40 {
41 if ( !expect( f, msg, fname ) || f.bad() ) return false;
42 f >> val1 >> val2;
43 return true;
44}
static bool expect(ifstream &f, string msg, string fname)
Definition Builder.cxx:25

Referenced by EmcBuilder::initialize(), EmcMcHitBuilder::initialize(), HltBuilder::initialize(), MdcBuilder::initialize(), MdcMcHitBuilder::initialize(), MucMcHitBuilder::initialize(), TofBuilder::initialize(), and TofMcHitBuilder::initialize().

◆ expectInt() [2/3]

bool Builder::expectInt ( ifstream & f,
string msg,
string fname,
uint32_t & val1,
uint32_t & val2 )
static

◆ expectInt() [3/3]

bool Builder::expectInt ( ifstream & f,
string msg,
string fname,
uint32_t & val1,
uint32_t & val2 )
static

◆ expectLong() [1/3]

bool Builder::expectLong ( ifstream & f,
string msg,
string fname,
uint64_t & val )
static

Definition at line 46 of file Builder.cxx.

46 {
47 if ( !expect( f, msg, fname ) || f.bad() ) return false;
48 f >> val;
49 return true;
50}

Referenced by EmcMcHitBuilder::initialize(), MdcMcHitBuilder::initialize(), MucMcHitBuilder::initialize(), and TofMcHitBuilder::initialize().

◆ expectLong() [2/3]

bool Builder::expectLong ( ifstream & f,
string msg,
string fname,
uint64_t & val )
static

◆ expectLong() [3/3]

bool Builder::expectLong ( ifstream & f,
string msg,
string fname,
uint64_t & val )
static

◆ find() [1/3]

bool Builder::find ( ifstream & f,
string msg,
string fname )
static

Definition at line 52 of file Builder.cxx.

52 {
53 if ( f.bad() )
54 {
55 cerr << "Error: file " << fname << " bad checked" << endl;
56 return false;
57 }
58
59 string str;
60 while ( !f.eof() )
61 {
62 f >> str;
63 if ( str == msg ) return true;
64 }
65
66 return false;
67}

Referenced by EmcBuilder::initialize(), EmcMcHitBuilder::initialize(), HltBuilder::initialize(), McParticleBuilder::initialize(), MdcBuilder::initialize(), MdcMcHitBuilder::initialize(), MucMcHitBuilder::initialize(), TofBuilder::initialize(), and TofMcHitBuilder::initialize().

◆ find() [2/3]

bool Builder::find ( ifstream & f,
string msg,
string fname )
static

◆ find() [3/3]

bool Builder::find ( ifstream & f,
string msg,
string fname )
static

◆ getREID() [1/3]

◆ getREID() [2/3]

◆ getREID() [3/3]

◆ getTEID() [1/3]

◆ getTEID() [2/3]

◆ getTEID() [3/3]

◆ initialize() [1/3]

◆ initialize() [2/3]

◆ initialize() [3/3]

Member Data Documentation

◆ m_buf

◆ m_confFile

◆ m_status

uint32_t Builder::m_status
protected

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