BOSS 7.0.6
BESIII Offline Software System
Loading...
Searching...
No Matches
TCurlFinder Class Reference

#include <TCurlFinder.h>

+ Inheritance diagram for TCurlFinder:

Public Member Functions

 TCurlFinder (void)
 
 ~TCurlFinder (void)
 
std::string name (void) const
 returns name.
 
std::string version (void) const
 returns version.
 
 TCurlFinder (const unsigned min_segment, const unsigned min_salvage, const double bad_distance_for_salvage, const double good_distance_for_salvage, const unsigned min_sequence, const unsigned min_fullwire, const double range_for_axial_search, const double range_for_stereo_search, const unsigned superlayer_for_stereo_search, const double range_for_axial_last2d_search, const double range_for_stereo_last2d_search, const double trace2d_distance, const double trace2d_first_distance, const double trace3d_distance, const unsigned determine_one_track, const double selector_max_impact, const double selector_max_sigma, const double selector_strange_pz, const double selector_replace_dz, const unsigned stereo_2dfind, const unsigned merge_exe, const double merge_ratio, const double merge_z_diff, const double mask_distance, const double ratio_used_wire, const double range_for_stereo1, const double range_for_stereo2, const double range_for_stereo3, const double range_for_stereo4, const double range_for_stereo5, const double range_for_stereo6, const double z_cut, const double z_diff_for_last_attend, const unsigned svd_reconstruction, const double min_svd_electrons, const unsigned on_correction, const unsigned output_2dtracks, const unsigned curl_version, const double minimum_seedLength, const double minimum_2DTrackLength, const double minimum_3DTrackLength, const double minimum_closeHitsLength, const double MIN_RADIUS_OF_STRANGE_TRACK, const double ULTIMATE_MIN_RADIUS_OF_STRANGE_TRACK)
 
int doit (const AList< TMDCWireHit > &axialHits, const AList< TMDCWireHit > &stereoHits, AList< TTrack > &tracks, AList< TTrack > &tracks2D)
 main function
 
void clear (void)
 cleans all members of this class
 
- Public Member Functions inherited from TFinderBase
 TFinderBase ()
 Constructor.
 
virtual ~TFinderBase ()
 Destructor.
 
virtual std::string name (void) const =0
 returns name.
 
virtual std::string version (void) const =0
 returns version.
 
virtual void dump (const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
 dumps debug information.
 
virtual int debugLevel (void) const
 returns debug level.
 
virtual void clear (void)=0
 clear internal information.
 
virtual int debugLevel (int)
 sets debug level.
 
virtual bool doStereo (bool)
 sets flag to reconstruct 3D.
 
virtual bool doSalvage (bool)
 sets flag to salvage hits.
 
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. Return value = (0, +, -) means (success, warning, fatal error).
 

Detailed Description

Definition at line 26 of file TCurlFinder.h.

Constructor & Destructor Documentation

◆ TCurlFinder() [1/2]

TCurlFinder::TCurlFinder ( void  )

Definition at line 43 of file TCurlFinder.cxx.

44 : m_builder("CurlBuilder"),
45 m_fitter("TCurlFinder Fitter"),
46 m_debugCdcFrame(false),
47 m_debugPlotFlag(0),
48 m_debugFileNumber(0) {
49 // *****NOTE*****
50 // Do not use this!!!!!
51 // Because parameters can not be set correctly.
52}

◆ ~TCurlFinder()

TCurlFinder::~TCurlFinder ( void  )

Definition at line 168 of file TCurlFinder.cxx.

168 {
169}

◆ TCurlFinder() [2/2]

TCurlFinder::TCurlFinder ( const unsigned  min_segment,
const unsigned  min_salvage,
const double  bad_distance_for_salvage,
const double  good_distance_for_salvage,
const unsigned  min_sequence,
const unsigned  min_fullwire,
const double  range_for_axial_search,
const double  range_for_stereo_search,
const unsigned  superlayer_for_stereo_search,
const double  range_for_axial_last2d_search,
const double  range_for_stereo_last2d_search,
const double  trace2d_distance,
const double  trace2d_first_distance,
const double  trace3d_distance,
const unsigned  determine_one_track,
const double  selector_max_impact,
const double  selector_max_sigma,
const double  selector_strange_pz,
const double  selector_replace_dz,
const unsigned  stereo_2dfind,
const unsigned  merge_exe,
const double  merge_ratio,
const double  merge_z_diff,
const double  mask_distance,
const double  ratio_used_wire,
const double  range_for_stereo1,
const double  range_for_stereo2,
const double  range_for_stereo3,
const double  range_for_stereo4,
const double  range_for_stereo5,
const double  range_for_stereo6,
const double  z_cut,
const double  z_diff_for_last_attend,
const unsigned  svd_reconstruction,
const double  min_svd_electrons,
const unsigned  on_correction,
const unsigned  output_2dtracks,
const unsigned  curl_version,
const double  minimum_seedLength,
const double  minimum_2DTrackLength,
const double  minimum_3DTrackLength,
const double  minimum_closeHitsLength,
const double  MIN_RADIUS_OF_STRANGE_TRACK,
const double  ULTIMATE_MIN_RADIUS_OF_STRANGE_TRACK 
)

Definition at line 54 of file TCurlFinder.cxx.

103 : m_builder("CurlBuilder"),
104 m_fitter("TCurlFinder Fitter"),
105 m_debugCdcFrame(false),
106 m_debugPlotFlag(0),
107 m_debugFileNumber(0) {
108 StatusCode scmgn = Gaudi::svcLocator()->service("MagneticFieldSvc",m_pmgnIMF);
109 if(scmgn!=StatusCode::SUCCESS) {
110 std::cout<< __FILE__<<" Unable to open Magnetic field service"<<std::endl;
111 }
112 //...Set Parameter
113 m_param.MIN_SEGMENT = min_segment;
114 m_param.MIN_SALVAGE = min_salvage;
115 m_param.BAD_DISTANCE_FOR_SALVAGE = bad_distance_for_salvage;
116 m_param.GOOD_DISTANCE_FOR_SALVAGE = good_distance_for_salvage;
117 m_param.MIN_SEQUENCE = min_sequence;
118 m_param.MAX_FULLWIRE = min_fullwire;
119 m_param.RANGE_FOR_AXIAL_SEARCH = range_for_axial_search;
120 m_param.RANGE_FOR_STEREO_SEARCH = range_for_stereo_search;
121 m_param.SUPERLAYER_FOR_STEREO_SEARCH = superlayer_for_stereo_search;
122 m_param.RANGE_FOR_AXIAL_LAST2D_SEARCH = range_for_axial_last2d_search;
123 m_param.RANGE_FOR_STEREO_LAST2D_SEARCH = range_for_stereo_last2d_search;
124 m_param.TRACE2D_DISTANCE = trace2d_distance;
125 m_param.TRACE2D_FIRST_SUPERLAYER = trace2d_first_distance;
126 m_param.TRACE3D_DISTANCE = trace3d_distance;
127 m_param.DETERMINE_ONE_TRACK = determine_one_track;
128 //
129 m_param.SELECTOR_MAX_IMPACT = selector_max_impact;
130 m_param.SELECTOR_MAX_SIGMA = selector_max_sigma;
131 m_param.SELECTOR_STRANGE_PZ = selector_strange_pz;
132 m_param.SELECTOR_REPLACE_DZ = selector_replace_dz;
133 //
134 m_param.STEREO_2DFIND = stereo_2dfind;
135 m_param.MERGE_EXE = merge_exe;
136 m_param.MERGE_RATIO = merge_ratio;
137 m_param.MERGE_Z_DIFF = merge_z_diff;
138 m_param.MASK_DISTANCE = mask_distance;
139 m_param.RATIO_USED_WIRE = ratio_used_wire;
140 m_param.RANGE_FOR_STEREO_FIRST = range_for_stereo1;
141 m_param.RANGE_FOR_STEREO_SECOND = range_for_stereo2;
142 m_param.RANGE_FOR_STEREO_THIRD = range_for_stereo3;
143 m_param.RANGE_FOR_STEREO_FORTH = range_for_stereo4;
144 m_param.RANGE_FOR_STEREO_FIFTH = range_for_stereo5;
145 m_param.RANGE_FOR_STEREO_SIXTH = range_for_stereo6;
146 //
147 m_param.Z_CUT = z_cut;
148 m_param.Z_DIFF_FOR_LAST_ATTEND = z_diff_for_last_attend;
149 m_param.SVD_RECONSTRUCTION = svd_reconstruction;
150 m_param.MIN_SVD_ELECTRONS = min_svd_electrons;
151 m_param.ON_CORRECTION = on_correction;
152 m_param.OUTPUT_2DTRACKS = output_2dtracks;
153 m_param.CURL_VERSION = curl_version;
154 m_param.now();
155 //jialk
156 m_param.minimum_seedLength = minimum_seedLength;
157 m_param.minimum_2DTrackLength = minimum_2DTrackLength;
158 m_param.minimum_3DTrackLength = minimum_3DTrackLength;
159 m_param.minimum_closeHitsLength = minimum_closeHitsLength;
160 m_param.MIN_RADIUS_OF_STRANGE_TRACK = MIN_RADIUS_OF_STRANGE_TRACK;
161 m_param.ULTIMATE_MIN_RADIUS_OF_STRANGE_TRACK = ULTIMATE_MIN_RADIUS_OF_STRANGE_TRACK;
162
163
164 //...Set up TBuilder...
165 m_builder.setParam(m_param);
166}
void setParam(const TCurlFinderParameter &)

Member Function Documentation

◆ clear()

void TCurlFinder::clear ( void  )
virtual

cleans all members of this class

Implements TFinderBase.

Definition at line 552 of file TCurlFinder.cxx.

552 {
553 // This is to clear this Class(TCurlFinder) in TrkReco.cc .
554 // Private members are cleaned.
555 HepAListDeleteAll(m_allAxialHitsOriginal);
556 HepAListDeleteAll(m_allStereoHitsOriginal);
557 HepAListDeleteAll(m_segmentList);
558 HepAListDeleteAll(m_allCircles);
559 HepAListDeleteAll(m_allTracks);
560
561 m_unusedAxialHitsOriginal.removeAll();
562 m_unusedStereoHitsOriginal.removeAll();
563 m_unusedAxialHits.removeAll();
564 m_unusedStereoHits.removeAll();
565 m_removedHits.removeAll();
566 m_circles.removeAll();
567 m_tracks.removeAll();
568 m_2dTracks.removeAll();
569//Liuqg 060917
570 for(int i=0;i<19;++i)
571 m_unusedAxialHitsOnEachLayer[i].removeAll();
572 for(int i=0;i<24;++i)
573 m_unusedStereoHitsOnEachLayer[i].removeAll();
574 for(int i=0;i<5;++i)
575 m_unusedAxialHitsOnEachSuperLayer[i].removeAll();
576 for(int i=0;i<6;++i)
577 m_unusedStereoHitsOnEachSuperLayer[i].removeAll();
578 m_hitsOnInnerSuperLayer.removeAll();
579}

Referenced by TrkReco::clear(), and TrkReco::finalize().

◆ doit()

int TCurlFinder::doit ( const AList< TMDCWireHit > &  axialHits,
const AList< TMDCWireHit > &  stereoHits,
AList< TTrack > &  tracks,
AList< TTrack > &  tracks2D 
)
virtual

main function

Implements TFinderBase.

Definition at line 585 of file TCurlFinder.cxx.

588 {
589#if (DEBUG_CURL_DUMP+DEBUG_CURL_GNUPLOT+DEBUG_CURL_MC)
590 Belle_event_Manager &evtMgr = Belle_event_Manager::get_manager();
591 debugMcFlag = 1;
592 if(evtMgr.count() != 0 &&
593 evtMgr[0].ExpMC() != 2)debugMcFlag = 0;// not MC
594 m_debugCdcFrame = false;
595#endif
596#if !(DEBUG_CURL_MC)
597#if DEBUG_CURL_DUMP
598 std::cout << "(TCurlFinder)Plot Menu : All Off = 0, Interactive = 1, All On = 2" << std::endl;
599 cin >> m_debugPlotFlag;
600#endif
601 // sub main functions #1, #2, #3
602 //...#1
603 makeWireHitsListsSegments(axialHits, stereoHits);
604#if DEBUG_CURL_SEGMENT
605 std::cout << "(TCurlFinder)# of segment = " << m_segmentList.length() << std::endl;
606 debugCheckSegments0();
607 debugCheckSegments1();
608 debugCheckSegments2();
609#endif
610 //...#2
611 if(checkSortSegments() == 0)return 0;
612#if DEBUG_CURL_DUMP
613 if(m_debugPlotFlag){
614 int noPlot = 1;
615 if(m_debugPlotFlag == 1){
616 std::cout << "(TCurlFinder) Do you want to see Segment Plot? : yes = 1, no = other #" << std::endl;
617 cin >> noPlot;
618 }
619 if(noPlot == 1){
620 for(int i=0;i<m_segmentList.length();++i)
621 plotSegment(m_segmentList[i]->list(),0);
622 }
623 }
624#endif
625 //...#3
626 makeCurlTracks(tracks,tracks2D);
627#else
628 makeWithMC(axialHits, stereoHits, tracks);
629#endif
630
631 //...iw 2001/01/26...
632 unsigned n = tracks2D.length();
633 for (unsigned i = 0; i < n; i++)
634 tracks2D[i]->quality(TrackQuality2D);
635 //...iw end...
636 return 0;
637}
#define TrackQuality2D
Definition: TTrack.h:47

Referenced by TrkReco::execute().

◆ name()

std::string TCurlFinder::name ( void  ) const
virtual

returns name.

Implements TFinderBase.

Definition at line 175 of file TCurlFinder.cxx.

175 {
176 return std::string("Curling Track Finder");
177}

◆ version()

std::string TCurlFinder::version ( void  ) const
virtual

returns version.

Implements TFinderBase.

Definition at line 180 of file TCurlFinder.cxx.

180 {
181 return std::string("3.00");
182}

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