Builder Class Reference

#include <Builder.h>

Inheritance diagram for Builder:

EmcBuilder EmcMcHitBuilder HltBuilder McParticleBuilder MdcBuilder MdcMcHitBuilder MucBuilder MucMcHitBuilder TofBuilder TofMcHitBuilder List of all members.

Public Types

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

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)

Protected Member Functions

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

Protected Attributes

PropertyMgr m_propMgr
uint32_t * m_buf
uint32_t m_status

Static Protected Attributes

static string m_confFile

Classes

class  DataErrException

Detailed Description

Definition at line 14 of file Builder.h.


Member Typedef Documentation

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

Definition at line 25 of file Builder.h.


Constructor & Destructor Documentation

Builder::Builder (  )  [protected]

Definition at line 8 of file Builder.cxx.

References m_buf, m_confFile, m_propMgr, and m_status.

00009 {
00010   // default 128k bytes buffer size, it's dangerous!!!
00011   // a smarter method is expected !!!
00012   m_buf = new uint32_t[32768];
00013 
00014   if (!m_confFile.empty()) return;
00015   m_propMgr.declareProperty("RawDataCnvConfFile", m_confFile);
00016   m_propMgr.declareProperty("Status", m_status=0xFFFFFFFF);                    //fucd
00017 
00018   // Get a pointer to the Job Options Service
00019   IJobOptionsSvc* jobSvc;
00020   Gaudi::svcLocator()->service("JobOptionsSvc", jobSvc);
00021   jobSvc->setMyProperties("Builder", &m_propMgr);
00022 }

Builder::~Builder (  )  [protected, virtual]

Definition at line 24 of file Builder.cxx.

References m_buf.

00024                   {
00025    delete m_buf;
00026 }


Member Function Documentation

void Builder::append2event ( WriteRawEvent *&  re,
uint32_t  source_id,
uint32_t  size 
) [protected]

Definition at line 76 of file Builder.cxx.

References eformat::write::FullEventFragment::append(), eformat::write::SubDetectorFragment::append(), eformat::write::ROSFragment::append(), eformat::write::FullEventFragment::lvl1_id(), m_buf, m_status, eformat::write::ROBFragment::rod_status(), eformat::write::FullEventFragment::run_no(), eformat::write::SubDetectorFragment::status(), eformat::write::ROSFragment::status(), and eformat::write::ROBFragment::status().

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

00077 {
00078   uint32_t run_no    = re->run_no();
00079   uint32_t lvl1_id   = re->lvl1_id();
00080   uint32_t bc_id     = 0;   // ?
00081   // ROB
00082   eformat::write::ROBFragment* nrob = new eformat::write::ROBFragment(
00083       source_id,      // source_id
00084       run_no,         // run_no
00085       lvl1_id,        // lvl1_id
00086       bc_id,          // bc_id
00087       0,              // lvl1_type
00088       0,              // detev_type
00089       size,           // ndata
00090       m_buf,          // data
00091       0               // status_position
00092       );
00093   if(m_status==0xFFFFFFFF){
00094     nrob->status(0, NULL);
00095     nrob->rod_status(0, NULL);
00096   }
00097   else{                     //fucd
00098     nrob->status(1, &m_status);
00099     nrob->rod_status(1, &m_status);
00100   }
00101   // ROS
00102   eformat::write::ROSFragment* nros = new eformat::write::ROSFragment(
00103       source_id,      // source_id
00104       run_no,         // run_no
00105       lvl1_id,        // lvl1_id
00106       bc_id           // bc_id
00107       );
00108   if(m_status==0xFFFFFFFF) nros->status(0, NULL);
00109   else        nros->status(1, &m_status);    //fucd
00110   // SubDetector
00111   eformat::write::SubDetectorFragment* nsd = new eformat::write::SubDetectorFragment(source_id);
00112   if(m_status==0xFFFFFFFF) nsd->status(0, NULL);
00113   else        nsd->status(1, &m_status);     //fucd
00114   // append to FullEventFragment
00115   nros->append(nrob);
00116   nsd->append(nros);
00117   re->append(nsd);
00118 }

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

Definition at line 28 of file Builder.cxx.

References deljobs::string.

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

00029 {
00030   string str;
00031   if( f.bad() ) 
00032   {
00033       cerr << "Error: file " << fname << " is bad" << endl;
00034       return false;
00035   }
00036   f >> str;
00037   if( str == msg )
00038     return true;
00039 
00040   cerr << "Error: expected `" << msg << "|" << str <<"` in " << fname << endl;
00041   return false;
00042 }

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

Definition at line 44 of file Builder.cxx.

References expect().

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

00045 {
00046   if( !expect( f, msg, fname ) || f.bad() )
00047     return false;
00048   f >> val1 >> val2;
00049   return true;
00050 }

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

Definition at line 52 of file Builder.cxx.

References expect().

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

00053 {
00054   if ( !expect(f, msg, fname) || f.bad() )
00055     return false;
00056   f >> val;
00057   return true;
00058 }

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

Definition at line 60 of file Builder.cxx.

References deljobs::string.

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

00061 {
00062   if ( f.bad() ) {
00063     cerr << "Error: file " << fname << " bad checked" << endl;
00064     return false;
00065   }
00066 
00067   string str;
00068   while ( !f.eof() ) {
00069     f >> str;
00070     if ( str == msg ) return true;
00071   }
00072 
00073   return false;
00074 }

virtual uint32_t Builder::getREID ( uint32_t  reid  )  [pure virtual]

Implemented in EmcBuilder, EmcMcHitBuilder, HltBuilder, McParticleBuilder, MdcBuilder, MdcMcHitBuilder, MucBuilder, MucMcHitBuilder, TofBuilder, and TofMcHitBuilder.

virtual uint32_t Builder::getTEID ( uint32_t  teid  )  [pure virtual]

Implemented in EmcBuilder, EmcMcHitBuilder, HltBuilder, McParticleBuilder, MdcBuilder, MdcMcHitBuilder, MucBuilder, MucMcHitBuilder, TofBuilder, and TofMcHitBuilder.

virtual StatusCode Builder::initialize ( string initFile  )  [inline, virtual]

Reimplemented in EmcBuilder, EmcMcHitBuilder, HltBuilder, McParticleBuilder, MdcBuilder, MdcMcHitBuilder, MucBuilder, MucMcHitBuilder, TofBuilder, and TofMcHitBuilder.

Definition at line 32 of file Builder.h.

00032 {return StatusCode::SUCCESS;};


Member Data Documentation

uint32_t* Builder::m_buf [protected]

Definition at line 46 of file Builder.h.

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

string Builder::m_confFile [static, protected]

Definition at line 47 of file Builder.h.

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

PropertyMgr Builder::m_propMgr [protected]

Reimplemented in EmcBuilder, EmcMcHitBuilder, HltBuilder, MdcBuilder, MdcMcHitBuilder, MucBuilder, MucMcHitBuilder, TofBuilder, and TofMcHitBuilder.

Definition at line 43 of file Builder.h.

Referenced by Builder().

uint32_t Builder::m_status [protected]

Definition at line 49 of file Builder.h.

Referenced by append2event(), and Builder().


Generated on Tue Nov 29 23:17:55 2016 for BOSS_7.0.2 by  doxygen 1.4.7