BOSS 7.0.3
BESIII Offline Software System
Loading...
Searching...
No Matches
TofRawDataProvider Class Reference

#include <TofRawDataProvider.h>

+ Inheritance diagram for TofRawDataProvider:

Public Member Functions

 TofRawDataProvider ()
 
 TofRawDataProvider (const char *name)
 
 ~TofRawDataProvider ()
 
StatusCode initialize (bool mode=false, ISvcLocator *svcLoc=0, IMessageSvc *pMsg=0)
 
void handle (const Incident &)
 
void tofDataMapFull ()
 
TofDataMaptofDataMapOnlineMode (uint32_t control=1)
 
TofDataVectortofDataVectorOnlineMode (uint32_t control=1)
 
TofDataMaptofDataMapEstime ()
 
TofDataVectortofDataVectorEstime ()
 
TofDataMaptofDataMapTof (double estime=0.0)
 
TofDataVectortofDataVectorTof (double estime=0.0)
 
TofDataMaptofDataMapEmc (double estime=0.0)
 
TofDataVectortofDataVectorEmc (double estime=0.0)
 
 TofRawDataProvider ()
 
 TofRawDataProvider (const char *name)
 
 ~TofRawDataProvider ()
 
StatusCode initialize (bool mode=false, ISvcLocator *svcLoc=0, IMessageSvc *pMsg=0)
 
void handle (const Incident &)
 
void tofDataMapFull ()
 
TofDataMaptofDataMapOnlineMode (uint32_t control=1)
 
TofDataVectortofDataVectorOnlineMode (uint32_t control=1)
 
TofDataMaptofDataMapEstime ()
 
TofDataVectortofDataVectorEstime ()
 
TofDataMaptofDataMapTof (double estime=0.0)
 
TofDataVectortofDataVectorTof (double estime=0.0)
 
TofDataMaptofDataMapEmc (double estime=0.0)
 
TofDataVectortofDataVectorEmc (double estime=0.0)
 
- Public Member Functions inherited from RawDataProviderBase
 RawDataProviderBase (const char *name)
 
virtual ~RawDataProviderBase ()
 
StatusCode initialize (ISvcLocator *svcLoc=0, IMessageSvc *pMsg=0)
 
void setSvcLocator (ISvcLocator *svcLoc)
 
void setMsgSvc (IMessageSvc *svc)
 
void setMsgName (const char *name)
 
 RawDataProviderBase (const char *name)
 
virtual ~RawDataProviderBase ()
 
StatusCode initialize (ISvcLocator *svcLoc=0, IMessageSvc *pMsg=0)
 
void setSvcLocator (ISvcLocator *svcLoc)
 
void setMsgSvc (IMessageSvc *svc)
 
void setMsgName (const char *name)
 

Additional Inherited Members

- Protected Member Functions inherited from RawDataProviderBase
 RawDataProviderBase ()
 
 RawDataProviderBase ()
 
- Protected Attributes inherited from RawDataProviderBase
ISvcLocator * m_svcLocator
 
IMessageSvc * m_msgSvc
 
std::string m_name
 

Detailed Description

Constructor & Destructor Documentation

◆ TofRawDataProvider() [1/4]

TofRawDataProvider::TofRawDataProvider ( )

Definition at line 36 of file TofRawDataProvider.cxx.

36 :
38 m_hasFilled(0)
39{}

◆ TofRawDataProvider() [2/4]

TofRawDataProvider::TofRawDataProvider ( const char *  name)

Definition at line 42 of file TofRawDataProvider.cxx.

42 :
43 RawDataProviderBase( name ),
44 m_hasFilled(0)
45{}

◆ ~TofRawDataProvider() [1/2]

TofRawDataProvider::~TofRawDataProvider ( )

Definition at line 48 of file TofRawDataProvider.cxx.

48 {
49 IterTofDataMap iter = m_tofDataMap.begin();
50 for( ; iter != m_tofDataMap.end(); iter++ ) {
51 delete (*iter).second;
52 }
53 m_tofDataMap.clear();
54
55 m_tofDataMapOnline.clear();
56 m_tofDataVectorOnline.clear();
57 m_tofDataMapEstime.clear();
58 m_tofDataVectorEstime.clear();
59 m_tofDataMapTof.clear();
60 m_tofDataVectorTof.clear();
61 m_tofDataMapEmc.clear();
62 m_tofDataVectorEmc.clear();
63
64 return;
65}
std::multimap< unsignedint, TofData * >::iterator IterTofDataMap
EvtStreamInputIterator< typename Generator::result_type > iter(Generator gen, int N=0)

◆ TofRawDataProvider() [3/4]

TofRawDataProvider::TofRawDataProvider ( )

◆ TofRawDataProvider() [4/4]

TofRawDataProvider::TofRawDataProvider ( const char *  name)

◆ ~TofRawDataProvider() [2/2]

TofRawDataProvider::~TofRawDataProvider ( )

Member Function Documentation

◆ handle() [1/2]

void TofRawDataProvider::handle ( const Incident &  inc)

Definition at line 114 of file TofRawDataProvider.cxx.

114 {
115 MsgStream log( m_msgSvc, m_name );
116 log << MSG::DEBUG << "handle: " << inc.type() << endreq;
117 if ( inc.type() == "BeginEvent" ){
118 log << MSG::DEBUG << "Begin Event" << endreq;
119 IterTofDataMap iter = m_tofDataMap.begin();
120 for( ; iter != m_tofDataMap.end(); iter++ ) {
121 delete (*iter).second;
122 }
123 IterTofDataMap iterOnline = m_tofDataMapOnline.begin();
124 for( ; iterOnline != m_tofDataMapOnline.end(); iterOnline++ ) {
125 delete (*iterOnline).second;
126 }
127 m_tofDataMap.clear();
128 m_tofDataMapOnline.clear();
129 m_tofDataVectorOnline.clear();
130 m_tofDataMapEstime.clear();
131 m_tofDataVectorEstime.clear();
132 m_tofDataMapTof.clear();
133 m_tofDataVectorTof.clear();
134 m_tofDataMapEmc.clear();
135 m_tofDataVectorEmc.clear();
136
137 m_hasFilled = false;
138 }
139 return;
140}

Referenced by RawDataProviderSvc::handle().

◆ handle() [2/2]

void TofRawDataProvider::handle ( const Incident &  )

◆ initialize() [1/2]

StatusCode TofRawDataProvider::initialize ( bool  mode = false,
ISvcLocator *  svcLoc = 0,
IMessageSvc *  pMsg = 0 
)

Definition at line 68 of file TofRawDataProvider.cxx.

68 {
69 MsgStream log( m_msgSvc, m_name );
70 RawDataProviderBase::initialize( pSvcLoc,pMsg );
71
72 // Get Detector Version Service
73 StatusCode sc_det = m_svcLocator->service("DetVerSvc", detVerSvc);
74 if( sc_det == StatusCode::SUCCESS ) {
75 log << MSG::INFO << "TofRawDataProvider Get Detector Version Service Sucessfully!" << endreq;
76 }
77 else {
78 log << MSG::ERROR << "TofRawDataProvider Can NOT Retrieve DetVerSvc instance" << endreq;
79 return StatusCode::FAILURE;
80 }
81
82 //Get TOF Calibtration Service
83 StatusCode scc = m_svcLocator->service("TofCaliSvc", tofCaliSvc);
84 if( scc == StatusCode::SUCCESS ) {
85 log << MSG::INFO << "TofRec Get Calibration Service Sucessfully!" << endreq;
86 }
87 else if(!mode) {
88 log << MSG::ERROR << "TofRec Get Calibration Service Failed !" << endreq;
89 return StatusCode::FAILURE;
90 }
91
92 //Get TOF Q Correction Service
93 StatusCode scq = m_svcLocator->service("TofQCorrSvc", tofQCorrSvc);
94 if (scq == StatusCode::SUCCESS) {
95 log << MSG::INFO << "TofRec Get Q Correction Service Sucessfully!" << endreq;
96 } else if(!mode){
97 log << MSG::ERROR << "TofRec Get Q Correction Service Failed !" << endreq;
98 return StatusCode::FAILURE;
99 }
100
101 //Get TOF Q Electronics Saturation Service
102 StatusCode sce = m_svcLocator->service("TofQElecSvc", tofQElecSvc);
103 if (sce == StatusCode::SUCCESS) {
104 log << MSG::INFO << "TofRec Get Q Electronics Calibration Service Sucessfully!" << endreq;
105 } else if(!mode){
106 log << MSG::ERROR << "TofRec Get Q Electronics Calibration Service Failed !" << endreq;
107 return StatusCode::FAILURE;
108 }
109
110 return StatusCode::SUCCESS;
111}
ITofQElecSvc * tofQElecSvc
ITofQCorrSvc * tofQCorrSvc
IDetVerSvc * detVerSvc
ITofCaliSvc * tofCaliSvc
StatusCode initialize(ISvcLocator *svcLoc=0, IMessageSvc *pMsg=0)

Referenced by RawDataProviderSvc::initialize().

◆ initialize() [2/2]

StatusCode TofRawDataProvider::initialize ( bool  mode = false,
ISvcLocator *  svcLoc = 0,
IMessageSvc *  pMsg = 0 
)

◆ tofDataMapEmc() [1/2]

TofDataMap & TofRawDataProvider::tofDataMapEmc ( double  estime = 0.0)

Definition at line 1013 of file TofRawDataProvider.cxx.

1013 {
1014
1015 if( !m_hasFilled ) {
1017 m_hasFilled = true;
1018 }
1019
1020 if( !m_tofDataMapEmc.empty() ) {
1021 m_tofDataMapEmc.clear();
1022 }
1023
1024 IterTofDataMap iter = m_tofDataMap.begin();
1025 for( ; iter != m_tofDataMap.end(); iter++ ) {
1026 if( ( ((*iter).second)->quality() & 0xa ) != 0 ) {
1027
1028 if( estime > 1.0e-6 ) {
1029 int t0clock = static_cast<int>(estime/24.0);
1030 int clock1 = ((*iter).second)->qclock1();
1031 int clock2 = ((*iter).second)->qclock2();
1032 bool forward = ( ( ( t0clock - clock1 ) < tClockBackward ) && ( ( clock1 - t0clock ) < tClockForward ) );
1033 bool backward = ( ( ( t0clock - clock2 ) < tClockBackward ) && ( ( clock2 - t0clock ) < tClockForward ) );
1034 if( TofID::is_mrpc( TofID::cell_id((*iter).first) ) && m_run>=43680 && m_run<43809 ) {
1035 double offset = -11.0;
1036 forward = ( ( ( t0clock - clock1 ) < ( tClockBackward -offset ) ) && ( ( clock1 - t0clock ) < ( tClockForward + offset ) ) );
1037 backward = ( ( ( t0clock - clock2 ) < ( tClockBackward - offset ) ) && ( ( clock2 - t0clock ) < ( tClockForward + offset ) ) );
1038 }
1039 if( !forward && !backward ) continue;
1040 }
1041
1042 m_tofDataMapEmc.insert( make_pair( (*iter).first, (*iter).second ) );
1043 }
1044 }
1045
1046 iter = m_tofDataMapEmc.begin();
1047 while( iter != m_tofDataMapEmc.end() ) {
1048 unsigned int iden_value = (*iter).first;
1049 unsigned int count = m_tofDataMapEmc.count( iden_value );
1050 for( unsigned int i=0; i != count; i++, iter++ ) {
1051 ((*iter).second)->setTimes( count );
1052 }
1053 }
1054
1055 return m_tofDataMapEmc;
1056}
DOUBLE_PRECISION count[3]
static Identifier cell_id(int barrel_ec, int layer, int phi_module, int end)
For a single crystal.
Definition: TofID.cxx:143
static bool is_mrpc(const Identifier &id)
Definition: TofID.cxx:113

Referenced by RawDataProviderSvc::tofDataMapEmc(), and tofDataVectorEmc().

◆ tofDataMapEmc() [2/2]

TofDataMap & TofRawDataProvider::tofDataMapEmc ( double  estime = 0.0)

◆ tofDataMapEstime() [1/2]

TofDataMap & TofRawDataProvider::tofDataMapEstime ( )

Definition at line 911 of file TofRawDataProvider.cxx.

911 {
912
913 if( !m_hasFilled ) {
915 m_hasFilled = true;
916 }
917
918 if( !m_tofDataMapEstime.empty() ) {
919 m_tofDataMapEstime.clear();
920 }
921
922 IterTofDataMap iter = m_tofDataMap.begin();
923 for( ; iter != m_tofDataMap.end(); iter++ ) {
924 if( ( ( ((*iter).second)->quality() & 0x5 ) != 0 ) && ((*iter).second)->tmatched() ) {
925 m_tofDataMapEstime.insert( make_pair( (*iter).first, (*iter).second ) );
926 }
927 }
928
929 iter = m_tofDataMapEstime.begin();
930 while( iter != m_tofDataMapEstime.end() ) {
931 unsigned int iden_value = (*iter).first;
932 unsigned int count = m_tofDataMapEstime.count( iden_value );
933 for( unsigned int i=0; i != count; i++, iter++ ) {
934 ((*iter).second)->setTimes( count );
935 }
936 }
937
938 return m_tofDataMapEstime;
939}

Referenced by RawDataProviderSvc::tofDataMapEstime(), and tofDataVectorEstime().

◆ tofDataMapEstime() [2/2]

TofDataMap & TofRawDataProvider::tofDataMapEstime ( )

◆ tofDataMapFull() [1/2]

void TofRawDataProvider::tofDataMapFull ( )

Definition at line 144 of file TofRawDataProvider.cxx.

144 {
145
146 MsgStream log(m_msgSvc, m_name);
147 log << MSG::INFO << "TofRawDataProvider::tofDataMapFull()" << endreq;
148
149 if( !m_tofDataMap.empty() ) {
150
151 log << MSG::WARNING << "TofRawDataProvider::tofDataMapFull: m_tofDataMap is NOT empty!" << endreq;
152
153 IterTofDataMap iter = m_tofDataMap.begin();
154 for( ; iter != m_tofDataMap.end(); iter++ ) {
155 delete (*iter).second;
156 }
157 m_tofDataMap.clear();
158 }
159 // tianhl for mt
160 std::string evtDataSvc_name("EventDataSvc");
161 if(isGaudiThreaded(m_name)){
162 evtDataSvc_name += getGaudiThreadIDfromName(m_name);
163 }
164 // tianhl for mt
165
166 IDataProviderSvc* eventSvc;
167 StatusCode sc = m_svcLocator->service( evtDataSvc_name.c_str(),eventSvc, true );
168 if( !sc.isSuccess() ) {
169 log << MSG::FATAL << "TofRawDataProvider::tofDataMapFull: ERROR Could not load EventDataSvc" << endreq;
170 return;
171 }
172
173 // Event Header
174 SmartDataPtr<Event::EventHeader> eventHeader(eventSvc,"/Event/EventHeader");
175 if( !eventHeader ) {
176 log << MSG::FATAL << "TofRawDataProvider could not find Event Header!" << endreq;
177 return;
178 }
179 m_run = eventHeader->runNumber();
180 m_event = eventHeader->eventNumber();
181
182 bool mc = ( m_run < 0 ) ? true:false;
183 bool qCorr = bool( tofCaliSvc->QCorr() );
184 qCorr = qCorr && (!mc);
185 bool qElec = bool( tofCaliSvc->QElec() );
186 bool misLable = bool( tofCaliSvc->MisLable() );
187 misLable = ( !mc && misLable );
188
189 int identmp = -1;
190 vector<int> deadId;
191 for( unsigned int i=0; i<5; i++ ) {
192 identmp = tofCaliSvc->BrEast(i);
193 if( identmp != 0x2fffffff ) {
194 deadId.push_back( identmp );
195 }
196 identmp = tofCaliSvc->BrWest(i);
197 if( identmp != 0x2fffffff ) {
198 deadId.push_back( identmp );
199 }
200 identmp = tofCaliSvc->Endcap(i);
201 if( identmp != 0x2fffffff ) {
202 deadId.push_back( identmp );
203 }
204 }
205
206 // get TDS data in a common class
207 SmartDataPtr<TofDigiCol> tofDigiCol(eventSvc,"/Event/Digi/TofDigiCol");
208 if( !tofDigiCol ) {
209 log << MSG::WARNING << "TofRawDataProvider::tofDataMapFull: Could not find Tof Digi Data!" << endreq;
210 return;
211 }
212
213 int qnumber = 0;
214 int tnumber = 0;
215
216 std::vector<Adc*> chargeVec;
217 std::vector<Tdc*> timeVec;
218
219 TofDigiCol::iterator iter = tofDigiCol->begin();
220 for( ; iter != tofDigiCol->end(); iter++ ) {
221 Identifier iden = (*iter)->identify();
222 unsigned int iden_value = iden.get_value();
223
224 bool sameId = false;
225 vector<int>::iterator iter_dead = deadId.begin();
226 for( ; iter_dead != deadId.end(); iter_dead++ ) {
227 if( iden_value == (*iter_dead) ) {
228 sameId = true;
229 break;
230 }
231 }
232 if( sameId ) {
233 if( mc ) { continue; }
234 else {
235 std::string bore;
236 if( (TofID::barrel_ec(iden))==1 ) { bore=string("Barrel");}
237 else if( (TofID::barrel_ec(iden))==0 ) { bore=string("East Endcap"); }
238 else if( (TofID::barrel_ec(iden))==2 ) { bore=string("West Endcap"); }
239 else if( (TofID::barrel_ec(iden))==3 ) { bore=string("ETF(MRPC)"); }
240
241 log << MSG::ERROR << "TofRawDataProvider::tofDataMapFull: Dead Channel Number is not Correct, please check TOF Calibration Constants! " << bore << endreq;
242 }
243 }
244
245 if( TofID::is_scin(iden) && !(TofID::is_barrel(iden) ) && (TofID::end(iden))==1 ) continue;
246
247 unsigned int overflow = (*iter)->getOverflow();
248 if( TofID::is_scin(iden) && ( ( overflow & 0xfe000000 ) == 0xfe000000 ) ) continue;
249
250
251 // if( ( m_detVerSvc->phase() == 1 ) && TofID::is_mrpc( iden ) ) continue;
252 // if( ( m_detVerSvc->phase() >= 3 ) && TofID::is_scin( iden ) && !( TofID::is_barrel( iden ) ) ) continue;;
253
254 // for 150203 data, 92Scin + 2MRPC
255 // if( !mc && ( m_detVerSvc->phase() == 2 ) && TofID::is_mrpc( iden ) ) {
256 if( m_run>=40203 && m_run<=43253 && TofID::is_mrpc( iden ) ) {
257 // ETF Module 36 ==> 44
258 if( ( iden_value & 0x2fffffe0 ) == 0x2000c800 ) {
259 iden_value = 0x2000c900 + ( iden_value & 0x1f );
260 iden = Identifier( iden_value );
261 }
262 // ETF Module 37 ==> 43
263 if( ( iden_value & 0x2fffffe0 ) == 0x2000c820 ) {
264 iden_value = 0x2000c8e0 + ( iden_value & 0x1f );
265 iden = Identifier( iden_value );
266 }
267 }
268 // end 150203 data
269
270 // overflow 0x 1 1 1 1 1 1
271 // no Q T / multi Q T / overflow Q T
272
273 bool multiQ = ( ( overflow & 0x8 ) != 0 );
274 bool multiT = ( ( overflow & 0x4 ) != 0 );
275
276 unsigned int tdcChannel = (*iter)->getTimeChannel();
277 unsigned int adcChannel = (*iter)->getChargeChannel();
278 if( TofID::is_scin(iden) && ( ( overflow & 0x2 ) != 0 ) ) {
279 adcChannel = ( adcChannel | 0x80000 );
280 }
281
282 if( (adcChannel&0x7fffffff) != 0x7fffffff ) {
283 Adc* adc = new Adc;
284 if( qCorr ) adc->setCorr();
285 if( qElec ) adc->setElec();
286
287 // for 150203 data, 92Scin + 2MRPC
288 // if( !mc && ( m_detVerSvc->phase() == 2 ) && TofID::is_mrpc( iden ) ) {
289 if( m_run>=40203 && m_run<=43253 && TofID::is_mrpc( iden ) ) {
290 adcChannel += 0x18000;
291 }
292 // end 150203 data
293
294 adc->setValue( iden, adcChannel );
295 qnumber++;
296 adc->setNumber( qnumber );
297 chargeVec.push_back( adc );
298 }
299
300 if( tdcChannel != 0x7fffffff ) {
301 Tdc* tdc = new Tdc;
302
303 // for 150203 data, 92Scin + 2MRPC
304 // if( !mc && ( m_detVerSvc->phase(0 == 2 ) && TofID::is_mrpc( iden ) ) {
305 if( m_run>=40203 && m_run<=43253 && TofID::is_mrpc( iden ) ) {
306 tdcChannel += 0x18000;
307 }
308 // end 150203 data
309
310 tdc->setValue( tdcChannel );
311 tnumber++;
312 tdc->setNumber( tnumber );
313 timeVec.push_back( tdc );
314 }
315
316 if( multiT || multiQ ) {
317 TofDigiCol::iterator iter_next = iter + 1;
318 if( iter_next != tofDigiCol->end() ) {
319 unsigned int idenNext_value = ((*iter_next)->identify()).get_value();
320 if( iden_value == idenNext_value ) continue;
321 }
322 }
323
324 qnumber = 0;
325 tnumber = 0;
326
327 std::vector<PmtData*> pmtDataVec;
328 if( TofID::is_scin( iden ) ) {
329 std::vector<Tdc*>::iterator iter_t = timeVec.begin();
330 for( ; iter_t != timeVec.end(); iter_t++ ) {
331 int tclock = (*iter_t)->clock();
332 PmtData* pmt = new PmtData;
333 pmt->setIdentify( iden.get_value() );
334 pmt->setTdc( (*iter_t) );
335 std::vector<Adc*>::iterator iter_q = chargeVec.begin();
336 for( ; iter_q != chargeVec.end(); iter_q++ ) {
337 if( (*iter_q)->times() != -1 ) { continue; }
338 int qclock = (*iter_q)->clock();
339 if( abs(tclock-qclock)<2 ) {
340 if( ( pmt->quality() & 0x2 ) != 0 ) { // pmt has Q
341 if( (*iter_q)->value() > pmt->adc() ) {
342 pmt->qtimesmm();
343 pmt->setAdc( (*iter_q) );
344 }
345 }
346 else { // pmt has no Q
347 pmt->setAdc( (*iter_q) );
348 }
349 }
350 }
351 pmtDataVec.push_back( pmt );
352 }
353
354 std::vector<Adc*>::iterator iter_q = chargeVec.begin();
355 for( ; iter_q != chargeVec.end(); iter_q++ ) {
356 if( (*iter_q)->times() != -1 ) { continue; }
357 PmtData* pmt = new PmtData;
358 pmt->setIdentify( iden.get_value() );
359 pmt->setAdc( (*iter_q) );
360 pmtDataVec.push_back( pmt );
361 }
362
363 }
364
365 if( TofID::is_mrpc( iden ) ) {
366 std::vector<Tdc*>::iterator iter_t = timeVec.begin();
367 for( ; iter_t != timeVec.end(); iter_t++ ) {
368 std::vector<Adc*>::iterator iter_q = chargeVec.begin();
369 for( ; iter_q != chargeVec.end(); iter_q++ ) {
370 if( ( (*iter_q)->qtc() - (*iter_t)->value() ) > totForward && ( (*iter_q)->qtc() - (*iter_t)->value() ) < totBackward ) {
371 PmtData* pmt = new PmtData;
372 pmt->setIdentify( iden.get_value() );
373 pmt->setTdc( (*iter_t) );
374 pmt->setAdc( (*iter_q) );
375 pmtDataVec.push_back( pmt );
376 }
377 }
378 if( (*iter_t)->times() == -1 ) {
379 PmtData* pmt = new PmtData;
380 pmt->setTdc( (*iter_t) );
381 pmtDataVec.push_back( pmt );
382 }
383 }
384
385 std::vector<Adc*>::iterator iter_q = chargeVec.begin();
386 for( ; iter_q != chargeVec.end(); iter_q++ ) {
387 if( (*iter_q)->times() != -1 ) { continue; }
388 PmtData* pmt = new PmtData;
389 pmt->setIdentify( iden.get_value() );
390 pmt->setAdc( (*iter_q) );
391 pmtDataVec.push_back( pmt );
392 }
393
394 }
395
396 chargeVec.clear();
397 timeVec.clear();
398
399 unsigned int iden_value_key = (iden_value & 0xfffffffe );
400 if( TofID::is_scin( iden ) ) {
401 int barrel_ec = TofID::barrel_ec( iden );
402 // int layer = TofID::layer( iden );
403 int tofid = TofID::phi_module( iden );
404 int end = TofID::end( iden );
405 if( ( barrel_ec == 0 ) || ( barrel_ec == 2 ) ) {
406 std::vector<PmtData*>::iterator iter_pmt = pmtDataVec.begin();
407 for( ; iter_pmt != pmtDataVec.end(); iter_pmt++ ) {
408 TofData* tof = new TofData;
409 if( misLable ) {
410 tof->setMisLable();
411 if( barrel_ec==2 && tofid==42 ) {
412 unsigned int iden91 = TofID::getIntID( 2, 0, 91-48, 0 );
413 iden_value_key = iden91;
414 iden = TofID::cell_id( iden91 );
415 }
416 if( barrel_ec==2 && tofid==43 ) {
417 unsigned int iden90 = TofID::getIntID( 2, 0, 90-48, 0 );
418 iden_value_key = iden90;
419 iden = TofID::cell_id( iden90 );
420 }
421 }
422 tof->setIdentify( iden );
423 tof->setForward( (*iter_pmt) );
424 tof->setTMatched( true );
425 m_tofDataMap.insert( make_pair( iden_value_key, tof ) );
426 }
427 }
428 else if( barrel_ec == 1 ) {
429 unsigned int count = m_tofDataMap.count( iden_value_key );
430 if( count == 0 ) {
431 std::vector<PmtData*>::iterator iter_pmt = pmtDataVec.begin();
432 for( ; iter_pmt != pmtDataVec.end(); iter_pmt++ ) {
433 TofData* tof = new TofData;
434 tof->setIdentify( iden );
435 if( end == 0 ) {
436 tof->setForward( (*iter_pmt) );
437 }
438 else {
439 tof->setBackward( (*iter_pmt) );
440 }
441 tof->setTMatched( true );
442 m_tofDataMap.insert( make_pair( iden_value_key, tof ) );
443 }
444 }
445 else {
446 pair< IterTofDataMap, IterTofDataMap > range = m_tofDataMap.equal_range( iden_value_key );
447 std::vector<PmtData*>::iterator iter_pmt = pmtDataVec.begin();
448 for( ; iter_pmt != pmtDataVec.end(); iter_pmt++ ) {
449 bool used = false;
450 IterTofDataMap iter = range.first;
451 for( unsigned int tofDataNumber = 0; tofDataNumber < count; tofDataNumber++, iter++ ) {
452
453 bool matched = false;
454 if( end == 0 ) { // east, forward
455 if( ( (*iter_pmt)->quality() & 0x1 ) != 0 ) { // pmt has east time
456 if( ( ((*iter).second)->quality() & 0x1 ) != 0 ) { // tofmap has west time
457 double time1 = (*iter_pmt)->tdc();
458 double time2 = ((*iter).second)->tdc2();
459 matched = ( abs(time1-time2)<timeDiff );
460 }
461 else { // tofmap has no west time
462 if( ( ((*iter).second)->quality() & 0x2 ) != 0 ) { // tofmap has no west time, but west charge
463 double time1 = (*iter_pmt)->tclock();
464 double time2 = (*iter_pmt)->qclock();
465 double time3 = ((*iter).second)->qclock2();
466 matched = ( ( abs(time1-time3)<=tClockDiff ) || ( abs(time2-time3)<=tClockDiff ) );
467 }
468 }
469 }
470 else { // pmt has no east time
471 if( ( (*iter_pmt)->quality() & 0x2 ) != 0 ) { // pmt has no east time, but east charge
472 if( ( ((*iter).second)->quality() & 0x1 ) != 0 ) { // tofmap has west time
473 if( ( ( ((*iter).second)->quality() & 0x2 ) != 0 ) ) { // tofmap has west time and west charge
474 double time1 = (*iter_pmt)->qclock();
475 double time2 = ((*iter).second)->tclock2();
476 double time3 = ((*iter).second)->qclock2();
477 matched = ( ( abs(time1-time2)<=tClockDiff ) || ( abs(time1-time3)<=tClockDiff ) );
478 }
479 }
480 else { // tofmap has no west time, but west charge
481 if( ( ( ((*iter).second)->quality() & 0x2 ) != 0 ) ) {
482 double time1 = (*iter_pmt)->qclock();
483 double time2 = ((*iter).second)->qclock2();
484 matched = ( abs(time1-time2)<=tClockDiff );
485 }
486 }
487 }
488 }
489
490 if( matched ) {
491 used = true;
492 if( ( ( (*iter).second)->quality() & 0xc ) == 0 ) {
493 ((*iter).second)->setForward( (*iter_pmt) );
494 }
495 else {
496 TofData* tof = new TofData;
497 tof->setIdentify( iden );
498 tof->setForward( (*iter_pmt) );
499 tof->setBackward( ((*iter).second)->backward() );
500 tof->setTMatched( true );
501 m_tofDataMap.insert( make_pair( iden_value_key, tof ) );
502 }
503 }
504
505 } // end east, forward
506 else { // west, backward
507 if( ( (*iter_pmt)->quality() & 0x1 ) != 0 ) { // pmt has west time
508 if( ( ((*iter).second)->quality() & 0x4 ) != 0 ) { // tofmap has east time
509 double time1 = (*iter_pmt)->tdc();
510 double time2 = ((*iter).second)->tdc1();
511 matched = ( abs(time1-time2)<timeDiff );
512 }
513 else { // tofmap has no east time
514 if( ( ((*iter).second)->quality() & 0x8 ) != 0 ) { // tofmap has no east time, but east charge
515 double time1 = (*iter_pmt)->tclock();
516 double time2 = (*iter_pmt)->qclock();
517 double time3 = ((*iter).second)->qclock1();
518 matched = ( ( abs(time1-time3)<=tClockDiff ) || ( abs(time2-time3)<=tClockDiff ) );
519 }
520 }
521 }
522 else { // pmt has no west time
523 if( ( (*iter_pmt)->quality() & 0x2 ) != 0 ) { // pmt has no west time, but west charge
524 if( ( ((*iter).second)->quality() & 0x4 ) != 0 ) { // tofmap has east time
525 if( ( ( ((*iter).second)->quality() & 0x8 ) != 0 ) ) { // tofmap has east time and east charge
526 double time1 = (*iter_pmt)->qclock();
527 double time2 = ((*iter).second)->tclock1();
528 double time3 = ((*iter).second)->qclock1();
529 matched = ( ( abs(time1-time2)<=tClockDiff ) || ( abs(time1-time3)<=tClockDiff ) );
530 }
531 else {
532 }
533 }
534 else { // tofmap has no west time, but west charge
535 if( ( ( ((*iter).second)->quality() & 0x8 ) != 0 ) ) {
536 double time1 = (*iter_pmt)->qclock();
537 double time2 = ((*iter).second)->qclock1();
538 matched = ( abs(time1-time2)<=tClockDiff );
539 }
540 }
541 }
542 }
543
544 if( matched ) {
545 used = true;
546 if( ( ( (*iter).second)->quality() & 0x3 ) == 0 ) {
547 ((*iter).second)->setBackward( (*iter_pmt) );
548 }
549 else {
550 TofData* tof = new TofData;
551 tof->setIdentify( iden );
552 tof->setForward( ((*iter).second)->forward() );
553 tof->setBackward( (*iter_pmt) );
554 tof->setTMatched( true );
555 m_tofDataMap.insert( make_pair( iden_value_key, tof ) );
556 }
557 }
558 }
559 }
560
561 if( ! used ) {
562 TofData* tof = new TofData;
563 tof->setIdentify( iden );
564 if( end == 0 ) {
565 tof->setForward( (*iter_pmt) );
566 }
567 else {
568 tof->setBackward( (*iter_pmt) );
569 }
570 tof->setTMatched( true );
571 m_tofDataMap.insert( make_pair( iden_value_key, tof ) );
572 }
573 }
574 }
575 }
576 }
577 // mrpc endcap tof
578 if( TofID::is_mrpc( iden ) ) {
579 // int barrel_ec = TofID::barrel_ec( iden );
580 // int endcap = TofID::endcap( iden );
581 // int tofid = TofID::module( iden );
582 // int strip = TofID::strip( iden );
583 int end = TofID::end( iden );
584
585 unsigned int count = m_tofDataMap.count( iden_value_key );
586 if( count == 0 ) {
587 std::vector<PmtData*>::iterator iter_pmt = pmtDataVec.begin();
588 for( ; iter_pmt != pmtDataVec.end(); iter_pmt++ ) {
589 TofData* tof = new TofData;
590 tof->setIdentify( iden );
591 if( end == 0 ) {
592 tof->setForward( (*iter_pmt) );
593 }
594 else {
595 tof->setBackward( (*iter_pmt) );
596 }
597 tof->setTMatched( true );
598 m_tofDataMap.insert( make_pair( iden_value_key, tof ) );
599 }
600 }
601 else {
602 pair< IterTofDataMap, IterTofDataMap > range = m_tofDataMap.equal_range( iden_value_key );
603 std::vector<PmtData*>::iterator iter_pmt = pmtDataVec.begin();
604 for( ; iter_pmt != pmtDataVec.end(); iter_pmt++ ) {
605 bool used = false;
606 IterTofDataMap iter = range.first;
607 for( unsigned int tofDataNumber = 0; tofDataNumber < count; tofDataNumber++, iter++ ) {
608 bool matched = false;
609 if( end == 0 ) { // east, forward
610 if( ( (*iter_pmt)->quality() & 0x1 ) != 0 ) { // pmt has east time
611 if( ( ((*iter).second)->quality() & 0x1 ) != 0 ) { // tofmap has west time
612 double time1 = (*iter_pmt)->tdc();
613 double time2 = ((*iter).second)->tdc2();
614 matched = ( abs(time1-time2)<timeDiffMRPC );
615 }
616 }
617 /*
618 else {
619 if( ( ((*iter).second)->quality() & 0x2 ) != 0 ) {
620 double time1 = (*iter_pmt)->tdc();
621 double time2 = ((*iter).second)->qtc2();
622 matched = ( abs(time1-time2)<timeDiffMRPC );
623 }
624 }
625 }
626 else {
627 if( ( ((*iter).second)->quality() & 0x1 ) != 0 ) {
628 double time1 = (*iter_pmt)->qtc();
629 double time2 = ((*iter).second)->tdc2();
630 matched = ( abs(time1-time2)<timeDiffMRPC );
631 }
632 else {
633 if( ( ((*iter).second)->quality() & 0x2 ) != 0 ) {
634 double time1 = (*iter_pmt)->qtc();
635 double time2 = ((*iter).second)->qtc2();
636 matched = ( abs(time1-time2)<timeDiffMRPC );
637 }
638 }
639 }
640
641 if( ( (*iter_pmt)->quality() & 0x3 ) == 0x3 ) { // pmt has east time
642 if( ( ((*iter).second)->quality() & 0x3 ) == 0x3 ) { // tofmap has west time
643 double time1 = (*iter_pmt)->tdc();
644 double time2 = ((*iter).second)->tdc2();
645 matched = ( abs(time1-time2)<timeDiffMRPC );
646 }
647 }
648 */
649 if( matched ) {
650 used = true;
651 if( ( ( (*iter).second)->quality() & 0xc ) == 0 ) {
652 ((*iter).second)->setForward( (*iter_pmt) );
653 }
654 else {
655 TofData* tof = new TofData;
656 tof->setIdentify( iden );
657 tof->setForward( (*iter_pmt) );
658 tof->setBackward( ((*iter).second)->backward() );
659 tof->setTMatched( true );
660 m_tofDataMap.insert( make_pair( iden_value_key, tof ) );
661 }
662 }
663 } // end east, forward
664 else { // west, backward
665 if( ( (*iter_pmt)->quality() & 0x1 ) != 0 ) { // pmt has west time
666 if( ( ((*iter).second)->quality() & 0x4 ) != 0 ) { // tofmap has east time
667 double time1 = (*iter_pmt)->tdc();
668 double time2 = ((*iter).second)->tdc1();
669 matched = ( abs(time1-time2)<timeDiffMRPC );
670 }
671 }
672 /*
673 else {
674 if( ( ((*iter).second)->quality() & 0x8 ) != 0 ) {
675 double time1 = (*iter_pmt)->tdc();
676 double time2 = ((*iter).second)->qtc1();
677 matched = ( abs(time1-time2)<timeDiffMRPC );
678 }
679 }
680 }
681 else {
682 if( ( ((*iter).second)->quality() & 0x4 ) != 0 ) {
683 double time1 = (*iter_pmt)->qtc();
684 double time2 = ((*iter).second)->tdc1();
685 matched = ( abs(time1-time2)<timeDiffMRPC );
686 }
687 else {
688 if( ( ((*iter).second)->quality() & 0x8 ) != 0 ) {
689 double time1 = (*iter_pmt)->qtc();
690 double time2 = ((*iter).second)->qtc1();
691 matched = ( abs(time1-time2)<timeDiffMRPC );
692 }
693 }
694 }
695
696 if( ( (*iter_pmt)->quality() & 0x3 ) == 0x3 ) { // pmt has west time
697 if( ( ((*iter).second)->quality() & 0xc ) == 0xc ) { // tofmap has east time
698 double time1 = (*iter_pmt)->tdc();
699 double time2 = ((*iter).second)->tdc1();
700 matched = ( abs(time1-time2)<timeDiffMRPC );
701 }
702 }
703 */
704 if( matched ) {
705 used = true;
706 if( ( ( (*iter).second)->quality() & 0x3 ) == 0 ) {
707 ((*iter).second)->setBackward( (*iter_pmt) );
708 }
709 else {
710 TofData* tof = new TofData;
711 tof->setIdentify( iden );
712 tof->setForward( ((*iter).second)->forward() );
713 tof->setBackward( (*iter_pmt) );
714 tof->setTMatched( true );
715 m_tofDataMap.insert( make_pair( iden_value_key, tof ) );
716 }
717 }
718 }
719 }
720
721 if( ! used ) {
722 TofData* tof = new TofData;
723 tof->setIdentify( iden );
724 if( end == 0 ) {
725 tof->setForward( (*iter_pmt) );
726 }
727 else {
728 tof->setBackward( (*iter_pmt) );
729 }
730 tof->setTMatched( true );
731 m_tofDataMap.insert( make_pair( iden_value_key, tof ) );
732 }
733 }
734 }
735 }
736
737 pmtDataVec.clear();
738
739 }
740
741 return;
742
743}//close tofDataMapFull
void setValue(Identifier identify, int value)
Definition: TofData.cxx:77
virtual const int BrWest(unsigned int No)=0
virtual const int QElec()=0
virtual const int BrEast(unsigned int No)=0
virtual const int QCorr()=0
virtual const int MisLable()=0
virtual const int Endcap(unsigned int No)=0
void setAdc(Adc *adc)
Definition: TofData.cxx:468
void qtimesmm()
Definition: TofData.cxx:378
double adc()
Definition: TofData.cxx:293
void setTdc(Tdc *tdc)
Definition: TofData.cxx:478
void setValue(int value)
Definition: TofData.cxx:49
void setForward(PmtData *pmt)
Definition: TofData.cxx:983
void setBackward(PmtData *pmt)
Definition: TofData.cxx:1001
void setIdentify(Identifier identify)
Definition: TofData.cxx:577
static bool is_scin(const Identifier &id)
Definition: TofID.cxx:102
static int end(const Identifier &id)
Definition: TofID.cxx:79
static bool is_barrel(const Identifier &id)
Test for barrel.
Definition: TofID.cxx:49
static int phi_module(const Identifier &id)
Definition: TofID.cxx:73
static int barrel_ec(const Identifier &id)
Values of different levels (failure returns 0)
Definition: TofID.cxx:61
static value_type getIntID(int barrel_ec, int layer, int phi_module, int end)
Definition: TofID.cxx:178

Referenced by tofDataMapEmc(), tofDataMapEstime(), and tofDataMapTof().

◆ tofDataMapFull() [2/2]

void TofRawDataProvider::tofDataMapFull ( )

◆ tofDataMapOnlineMode() [1/2]

TofDataMap & TofRawDataProvider::tofDataMapOnlineMode ( uint32_t  control = 1)

Definition at line 747 of file TofRawDataProvider.cxx.

747 {
748
749 MsgStream log(m_msgSvc, m_name);
750 log << MSG::INFO << "TofRawDataProvider::tofDataMapOnlineMode()" << endreq;
751
752 if( ! m_tofDataMapOnline.empty() ) {
753 if(control){
754 IterTofDataMap iter = m_tofDataMapOnline.begin();
755 for( ; iter != m_tofDataMapOnline.end(); iter++ ) {
756 delete (*iter).second;
757 }
758 m_tofDataMapOnline.clear();
759 }
760 else return m_tofDataMapOnline;
761 }
762 // tianhl for mt
763 std::string evtDataSvc_name("EventDataSvc");
764 if(isGaudiThreaded(m_name)){
765 evtDataSvc_name += getGaudiThreadIDfromName(m_name);
766 }
767 // tianhl for mt
768
769 IDataProviderSvc* eventSvc;
770 StatusCode sc = m_svcLocator->service( evtDataSvc_name.c_str(), eventSvc, true );
771 if( !sc.isSuccess() ) {
772 log << MSG::FATAL << "TofRawDataProvider::tofDataMapOnlineMode(): ERROR Could not load EventDataSvc" << endreq;
773 return m_tofDataMapOnline;
774 }
775
776 // get TDS data in a common class
777 SmartDataPtr<TofDigiCol> tofDigiCol(eventSvc,"/Event/Digi/TofDigiCol");
778 if( !tofDigiCol ) {
779 log << MSG::WARNING << "TofRawDataProvider::tofDataMapOnlineMode(): Could not find Tof Digi Data!" << endreq;
780 return m_tofDataMapOnline;
781 }
782
783 TofDigiCol::iterator iter = tofDigiCol->begin();
784 for( ; iter != tofDigiCol->end(); iter++ ) {
785 unsigned int overflow = (*iter)->getOverflow();
786 if( ( overflow & 0xfe000000 ) == 0xfe000000 ) continue;
787 // overflow 0x 1 1 1 1 1 1
788 // no Q T / multi Q T / overflow Q T
789
790 bool noT = ( ( overflow & 0x10 ) != 0 );
791 // bool multiQ = ( ( overflow & 0x8 ) != 0 );
792 // bool multiT = ( ( overflow & 0x4 ) != 0 );
793 if( noT ) continue;
794
795 Identifier iden = (*iter)->identify();
796 unsigned int iden_value = iden.get_value();
797 int barrel_ec = TofID::barrel_ec(iden);
798 int id = TofID::phi_module(iden);
799 int end = TofID::end(iden);
800
801 unsigned int tdcChannel = (*iter)->getTimeChannel();
802 if( tdcChannel == 0x7fffffff ) continue;
803
804 Tdc* tdc = new Tdc;
805 tdc->setValue( tdcChannel );
806 PmtData* pmt = new PmtData;
807 pmt->setTdc( tdc );
808
809 unsigned int iden_value_key = ( iden_value & 0xfffffffe );
810 if( barrel_ec == 0 || barrel_ec == 2 ) {
811 TofData* tof = new TofData;
812 tof->setIdentify( iden );
813 tof->setForward( pmt );
814 m_tofDataMapOnline.insert( make_pair( iden_value_key, tof ) );
815 }
816 else if( barrel_ec == 1 || barrel_ec == 3 ) {
817 unsigned int count = m_tofDataMapOnline.count( iden_value_key );
818
819 if( count == 0 ) {
820 TofData* tof = new TofData;
821 tof->setIdentify( iden );
822 if( end == 0 ) {
823 tof->setForward( pmt );
824 }
825 else {
826 tof->setBackward( pmt );
827 }
828 m_tofDataMapOnline.insert( make_pair( iden_value_key, tof ) );
829 }
830 else {
831 bool used = false;
832 pair< IterTofDataMap, IterTofDataMap > range = m_tofDataMapOnline.equal_range( iden_value_key );
833 IterTofDataMap iter = range.first;
834 for( unsigned int i=0; i<count; i++, iter++ ) {
835 if( ( end == 0 ) && ( ( ( (*iter).second)->quality() & 0x1 ) != 0 ) ) {
836 double time1 = pmt->tdc();
837 double time2 = ((*iter).second)->tdc2();
838 if( ( TofID::is_scin( iden ) && abs(time1-time2)<timeDiff ) || ( TofID::is_scin( iden ) && abs(time1-time2)<timeDiffMRPC ) ) {
839 used = true;
840 if( ( ( (*iter).second)->quality() & 0x4 ) == 0 ) {
841 ((*iter).second)->setForward( pmt );
842 }
843 else {
844 TofData* tof = new TofData;
845 tof->setIdentify( iden );
846 tof->setForward( pmt );
847 tof->setBackward( ((*iter).second)->backward() );
848 m_tofDataMapOnline.insert( make_pair( iden_value_key, tof ) );
849 }
850 }
851 }
852 else if( ( end == 1 ) && ( ( ((*iter).second)->quality() & 0x4 ) != 0 ) ) {
853 double time1 = ((*iter).second)->tdc1();
854 double time2 = pmt->tdc();
855
856 if( ( TofID::is_scin( iden ) && abs(time1-time2)<timeDiff ) || ( TofID::is_scin( iden ) && abs(time1-time2)<timeDiffMRPC ) ) {
857 used = true;
858 if( ( ( (*iter).second)->quality() & 0x1 ) == 0 ) {
859 ((*iter).second)->setBackward( pmt );
860 }
861 else {
862 TofData* tof = new TofData;
863 tof->setIdentify( iden );
864 tof->setForward( ((*iter).second)->forward() );
865 tof->setBackward( pmt );
866 m_tofDataMapOnline.insert( make_pair( iden_value_key, tof ) );
867 }
868 }
869 }
870 }
871 if( ! used ) {
872 TofData* tof = new TofData;
873 tof->setIdentify( iden );
874 if( end == 0 ) {
875 tof->setForward( pmt );
876 }
877 else {
878 tof->setBackward( pmt );
879 }
880 m_tofDataMapOnline.insert( make_pair( iden_value_key, tof ) );
881 }
882 }
883 }
884 }
885
886 return m_tofDataMapOnline;
887
888}
double tdc()
Definition: TofData.cxx:340

Referenced by RawDataProviderSvc::tofDataMapOnlineMode(), and tofDataVectorOnlineMode().

◆ tofDataMapOnlineMode() [2/2]

TofDataMap & TofRawDataProvider::tofDataMapOnlineMode ( uint32_t  control = 1)

◆ tofDataMapTof() [1/2]

TofDataMap & TofRawDataProvider::tofDataMapTof ( double  estime = 0.0)

Definition at line 955 of file TofRawDataProvider.cxx.

955 {
956
957 if( !m_hasFilled ) {
959 m_hasFilled = true;
960 }
961
962 if( !m_tofDataMapTof.empty() ) {
963 m_tofDataMapTof.clear();
964 }
965
966 IterTofDataMap iter = m_tofDataMap.begin();
967 for( ; iter != m_tofDataMap.end(); iter++ ) {
968 if( ( ( ((*iter).second)->quality() & 0xc ) == 0xc ) || ( ( ((*iter).second)->quality() & 0x3 ) == 0x3 ) ) {
969 if( estime > 1.0e-6 ) {
970 double tdc1 = ((*iter).second)->tdc1();
971 double tdc2 = ((*iter).second)->tdc2();
972 bool forward = ( ( ( estime - tdc1 ) < timeBackward ) && ( ( tdc1 - estime ) < timeForward ) );
973 bool backward = ( ( ( estime - tdc2 ) < timeBackward ) && ( ( tdc2 - estime ) < timeForward ) );
974 if( TofID::is_mrpc( TofID::cell_id((*iter).first) ) && m_run>=43680 && m_run<43809 ) {
975 double offset = -264.0;
976 forward = ( ( ( estime - tdc1 ) < ( timeBackward - offset ) ) && ( ( tdc1 - estime ) < ( timeForward + offset ) ) );
977 backward = ( ( ( estime - tdc2 ) < ( timeBackward + offset ) ) && ( ( tdc2 - estime ) < ( timeForward + offset ) ) );
978 }
979 if( !forward && !backward ) continue;
980 }
981 m_tofDataMapTof.insert( make_pair( (*iter).first, (*iter).second ) );
982 }
983 }
984
985 iter = m_tofDataMapTof.begin();
986 while( iter != m_tofDataMapTof.end() ) {
987 unsigned int iden_value = (*iter).first;
988 unsigned int count = m_tofDataMapTof.count( iden_value );
989 for( unsigned int i=0; i != count; i++, iter++ ) {
990 ((*iter).second)->setTimes( count );
991 }
992 }
993
994 return m_tofDataMapTof;
995}

Referenced by RawDataProviderSvc::tofDataMapTof(), and tofDataVectorTof().

◆ tofDataMapTof() [2/2]

TofDataMap & TofRawDataProvider::tofDataMapTof ( double  estime = 0.0)

◆ tofDataVectorEmc() [1/2]

TofDataVector & TofRawDataProvider::tofDataVectorEmc ( double  estime = 0.0)

Definition at line 1059 of file TofRawDataProvider.cxx.

1059 {
1060 if( m_tofDataVectorEmc.size() != 0 ) {
1061 m_tofDataVectorEmc.clear();
1062 }
1063
1066 for( ; iter != tofDataMapEmc.end(); iter++ ) {
1067 m_tofDataVectorEmc.push_back( iter->second );
1068 }
1069 return m_tofDataVectorEmc;
1070}
TofDataMap & tofDataMapEmc(double estime=0.0)

Referenced by RawDataProviderSvc::tofDataVectorEmc().

◆ tofDataVectorEmc() [2/2]

TofDataVector & TofRawDataProvider::tofDataVectorEmc ( double  estime = 0.0)

◆ tofDataVectorEstime() [1/2]

TofDataVector & TofRawDataProvider::tofDataVectorEstime ( )

Definition at line 942 of file TofRawDataProvider.cxx.

942 {
943 if( m_tofDataVectorEstime.size() != 0 ) return m_tofDataVectorEstime;
944
947 for( ; iter != tofDataMapEstime.end(); iter++ ) {
948 m_tofDataVectorEstime.push_back( iter->second );
949 }
950 return m_tofDataVectorEstime;
951}
TofDataMap & tofDataMapEstime()

Referenced by RawDataProviderSvc::tofDataVectorEstime().

◆ tofDataVectorEstime() [2/2]

TofDataVector & TofRawDataProvider::tofDataVectorEstime ( )

◆ tofDataVectorOnlineMode() [1/2]

TofDataVector & TofRawDataProvider::tofDataVectorOnlineMode ( uint32_t  control = 1)

Definition at line 891 of file TofRawDataProvider.cxx.

891 {
892
893 MsgStream log(m_msgSvc, m_name);
894 log << MSG::INFO << "TofRawDataProvider::tofDataVectorOnlineMode()" << endreq;
895
896 if( m_tofDataVectorOnline.size() != 0 ) {
897 if(!control) return m_tofDataVectorOnline;
898 else m_tofDataVectorOnline.clear();
899 }
901 IterTofDataMap iter = tofRawDataMap.begin();
902 for( ; iter != tofRawDataMap.end(); iter++ ) {
903 m_tofDataVectorOnline.push_back( iter->second );
904 }
905
906 return m_tofDataVectorOnline;
907}
TofDataMap & tofDataMapOnlineMode(uint32_t control=1)

Referenced by RawDataProviderSvc::tofDataVectorOnlineMode().

◆ tofDataVectorOnlineMode() [2/2]

TofDataVector & TofRawDataProvider::tofDataVectorOnlineMode ( uint32_t  control = 1)

◆ tofDataVectorTof() [1/2]

TofDataVector & TofRawDataProvider::tofDataVectorTof ( double  estime = 0.0)

Definition at line 998 of file TofRawDataProvider.cxx.

998 {
999 if( m_tofDataVectorTof.size() != 0 ) {
1000 m_tofDataVectorTof.clear();
1001 }
1002
1005 for( ; iter != tofDataMapTof.end(); iter++ ) {
1006 m_tofDataVectorTof.push_back( iter->second );
1007 }
1008 return m_tofDataVectorTof;
1009}
TofDataMap & tofDataMapTof(double estime=0.0)

Referenced by RawDataProviderSvc::tofDataVectorTof().

◆ tofDataVectorTof() [2/2]

TofDataVector & TofRawDataProvider::tofDataVectorTof ( double  estime = 0.0)

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