BOSS 7.0.3
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 ()
 
StatusCode endRun ()
 
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.
 
 TrkReco (const std::string &name, ISvcLocator *pSvcLocator)
 returns TrkReco.
 
StatusCode initialize ()
 
StatusCode execute ()
 
StatusCode finalize ()
 
StatusCode beginRun ()
 
StatusCode endRun ()
 
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 InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Constructor & Destructor Documentation

◆ TrkReco() [1/2]

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

returns TrkReco.

Initiate Parameters for TrkReco

Definition at line 80 of file TrkReco.cxx.

80 :
81 Algorithm(name, pSvcLocator),
82 _cdc(0),
83 _perfectFinder(0),
84 _rkfitter("range fitter",
85 false,
86 0,
87 true),
88 _confFinder(0),
89 _curlFinder(0),
90 _nEvents(0) {
91
92 /// Initiate Parameters for TrkReco
93 initPara();
94
96}
float TrkRecoHelixFitterChisqMax
Definition: TrkReco.cxx:78

◆ TrkReco() [2/2]

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

returns TrkReco.

Member Function Documentation

◆ beginRun() [1/2]

StatusCode TrkReco::beginRun ( )

Get MdcGeomSvc

Definition at line 302 of file TrkReco.cxx.

302 {
303 /// Get MdcGeomSvc
304 IMdcGeomSvc* imdcGeomSvc;
305 StatusCode sc1 =Gaudi::svcLocator()->service("MdcGeomSvc", imdcGeomSvc);
306 _mdcGeomSvc = dynamic_cast<MdcGeomSvc*> (imdcGeomSvc);
307 if (sc1.isFailure()) {
308 return( StatusCode::FAILURE);
309 }
310 _cdc = cdcInit();
311
312 return StatusCode::SUCCESS;
313}

◆ beginRun() [2/2]

StatusCode TrkReco::beginRun ( )

◆ clear() [1/2]

void TrkReco::clear ( void  )

clears all TMDC information.

Definition at line 956 of file TrkReco.cxx.

956 {
957
958 //...Clear track candidates of the last event...
959 HepAListDeleteAll(_mcTracks);
960
961 //...Clear finders...
962 if (b_doPerfectFinder) _perfectFinder->clear();
963 if (b_doConformalFinder) _confFinder->clear();
964 if (b_doCurlFinder) _curlFinder->clear();
965 _trackManager.clear();
966 _trackManager.clearTables();
967}
void clear(void)
cleans all members of this class
virtual void clear(void)=0
clear internal information.
void clearTables(void) const
clears tables.
void clear(void)
clears all internal information.

Referenced by execute(), and fastClear().

◆ clear() [2/2]

void TrkReco::clear ( void  )

clears all TMDC information.

◆ confFinder() [1/2]

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

returns a pointer to the rphi finder.

Definition at line 320 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

320 {
321 return (TFinderBase *) _confFinder;
322}
A virtual class for a track finder in tracking.

◆ confFinder() [2/2]

const TFinderBase * TrkReco::confFinder ( void  ) const

returns a pointer to the rphi finder.

◆ curlFinder() [1/2]

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

returns a pointer to the curl finder.

Definition at line 326 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

326 {
327 return (TFinderBase *) _curlFinder;
328}

◆ curlFinder() [2/2]

const TFinderBase * TrkReco::curlFinder ( void  ) const

returns a pointer to the curl finder.

◆ disp_stat() [1/2]

void TrkReco::disp_stat ( const char *  m)

initializes TrkReco.

terminates TrkReco. processes an event. temporarily required

Definition at line 315 of file TrkReco.cxx.

315 {
316 std::string msg = m;
317// dump(msg);
318}

◆ disp_stat() [2/2]

void TrkReco::disp_stat ( const char *  )

initializes TrkReco.

terminates TrkReco. processes an event. temporarily required

◆ dump() [1/2]

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

returns name.

returns version. dumps debug information.

◆ dump() [2/2]

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

returns name.

returns version. dumps debug information.

◆ endRun() [1/2]

StatusCode TrkReco::endRun ( )
inline

Definition at line 56 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

56{};

◆ endRun() [2/2]

StatusCode TrkReco::endRun ( )
inline

◆ execute() [1/2]

StatusCode TrkReco::execute ( )

Definition at line 321 of file TrkReco.cxx.

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

◆ execute() [2/2]

StatusCode TrkReco::execute ( )

◆ fastClear() [1/2]

void TrkReco::fastClear ( void  )

clears TMDC information.

Definition at line 970 of file TrkReco.cxx.

970 {
971 clear();
972}

◆ fastClear() [2/2]

void TrkReco::fastClear ( void  )

clears TMDC information.

◆ finalize() [1/2]

StatusCode TrkReco::finalize ( )

Definition at line 284 of file TrkReco.cxx.

284 {
285
286 if (b_timeTest && b_tuple) m_timersvc->print();
287
288 //...Clear TrkReco objects...
289 if (_cdc) _cdc->fastClear();
290 if (b_doConformalFinder && _confFinder) _confFinder->clear();
291 if (b_doCurlFinder && _curlFinder) _curlFinder->clear();
292
293 //...Summary...
294// dump("summary");
295
296 //...Delete TrkReco objects...
297 if (_confFinder) delete _confFinder;
298 if (_curlFinder) delete _curlFinder;
299
300 return StatusCode::SUCCESS;
301}
virtual void print(void)=0
void fastClear(void)
clears TMDC information.
Definition: TMDC.cxx:298

◆ finalize() [2/2]

StatusCode TrkReco::finalize ( )

◆ initialize() [1/2]

StatusCode TrkReco::initialize ( )

Get RawDataProviderSvc

Get MdcGeomSvc

Get MdcCalibFunSvc

Initialize NTuple

Definition at line 99 of file TrkReco.cxx.

99 {
100 MsgStream log(msgSvc(), name());
101 log << MSG::INFO << "in initialize()" << endreq;
102
103 StatusCode sc;
104
105 /// Get RawDataProviderSvc
106 IRawDataProviderSvc* irawDataProviderSvc;
107 sc = service ("RawDataProviderSvc", irawDataProviderSvc);
108 _rawDataProviderSvc = dynamic_cast<RawDataProviderSvc*> (irawDataProviderSvc);
109 if ( sc.isFailure() ){
110 log << MSG::FATAL << "Could not load RawDataProviderSvc!" << endreq;
111 return StatusCode::FAILURE;
112 }
113
114 /// Get MdcGeomSvc
115 // IMdcGeomSvc* imdcGeomSvc;
116 // sc = service("MdcGeomSvc", imdcGeomSvc);
117 // _mdcGeomSvc = dynamic_cast<MdcGeomSvc*> (imdcGeomSvc);
118 // if (sc.isFailure()) {
119 // return( StatusCode::FAILURE);
120 // }
121
122 /// Get MdcCalibFunSvc
123 IMdcCalibFunSvc* imdcCalibSvc;
124 sc = service ("MdcCalibFunSvc",imdcCalibSvc);
125 _mdcCalibFunSvc = dynamic_cast<MdcCalibFunSvc*> (imdcCalibSvc);
126 if ( sc.isFailure() ){
127 log << MSG::FATAL << "Could not load MdcCalibFunSvc!" << endreq;
128 }
129
130 /// Initialize NTuple
131 if (b_tuple) InitTuple();
132
133#ifdef TRKRECO_DEBUG
134 b_debugLevel = 2;
135#endif
136
137 //...Create TMDC...
138// _cdc = cdcInit();
139
140 //...TrkReco...
142
143 //...Create rphi finder...
144/* _perfectFinder = new TPerfectFinder(b_perfectFitting,
145 b_conformalMaxSigma,
146 b_conformalStereoMaxSigma,
147 b_conformalFittingCorrections);
148*/
149 if ((! _confFinder) && (b_conformalFinder == 0)) {
150 _confFinder = new TConformalFinder0(b_conformalMaxSigma,
160 }
161 else if (! _confFinder) {
177 }
178 _confFinder->debugLevel(b_debugLevel);
180
181 //...Salvage flag is ignored in new conf. finder...
182 if (b_doSalvage == 2) _confFinder->doSalvage(true);
183
184 //...Create curl finder...
185 if (! _curlFinder)
186 _curlFinder = new TCurlFinder((unsigned)min_segment,
187 (unsigned)min_salvage,
190 (unsigned)min_sequence,
191 (unsigned)min_fullwire,
200 (unsigned)determine_one_track,
205 (unsigned)stereo_2dfind,
206 (unsigned)merge_exe,
217 z_cut,
219 (unsigned)svd_reconstruction,
221 (unsigned)on_correction,
222 (unsigned)output_2dtracks,
223 (unsigned)curl_version,
224 //jialk
231 _curlFinder->debugLevel(b_debugLevel);
232
233 //...Track manager setup...
234 _trackManager.maxMomentum(b_momentumCut);
235 _trackManager.debugLevel(b_debugLevel);
236 _trackManager.fittingFlag(b_fittingFlag);
237
238 //...Initialize...
239//zsl TUpdater::initialize();
240
241 //...For debug...
242// dump("parameter");
243
245
246 if (b_timeTest && b_tuple) {
247 StatusCode sc = service( "BesTimerSvc", m_timersvc);
248 if( sc.isFailure() ) {
249 log << MSG::WARNING << " Unable to locate BesTimerSvc" << endreq;
250 return StatusCode::FAILURE;
251 }
252 m_timer[1] = m_timersvc->addItem("Execution");
253 m_timer[1]->propName("nExecution");
254 }
255
256 return StatusCode::SUCCESS;
257}
int TrkRecoTest
Definition: TrkReco.cxx:77
virtual BesTimer * addItem(const std::string &name)=0
A class to find tracks with the conformal method.
virtual int debugLevel(void) const
returns debug level.
virtual bool doStereo(bool)
sets flag to reconstruct 3D.
virtual bool doSalvage(bool)
sets flag to salvage hits.
int debugLevel(void) const
returns/sets debug level.
double maxMomentum(double)
sets the max. momentum.
void fittingFlag(unsigned)
sets fitting flag.

◆ initialize() [2/2]

StatusCode TrkReco::initialize ( )

◆ trackManager() [1/2]

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

returns a pointer to TTrackManager.

Definition at line 346 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

346 {
347 return _trackManager;
348}

◆ trackManager() [2/2]

const TTrackManager & TrkReco::trackManager ( void  ) const

returns a pointer to TTrackManager.

◆ tracks() [1/2]

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

returns a list of reconstructed tracks.

Definition at line 332 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

332 {
333 return _trackManager.tracksFinal();
334}
const AList< TTrack > & tracksFinal(void) const
returns a list of tracks writen to MdcRec_trk.

Referenced by execute().

◆ tracks() [2/2]

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

returns a list of reconstructed tracks.

Member Data Documentation

◆ _cdcVersion

std::string TrkReco::_cdcVersion

◆ b_associateSigma

float TrkReco::b_associateSigma

◆ b_cdcVersion

float TrkReco::b_cdcVersion

◆ b_conformalFinder

int TrkReco::b_conformalFinder

Definition at line 157 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute(), and initialize().

◆ b_conformalFittingCorrections

int TrkReco::b_conformalFittingCorrections

Definition at line 183 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalFittingFlag

int TrkReco::b_conformalFittingFlag

Definition at line 162 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalFraction

float TrkReco::b_conformalFraction

Definition at line 178 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalMaxSigma

float TrkReco::b_conformalMaxSigma

Definition at line 163 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalMinNCores

int TrkReco::b_conformalMinNCores

Definition at line 165 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalMinNLinksForSegment

int TrkReco::b_conformalMinNLinksForSegment

Definition at line 164 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalMinNSegments

int TrkReco::b_conformalMinNSegments

Definition at line 166 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalPerfectSegmentFinding

int TrkReco::b_conformalPerfectSegmentFinding

Definition at line 161 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalSalvageLoadWidth

int TrkReco::b_conformalSalvageLoadWidth

Definition at line 168 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoChisq3

float TrkReco::b_conformalStereoChisq3

Definition at line 181 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoChisq4

float TrkReco::b_conformalStereoChisq4

Definition at line 182 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoLoadWidth

int TrkReco::b_conformalStereoLoadWidth

Definition at line 170 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoMaxSigma

float TrkReco::b_conformalStereoMaxSigma

Definition at line 171 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoMode

int TrkReco::b_conformalStereoMode

Definition at line 169 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoSzLinkDistance

float TrkReco::b_conformalStereoSzLinkDistance

Definition at line 173 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoSzSegmentDistance

float TrkReco::b_conformalStereoSzSegmentDistance

Definition at line 172 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoZ3

float TrkReco::b_conformalStereoZ3

Definition at line 179 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_conformalStereoZ4

float TrkReco::b_conformalStereoZ4

Definition at line 180 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_debugLevel

int TrkReco::b_debugLevel

Definition at line 145 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_doAssociation

int TrkReco::b_doAssociation

◆ b_doConformalFastFinder

int TrkReco::b_doConformalFastFinder

Definition at line 159 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_doConformalFinder

int TrkReco::b_doConformalFinder

Definition at line 158 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

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

◆ b_doConformalFinderCosmic

int TrkReco::b_doConformalFinderCosmic

Definition at line 177 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_doConformalFinderStereo

int TrkReco::b_doConformalFinderStereo

Definition at line 176 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_doConformalSlowFinder

int TrkReco::b_doConformalSlowFinder

Definition at line 160 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_doCurlFinder

int TrkReco::b_doCurlFinder

Definition at line 199 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

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

◆ b_doMCAnalysis

int TrkReco::b_doMCAnalysis

Definition at line 149 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ b_doMerge

int TrkReco::b_doMerge

◆ b_doPerfectFinder

int TrkReco::b_doPerfectFinder

Definition at line 153 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by clear(), and execute().

◆ b_doSalvage

int TrkReco::b_doSalvage

Definition at line 189 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute(), and initialize().

◆ b_doT0Determination

int TrkReco::b_doT0Determination

Definition at line 191 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ b_doT0Reset

int TrkReco::b_doT0Reset

Definition at line 147 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ b_fittingFlag

int TrkReco::b_fittingFlag

Definition at line 188 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_fudgeFactor

float TrkReco::b_fudgeFactor

◆ b_goodTrk

int TrkReco::b_goodTrk

Definition at line 129 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ b_helixFitterChisqMax

float TrkReco::b_helixFitterChisqMax

Definition at line 150 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize(), and TrkReco().

◆ b_mcHit

int TrkReco::b_mcHit

◆ b_mcPar

int TrkReco::b_mcPar

◆ b_momentumCut

double TrkReco::b_momentumCut

Definition at line 187 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_nT0ResetMax

int TrkReco::b_nT0ResetMax

Definition at line 148 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ b_nTracksForT0

int TrkReco::b_nTracksForT0

Definition at line 192 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ b_perfectFitting

int TrkReco::b_perfectFitting

◆ b_RungeKuttaCorrection

int TrkReco::b_RungeKuttaCorrection

Definition at line 135 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ b_salvageLevel

float TrkReco::b_salvageLevel

Definition at line 167 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_sortMode

int TrkReco::b_sortMode

◆ b_test

int TrkReco::b_test

Definition at line 196 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ b_timeTest

int TrkReco::b_timeTest

Definition at line 130 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

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

◆ b_tuple

int TrkReco::b_tuple

Definition at line 128 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

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

◆ b_useAllHits

int TrkReco::b_useAllHits

Definition at line 146 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ bad_distance_for_salvage

double TrkReco::bad_distance_for_salvage

Definition at line 202 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ curl_version

int TrkReco::curl_version

Definition at line 237 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ determine_one_track

int TrkReco::determine_one_track

Definition at line 214 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ good_distance_for_salvage

double TrkReco::good_distance_for_salvage

Definition at line 203 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ m_CalibFlag

int TrkReco::m_CalibFlag

Definition at line 184 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ m_combineTracking

bool TrkReco::m_combineTracking

Definition at line 132 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ m_dropHot

bool TrkReco::m_dropHot

Definition at line 131 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ m_keepBadTdc

bool TrkReco::m_keepBadTdc

Definition at line 133 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ m_keepUnmatch

bool TrkReco::m_keepUnmatch

Definition at line 134 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ mask_distance

double TrkReco::mask_distance

Definition at line 223 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ merge_exe

int TrkReco::merge_exe

Definition at line 220 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ merge_ratio

double TrkReco::merge_ratio

Definition at line 221 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ merge_z_diff

double TrkReco::merge_z_diff

Definition at line 222 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ min_fullwire

int TrkReco::min_fullwire

Definition at line 205 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ MIN_RADIUS_OF_STRANGE_TRACK

double TrkReco::MIN_RADIUS_OF_STRANGE_TRACK

Definition at line 244 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ min_salvage

int TrkReco::min_salvage

Definition at line 201 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ min_segment

int TrkReco::min_segment

Definition at line 200 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ min_sequence

int TrkReco::min_sequence

Definition at line 204 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ min_svd_electrons

double TrkReco::min_svd_electrons

Definition at line 234 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ minimum_2DTrackLength

double TrkReco::minimum_2DTrackLength

Definition at line 241 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ minimum_3DTrackLength

double TrkReco::minimum_3DTrackLength

Definition at line 242 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ minimum_closeHitsLength

double TrkReco::minimum_closeHitsLength

Definition at line 243 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ minimum_seedLength

double TrkReco::minimum_seedLength

Definition at line 240 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ on_correction

int TrkReco::on_correction

Definition at line 235 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ output_2dtracks

int TrkReco::output_2dtracks

Definition at line 236 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ range_for_axial_last2d_search

double TrkReco::range_for_axial_last2d_search

Definition at line 209 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ range_for_axial_search

double TrkReco::range_for_axial_search

Definition at line 206 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ range_for_stereo1

double TrkReco::range_for_stereo1

Definition at line 225 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ range_for_stereo2

double TrkReco::range_for_stereo2

Definition at line 226 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ range_for_stereo3

double TrkReco::range_for_stereo3

Definition at line 227 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ range_for_stereo4

double TrkReco::range_for_stereo4

Definition at line 228 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ range_for_stereo5

double TrkReco::range_for_stereo5

Definition at line 229 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ range_for_stereo6

double TrkReco::range_for_stereo6

Definition at line 230 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ range_for_stereo_last2d_search

double TrkReco::range_for_stereo_last2d_search

Definition at line 210 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ range_for_stereo_search

double TrkReco::range_for_stereo_search

Definition at line 207 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ ratio_used_wire

double TrkReco::ratio_used_wire

Definition at line 224 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ selector_max_impact

double TrkReco::selector_max_impact

Definition at line 215 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ selector_max_sigma

double TrkReco::selector_max_sigma

Definition at line 216 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ selector_replace_dz

double TrkReco::selector_replace_dz

Definition at line 218 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ selector_strange_pz

double TrkReco::selector_strange_pz

Definition at line 217 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ stereo_2dfind

int TrkReco::stereo_2dfind

Definition at line 219 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ superlayer_for_stereo_search

int TrkReco::superlayer_for_stereo_search

Definition at line 208 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ svd_reconstruction

int TrkReco::svd_reconstruction

Definition at line 233 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ trace2d_distance

double TrkReco::trace2d_distance

Definition at line 211 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ trace2d_first_distance

double TrkReco::trace2d_first_distance

Definition at line 212 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ trace3d_distance

double TrkReco::trace3d_distance

Definition at line 213 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ ULTIMATE_MIN_RADIUS_OF_STRANGE_TRACK

double TrkReco::ULTIMATE_MIN_RADIUS_OF_STRANGE_TRACK

Definition at line 245 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ useESTime

int TrkReco::useESTime

Definition at line 142 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by execute().

◆ z_cut

double TrkReco::z_cut

Definition at line 231 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().

◆ z_diff_for_last_attend

double TrkReco::z_diff_for_last_attend

Definition at line 232 of file InstallArea/include/TrkReco/TrkReco/TrkReco.h.

Referenced by initialize().


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