BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
BesTDSWriter.cc
Go to the documentation of this file.
1//---------------------------------------------------------------------------//
2//// BOOST --- BESIII Object_Oriented Simulation Tool //
3////---------------------------------------------------------------------------//
4////Description:
5////Author: Dengzy
6////Created: Mar, 2004
7////Modified:
8////Comment:
9//
10
11#include "BesTDSWriter.hh"
12#include "BesMcTruthWriter.hh"
13#include "BesRawDataWriter.hh"
14#include "G4Event.hh"
15
16#include "EventModel/EventHeader.h"
17#include "GaudiKernel/Bootstrap.h"
18#include "GaudiKernel/IDataProviderSvc.h"
19#include "GaudiKernel/ISvcLocator.h"
20#include "GaudiKernel/SmartDataPtr.h"
21
23 m_rawWriter = new BesRawDataWriter;
24 m_mcWriter = new BesMcTruthWriter;
25}
26
28 if ( m_rawWriter ) delete m_rawWriter;
29 if ( m_mcWriter ) delete m_mcWriter;
30}
31
32void BesTDSWriter::SaveAll( const G4Event* evt, int runNumber ) {
33 // interface to event data service
34 ISvcLocator* svcLocator = Gaudi::svcLocator();
35 IDataProviderSvc* evtSvc;
36 StatusCode sc = svcLocator->service( "EventDataSvc", evtSvc );
37 if ( sc.isFailure() ) G4cout << "Could not accesss EventDataSvc!" << G4endl;
38
39 // save event head
40 /*
41 SmartDataPtr<Event::EventHeader> eventHeader(evtSvc,"/Event/EventHeader");
42 if (!eventHeader) {
43 //G4cout<< "Could not find Event Header" << G4endl;
44 Event::EventHeader *eventHeader = new Event::EventHeader;
45 StatusCode sc = evtSvc->registerObject("/Event/EventHeader",eventHeader);
46 }
47 eventHeader->setEventNumber( evt->GetEventID() );
48 eventHeader->setRunNumber( runNumber );
49 */
50 // retrieve
51 SmartDataPtr<Event::EventHeader> aEventHeader( evtSvc, "/Event/EventHeader" );
52 G4int run = aEventHeader->runNumber();
53 G4int event = aEventHeader->eventNumber();
54 // G4cout<<"BesTDSWriter: runNumber: "<<run<<" eventNumber:"<<event<<G4endl;
55
56 // save raw data
57 m_rawWriter->SaveDigits();
58
59 // save MC Truth
60 m_mcWriter->SaveMcTruth();
61}
void SaveAll(const G4Event *, int)