BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
RootRawEvtReader Class Reference

#include <RootRawEvtReader.h>

Inheritance diagram for RootRawEvtReader:

Public Member Functions

 RootRawEvtReader (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~RootRawEvtReader ()
StatusCode initialize ()
StatusCode execute ()
StatusCode finalize ()
StatusCode readMdc (int entry)
StatusCode readTof (int entry)
StatusCode readEmc (int entry)
StatusCode readMuc (int entry)

Detailed Description

Definition at line 10 of file RootRawEvtReader.h.

Constructor & Destructor Documentation

◆ RootRawEvtReader()

RootRawEvtReader::RootRawEvtReader ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 29 of file RootRawEvtReader.cxx.

30 : Algorithm( name, pSvcLocator ) {
31
32 declareProperty( "MdcDigi", m_mdcDigi = 1 );
33 declareProperty( "TofDigi", m_tofDigi = 1 );
34 declareProperty( "EmcDigi", m_emcDigi = 1 );
35 declareProperty( "MucDigi", m_mucDigi = 1 );
36 declareProperty( "InputFiles", m_inputFiles );
37
38 m_totalEvents = 0;
39 m_fileNumber = 0;
40 m_tempNumber = -1;
41 m_currentEntries = -1;
42 m_currentEntry = -1;
43}

Referenced by RootRawEvtReader().

◆ ~RootRawEvtReader()

RootRawEvtReader::~RootRawEvtReader ( )
virtual

Definition at line 45 of file RootRawEvtReader.cxx.

45{}

Member Function Documentation

◆ execute()

StatusCode RootRawEvtReader::execute ( )

Definition at line 61 of file RootRawEvtReader.cxx.

61 {
62
63 MsgStream log( msgSvc(), name() );
64 log << MSG::INFO << "in execute()" << endmsg;
65
66 DigiEvent* aDigiEvent = new DigiEvent;
67 StatusCode sc = m_evtSvc->registerObject( "/Event/Digi", aDigiEvent );
68 if ( sc != StatusCode::SUCCESS )
69 { std::cout << "Could not register DigiEvent" << std::endl; }
70
71 if ( m_tempNumber != m_fileNumber )
72 {
73 m_currentEntry = 0;
74 TFile* m_input = TFile::Open( m_inputFiles[m_fileNumber].c_str(), "READ" );
75 std::cout << "input file: " << m_inputFiles[m_fileNumber].c_str() << std::endl;
76 m_tree = (TTree*)m_input->Get( "Event" );
77 m_tree->SetMakeClass( 1 );
78 m_currentEntries = (Int_t)m_tree->GetEntries();
79 std::cout << "m_currentEntries: " << m_currentEntries << std::endl;
80
81 m_tempNumber = m_fileNumber;
82 }
83
84 if ( m_mdcDigi ) readMdc( m_currentEntry ).ignore();
85
86 if ( m_tofDigi ) readTof( m_currentEntry ).ignore();
87
88 if ( m_emcDigi ) readEmc( m_currentEntry ).ignore();
89
90 if ( m_mucDigi ) readMuc( m_currentEntry ).ignore();
91
92 log << MSG::INFO << "current Entry: " << m_currentEntry << endmsg;
93 // std::cout << "current Entry: "<< m_currentEntry << std::endl;
94 m_currentEntry++;
95
96 if ( m_currentEntry == m_currentEntries ) { m_fileNumber++; }
97
98 m_totalEvents++;
99 log << MSG::INFO << "total events: " << m_totalEvents << endmsg;
100 // std::cout << "total events: "<< m_totalEvents << std::endl;
101
102 return StatusCode::SUCCESS;
103}
IMessageSvc * msgSvc()
StatusCode readTof(int entry)
StatusCode readMuc(int entry)
StatusCode readEmc(int entry)
StatusCode readMdc(int entry)
char * c_str(Index i)

◆ finalize()

StatusCode RootRawEvtReader::finalize ( )

Definition at line 268 of file RootRawEvtReader.cxx.

268 {
269
270 MsgStream log( msgSvc(), name() );
271 log << MSG::INFO << "in finalize()" << endmsg;
272
273 return StatusCode::SUCCESS;
274}

◆ initialize()

StatusCode RootRawEvtReader::initialize ( )

Definition at line 48 of file RootRawEvtReader.cxx.

48 {
49
50 MsgStream log( msgSvc(), name() );
51 log << MSG::INFO << "in initialize()" << endmsg;
52
53 ISvcLocator* svcLocator = Gaudi::svcLocator();
54 StatusCode sc = svcLocator->service( "EventDataSvc", m_evtSvc );
55 if ( sc.isFailure() ) std::cout << "Could not accesss EventDataSvc!" << std::endl;
56
57 return StatusCode::SUCCESS;
58}

◆ readEmc()

StatusCode RootRawEvtReader::readEmc ( int entry)

Definition at line 189 of file RootRawEvtReader.cxx.

189 {
190 TBranch* branch = m_tree->GetBranch( "m_emcDigiCol" );
191
192 TObjArray* emcDigiCol;
193 branch->SetAddress( &emcDigiCol );
194 emcDigiCol = 0;
195
196 branch->GetEntry( entry );
197
198 // commonData m_common;
199
200 TIter emcDigiIter( emcDigiCol );
201 EmcDigiCol* emcDigiTdsCol = new EmcDigiCol;
202 TEmcDigi* emcDigiRoot = 0;
203
204 while ( ( emcDigiRoot = (TEmcDigi*)emcDigiIter.Next() ) )
205 {
206 unsigned int id = emcDigiRoot->getIntId();
207 unsigned int time = emcDigiRoot->getTimeChannel();
208 unsigned int charge = emcDigiRoot->getChargeChannel();
209 unsigned int measure = emcDigiRoot->getMeasure();
210 int trackIndex = emcDigiRoot->getTrackIndex();
211
212 EmcDigi* emcDigiTds = new EmcDigi( id );
213 // m_common.m_rootEmcDigiMap[emcDigiRoot] = emcDigiTds;
214 emcDigiTds->setTimeChannel( time );
215 emcDigiTds->setChargeChannel( charge );
216 emcDigiTds->setMeasure( measure );
217 emcDigiTds->setTrackIndex( trackIndex );
218 emcDigiTdsCol->push_back( emcDigiTds );
219 }
220
221 // register EMC digits collection to TDS
222 StatusCode scEmc = m_evtSvc->registerObject( "/Event/Digi/EmcDigiCol", emcDigiTdsCol );
223 if ( scEmc != StatusCode::SUCCESS )
224 std::cout << "Could not register EMC digi collection" << std::endl;
225
226 return StatusCode::SUCCESS;
227}
Double_t time
ObjectVector< EmcDigi > EmcDigiCol
void setMeasure(const unsigned int measure)
void setTrackIndex(const int trackIndex)
Definition RawData.cxx:29
void setChargeChannel(const unsigned int chargeChannel)
Definition RawData.cxx:24
void setTimeChannel(const unsigned int timeChannel)
Definition RawData.cxx:21
UInt_t getMeasure() const
Definition TEmcDigi.cxx:29
UInt_t getIntId() const
Definition TRawData.cxx:42
int getTrackIndex() const
Definition TRawData.cxx:39
UInt_t getChargeChannel() const
Definition TRawData.cxx:48
UInt_t getTimeChannel() const
Definition TRawData.cxx:45

Referenced by execute().

◆ readMdc()

StatusCode RootRawEvtReader::readMdc ( int entry)

Definition at line 106 of file RootRawEvtReader.cxx.

106 {
107 TBranch* branch = m_tree->GetBranch( "m_mdcDigiCol" );
108
109 TObjArray* mdcDigiCol;
110 branch->SetAddress( &mdcDigiCol );
111 mdcDigiCol = 0;
112
113 branch->GetEntry( entry );
114
115 // commonData m_common;
116
117 TIter mdcDigiIter( mdcDigiCol );
118 MdcDigiCol* mdcDigiTdsCol = new MdcDigiCol;
119 TMdcDigi* mdcDigiRoot = 0;
120
121 while ( ( mdcDigiRoot = (TMdcDigi*)mdcDigiIter.Next() ) )
122 {
123 unsigned int id = mdcDigiRoot->getIntId();
124 unsigned int time = mdcDigiRoot->getTimeChannel();
125 unsigned int charge = mdcDigiRoot->getChargeChannel();
126 unsigned int overflow = mdcDigiRoot->getOverflow();
127 int trackIndex = mdcDigiRoot->getTrackIndex();
128
129 MdcDigi* mdcDigiTds = new MdcDigi( id );
130 // m_common.m_rootMdcDigiMap[mdcDigiRoot] = mdcDigiTds;
131 mdcDigiTds->setTimeChannel( time );
132 mdcDigiTds->setChargeChannel( charge );
133 mdcDigiTds->setOverflow( overflow );
134 mdcDigiTds->setTrackIndex( trackIndex );
135 mdcDigiTdsCol->push_back( mdcDigiTds );
136 /*std::cout<<"trackID: "<<trackIndex;
137 std::cout<<" charge: "<<charge;
138 std::cout<<" time: "<<time<<std::endl;*/
139 }
140
141 // register MDC digits collection to TDS
142 StatusCode scMdc = m_evtSvc->registerObject( "/Event/Digi/MdcDigiCol", mdcDigiTdsCol );
143 if ( scMdc != StatusCode::SUCCESS )
144 std::cout << "Could not register MDC digi collection" << std::endl;
145
146 return StatusCode::SUCCESS;
147}
UInt_t getOverflow() const
Definition TMdcDigi.cxx:35

Referenced by execute().

◆ readMuc()

StatusCode RootRawEvtReader::readMuc ( int entry)

Definition at line 229 of file RootRawEvtReader.cxx.

229 {
230 TBranch* branch = m_tree->GetBranch( "m_mucDigiCol" );
231
232 TObjArray* mucDigiCol;
233 branch->SetAddress( &mucDigiCol );
234 mucDigiCol = 0;
235
236 branch->GetEntry( entry );
237
238 // commonData m_common;
239
240 TIter mucDigiIter( mucDigiCol );
241 MucDigiCol* mucDigiTdsCol = new MucDigiCol;
242 TMucDigi* mucDigiRoot = 0;
243
244 while ( ( mucDigiRoot = (TMucDigi*)mucDigiIter.Next() ) )
245 {
246 unsigned int id = mucDigiRoot->getIntId();
247 unsigned int time = mucDigiRoot->getTimeChannel();
248 unsigned int charge = mucDigiRoot->getChargeChannel();
249 int trackIndex = mucDigiRoot->getTrackIndex();
250
251 MucDigi* mucDigiTds = new MucDigi( id );
252 // m_common.m_rootMucDigiMap[mucDigiRoot] = mucDigiTds;
253 mucDigiTds->setTimeChannel( time );
254 mucDigiTds->setChargeChannel( charge );
255 mucDigiTds->setTrackIndex( trackIndex );
256 mucDigiTdsCol->push_back( mucDigiTds );
257 }
258
259 // register MUC digits collection to TDS
260 StatusCode scMuc = m_evtSvc->registerObject( "/Event/Digi/MucDigiCol", mucDigiTdsCol );
261 if ( scMuc != StatusCode::SUCCESS )
262 std::cout << "Could not register MUC digi collection" << std::endl;
263
264 return StatusCode::SUCCESS;
265}

Referenced by execute().

◆ readTof()

StatusCode RootRawEvtReader::readTof ( int entry)

Definition at line 149 of file RootRawEvtReader.cxx.

149 {
150 TBranch* branch = m_tree->GetBranch( "m_tofDigiCol" );
151
152 TObjArray* tofDigiCol;
153 branch->SetAddress( &tofDigiCol );
154 tofDigiCol = 0;
155
156 branch->GetEntry( entry );
157
158 // commonData m_common;
159
160 TIter tofDigiIter( tofDigiCol );
161 TofDigiCol* tofDigiTdsCol = new TofDigiCol;
162 TTofDigi* tofDigiRoot = 0;
163
164 while ( ( tofDigiRoot = (TTofDigi*)tofDigiIter.Next() ) )
165 {
166 unsigned int id = tofDigiRoot->getIntId();
167 unsigned int time = tofDigiRoot->getTimeChannel();
168 unsigned int charge = tofDigiRoot->getChargeChannel();
169 unsigned int overflow = tofDigiRoot->getOverflow();
170 int trackIndex = tofDigiRoot->getTrackIndex();
171
172 TofDigi* tofDigiTds = new TofDigi( id );
173 // m_common.m_rootTofDigiMap[tofDigiRoot] = tofDigiTds;
174 tofDigiTds->setTimeChannel( time );
175 tofDigiTds->setChargeChannel( charge );
176 tofDigiTds->setOverflow( overflow );
177 tofDigiTds->setTrackIndex( trackIndex );
178 tofDigiTdsCol->push_back( tofDigiTds );
179 }
180
181 // register TOF digits collection to TDS
182 StatusCode scTof = m_evtSvc->registerObject( "/Event/Digi/TofDigiCol", tofDigiTdsCol );
183 if ( scTof != StatusCode::SUCCESS )
184 std::cout << "Could not register TOF digi collection" << std::endl;
185
186 return StatusCode::SUCCESS;
187}
UInt_t getOverflow() const
Definition TTofDigi.cxx:35

Referenced by execute().


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