/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/RawDataCnv/RawDataCnv-00-04-35/test/WriteRawData.cxx

Go to the documentation of this file.
00001 // Include files.
00002 #include <vector>
00003 #include "WriteRawData.h"
00004 #include "GaudiKernel/MsgStream.h"
00005 #include "GaudiKernel/ISvcLocator.h"
00006 #include "GaudiKernel/PropertyMgr.h"
00007 #include "GaudiKernel/SmartDataPtr.h"
00008 #include "RawDataCnv/EventManagement/RAWEVENT.h"
00009 #include "GaudiKernel/IDataProviderSvc.h"
00010 #include "GaudiKernel/IDataManagerSvc.h"
00011  
00012 // Event Model related classes
00013 #include "EventModel/Event.h"
00014 #include "RawEvent/DigiEvent.h"
00015 #include "MdcRawEvent/MdcDigi.h"
00016 #include "EmcRawEvent/EmcDigi.h"
00017 #include "TofRawEvent/TofDigi.h"
00018 #include "MucRawEvent/MucDigi.h"
00019 
00020 #include "EventModel/EventModel.h"
00021 
00022 using namespace std;
00023 
00024 // Constructor.
00025 WriteRawData::WriteRawData(const string& name, ISvcLocator* pSvcLocator)
00026    : Algorithm(name, pSvcLocator)
00027 {}
00028 
00029 // WriteRawData::initialize().
00030 StatusCode WriteRawData::initialize()
00031 {
00032 
00033    MsgStream log(msgSvc(), name());
00034    m_count = 0; 
00035 
00036    log << MSG::INFO << "in initialize()" << endreq;
00037 
00038    return StatusCode::SUCCESS;
00039 }
00040 
00041 // WriteRawData::execute().
00042 StatusCode WriteRawData::execute() 
00043 {
00044     StatusCode sc;   
00045     MsgStream log( msgSvc(), name() );
00046 
00047     log << MSG::INFO << "================================================" << endreq;
00048     log << MSG::INFO << "In execute()" << endreq;
00049     log << MSG::INFO << "++++++++++++++++++++++++++++++++++++++++++++++++" << endreq;
00050  
00051     static int evtnum = 0;
00052     static int runnum = 999;
00053  
00054     // Create the Event header and set it as "root" of the event store
00055     Event::EventHeader* event = new Event::EventHeader;
00056     event->setEventNumber(evtnum++);
00057     event->setRunNumber(runnum);
00058  
00059     IDataManagerSvc* evtmgr = dynamic_cast<IDataManagerSvc*>(eventSvc());
00060     sc = evtmgr->setRoot(EventModel::EventHeader , event);
00061     if( sc.isFailure() ) {
00062        log << MSG::ERROR << "Unable to register /Event object" << endreq;
00063        return sc;
00064     }
00065     
00066     DigiEvent* digi = new DigiEvent;
00067     log << MSG::INFO << " DigiEvent clID :: " << digi->clID() << endreq;
00068     sc = eventSvc()->registerObject(EventModel::Digi::Event, digi);
00069     if( sc.isFailure() ) {
00070        log << MSG::ERROR << "Unable to register /Event/Digi object" << endreq;
00071        return sc;
00072     }
00073   
00074     sc = writeMdcDigiData();
00075     if( sc.isFailure() ) {
00076        log << MSG::ERROR << "Unable to register /Event/Digi/MdcDigiCol object" << endreq;
00077        return sc;
00078     }
00079 
00080     sc = writeEmcDigiData();
00081     if( sc.isFailure() ) {
00082        log << MSG::ERROR << "Unable to register /Event/Digi/EmcDigiCol object" << endreq;
00083        return sc;
00084     }
00085 
00086     sc = writeTofDigiData();
00087     if( sc.isFailure() ) {
00088        log << MSG::ERROR << "Unable to register /Event/Digi/EmcDigiCol object" << endreq;
00089        return sc;
00090     }
00091 
00092     sc = writeMucDigiData();
00093     if( sc.isFailure() ) {
00094        log << MSG::ERROR << "Unable to register /Event/Digi/EmcDigiCol object" << endreq;
00095        return sc;
00096     }
00097     
00098     m_count++;
00099 
00100    return StatusCode::SUCCESS;
00101 }
00102 
00103 StatusCode WriteRawData::writeMdcDigiData()
00104 {
00105     int n = 10;
00106     MdcDigiCol* mdcCol = new MdcDigiCol;
00107     for (int i=0; i < n; i++) {
00108         // Create new MdcDigi
00109         MdcDigi* mdcDigi = new MdcDigi(m_count);
00110         mdcDigi->setTimeChannel(8);
00111         mdcDigi->setChargeChannel(10);
00112         mdcDigi->setOverflow(0);
00113         // And add the stuff to the container
00114         mdcCol->push_back ( mdcDigi );
00115     }
00116  
00117     StatusCode sc = StatusCode::SUCCESS;
00118     sc = eventSvc()->registerObject(EventModel::Digi::MdcDigiCol, mdcCol);
00119     return sc;
00120 } 
00121 
00122 StatusCode WriteRawData::writeEmcDigiData()
00123 {
00124     int n = 10;
00125     EmcDigiCol* emcCol = new EmcDigiCol;
00126     for (int i=0; i < n; i++) {
00127         // Create new EmcDigi
00128         EmcDigi* emcDigi = new EmcDigi(m_count);
00129         emcDigi->setTimeChannel(9);
00130         emcDigi->setChargeChannel(9);
00131         emcDigi->setMeasure(0);
00132         // And add the stuff to the container
00133         emcCol->push_back ( emcDigi );
00134     }
00135  
00136     StatusCode sc = StatusCode::SUCCESS;
00137     sc = eventSvc()->registerObject(EventModel::Digi::EmcDigiCol, emcCol);
00138     return sc;
00139 }
00140 
00141 StatusCode WriteRawData::writeTofDigiData()
00142 {
00143     int n = 10;
00144     TofDigiCol* tofCol = new TofDigiCol;
00145     for (int i=0; i < n; i++) {
00146         // Create new TofDigi
00147         TofDigi* tofDigi = new TofDigi(m_count);
00148         tofDigi->setTimeChannel(10);
00149         tofDigi->setChargeChannel(8);
00150         tofDigi->setOverflow(0);
00151         // And add the stuff to the container
00152         tofCol->push_back ( tofDigi );
00153     }
00154  
00155     StatusCode sc = StatusCode::SUCCESS; 
00156     sc = eventSvc()->registerObject(EventModel::Digi::TofDigiCol, tofCol);
00157     return sc;
00158 }
00159 
00160 StatusCode WriteRawData::writeMucDigiData()
00161 {
00162     int n = 10;
00163     MucDigiCol* mucCol = new MucDigiCol;
00164     for (int i=0; i < n; i++) {
00165         // Create new MucDigi
00166         MucDigi* mucDigi = new MucDigi(m_count);
00167         // And add the stuff to the container
00168         mucCol->push_back ( mucDigi );
00169     }
00170  
00171     StatusCode sc = StatusCode::SUCCESS; 
00172     sc = eventSvc()->registerObject(EventModel::Digi::MucDigiCol, mucCol);
00173 
00174     return sc;
00175 }
00176 
00177 // WriteRawData::finalize().
00178 StatusCode WriteRawData::finalize() 
00179 {
00180 
00181    MsgStream log(msgSvc(), name());
00182 
00183    log << MSG::INFO << "In finalize()" << endreq;
00184 
00185    return StatusCode::SUCCESS;
00186 }

Generated on Tue Nov 29 22:58:32 2016 for BOSS_7.0.2 by  doxygen 1.4.7