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

A tracking module. More...

#include <TrkReco.h>

Inheritance diagram for TrkReco:

Public Member Functions

 TrkReco (const std::string &name, ISvcLocator *pSvcLocator)
 returns TrkReco.
StatusCode initialize ()
StatusCode execute ()
StatusCode finalize ()
StatusCode beginRun ()
void disp_stat (const char *)
 initializes TrkReco.
void dump (const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
 returns name.
const TFinderBaseconfFinder (void) const
 returns a pointer to the rphi finder.
const TFinderBasecurlFinder (void) const
 returns a pointer to the curl finder.
const TTrackManagertrackManager (void) const
 returns a pointer to TTrackManager.
void clear (void)
 clears all TMDC information.
void fastClear (void)
 clears TMDC information.
const AList< TTrack > & tracks (void) const
 returns a list of reconstructed tracks.

Public Attributes

int b_mcPar
int b_mcHit
int b_tuple
int b_goodTrk
int b_timeTest
bool m_dropHot
bool m_combineTracking
bool m_keepBadTdc
bool m_keepUnmatch
int b_RungeKuttaCorrection
float b_cdcVersion
std::string _cdcVersion
float b_fudgeFactor
int useESTime
int b_debugLevel
int b_useAllHits
int b_doT0Reset
int b_nT0ResetMax
int b_doMCAnalysis
float b_helixFitterChisqMax
int b_doPerfectFinder
int b_perfectFitting
int b_conformalFinder
int b_doConformalFinder
int b_doConformalFastFinder
int b_doConformalSlowFinder
int b_conformalPerfectSegmentFinding
int b_conformalFittingFlag
float b_conformalMaxSigma
int b_conformalMinNLinksForSegment
int b_conformalMinNCores
int b_conformalMinNSegments
float b_salvageLevel
int b_conformalSalvageLoadWidth
int b_conformalStereoMode
int b_conformalStereoLoadWidth
float b_conformalStereoMaxSigma
float b_conformalStereoSzSegmentDistance
float b_conformalStereoSzLinkDistance
int b_doConformalFinderStereo
int b_doConformalFinderCosmic
float b_conformalFraction
float b_conformalStereoZ3
float b_conformalStereoZ4
float b_conformalStereoChisq3
float b_conformalStereoChisq4
int b_conformalFittingCorrections
int m_CalibFlag
double b_momentumCut
int b_fittingFlag
int b_doSalvage
int b_doMerge
int b_doT0Determination
int b_nTracksForT0
int b_sortMode
int b_doAssociation
float b_associateSigma
int b_test
int b_doCurlFinder
int min_segment
int min_salvage
double bad_distance_for_salvage
double good_distance_for_salvage
int min_sequence
int min_fullwire
double range_for_axial_search
double range_for_stereo_search
int superlayer_for_stereo_search
double range_for_axial_last2d_search
double range_for_stereo_last2d_search
double trace2d_distance
double trace2d_first_distance
double trace3d_distance
int determine_one_track
double selector_max_impact
double selector_max_sigma
double selector_strange_pz
double selector_replace_dz
int stereo_2dfind
int merge_exe
double merge_ratio
double merge_z_diff
double mask_distance
double ratio_used_wire
double range_for_stereo1
double range_for_stereo2
double range_for_stereo3
double range_for_stereo4
double range_for_stereo5
double range_for_stereo6
double z_cut
double z_diff_for_last_attend
int svd_reconstruction
double min_svd_electrons
int on_correction
int output_2dtracks
int curl_version
double minimum_seedLength
double minimum_2DTrackLength
double minimum_3DTrackLength
double minimum_closeHitsLength
double MIN_RADIUS_OF_STRANGE_TRACK
double ULTIMATE_MIN_RADIUS_OF_STRANGE_TRACK

Detailed Description

A tracking module.

Definition at line 46 of file TrkReco.h.

Constructor & Destructor Documentation

◆ TrkReco()

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

returns TrkReco.

Initiate Parameters for TrkReco

Definition at line 75 of file TrkReco.cxx.

76 : Algorithm( name, pSvcLocator )
77 , _cdc( 0 )
78 , _perfectFinder( 0 )
79 , _rkfitter( "range fitter", false, 0, true )
80 // , _rkfitter( 0 )
81 , _confFinder( 0 )
82 , _curlFinder( 0 )
83 , _nEvents( 0 ) {
84
85 std::cout << std::fixed << std::setprecision( 3 ); // yzhang debug for 720
86 /// Initiate Parameters for TrkReco
87 initPara();
88
90}
float TrkRecoHelixFitterChisqMax
Definition TrkReco.cxx:73
float b_helixFitterChisqMax
Definition TrkReco.h:148

Referenced by TrkReco().

Member Function Documentation

◆ beginRun()

StatusCode TrkReco::beginRun ( )

Get MdcGeomSvc

Definition at line 258 of file TrkReco.cxx.

258 {
259 /// Get MdcGeomSvc
260 IMdcGeomSvc* imdcGeomSvc;
261 StatusCode sc1 = Gaudi::svcLocator()->service( "MdcGeomSvc", imdcGeomSvc );
262 _mdcGeomSvc = imdcGeomSvc;
263 if ( sc1.isFailure() ) { return ( StatusCode::FAILURE ); }
264 _cdc = cdcInit();
265
266 return StatusCode::SUCCESS;
267}

Referenced by execute().

◆ clear()

void TrkReco::clear ( void )

clears all TMDC information.

Definition at line 977 of file TrkReco.cxx.

977 {
978
979 //...Clear track candidates of the last event...
980 HepAListDeleteAll( _mcTracks );
981
982 //...Clear finders...
983 if ( b_doPerfectFinder ) _perfectFinder->clear();
984 if ( b_doConformalFinder ) _confFinder->clear();
985 if ( b_doCurlFinder ) _curlFinder->clear();
986 _trackManager.clear();
987 _trackManager.clearTables();
988}
int b_doCurlFinder
Definition TrkReco.h:197
int b_doConformalFinder
Definition TrkReco.h:156
int b_doPerfectFinder
Definition TrkReco.h:151

Referenced by execute(), and fastClear().

◆ confFinder()

const TFinderBase * TrkReco::confFinder ( void ) const
inline

returns a pointer to the rphi finder.

Definition at line 320 of file TrkReco.h.

320 {
321 return (TFinderBase*)_confFinder;
322}

◆ curlFinder()

const TFinderBase * TrkReco::curlFinder ( void ) const
inline

returns a pointer to the curl finder.

Definition at line 324 of file TrkReco.h.

324 {
325 return (TFinderBase*)_curlFinder;
326}

◆ disp_stat()

void TrkReco::disp_stat ( const char * m)

initializes TrkReco.

terminates TrkReco. processes an event. temporarily required

Definition at line 268 of file TrkReco.cxx.

268 {
269 std::string msg = m;
270 // dump(msg);
271}

◆ dump()

void TrkReco::dump ( const std::string & message = std::string(""),
const std::string & prefix = std::string("") ) const

returns name.

returns version. dumps debug information.

◆ execute()

StatusCode TrkReco::execute ( )

Definition at line 274 of file TrkReco.cxx.

274 {
275 if ( !m_beginRun )
276 {
277 StatusCode sc = beginRun();
278 if ( sc.isFailure() )
279 {
280 error() << "beginRun failed" << endmsg;
281 return StatusCode::FAILURE;
282 }
283 m_beginRun = true;
284 }
285
286 MsgStream log( msgSvc(), name() );
287 log << MSG::INFO << "in execute()" << endmsg;
288
289 StatusCode sc;
290 if ( b_timeTest && b_tuple ) m_timer[1]->start();
291
292 // Initiate state of all sense wire
293 if ( b_goodTrk && b_tuple )
294 for ( int ii = 0; ii < 43; ii++ )
295 {
296 for ( int jj = 0; jj < 288; jj++ )
297 {
298 havedigi[ii][jj] = -99; // no hit/noise
299 }
300 }
301
302 //------------------------------------
303 // Initialize track collection in TDS
304 //------------------------------------
305 // yzhang add 2010-04-30
306 // Clear TDS tracks and hits
308 {
309 IDataManagerSvc* dataManSvc;
310 DataObject* aTrackCol;
311 DataObject* aRecHitCol;
312
313 if ( !m_combineTracking )
314 {
315 dataManSvc = dynamic_cast<IDataManagerSvc*>( eventSvc().get() );
316 eventSvc()->findObject( "/Event/Recon/RecMdcTrackCol", aTrackCol );
317 if ( nullptr != aTrackCol )
318 {
319 dataManSvc->clearSubTree( "/Event/Recon/RecMdcTrackCol" );
320 eventSvc()->unregisterObject( "/Event/Recon/RecMdcTrackCol" );
321 }
322 eventSvc()->findObject( "/Event/Recon/RecMdcHitCol", aRecHitCol );
323 if ( nullptr != aRecHitCol )
324 {
325 dataManSvc->clearSubTree( "/Event/Recon/RecMdcHitCol" );
326 eventSvc()->unregisterObject( "/Event/Recon/RecMdcHitCol" );
327 }
328 }
329 DataObject* aReconEvent;
330 eventSvc()->findObject( "/Event/Recon", aReconEvent );
331 if ( !aReconEvent )
332 {
333 ReconEvent* recevt = new ReconEvent;
334 StatusCode sc = eventSvc()->registerObject( "/Event/Recon", recevt );
335 if ( sc != StatusCode::SUCCESS )
336 {
337 log << MSG::FATAL << "Could not register ReconEvent" << endmsg;
338 return ( StatusCode::FAILURE );
339 }
340 }
341 RecMdcTrackCol* trkcol;
342 eventSvc()->findObject( "/Event/Recon/RecMdcTrackCol", aTrackCol );
343 if ( aTrackCol ) { trkcol = dynamic_cast<RecMdcTrackCol*>( aTrackCol ); }
344 else
345 {
346 trkcol = new RecMdcTrackCol;
347 sc = eventSvc()->registerObject( EventModel::Recon::RecMdcTrackCol, trkcol );
348 if ( !sc.isSuccess() )
349 {
350 log << MSG::FATAL << " Could not register RecMdcTrack collection" << endmsg;
351 return StatusCode::FAILURE;
352 }
353 }
354 RecMdcHitCol* hitcol;
355 eventSvc()->findObject( "/Event/Recon/RecMdcHitCol", aRecHitCol );
356 if ( aRecHitCol ) { hitcol = dynamic_cast<RecMdcHitCol*>( aRecHitCol ); }
357 else
358 {
359 hitcol = new RecMdcHitCol;
360 sc = eventSvc()->registerObject( EventModel::Recon::RecMdcHitCol, hitcol );
361 if ( !sc.isSuccess() )
362 {
363 log << MSG::FATAL << " Could not register RecMdcHit collection" << endmsg;
364 return StatusCode::FAILURE;
365 }
366 }
367 // Part 1: Get Tev
368 t0_bes = 0.;
369 t0Sta = -1;
370 if ( useESTime )
371 {
372 SmartDataPtr<RecEsTimeCol> aevtimeCol( eventSvc(), "/Event/Recon/RecEsTimeCol" );
373 // bugcheck jialk
374 if ( aevtimeCol && aevtimeCol->size() )
375 {
376 RecEsTimeCol::iterator iter_evt = aevtimeCol->begin();
377 t0_bes = ( *iter_evt )->getTest();
378 t0Sta = ( *iter_evt )->getStat();
379 }
380 else
381 {
382 log << MSG::WARNING << "Could not find EsTimeCol" << endmsg;
383 return StatusCode::SUCCESS;
384 }
385 }
386
387 // Part 2: Get the event header
388 SmartDataPtr<Event::EventHeader> eventHeader( eventSvc(), "/Event/EventHeader" );
389 if ( !eventHeader )
390 {
391 log << MSG::FATAL << "Could not find Event Header" << endmsg;
392 return ( StatusCode::FAILURE );
393 }
394 _nEvents = eventHeader->eventNumber();
395 if ( b_tuple ) std::cout << "TrkReco ... processing ev# " << _nEvents << std::endl;
396
397 // Part 3: Retrieve MDC digi
398 int digiId;
399 uint32_t getDigiFlag = 0;
403 MdcDigiVec mdcDigiVec = _rawDataProviderSvc->getMdcDigiVec( getDigiFlag );
404 if ( 0 == mdcDigiVec.size() )
405 {
406 log << MSG::WARNING << " No hits in MdcDigiVec" << endmsg;
407 return StatusCode::SUCCESS;
408 }
409 /* //jialk in order to reject events with exceeding # of total hits 2009/03/31
410 if (mdcDigiVec.size() > 2000){
411 log << MSG::WARNING << " Too many hits in MdcDigiVec" << endmsg;
412 return StatusCode::SUCCESS;
413 }*/
414 MdcDigiVec::iterator iter1 = mdcDigiVec.begin();
415 MC_DIGI_SIZE = mdcDigiVec.size();
416
417 digiId = 0;
418 Identifier mdcId;
419 int layerId;
420 int wireId;
421
422 // Clear the old MdcRec_wirhit tables and create the hits' info for the new event.
423 unsigned nt = MdcRecWirhitCol::getMdcRecWirhitCol()->size();
424 // cout<<"Col size of last Event's WirHit = "<<nt<<endl;
426
427 for ( ; iter1 != mdcDigiVec.end(); iter1++, digiId++ )
428 {
429 // log << MSG::INFO << "MDC digit No: " << digiId << endmsg;
430 mdcId = ( *iter1 )->identify();
431 layerId = MdcID::layer( mdcId );
432 wireId = MdcID::wire( mdcId );
433 /*log << MSG::INFO
434 << " time_channel = " << (*iter1)->getTimeChannel()
435 <<" time = "<<(*iter1)->getTimeChannel()* 40./10000/1000000
436 << " charge_channel = " << (*iter1)->getChargeChannel()
437 << " layerId = " << layerId
438 << " wireId = " << wireId
439 << endmsg;*/
440
441 if ( b_goodTrk && b_tuple )
442 havedigi[layerId][wireId] = ( *iter1 )->getTrackIndex(); //-1:noise 0-n:tracks
443
444 MdcRec_wirhit mhit;
445
446 mhit.id = digiId;
447 mhit.geo = _mdcGeomSvc->Wire( layerId, wireId );
448 // Apply crude TOF, Belle: tof=1.074*radius/c, here we use 1.28 instead of 1.074.
449 double tof;
450 tof = 1.28 * mhit.geo->Lyr()->Radius() / 299.8; // unit of Radius is mm.
451 mhit.tdc = RawDataUtil::MdcTime( ( *iter1 )->getTimeChannel() );
452
453 // cout<<" .. mhit.tdc = "<<mhit.tdc<<" t0_bes = "<<t0_bes<<endl;
454 mhit.tdc -= t0_bes;
455
456 // jialk
457 _trackManager.sett0bes( t0_bes );
458 // mhit.adc = RawDataUtil::MdcCharge((*iter1)->getChargeChannel());
459 // mhit.tdc = (*iter1)->getTimeChannel();
460 mhit.adc = ( *iter1 )->getChargeChannel();
461 // cout<<"raw tdc(ns): "<<mhit.tdc<<"; tof(ns): "<<tof<<endl;
462 // double dist2 = _mdcCalibFunSvc->rawTimeNoTOFToDist(mhit.tdc-tof, layerId,
463 // wireId, 2, 0.0);
464 // mhit.erddl = _mdcCalibFunSvc->getSigma(layerId, 2, dist2, 0.0);
465 double timewalk = _mdcCalibFunSvc->getTimeWalk( layerId, mhit.adc );
466 double T0 = _mdcCalibFunSvc->getT0( layerId, wireId );
467 double drifttime = mhit.tdc - tof - timewalk - T0;
468 double dist2 = _mdcCalibFunSvc->driftTimeToDist( drifttime, layerId, wireId, 2,
469 0 ); // by liucy 2010/05/12
470 mhit.erddl = _mdcCalibFunSvc->getSigma( layerId, 2, dist2, 0.0, 0.0, 0.0, mhit.adc );
471 // cout<<"getSigma: "<<mhit.erddl<<endl;
472 mhit.ddl = dist2 / 10.; // mm->cm
473 mhit.ddr = mhit.ddl;
474 mhit.erddl = mhit.erddl / 10.; // mm->cm
475 mhit.erddr = mhit.erddl;
476
477 mhit.lr = 2;
478 mhit.stat = 0;
479 mhit.stat = mhit.stat |= 1048576; // bit20 WireHitTimeValid
480 mhit.stat = mhit.stat |= 2097152; // bit21 WireHitChargeValid
481 mhit.stat = mhit.stat |= 4194304; // bit22 WireHitFindingValid
482 mhit.stat = mhit.stat |= 1073741824; // bit30
483 // cout<<"layerNo = "<<mhit.geo->Layer()<<"; "<<mdigi.digi[i].layerNo<<endl;
484 // cout<<"cellNo = "<<mhit.geo->Cell()<<"; "<<mdigi.digi[i].cellNo<<endl;
485 // cout<<"NCell of this layer = "<<mhit.geo->Lyr()->NCell()<<endl;
486 // cout<<"NCell of this layer = "<<mhit.geo->Lyr()->NCell()<<endl;
487 MdcRecWirhitCol::getMdcRecWirhitCol()->push_back( mhit );
488
489 if ( b_tuple )
490 {
491 t10_tdc = mhit.tdc;
492 t10_adc = mhit.adc;
493 t10_drift = mhit.ddl;
494 t10_dDrift = mhit.erddl;
495 t10_lyrId = layerId;
496 t10_localId = wireId;
497 m_tuple10->write();
498 }
499 }
500
501 unsigned nT0Reset = 0;
502
503 //...Starting point...
504 TrkReco_start:
505
506 //...Clear myself...
507 clear();
508
509 // jialk in order to reject events with exceeding # of total hits 2009/03/31
510 if ( mdcDigiVec.size() > 2000 )
511 {
512 log << MSG::WARNING << " Too many hits in MdcDigiVec" << endmsg;
513 return StatusCode::SUCCESS;
514 }
515
516 //...Update TMDC...
517 _cdc->update( b_doMCAnalysis );
518
519 //...Get lists of hits...
520 unsigned mask = 0;
521 if ( !b_useAllHits ) mask = WireHitFindingValid;
522 const AList<TMDCWireHit>& axialHits = _cdc->axialHits( mask );
523 const AList<TMDCWireHit>& stereoHits = _cdc->stereoHits( mask );
524 const AList<TMDCWireHit>& allHits = _cdc->hits( mask );
525 // cout<<"axial: "<<axialHits.length()<<" stereo: "<<stereoHits.length()<<endl;
526
527 //...Storage for tracks...
528 AList<TTrack> tracks;
529 AList<TTrack> tracks2D;
530
531 //...Perfect finder...
532 if ( b_doPerfectFinder )
533 {
534 _perfectFinder->doit( axialHits, stereoHits, tracks, tracks2D );
535 _trackManager.append( tracks );
536 }
537
538 else
539 {
540 //...Conformal finder...
542 {
543
544 //...T0 reset option...
545 if ( b_doT0Reset )
546 {
547 if ( b_nT0ResetMax > nT0Reset )
548 ( (TConformalFinder*)_confFinder )->doT0Reset( true );
549 else ( (TConformalFinder*)_confFinder )->doT0Reset( false );
550 }
551
552 _confFinder->doit( axialHits, stereoHits, tracks, tracks2D );
553
554 //...T0 reset...
555 if ( b_doT0Reset )
556 {
557 ++nT0Reset;
558 if ( ( (TConformalFinder*)_confFinder )->T0ResetDone() ) goto TrkReco_start;
559 }
560
561 // cout<<"tracks: "<<tracks.length()<<endl;
562
563 //...Stores tracks...
564 _trackManager.append( tracks );
565 _trackManager.append2D( tracks2D );
566 if ( b_conformalFinder == 0 )
567 {
568 if ( b_doSalvage == 1 ) _trackManager.salvage( allHits );
569 if ( b_doSalvage ) _trackManager.mask();
570 }
571 }
572
573 //...Curl finder...
574 if ( b_doCurlFinder )
575 {
576 if ( ( !b_doSalvage ) && ( b_conformalFinder == 0 ) )
577 _trackManager.maskCurlHits( axialHits, stereoHits, _trackManager.tracks() );
578 AList<TTrack> confTracks = _trackManager.tracks();
579 tracks.append( confTracks );
580 _curlFinder->doit( axialHits, stereoHits, tracks, tracks2D );
581 tracks.remove( confTracks );
582 //_trackManager.append(tracks);
583 }
584
585 //...Finishes tracks...
586 // if ((b_doSalvage) && (b_conformalFinder == 0)) _trackManager.refit();
587
588 //...Appends tracks which are reconstructed by CurlFinder...
589 if ( b_doCurlFinder )
590 {
591 _trackManager.append( tracks );
592 _trackManager.append2D( tracks2D );
593 }
594
595 //...Merge & Mask ...
596 // if ((b_doMerge) && (b_conformalFinder == 0)) _trackManager.merge();
597 _trackManager.merge(); // Liuqg
598 // if (b_conformalFinder != 0) _trackManager.setCurlerFlags();
599
600 //...Salvage for dE/dx...
601 // if (b_doAssociation)
602 // _trackManager.salvageAssociateHits(allHits, b_associateSigma);
603 }
604
605 //...Move a pivot... //move to the innermost hit, remove this step now 2005/10/17 zang
606 // shilei _trackManager.movePivot();
607
608 //...Save Panther tables...
609 // _trackManager.checkNumberOfHits();
610 // if (b_sortMode == 0) _trackManager.sortTracksByQuality();
611 // else _trackManager.sortTracksByPt();
612 /*if (b_doMCAnalysis) {
613 if (mcEvent()) {
614 mcInformation();
615 _trackManager.saveMCTables();
616 }
617 }*/
618
619 if ( b_tuple ) FillTuple();
620
621 // write Tds
622 int t_tkStat = 2;
623 if ( !b_doConformalFinder && b_doCurlFinder ) t_tkStat = 3; // FIXME
624 StatusCode scTds =
625 _trackManager.makeTds( trkcol, hitcol, t_tkStat, b_RungeKuttaCorrection, m_CalibFlag );
626 if ( scTds != StatusCode::SUCCESS ) return ( StatusCode::FAILURE );
627
628 //...T0 correction...
630 {
631 _trackManager.determineT0( b_doT0Determination, b_nTracksForT0 );
632 if ( b_tuple ) t3_t0Rec = _trackManager.paraT0();
633 }
634 }
635 else if ( b_RungeKuttaCorrection == 1 )
636 {
637 if ( useESTime )
638 {
639 SmartDataPtr<RecEsTimeCol> aevtimeCol( eventSvc(), "/Event/Recon/RecEsTimeCol" );
640 if ( aevtimeCol && aevtimeCol->size() )
641 {
642 RecEsTimeCol::iterator iter_evt = aevtimeCol->begin();
643 t0_bes = ( *iter_evt )->getTest();
644 t0Sta = ( *iter_evt )->getStat();
645 }
646 else
647 {
648 log << MSG::WARNING << "Could not find EsTimeCol" << endmsg;
649 return StatusCode::SUCCESS;
650 }
651 }
652
653 SmartDataPtr<Event::EventHeader> eventHeader( eventSvc(), "/Event/EventHeader" );
654 if ( !eventHeader )
655 {
656 log << MSG::FATAL << "Could not find Event Header" << endmsg;
657 return ( StatusCode::FAILURE );
658 }
659 _nEvents = eventHeader->eventNumber();
660 if ( b_tuple ) std::cout << "TrkReco ... processing ev# " << _nEvents << std::endl;
661 AList<TTrack> rktracks;
662 int digiId;
663 uint32_t getDigiFlag = 0;
667 MdcDigiVec mdcDigiVec = _rawDataProviderSvc->getMdcDigiVec( getDigiFlag );
668 if ( 0 == mdcDigiVec.size() )
669 {
670 log << MSG::WARNING << " No hits in MdcDigiVec" << endmsg;
671 return StatusCode::SUCCESS;
672 }
673 MdcDigiVec::iterator iter1 = mdcDigiVec.begin();
674 MC_DIGI_SIZE = mdcDigiVec.size();
675
676 digiId = 0;
677 Identifier mdcId;
678 int layerId;
679 int wireId;
680
681 unsigned nt = MdcRecWirhitCol::getMdcRecWirhitCol()->size();
683
684 for ( ; iter1 != mdcDigiVec.end(); iter1++, digiId++ )
685 {
686 mdcId = ( *iter1 )->identify();
687 layerId = MdcID::layer( mdcId );
688 wireId = MdcID::wire( mdcId );
689 if ( b_goodTrk && b_tuple ) havedigi[layerId][wireId] = ( *iter1 )->getTrackIndex();
690
691 MdcRec_wirhit mhit;
692
693 mhit.id = digiId;
694 mhit.geo = _mdcGeomSvc->Wire( layerId, wireId );
695 double tof;
696 tof = 1.28 * mhit.geo->Lyr()->Radius() / 299.8;
697 mhit.tdc = RawDataUtil::MdcTime( ( *iter1 )->getTimeChannel() );
698 mhit.timechannel = ( *iter1 )->getTimeChannel();
699 mhit.tdc -= t0_bes;
700
701 _trackManager.sett0bes( t0_bes );
702 mhit.adc = ( *iter1 )->getChargeChannel();
703 double timewalk = _mdcCalibFunSvc->getTimeWalk( layerId, mhit.adc );
704 double T0 = _mdcCalibFunSvc->getT0( layerId, wireId );
705 double drifttime = mhit.tdc - tof - timewalk - T0;
706 double dist2 = _mdcCalibFunSvc->driftTimeToDist( drifttime, layerId, wireId, 2, 0 );
707 mhit.erddl = _mdcCalibFunSvc->getSigma( layerId, 2, dist2, 0.0, 0.0, 0.0, mhit.adc );
708 mhit.ddl = dist2 / 10.;
709 mhit.ddr = mhit.ddl;
710 mhit.erddl = mhit.erddl / 10.;
711 mhit.erddr = mhit.erddl;
712
713 mhit.lr = 2;
714 mhit.stat = 0;
715 mhit.stat = mhit.stat |= 1048576;
716 mhit.stat = mhit.stat |= 2097152;
717 mhit.stat = mhit.stat |= 4194304;
718 mhit.stat = mhit.stat |= 1073741824;
719 MdcRecWirhitCol::getMdcRecWirhitCol()->push_back( mhit );
720
721 if ( b_tuple )
722 {
723 t10_tdc = mhit.tdc;
724 t10_adc = mhit.adc;
725 t10_drift = mhit.ddl;
726 t10_dDrift = mhit.erddl;
727 t10_lyrId = layerId;
728 t10_localId = wireId;
729 m_tuple10->write();
730 }
731 }
732
733 unsigned nT0Reset = 0;
734
735 clear();
736 if ( mdcDigiVec.size() > 2000 )
737 {
738 log << MSG::WARNING << " Too many hits in MdcDigiVec" << endmsg;
739 return StatusCode::SUCCESS;
740 }
741 int counter = 0;
742 _cdc->update( b_doMCAnalysis );
743
744 unsigned mask = 0;
745 if ( !b_useAllHits ) mask = WireHitFindingValid;
746 const AList<TMDCWireHit>& axialHits = _cdc->axialHits( mask );
747 const AList<TMDCWireHit>& stereoHits = _cdc->stereoHits( mask );
748 const AList<TMDCWireHit>& allHits = _cdc->hits( mask );
749 AList<TMLink> _allHits[3];
752 _allHits[2].append( _allHits[0] );
753 _allHits[2].append( _allHits[1] );
754
755 SmartDataPtr<RecMdcTrackCol> mdcTracks( eventSvc(), EventModel::Recon::RecMdcTrackCol );
756 if ( !mdcTracks )
757 {
758 log << MSG::ERROR << "Unable to retrieve RecMdcTrackCol" << endmsg;
759 return StatusCode::FAILURE;
760 }
761 else
762 {
763 log << MSG::DEBUG << "RecMdcTrackCol retrieved of size " << mdcTracks->size() << endmsg;
764 int ntrk = 0;
765 for ( RecMdcTrackCol::iterator it = mdcTracks->begin(); it != mdcTracks->end(); it++ )
766 {
767 ntrk++;
768 TRunge* r = new TRunge( **it );
769 TTrack* t1 = new TTrack( *r );
770 HitRefVec gothits = ( *it )->getVecHits();
771 HitRefVec::iterator it_gothit = gothits.begin();
772 unsigned stat = ( *it )->stat();
773 int nhit = 0;
774 for ( ; it_gothit != gothits.end(); it_gothit++ )
775 {
776 for ( int i = 0; i < _allHits[2].length(); i++ )
777 {
778 int lyrraw = _allHits[2][i]->wire()->layerId();
779 int wireraw = _allHits[2][i]->wire()->localId();
780 int g_layer = MdcID::layer( ( *it_gothit )->getMdcId() );
781 int g_wire = MdcID::wire( ( *it_gothit )->getMdcId() );
782 if ( lyrraw == g_layer && g_wire == wireraw )
783 {
784 nhit++;
785 t1->append( *_allHits[2][i] );
786 }
787 }
788 }
789 TRunge* rr = new TRunge( *t1 );
790 TRunge* tt = new TRunge( *t1 );
791 int err = _rkfitter.fit( *rr );
792 int nhits = rr->links().length();
793 int ndrop = 0;
794 int nmax = 0;
795 if ( nhits <= 10 ) nmax = 0;
796 if ( nhits > 10 ) nmax = (int)nhit * 0.3;
797 for ( int ii = 0; ii < nmax; ii++ )
798 {
799
800 ndrop = rr->DropWorst();
801 if ( ndrop ) err = _rkfitter.fit( *rr );
802 if ( err ) break;
803 }
804 if ( err == -2 ) counter++;
805 if ( m_CalibFlag == 1 )
806 { // This is for Calibration
807 tt->removeLinks();
808 tt->append( rr->links() );
809 for ( int i = 0; i < 43; i++ ) { err = _rkfitter.fit( *tt, 0, i ); }
810 rr->removeLinks();
811 rr->append( tt->links() );
812 TTrack* t = new TTrack( *rr );
813 if ( err == 0 )
814 {
815 rktracks.append( *t );
816 t->setFinderType( 100 + stat );
817 }
818 }
819 if ( m_CalibFlag == 0 )
820 {
821 TTrack* t = new TTrack( *rr );
822 if ( err == 0 )
823 {
824
825 t->setFinderType( 100 + stat );
826 rktracks.append( *t );
827 }
828 }
829 delete r;
830 delete t1;
831 delete rr;
832 delete tt;
833 }
834 }
835
836 _trackManager.append( rktracks );
837 IDataManagerSvc* dataManSvc;
838 DataObject* aTrackCol;
839 DataObject* aRecHitCol;
840 if ( !m_combineTracking )
841 {
842 dataManSvc = dynamic_cast<IDataManagerSvc*>( eventSvc().get() );
843 eventSvc()->findObject( "/Event/Recon/RecMdcTrackCol", aTrackCol );
844 if ( aTrackCol )
845 {
846 dataManSvc->clearSubTree( "/Event/Recon/RecMdcTrackCol" );
847 eventSvc()->unregisterObject( "/Event/Recon/RecMdcTrackCol" );
848 }
849 eventSvc()->findObject( "/Event/Recon/RecMdcHitCol", aRecHitCol );
850 if ( aRecHitCol )
851 {
852 dataManSvc->clearSubTree( "/Event/Recon/RecMdcHitCol" );
853 eventSvc()->unregisterObject( "/Event/Recon/RecMdcHitCol" );
854 }
855 }
856 DataObject* aReconEvent;
857 eventSvc()->findObject( "/Event/Recon", aReconEvent );
858 if ( !aReconEvent )
859 {
860 ReconEvent* recevt = new ReconEvent;
861 StatusCode sc = eventSvc()->registerObject( "/Event/Recon", recevt );
862 if ( sc != StatusCode::SUCCESS )
863 {
864 log << MSG::FATAL << "Could not register ReconEvent" << endmsg;
865 return ( StatusCode::FAILURE );
866 }
867 }
868 RecMdcTrackCol* trkcol;
869 eventSvc()->findObject( "/Event/Recon/RecMdcTrackCol", aTrackCol );
870 if ( aTrackCol ) { trkcol = dynamic_cast<RecMdcTrackCol*>( aTrackCol ); }
871 else
872 {
873 trkcol = new RecMdcTrackCol;
874 sc = eventSvc()->registerObject( EventModel::Recon::RecMdcTrackCol, trkcol );
875 if ( !sc.isSuccess() )
876 {
877 log << MSG::FATAL << " Could not register RecMdcTrack collection" << endmsg;
878 return StatusCode::FAILURE;
879 }
880 }
881 RecMdcHitCol* hitcol;
882 eventSvc()->findObject( "/Event/Recon/RecMdcHitCol", aRecHitCol );
883 if ( aRecHitCol ) { hitcol = dynamic_cast<RecMdcHitCol*>( aRecHitCol ); }
884 else
885 {
886 hitcol = new RecMdcHitCol;
887 sc = eventSvc()->registerObject( EventModel::Recon::RecMdcHitCol, hitcol );
888 if ( !sc.isSuccess() )
889 {
890 log << MSG::FATAL << " Could not register RecMdcHit collection" << endmsg;
891 return StatusCode::FAILURE;
892 }
893 }
894 if ( b_tuple ) FillTuple();
895
896 int t_tkStat = 2;
897 if ( !b_doConformalFinder && b_doCurlFinder ) t_tkStat = 3; // FIXME
898 StatusCode scTds =
899 _trackManager.makeTds( trkcol, hitcol, t_tkStat, b_RungeKuttaCorrection, m_CalibFlag );
901 {
902 _trackManager.determineT0( b_doT0Determination, b_nTracksForT0 );
903 if ( b_tuple ) t3_t0Rec = _trackManager.paraT0();
904 }
905 for ( unsigned i = 0; i < 3; i++ )
906 {
907 if ( i == 2 ) HepAListDeleteAll( _allHits[i] );
908 else _allHits[i].removeAll();
909 }
910
911 rktracks.removeAll();
912 }
913 //...For debug...
914 /*if (b_debugLevel) {
915 std::cout << "TrkReco ... ev# " << _nEvents << " processed,"
916 << " #tracks found=" << _trackManager.allTracks().length()
917 << ", #good tracks=" << _trackManager.tracks().length()
918 << ", #2D tracks=" << _trackManager.tracks2D().length()
919 << std::endl;
920 if (b_debugLevel > 1) _trackManager.dump("eventSummary hits");
921 else _trackManager.dump("eventSummary");
922 }*/
923
924 // TUpdater::update();
925
926 return StatusCode::SUCCESS;
927}
const HepPoint3D ORIGIN
Constants.
Definition TMDCUtil.cxx:47
IMessageSvc * msgSvc()
static int layer(const Identifier &id)
Values of different levels (failure returns 0).
Definition MdcID.cxx:47
static int wire(const Identifier &id)
Definition MdcID.cxx:52
static vector< MdcRec_wirhit > * getMdcRecWirhitCol(void)
static double MdcTime(int timeChannel)
static void conformalTransformationDriftCircle(const HepPoint3D &center, const AList< TMDCWireHit > &hits, AList< TMLink > &links)
virtual void removeLinks(void)
virtual int DropWorst()
void append(TMLink &)
appends a TMLink.
const AList< TMLink > & links(unsigned mask=0) const
int b_doSalvage
Definition TrkReco.h:187
int b_useAllHits
Definition TrkReco.h:144
int b_doT0Reset
Definition TrkReco.h:145
int b_doT0Determination
Definition TrkReco.h:189
bool m_keepUnmatch
Definition TrkReco.h:132
bool m_combineTracking
Definition TrkReco.h:130
int useESTime
Definition TrkReco.h:140
StatusCode beginRun()
Definition TrkReco.cxx:258
int m_CalibFlag
Definition TrkReco.h:182
int b_conformalFinder
Definition TrkReco.h:155
int b_tuple
Definition TrkReco.h:126
bool m_dropHot
Definition TrkReco.h:129
const AList< TTrack > & tracks(void) const
returns a list of reconstructed tracks.
Definition TrkReco.h:328
void clear(void)
clears all TMDC information.
Definition TrkReco.cxx:977
int b_doMCAnalysis
Definition TrkReco.h:147
int b_goodTrk
Definition TrkReco.h:127
int b_nTracksForT0
Definition TrkReco.h:190
bool m_keepBadTdc
Definition TrkReco.h:131
int b_nT0ResetMax
Definition TrkReco.h:146
int b_RungeKuttaCorrection
Definition TrkReco.h:133
int b_timeTest
Definition TrkReco.h:128
int t()
Definition t.c:1

◆ fastClear()

void TrkReco::fastClear ( void )

clears TMDC information.

Definition at line 990 of file TrkReco.cxx.

990{ clear(); }

◆ finalize()

StatusCode TrkReco::finalize ( )

Definition at line 240 of file TrkReco.cxx.

240 {
241
242 if ( b_timeTest && b_tuple ) m_timersvc->print();
243
244 //...Clear TrkReco objects...
245 if ( _cdc ) _cdc->fastClear();
246 if ( b_doConformalFinder && _confFinder ) _confFinder->clear();
247 if ( b_doCurlFinder && _curlFinder ) _curlFinder->clear();
248
249 //...Summary...
250 // dump("summary");
251
252 //...Delete TrkReco objects...
253 if ( _confFinder ) delete _confFinder;
254 if ( _curlFinder ) delete _curlFinder;
255
256 return StatusCode::SUCCESS;
257}

◆ initialize()

StatusCode TrkReco::initialize ( )

Get RawDataProviderSvc

Get MdcGeomSvc

Get MdcCalibFunSvc

Initialize NTuple

Definition at line 93 of file TrkReco.cxx.

93 {
94 MsgStream log( msgSvc(), name() );
95 log << MSG::INFO << "in initialize()" << endmsg;
96
97 _rkfitter.setBesFromGdml();
98
99 StatusCode sc;
100
101 /// Get RawDataProviderSvc
102 IRawDataProviderSvc* irawDataProviderSvc;
103 sc = service( "RawDataProviderSvc", irawDataProviderSvc );
104 _rawDataProviderSvc = irawDataProviderSvc;
105 if ( sc.isFailure() )
106 {
107 log << MSG::FATAL << "Could not load RawDataProviderSvc!" << endmsg;
108 return StatusCode::FAILURE;
109 }
110
111 /// Get MdcGeomSvc
112 // IMdcGeomSvc* imdcGeomSvc;
113 // sc = service("MdcGeomSvc", imdcGeomSvc);
114 // _mdcGeomSvc = dynamic_cast<MdcGeomSvc*> (imdcGeomSvc);
115 // if (sc.isFailure()) {
116 // return( StatusCode::FAILURE);
117 // }
118
119 /// Get MdcCalibFunSvc
120 IMdcCalibFunSvc* imdcCalibSvc;
121 sc = service( "MdcCalibFunSvc", imdcCalibSvc );
122 _mdcCalibFunSvc = imdcCalibSvc;
123 if ( sc.isFailure() ) { log << MSG::FATAL << "Could not load MdcCalibFunSvc!" << endmsg; }
124
125 /// Initialize NTuple
126 if ( b_tuple ) InitTuple();
127
128#ifdef TRKRECO_DEBUG
129 b_debugLevel = 2;
130#endif
131
132 //...Create TMDC...
133 // _cdc = cdcInit();
134
135 //...TrkReco...
137
138 //...Create rphi finder...
139 /* _perfectFinder = new TPerfectFinder(b_perfectFitting,
140 b_conformalMaxSigma,
141 b_conformalStereoMaxSigma,
142 b_conformalFittingCorrections);
143 */
144 if ( ( !_confFinder ) && ( b_conformalFinder == 0 ) )
145 {
146 _confFinder = new TConformalFinder0(
150 }
151 else if ( !_confFinder )
152 {
153 _confFinder = new TConformalFinder(
160 }
161 _confFinder->debugLevel( b_debugLevel );
162 _confFinder->doStereo( b_doConformalFinderStereo );
163
164 //...Salvage flag is ignored in new conf. finder...
165 if ( b_doSalvage == 2 ) _confFinder->doSalvage( true );
166
167 //...Create curl finder...
168 if ( !_curlFinder )
169 _curlFinder = new TCurlFinder(
181 (unsigned)output_2dtracks, (unsigned)curl_version,
182 // jialk
186 _curlFinder->debugLevel( b_debugLevel );
187
188 //...Track manager setup...
189 _trackManager.maxMomentum( b_momentumCut );
190 _trackManager.debugLevel( b_debugLevel );
191 _trackManager.fittingFlag( b_fittingFlag );
192
193 //...Initialize...
194 // zsl TUpdater::initialize();
195
196 //...For debug...
197 // dump("parameter");
198
200
201 if ( b_timeTest && b_tuple )
202 {
203 StatusCode sc = service( "BesTimerSvc", m_timersvc );
204 if ( sc.isFailure() )
205 {
206 log << MSG::WARNING << " Unable to locate BesTimerSvc" << endmsg;
207 return StatusCode::FAILURE;
208 }
209 m_timer[1] = m_timersvc->addItem( "Execution" );
210 m_timer[1]->propName( "nExecution" );
211 }
212
213 return StatusCode::SUCCESS;
214}
int TrkRecoTest
Definition TrkReco.cxx:72
int b_conformalSalvageLoadWidth
Definition TrkReco.h:166
float b_conformalStereoZ3
Definition TrkReco.h:177
double selector_replace_dz
Definition TrkReco.h:216
double range_for_stereo3
Definition TrkReco.h:225
double good_distance_for_salvage
Definition TrkReco.h:201
int b_doConformalFastFinder
Definition TrkReco.h:157
double range_for_stereo_last2d_search
Definition TrkReco.h:208
int on_correction
Definition TrkReco.h:233
int b_conformalMinNCores
Definition TrkReco.h:163
int b_conformalFittingFlag
Definition TrkReco.h:160
double range_for_stereo4
Definition TrkReco.h:226
int b_doConformalFinderStereo
Definition TrkReco.h:174
double MIN_RADIUS_OF_STRANGE_TRACK
Definition TrkReco.h:242
int superlayer_for_stereo_search
Definition TrkReco.h:206
int output_2dtracks
Definition TrkReco.h:234
double z_diff_for_last_attend
Definition TrkReco.h:230
int min_salvage
Definition TrkReco.h:199
double range_for_stereo1
Definition TrkReco.h:223
int stereo_2dfind
Definition TrkReco.h:217
float b_conformalStereoSzLinkDistance
Definition TrkReco.h:171
int b_conformalFittingCorrections
Definition TrkReco.h:181
double range_for_stereo6
Definition TrkReco.h:228
int curl_version
Definition TrkReco.h:235
double bad_distance_for_salvage
Definition TrkReco.h:200
int b_conformalMinNLinksForSegment
Definition TrkReco.h:162
double range_for_stereo_search
Definition TrkReco.h:205
float b_conformalStereoZ4
Definition TrkReco.h:178
double trace3d_distance
Definition TrkReco.h:211
double merge_ratio
Definition TrkReco.h:219
float b_salvageLevel
Definition TrkReco.h:165
double range_for_stereo2
Definition TrkReco.h:224
double selector_max_sigma
Definition TrkReco.h:214
double minimum_2DTrackLength
Definition TrkReco.h:239
double merge_z_diff
Definition TrkReco.h:220
float b_conformalMaxSigma
Definition TrkReco.h:161
double minimum_closeHitsLength
Definition TrkReco.h:241
float b_conformalStereoChisq3
Definition TrkReco.h:179
double ULTIMATE_MIN_RADIUS_OF_STRANGE_TRACK
Definition TrkReco.h:243
double minimum_seedLength
Definition TrkReco.h:238
double ratio_used_wire
Definition TrkReco.h:222
int min_sequence
Definition TrkReco.h:202
int b_conformalStereoMode
Definition TrkReco.h:167
double selector_strange_pz
Definition TrkReco.h:215
int b_conformalMinNSegments
Definition TrkReco.h:164
int min_fullwire
Definition TrkReco.h:203
double trace2d_first_distance
Definition TrkReco.h:210
double range_for_stereo5
Definition TrkReco.h:227
int b_test
Definition TrkReco.h:194
double mask_distance
Definition TrkReco.h:221
int b_debugLevel
Definition TrkReco.h:143
double min_svd_electrons
Definition TrkReco.h:232
int b_conformalStereoLoadWidth
Definition TrkReco.h:168
float b_conformalStereoSzSegmentDistance
Definition TrkReco.h:170
int min_segment
Definition TrkReco.h:198
double minimum_3DTrackLength
Definition TrkReco.h:240
int b_doConformalSlowFinder
Definition TrkReco.h:158
double trace2d_distance
Definition TrkReco.h:209
float b_conformalFraction
Definition TrkReco.h:176
double b_momentumCut
Definition TrkReco.h:185
int svd_reconstruction
Definition TrkReco.h:231
double range_for_axial_last2d_search
Definition TrkReco.h:207
float b_conformalStereoMaxSigma
Definition TrkReco.h:169
int b_conformalPerfectSegmentFinding
Definition TrkReco.h:159
double range_for_axial_search
Definition TrkReco.h:204
float b_conformalStereoChisq4
Definition TrkReco.h:180
int b_fittingFlag
Definition TrkReco.h:186
double selector_max_impact
Definition TrkReco.h:213
int determine_one_track
Definition TrkReco.h:212
double z_cut
Definition TrkReco.h:229
int merge_exe
Definition TrkReco.h:218
int b_doConformalFinderCosmic
Definition TrkReco.h:175

◆ trackManager()

const TTrackManager & TrkReco::trackManager ( void ) const
inline

returns a pointer to TTrackManager.

Definition at line 340 of file TrkReco.h.

340{ return _trackManager; }

◆ tracks()

const AList< TTrack > & TrkReco::tracks ( void ) const
inline

returns a list of reconstructed tracks.

Definition at line 328 of file TrkReco.h.

328 {
329 return _trackManager.tracksFinal();
330}

Referenced by execute().

Member Data Documentation

◆ _cdcVersion

std::string TrkReco::_cdcVersion

Definition at line 136 of file TrkReco.h.

◆ b_associateSigma

float TrkReco::b_associateSigma

Definition at line 193 of file TrkReco.h.

◆ b_cdcVersion

float TrkReco::b_cdcVersion

Definition at line 135 of file TrkReco.h.

◆ b_conformalFinder

int TrkReco::b_conformalFinder

Definition at line 155 of file TrkReco.h.

Referenced by execute(), and initialize().

◆ b_conformalFittingCorrections

int TrkReco::b_conformalFittingCorrections

Definition at line 181 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalFittingFlag

int TrkReco::b_conformalFittingFlag

Definition at line 160 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalFraction

float TrkReco::b_conformalFraction

Definition at line 176 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalMaxSigma

float TrkReco::b_conformalMaxSigma

Definition at line 161 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalMinNCores

int TrkReco::b_conformalMinNCores

Definition at line 163 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalMinNLinksForSegment

int TrkReco::b_conformalMinNLinksForSegment

Definition at line 162 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalMinNSegments

int TrkReco::b_conformalMinNSegments

Definition at line 164 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalPerfectSegmentFinding

int TrkReco::b_conformalPerfectSegmentFinding

Definition at line 159 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalSalvageLoadWidth

int TrkReco::b_conformalSalvageLoadWidth

Definition at line 166 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoChisq3

float TrkReco::b_conformalStereoChisq3

Definition at line 179 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoChisq4

float TrkReco::b_conformalStereoChisq4

Definition at line 180 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoLoadWidth

int TrkReco::b_conformalStereoLoadWidth

Definition at line 168 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoMaxSigma

float TrkReco::b_conformalStereoMaxSigma

Definition at line 169 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoMode

int TrkReco::b_conformalStereoMode

Definition at line 167 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoSzLinkDistance

float TrkReco::b_conformalStereoSzLinkDistance

Definition at line 171 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoSzSegmentDistance

float TrkReco::b_conformalStereoSzSegmentDistance

Definition at line 170 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoZ3

float TrkReco::b_conformalStereoZ3

Definition at line 177 of file TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoZ4

float TrkReco::b_conformalStereoZ4

Definition at line 178 of file TrkReco.h.

Referenced by initialize().

◆ b_debugLevel

int TrkReco::b_debugLevel

Definition at line 143 of file TrkReco.h.

Referenced by initialize().

◆ b_doAssociation

int TrkReco::b_doAssociation

Definition at line 192 of file TrkReco.h.

◆ b_doConformalFastFinder

int TrkReco::b_doConformalFastFinder

Definition at line 157 of file TrkReco.h.

Referenced by initialize().

◆ b_doConformalFinder

int TrkReco::b_doConformalFinder

Definition at line 156 of file TrkReco.h.

Referenced by clear(), execute(), and finalize().

◆ b_doConformalFinderCosmic

int TrkReco::b_doConformalFinderCosmic

Definition at line 175 of file TrkReco.h.

Referenced by initialize().

◆ b_doConformalFinderStereo

int TrkReco::b_doConformalFinderStereo

Definition at line 174 of file TrkReco.h.

Referenced by initialize().

◆ b_doConformalSlowFinder

int TrkReco::b_doConformalSlowFinder

Definition at line 158 of file TrkReco.h.

Referenced by initialize().

◆ b_doCurlFinder

int TrkReco::b_doCurlFinder

Definition at line 197 of file TrkReco.h.

Referenced by clear(), execute(), and finalize().

◆ b_doMCAnalysis

int TrkReco::b_doMCAnalysis

Definition at line 147 of file TrkReco.h.

Referenced by execute().

◆ b_doMerge

int TrkReco::b_doMerge

Definition at line 188 of file TrkReco.h.

◆ b_doPerfectFinder

int TrkReco::b_doPerfectFinder

Definition at line 151 of file TrkReco.h.

Referenced by clear(), and execute().

◆ b_doSalvage

int TrkReco::b_doSalvage

Definition at line 187 of file TrkReco.h.

Referenced by execute(), and initialize().

◆ b_doT0Determination

int TrkReco::b_doT0Determination

Definition at line 189 of file TrkReco.h.

Referenced by execute().

◆ b_doT0Reset

int TrkReco::b_doT0Reset

Definition at line 145 of file TrkReco.h.

Referenced by execute().

◆ b_fittingFlag

int TrkReco::b_fittingFlag

Definition at line 186 of file TrkReco.h.

Referenced by initialize().

◆ b_fudgeFactor

float TrkReco::b_fudgeFactor

Definition at line 137 of file TrkReco.h.

◆ b_goodTrk

int TrkReco::b_goodTrk

Definition at line 127 of file TrkReco.h.

Referenced by execute().

◆ b_helixFitterChisqMax

float TrkReco::b_helixFitterChisqMax

Definition at line 148 of file TrkReco.h.

Referenced by initialize(), and TrkReco().

◆ b_mcHit

int TrkReco::b_mcHit

Definition at line 125 of file TrkReco.h.

◆ b_mcPar

int TrkReco::b_mcPar

Definition at line 124 of file TrkReco.h.

◆ b_momentumCut

double TrkReco::b_momentumCut

Definition at line 185 of file TrkReco.h.

Referenced by initialize().

◆ b_nT0ResetMax

int TrkReco::b_nT0ResetMax

Definition at line 146 of file TrkReco.h.

Referenced by execute().

◆ b_nTracksForT0

int TrkReco::b_nTracksForT0

Definition at line 190 of file TrkReco.h.

Referenced by execute().

◆ b_perfectFitting

int TrkReco::b_perfectFitting

Definition at line 152 of file TrkReco.h.

◆ b_RungeKuttaCorrection

int TrkReco::b_RungeKuttaCorrection

Definition at line 133 of file TrkReco.h.

Referenced by execute().

◆ b_salvageLevel

float TrkReco::b_salvageLevel

Definition at line 165 of file TrkReco.h.

Referenced by initialize().

◆ b_sortMode

int TrkReco::b_sortMode

Definition at line 191 of file TrkReco.h.

◆ b_test

int TrkReco::b_test

Definition at line 194 of file TrkReco.h.

Referenced by initialize().

◆ b_timeTest

int TrkReco::b_timeTest

Definition at line 128 of file TrkReco.h.

Referenced by execute(), finalize(), and initialize().

◆ b_tuple

int TrkReco::b_tuple

Definition at line 126 of file TrkReco.h.

Referenced by execute(), finalize(), and initialize().

◆ b_useAllHits

int TrkReco::b_useAllHits

Definition at line 144 of file TrkReco.h.

Referenced by execute().

◆ bad_distance_for_salvage

double TrkReco::bad_distance_for_salvage

Definition at line 200 of file TrkReco.h.

Referenced by initialize().

◆ curl_version

int TrkReco::curl_version

Definition at line 235 of file TrkReco.h.

Referenced by initialize().

◆ determine_one_track

int TrkReco::determine_one_track

Definition at line 212 of file TrkReco.h.

Referenced by initialize().

◆ good_distance_for_salvage

double TrkReco::good_distance_for_salvage

Definition at line 201 of file TrkReco.h.

Referenced by initialize().

◆ m_CalibFlag

int TrkReco::m_CalibFlag

Definition at line 182 of file TrkReco.h.

Referenced by execute().

◆ m_combineTracking

bool TrkReco::m_combineTracking

Definition at line 130 of file TrkReco.h.

Referenced by execute().

◆ m_dropHot

bool TrkReco::m_dropHot

Definition at line 129 of file TrkReco.h.

Referenced by execute().

◆ m_keepBadTdc

bool TrkReco::m_keepBadTdc

Definition at line 131 of file TrkReco.h.

Referenced by execute().

◆ m_keepUnmatch

bool TrkReco::m_keepUnmatch

Definition at line 132 of file TrkReco.h.

Referenced by execute().

◆ mask_distance

double TrkReco::mask_distance

Definition at line 221 of file TrkReco.h.

Referenced by initialize().

◆ merge_exe

int TrkReco::merge_exe

Definition at line 218 of file TrkReco.h.

Referenced by initialize().

◆ merge_ratio

double TrkReco::merge_ratio

Definition at line 219 of file TrkReco.h.

Referenced by initialize().

◆ merge_z_diff

double TrkReco::merge_z_diff

Definition at line 220 of file TrkReco.h.

Referenced by initialize().

◆ min_fullwire

int TrkReco::min_fullwire

Definition at line 203 of file TrkReco.h.

Referenced by initialize().

◆ MIN_RADIUS_OF_STRANGE_TRACK

double TrkReco::MIN_RADIUS_OF_STRANGE_TRACK

Definition at line 242 of file TrkReco.h.

Referenced by initialize().

◆ min_salvage

int TrkReco::min_salvage

Definition at line 199 of file TrkReco.h.

Referenced by initialize().

◆ min_segment

int TrkReco::min_segment

Definition at line 198 of file TrkReco.h.

Referenced by initialize().

◆ min_sequence

int TrkReco::min_sequence

Definition at line 202 of file TrkReco.h.

Referenced by initialize().

◆ min_svd_electrons

double TrkReco::min_svd_electrons

Definition at line 232 of file TrkReco.h.

Referenced by initialize().

◆ minimum_2DTrackLength

double TrkReco::minimum_2DTrackLength

Definition at line 239 of file TrkReco.h.

Referenced by initialize().

◆ minimum_3DTrackLength

double TrkReco::minimum_3DTrackLength

Definition at line 240 of file TrkReco.h.

Referenced by initialize().

◆ minimum_closeHitsLength

double TrkReco::minimum_closeHitsLength

Definition at line 241 of file TrkReco.h.

Referenced by initialize().

◆ minimum_seedLength

double TrkReco::minimum_seedLength

Definition at line 238 of file TrkReco.h.

Referenced by initialize().

◆ on_correction

int TrkReco::on_correction

Definition at line 233 of file TrkReco.h.

Referenced by initialize().

◆ output_2dtracks

int TrkReco::output_2dtracks

Definition at line 234 of file TrkReco.h.

Referenced by initialize().

◆ range_for_axial_last2d_search

double TrkReco::range_for_axial_last2d_search

Definition at line 207 of file TrkReco.h.

Referenced by initialize().

◆ range_for_axial_search

double TrkReco::range_for_axial_search

Definition at line 204 of file TrkReco.h.

Referenced by initialize().

◆ range_for_stereo1

double TrkReco::range_for_stereo1

Definition at line 223 of file TrkReco.h.

Referenced by initialize().

◆ range_for_stereo2

double TrkReco::range_for_stereo2

Definition at line 224 of file TrkReco.h.

Referenced by initialize().

◆ range_for_stereo3

double TrkReco::range_for_stereo3

Definition at line 225 of file TrkReco.h.

Referenced by initialize().

◆ range_for_stereo4

double TrkReco::range_for_stereo4

Definition at line 226 of file TrkReco.h.

Referenced by initialize().

◆ range_for_stereo5

double TrkReco::range_for_stereo5

Definition at line 227 of file TrkReco.h.

Referenced by initialize().

◆ range_for_stereo6

double TrkReco::range_for_stereo6

Definition at line 228 of file TrkReco.h.

Referenced by initialize().

◆ range_for_stereo_last2d_search

double TrkReco::range_for_stereo_last2d_search

Definition at line 208 of file TrkReco.h.

Referenced by initialize().

◆ range_for_stereo_search

double TrkReco::range_for_stereo_search

Definition at line 205 of file TrkReco.h.

Referenced by initialize().

◆ ratio_used_wire

double TrkReco::ratio_used_wire

Definition at line 222 of file TrkReco.h.

Referenced by initialize().

◆ selector_max_impact

double TrkReco::selector_max_impact

Definition at line 213 of file TrkReco.h.

Referenced by initialize().

◆ selector_max_sigma

double TrkReco::selector_max_sigma

Definition at line 214 of file TrkReco.h.

Referenced by initialize().

◆ selector_replace_dz

double TrkReco::selector_replace_dz

Definition at line 216 of file TrkReco.h.

Referenced by initialize().

◆ selector_strange_pz

double TrkReco::selector_strange_pz

Definition at line 215 of file TrkReco.h.

Referenced by initialize().

◆ stereo_2dfind

int TrkReco::stereo_2dfind

Definition at line 217 of file TrkReco.h.

Referenced by initialize().

◆ superlayer_for_stereo_search

int TrkReco::superlayer_for_stereo_search

Definition at line 206 of file TrkReco.h.

Referenced by initialize().

◆ svd_reconstruction

int TrkReco::svd_reconstruction

Definition at line 231 of file TrkReco.h.

Referenced by initialize().

◆ trace2d_distance

double TrkReco::trace2d_distance

Definition at line 209 of file TrkReco.h.

Referenced by initialize().

◆ trace2d_first_distance

double TrkReco::trace2d_first_distance

Definition at line 210 of file TrkReco.h.

Referenced by initialize().

◆ trace3d_distance

double TrkReco::trace3d_distance

Definition at line 211 of file TrkReco.h.

Referenced by initialize().

◆ ULTIMATE_MIN_RADIUS_OF_STRANGE_TRACK

double TrkReco::ULTIMATE_MIN_RADIUS_OF_STRANGE_TRACK

Definition at line 243 of file TrkReco.h.

Referenced by initialize().

◆ useESTime

int TrkReco::useESTime

Definition at line 140 of file TrkReco.h.

Referenced by execute().

◆ z_cut

double TrkReco::z_cut

Definition at line 229 of file TrkReco.h.

Referenced by initialize().

◆ z_diff_for_last_attend

double TrkReco::z_diff_for_last_attend

Definition at line 230 of file TrkReco.h.

Referenced by initialize().


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