/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Simulation/BOOST/BesSim/BesSim-00-01-24/src/BesTDSWriter.cc

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------//
00009 //
00010 
00011 #include "BesTDSWriter.hh"
00012 #include "BesRawDataWriter.hh"
00013 #include "BesMcTruthWriter.hh"
00014 #include "G4Event.hh"
00015 
00016 #include "GaudiKernel/IDataProviderSvc.h"
00017 #include "GaudiKernel/SmartDataPtr.h"
00018 #include "GaudiKernel/ISvcLocator.h"
00019 #include "GaudiKernel/Bootstrap.h"
00020 #include "EventModel/EventHeader.h"
00021 
00022 BesTDSWriter::BesTDSWriter()
00023 {
00024   m_rawWriter = new BesRawDataWriter;
00025   m_mcWriter = new BesMcTruthWriter;
00026 }
00027 
00028 BesTDSWriter::~BesTDSWriter()
00029 {
00030   if(m_rawWriter)
00031     delete m_rawWriter;
00032   if(m_mcWriter)
00033     delete m_mcWriter;
00034 }
00035 
00036 void BesTDSWriter::SaveAll(const G4Event* evt, int runNumber)
00037 {
00038   //interface to event data service
00039   ISvcLocator* svcLocator = Gaudi::svcLocator();
00040   IDataProviderSvc* evtSvc;
00041   StatusCode sc=svcLocator->service("EventDataSvc", evtSvc);
00042   if (sc.isFailure())
00043     G4cout<<"Could not accesss EventDataSvc!"<<G4endl;
00044   
00045   //save event head
00046 /*
00047   SmartDataPtr<Event::EventHeader> eventHeader(evtSvc,"/Event/EventHeader");
00048   if (!eventHeader) {
00049     //G4cout<< "Could not find Event Header" << G4endl;
00050     Event::EventHeader *eventHeader = new Event::EventHeader;
00051     StatusCode sc = evtSvc->registerObject("/Event/EventHeader",eventHeader);    
00052   }
00053   eventHeader->setEventNumber( evt->GetEventID() ); 
00054   eventHeader->setRunNumber( runNumber );
00055 */
00056   //retrieve
00057   SmartDataPtr<Event::EventHeader> aEventHeader(evtSvc,"/Event/EventHeader");
00058   G4int run=aEventHeader->runNumber();
00059   G4int event=aEventHeader->eventNumber();
00060   //G4cout<<"BesTDSWriter:  runNumber: "<<run<<"  eventNumber:"<<event<<G4endl;
00061   
00062 
00063   //save raw data
00064   m_rawWriter->SaveDigits();
00065   
00066   //save MC Truth
00067   m_mcWriter->SaveMcTruth();
00068 
00069 }
00070 

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