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

A class to find tracks with the conformal method. More...

#include <TConformalFinder0.h>

Inheritance diagram for TConformalFinder0:

Public Member Functions

 TConformalFinder0 (float maxSigma, float fraction, float stereoZ3, float stereoZ4, float stereoChisq3, float stereoChisq4, float stereoMaxSigma, unsigned fittingCorrections, float salvageLevel, bool cosmic)
 Constructor.
virtual ~TConformalFinder0 ()
 Destructor.
std::string name (void) const
 returns name.
std::string version (void) const
 returns version.
void dump (const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
 dumps debug information.
const AList< TMLink > & axialConformalLinks (void) const
 returns a list of conformal links.
const AList< TMLink > & stereoConformalLinks (void) const
 returns a list of conformal links.
void clear (void)
 clear internal information.
int doit (const AList< TMDCWireHit > &axialHits, const AList< TMDCWireHit > &stereoHits, AList< TTrack > &tracks, AList< TTrack > &tracks3D)
 finds tracks.
AList< AList< TSegment0 > > findSegments (const AList< TMLink > &in) const
 finds segments.
AList< AList< TSegment0 > > findSegments2 (const AList< TMLink > &in) const
AList< TSegment0findClusters (const THistogram &) const
 finds segments. (obsolete functions)
AList< TSegment0findClusters2 (const THistogram &) const
bool doStereo (bool)
 sets swtich for stereo reconstruction.
bool doSalvage (bool)
 sets switch for salvaging.
 TConformalFinder0 (float maxSigma, float fraction, float stereoZ3, float stereoZ4, float stereoChisq3, float stereoChisq4, float stereoMaxSigma, unsigned fittingCorrections, float salvageLevel, bool cosmic)
 Constructor.
virtual ~TConformalFinder0 ()
 Destructor.
std::string name (void) const
 returns name.
std::string version (void) const
 returns version.
void dump (const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
 dumps debug information.
const AList< TMLink > & axialConformalLinks (void) const
 returns a list of conformal links.
const AList< TMLink > & stereoConformalLinks (void) const
 returns a list of conformal links.
void clear (void)
 clear internal information.
int doit (const AList< TMDCWireHit > &axialHits, const AList< TMDCWireHit > &stereoHits, AList< TTrack > &tracks, AList< TTrack > &tracks3D)
 finds tracks.
AList< AList< TSegment0 > > findSegments (const AList< TMLink > &in) const
 finds segments.
AList< AList< TSegment0 > > findSegments2 (const AList< TMLink > &in) const
AList< TSegment0findClusters (const THistogram &) const
 finds segments. (obsolete functions)
AList< TSegment0findClusters2 (const THistogram &) const
bool doStereo (bool)
 sets swtich for stereo reconstruction.
bool doSalvage (bool)
 sets switch for salvaging.
 TConformalFinder0 (float maxSigma, float fraction, float stereoZ3, float stereoZ4, float stereoChisq3, float stereoChisq4, float stereoMaxSigma, unsigned fittingCorrections, float salvageLevel, bool cosmic)
 Constructor.
virtual ~TConformalFinder0 ()
 Destructor.
std::string name (void) const
 returns name.
std::string version (void) const
 returns version.
void dump (const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
 dumps debug information.
const AList< TMLink > & axialConformalLinks (void) const
 returns a list of conformal links.
const AList< TMLink > & stereoConformalLinks (void) const
 returns a list of conformal links.
void clear (void)
 clear internal information.
int doit (const AList< TMDCWireHit > &axialHits, const AList< TMDCWireHit > &stereoHits, AList< TTrack > &tracks, AList< TTrack > &tracks3D)
 finds tracks.
AList< AList< TSegment0 > > findSegments (const AList< TMLink > &in) const
 finds segments.
AList< AList< TSegment0 > > findSegments2 (const AList< TMLink > &in) const
AList< TSegment0findClusters (const THistogram &) const
 finds segments. (obsolete functions)
AList< TSegment0findClusters2 (const THistogram &) const
bool doStereo (bool)
 sets swtich for stereo reconstruction.
bool doSalvage (bool)
 sets switch for salvaging.
Public Member Functions inherited from TFinderBase
 TFinderBase ()
 Constructor.
virtual ~TFinderBase ()
 Destructor.
virtual int debugLevel (void) const
 returns debug level.
virtual int debugLevel (int)
 sets debug level.
 TFinderBase ()
 Constructor.
virtual ~TFinderBase ()
 Destructor.
virtual int debugLevel (void) const
 returns debug level.
virtual int debugLevel (int)
 sets debug level.
 TFinderBase ()
 Constructor.
virtual ~TFinderBase ()
 Destructor.
virtual int debugLevel (void) const
 returns debug level.
virtual int debugLevel (int)
 sets debug level.

Static Public Member Functions

static void conformalTransformation (const HepPoint3D &center, const AList< TMDCWireHit > &hits, AList< TMLink > &links)
static void conformalTransformationDriftCircle (const HepPoint3D &center, const AList< TMDCWireHit > &hits, AList< TMLink > &links)
static void conformalTransformationRphi (const HepPoint3D &center, const AList< TMDCWireHit > &hits, AList< TMLink > &links)
static void conformalTransformation (const HepPoint3D &center, const AList< TMDCWireHit > &hits, AList< TMLink > &links)
static void conformalTransformationDriftCircle (const HepPoint3D &center, const AList< TMDCWireHit > &hits, AList< TMLink > &links)
static void conformalTransformationRphi (const HepPoint3D &center, const AList< TMDCWireHit > &hits, AList< TMLink > &links)
static void conformalTransformation (const HepPoint3D &center, const AList< TMDCWireHit > &hits, AList< TMLink > &links)
static void conformalTransformationDriftCircle (const HepPoint3D &center, const AList< TMDCWireHit > &hits, AList< TMLink > &links)
static void conformalTransformationRphi (const HepPoint3D &center, const AList< TMDCWireHit > &hits, AList< TMLink > &links)

Detailed Description

A class to find tracks with the conformal method.

Definition at line 40 of file InstallArea/x86_64-el9-gcc13-dbg/include/TrkReco/TConformalFinder0.h.

Constructor & Destructor Documentation

◆ TConformalFinder0() [1/3]

TConformalFinder0::TConformalFinder0 ( float maxSigma,
float fraction,
float stereoZ3,
float stereoZ4,
float stereoChisq3,
float stereoChisq4,
float stereoMaxSigma,
unsigned fittingCorrections,
float salvageLevel,
bool cosmic )

Constructor.

Definition at line 30 of file TConformalFinder0.cxx.

34 : TFinderBase()
35 , _builder( 0 )
36 , _doStereo( true )
37 , _doSalvage( true )
38 , // liuqg
39 _fraction( fraction ) {
40
41 //...Parameters for a track...
42 _trackSelector.nLinks( 4 );
43 _trackSelector.nSuperLayers( 2 );
44 _trackSelector.minPt( 0.05 );
45 _trackSelector.maxImpact( 100. );
46 _trackSelector.maxSigma( maxSigma );
47 _trackSelector.nLinksStereo( 3 );
48 _trackSelector.maxDistance( 30. );
49
50 //...Make a builder...
51 if ( cosmic ) _builder = new TBuilderCosmic( "cosmic builder", salvageLevel );
52 else
53 _builder = new TBuilder0( "conformal builder", stereoZ3, stereoZ4, stereoChisq3,
54 stereoChisq4, stereoMaxSigma, fittingCorrections, salvageLevel );
55
56 //...Set up TBuilder...
57 _builder->trackSelector( _trackSelector );
58}
TFinderBase()
Constructor.

◆ ~TConformalFinder0() [1/3]

TConformalFinder0::~TConformalFinder0 ( )
virtual

Destructor.

Definition at line 60 of file TConformalFinder0.cxx.

60{ delete _builder; }

◆ TConformalFinder0() [2/3]

TConformalFinder0::TConformalFinder0 ( float maxSigma,
float fraction,
float stereoZ3,
float stereoZ4,
float stereoChisq3,
float stereoChisq4,
float stereoMaxSigma,
unsigned fittingCorrections,
float salvageLevel,
bool cosmic )

Constructor.

◆ ~TConformalFinder0() [2/3]

virtual TConformalFinder0::~TConformalFinder0 ( )
virtual

Destructor.

◆ TConformalFinder0() [3/3]

TConformalFinder0::TConformalFinder0 ( float maxSigma,
float fraction,
float stereoZ3,
float stereoZ4,
float stereoChisq3,
float stereoChisq4,
float stereoMaxSigma,
unsigned fittingCorrections,
float salvageLevel,
bool cosmic )

Constructor.

◆ ~TConformalFinder0() [3/3]

virtual TConformalFinder0::~TConformalFinder0 ( )
virtual

Destructor.

Member Function Documentation

◆ axialConformalLinks() [1/3]

const AList< TMLink > & TConformalFinder0::axialConformalLinks ( void ) const
inline

returns a list of conformal links.

Definition at line 174 of file InstallArea/x86_64-el9-gcc13-dbg/include/TrkReco/TConformalFinder0.h.

174 {
175 return _axialConfLinks;
176}

◆ axialConformalLinks() [2/3]

const AList< TMLink > & TConformalFinder0::axialConformalLinks ( void ) const

returns a list of conformal links.

◆ axialConformalLinks() [3/3]

const AList< TMLink > & TConformalFinder0::axialConformalLinks ( void ) const

returns a list of conformal links.

◆ clear() [1/3]

void TConformalFinder0::clear ( void )
virtual

clear internal information.

Implements TFinderBase.

Definition at line 73 of file TConformalFinder0.cxx.

73 {
74 HepAListDeleteAll( _axialConfLinks );
75 HepAListDeleteAll( _stereoConfLinks );
76 _unusedAxialConfLinks.removeAll();
77 _unusedStereoConfLinks.removeAll();
78 _goodAxialConfLinks.removeAll();
79 HepAListDeleteAll( _circles );
80 _tracks.removeAll();
81}

◆ clear() [2/3]

void TConformalFinder0::clear ( void )
virtual

clear internal information.

Implements TFinderBase.

◆ clear() [3/3]

void TConformalFinder0::clear ( void )
virtual

clear internal information.

Implements TFinderBase.

◆ conformalTransformation() [1/3]

void TConformalFinder0::conformalTransformation ( const HepPoint3D & center,
const AList< TMDCWireHit > & hits,
AList< TMLink > & links )
static

transforms hits into a conformal plane. 'center' is a center of the transformation. Z position of 'center' must be zero. Transformed positions are newly created, and are stored in 'links'.

Definition at line 83 of file TConformalFinder0.cxx.

85 {
86
87 unsigned nHits = hits.length();
88 if ( center == ORIGIN )
89 {
90 for ( unsigned i = 0; i < nHits; i++ )
91 {
92 TMDCWireHit* h = hits[i];
93 const HepPoint3D& p = h->xyPosition();
94
95 // zsl HepPoint3D cp(2. * p.x() / p.mag2(), 2. * p.y() / p.mag2());
96 HepPoint3D cp( 2. * p.x() / p.mag2(), 2. * p.y() / p.mag2(), 0. );
97 // std::cout<<" xypo "<<p<<" pos "<<cp<<std::endl;
98 links.append( new TMLink( 0, h, cp ) );
99 }
100 }
101 else
102 {
103 for ( unsigned i = 0; i < nHits; i++ )
104 {
105 TMDCWireHit* h = hits[i];
106 HepPoint3D p( h->xyPosition() - center );
107 HepPoint3D cp( 2. * p.x() / p.mag2(), 2. * p.y() / p.mag2(), 0. );
108 links.append( new TMLink( 0, h, cp ) );
109 }
110 }
111}
const HepPoint3D ORIGIN
Constants.
Definition TMDCUtil.cxx:47
HepGeom::Point3D< double > HepPoint3D
const HepPoint3D & xyPosition(void) const
returns drift time

◆ conformalTransformation() [2/3]

void TConformalFinder0::conformalTransformation ( const HepPoint3D & center,
const AList< TMDCWireHit > & hits,
AList< TMLink > & links )
static

transforms hits into a conformal plane. 'center' is a center of the transformation. Z position of 'center' must be zero. Transformed positions are newly created, and are stored in 'links'.

◆ conformalTransformation() [3/3]

void TConformalFinder0::conformalTransformation ( const HepPoint3D & center,
const AList< TMDCWireHit > & hits,
AList< TMLink > & links )
static

transforms hits into a conformal plane. 'center' is a center of the transformation. Z position of 'center' must be zero. Transformed positions are newly created, and are stored in 'links'.

◆ conformalTransformationDriftCircle() [1/3]

void TConformalFinder0::conformalTransformationDriftCircle ( const HepPoint3D & center,
const AList< TMDCWireHit > & hits,
AList< TMLink > & links )
static

transforms drift circle of hits into a conformal plane. transformed positions( x0, y0, r) are stored in 'links'.

Definition at line 113 of file TConformalFinder0.cxx.

115 { // added by Liuqg for Tsf
116 unsigned nHits = hits.length();
117 if ( center == ORIGIN )
118 {
119 for ( unsigned i = 0; i < nHits; i++ )
120 {
121 TMDCWireHit* h = hits[i];
122 const HepPoint3D& p = h->xyPosition();
123
124 const double r = 0.5 * ( h->drift( 0 ) + h->drift( 1 ) );
125 HepPoint3D cp( 2. * p.x() / p.mag2(), 2. * p.y() / p.mag2(), 0. );
126 // HepPoint3D cp2(100 * 2. * p.x() / (p.mag2() - r*r), 100 * 2. * p.y() /
127 //(p.mag2() - r*r), 0.);
128 HepPoint3D cp2( 2. * p.x() / ( p.mag2() - r * r ), 2. * p.y() / ( p.mag2() - r * r ),
129 0. );
130 // float cDrift = 100 * 2. * r / (p.mag2() - r*r);
131 double cDrift = 2. * r / ( p.mag2() - r * r );
132
133 links.append( new TMLink( 0, h, cp, cp2, cDrift ) );
134 }
135 }
136 else
137 {
138 for ( unsigned i = 0; i < nHits; i++ )
139 {
140 TMDCWireHit* h = hits[i];
141 HepPoint3D p( h->xyPosition() - center );
142
143 const double r = 0.5 * ( h->drift( 0 ) + h->drift( 1 ) );
144 HepPoint3D cp( 2. * p.x() / p.mag2(), 2. * p.y() / p.mag2(), 0. );
145 // unit of the following is km-1, origin is cm.
146 // HepPoint3D cp2(100 * 2. * p.x() / (p.mag2() - r*r), 100 * 2. * p.y() /
147 //(p.mag2() - r*r), 0.);
148 HepPoint3D cp2( 2. * p.x() / ( p.mag2() - r * r ), 2. * p.y() / ( p.mag2() - r * r ),
149 0. );
150 // float cDrift = 100 * 2. * r / (p.mag2() - r*r);
151 double cDrift = 2. * r / ( p.mag2() - r * r );
152
153 links.append( new TMLink( 0, h, cp, cp2, cDrift ) );
154 }
155 }
156}
float drift(unsigned) const
returns drift distance.

Referenced by TConformalFinder::doit(), and TrkReco::execute().

◆ conformalTransformationDriftCircle() [2/3]

void TConformalFinder0::conformalTransformationDriftCircle ( const HepPoint3D & center,
const AList< TMDCWireHit > & hits,
AList< TMLink > & links )
static

transforms drift circle of hits into a conformal plane. transformed positions( x0, y0, r) are stored in 'links'.

◆ conformalTransformationDriftCircle() [3/3]

void TConformalFinder0::conformalTransformationDriftCircle ( const HepPoint3D & center,
const AList< TMDCWireHit > & hits,
AList< TMLink > & links )
static

transforms drift circle of hits into a conformal plane. transformed positions( x0, y0, r) are stored in 'links'.

◆ conformalTransformationRphi() [1/3]

void TConformalFinder0::conformalTransformationRphi ( const HepPoint3D & center,
const AList< TMDCWireHit > & hits,
AList< TMLink > & links )
static

transforms hits into a conformal plane. 'center' is a center of the transformation. Z position of 'center' must be zero. Transformed positions are newly created, and are stored in 'links'.

Definition at line 158 of file TConformalFinder0.cxx.

160 {
161
162 unsigned nHits = hits.length();
163 if ( center == ORIGIN )
164 {
165 for ( unsigned i = 0; i < nHits; i++ )
166 {
167 TMDCWireHit* h = hits[i];
168 const HepPoint3D& p = h->xyPosition();
169 HepPoint3D cp( 2. * p.x() / p.mag2(), 2. * p.y() / p.mag2(), 0. );
170 double r = log( cp.mag() ) + 4.;
171 double phi = atan2( cp.y(), cp.x() ) + M_PI;
172 HepPoint3D cpt( phi, r, 0. );
173 links.append( new TMLink( 0, h, cpt ) );
174 }
175 }
176 else
177 {
178 for ( unsigned i = 0; i < nHits; i++ )
179 {
180 TMDCWireHit* h = hits[i];
181 HepPoint3D p( h->xyPosition() - center );
182 HepPoint3D cp( 2. * p.x() / p.mag2(), 2. * p.y() / p.mag2(), 0. );
183 double r = log( cp.mag() ) + 4.;
184 double phi = atan2( cp.y(), cp.x() ) + M_PI;
185 HepPoint3D cpt( phi, r, 0. );
186 links.append( new TMLink( 0, h, cpt ) );
187 }
188 }
189}
#define M_PI
Definition TConstant.h:4

Referenced by doit(), and TFastFinder::doit().

◆ conformalTransformationRphi() [2/3]

void TConformalFinder0::conformalTransformationRphi ( const HepPoint3D & center,
const AList< TMDCWireHit > & hits,
AList< TMLink > & links )
static

transforms hits into a conformal plane. 'center' is a center of the transformation. Z position of 'center' must be zero. Transformed positions are newly created, and are stored in 'links'.

◆ conformalTransformationRphi() [3/3]

void TConformalFinder0::conformalTransformationRphi ( const HepPoint3D & center,
const AList< TMDCWireHit > & hits,
AList< TMLink > & links )
static

transforms hits into a conformal plane. 'center' is a center of the transformation. Z position of 'center' must be zero. Transformed positions are newly created, and are stored in 'links'.

◆ doit() [1/3]

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

finds tracks.

Implements TFinderBase.

Definition at line 556 of file TConformalFinder0.cxx.

558 {
559
560 //...For debug...
561 if ( debugLevel() )
562 {
563 std::cout << name() << " ... processing" << std::endl;
564 std::cout << " axialHits=" << axialHits.length();
565 std::cout << ",stereoHits=" << stereoHits.length();
566 std::cout << ",tracks=" << tracks.length();
567 std::cout << std::endl;
568
569 if ( debugLevel() > 1 )
570 std::cout << name() << " ... conformal transformation0" << std::endl;
571 }
572
573 //...Conformal transformation with IP constraint...
574 conformalTransformationRphi( ORIGIN, axialHits, _axialConfLinks );
575 conformalTransformationRphi( ORIGIN, stereoHits, _stereoConfLinks );
576 _unusedAxialConfLinks.append( _axialConfLinks );
577 _unusedStereoConfLinks.append( _stereoConfLinks );
578 AList<TMLink> unusedConfLinks;
579 if ( _doSalvage )
580 {
581 unusedConfLinks.append( _axialConfLinks );
582 unusedConfLinks.append( _stereoConfLinks );
583 }
584
585 //...For debug...
586 if ( debugLevel() > 1 ) std::cout << name() << " ... selecting good hits" << std::endl;
587
588 //...Select good axial hits...
589 AList<TMLink> goodHits;
590 int nLinks = _axialConfLinks.length();
591 for ( unsigned i = 0; i < nLinks; i++ )
592 {
593 TMLink* l = _axialConfLinks[i];
594 const TMDCWireHit& h = *l->hit();
595 // liuqg if ((h.state() & WireHitIsolated) &&
596 // (h.state() & WireHitContinuous))
597 goodHits.append( l );
598 }
599 //...Main algorithm...
600 standardFinding( goodHits, unusedConfLinks, _fraction );
601
602 //...Main algorithm for second trial...
603 specialFinding( goodHits, unusedConfLinks, _fraction );
604
605 //...For debug...
606 if ( debugLevel() )
607 {
608 std::cout << name() << " ... processed : ";
609 std::cout << "good hits=" << goodHits.length();
610 std::cout << ",tracks=" << _tracks.length();
611 std::cout << std::endl;
612 }
613
614 tracks.append( _tracks );
615 return 0;
616}
static void conformalTransformationRphi(const HepPoint3D &center, const AList< TMDCWireHit > &hits, AList< TMLink > &links)
virtual int debugLevel(void) const
returns debug level.

◆ doit() [2/3]

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

finds tracks.

Implements TFinderBase.

◆ doit() [3/3]

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

finds tracks.

Implements TFinderBase.

◆ doSalvage() [1/3]

bool TConformalFinder0::doSalvage ( bool a)
inlinevirtual

sets switch for salvaging.

Reimplemented from TFinderBase.

Definition at line 184 of file InstallArea/x86_64-el9-gcc13-dbg/include/TrkReco/TConformalFinder0.h.

184{ return _doSalvage = a; }

◆ doSalvage() [2/3]

bool TConformalFinder0::doSalvage ( bool )
virtual

sets switch for salvaging.

Reimplemented from TFinderBase.

◆ doSalvage() [3/3]

bool TConformalFinder0::doSalvage ( bool )
virtual

sets switch for salvaging.

Reimplemented from TFinderBase.

◆ doStereo() [1/3]

bool TConformalFinder0::doStereo ( bool a)
inlinevirtual

sets swtich for stereo reconstruction.

Reimplemented from TFinderBase.

Definition at line 182 of file InstallArea/x86_64-el9-gcc13-dbg/include/TrkReco/TConformalFinder0.h.

182{ return _doStereo = a; }

◆ doStereo() [2/3]

bool TConformalFinder0::doStereo ( bool )
virtual

sets swtich for stereo reconstruction.

Reimplemented from TFinderBase.

◆ doStereo() [3/3]

bool TConformalFinder0::doStereo ( bool )
virtual

sets swtich for stereo reconstruction.

Reimplemented from TFinderBase.

◆ dump() [1/3]

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

dumps debug information.

Reimplemented from TFinderBase.

Definition at line 62 of file TConformalFinder0.cxx.

62 {
63 std::cout << pre;
64 TFinderBase::dump( msg );
65 std::cout << pre;
66 if ( msg.find( "state" ) != std::string::npos )
67 {
68 std::cout << "#axialConfPos=" << _axialConfLinks.length();
69 std::cout << ",#stereoConfPos=" << _stereoConfLinks.length();
70 }
71}
virtual void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
dumps debug information.

◆ dump() [2/3]

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

dumps debug information.

Reimplemented from TFinderBase.

◆ dump() [3/3]

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

dumps debug information.

Reimplemented from TFinderBase.

◆ findClusters() [1/3]

AList< TSegment0 > TConformalFinder0::findClusters ( const THistogram & hist) const

finds segments. (obsolete functions)

Definition at line 191 of file TConformalFinder0.cxx.

191 {
192
193 //...Obtain raw clusters...
194 AList<TSegment0> list = hist.clusters0();
195 unsigned n = list.length();
196 if ( n == 0 ) return list;
197
198#ifdef TRKRECO_DEBUG_DETAIL
199 // static TChecker chk0("clusters before splitting");
200 // chk0.check(list);
201 // chk0.dump("detail", " ");
202#endif
203
204 //...Examine each cluster...
205 AList<TSegment0> splitted;
206 for ( unsigned i = 0; i < n; i++ )
207 {
208 TSegment0* c = list[i];
209
210 AList<TSegment0> newClusters = c->split();
211 if ( newClusters.length() == 0 )
212 {
213 c->solveDualHits();
214 continue;
215 }
216
217 list.append( newClusters );
218 splitted.append( c );
219#ifdef TRKRECO_DEBUG_DETAIL
220 c->dump( "hits", " " );
221 std::cout << " ... splitted as" << std::endl;
222 for ( unsigned j = 0; j < newClusters.length(); j++ )
223 {
224 std::cout << " " << j << " : ";
225 newClusters[j]->dump( "hits" );
226 }
227#endif
228 }
229 list.remove( splitted );
230 HepAListDeleteAll( splitted );
231
232#ifdef TRKRECO_DEBUG_DETAIL
233 // static TChecker chk1("clusters after splitting");
234 // chk1.check(list);
235 // chk1.dump("detail", " ");
236#endif
237
238 return list;
239}
const Int_t n
AList< TSegment0 > clusters0(void) const
returns an AList<TSegment0> of clusters.
void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
dumps debug information.
Definition TSegment0.cxx:49
int solveDualHits(void)
AList< TSegment0 > split(void) const

Referenced by findSegments().

◆ findClusters() [2/3]

AList< TSegment0 > TConformalFinder0::findClusters ( const THistogram & ) const

finds segments. (obsolete functions)

◆ findClusters() [3/3]

AList< TSegment0 > TConformalFinder0::findClusters ( const THistogram & ) const

finds segments. (obsolete functions)

◆ findClusters2() [1/3]

AList< TSegment0 > TConformalFinder0::findClusters2 ( const THistogram & hist) const

Definition at line 241 of file TConformalFinder0.cxx.

241 {
242
243 //...Obtain raw clusters...
244 AList<TSegment0> list = hist.clusters0();
245 unsigned n = list.length();
246 if ( n == 0 ) return list;
247
248#ifdef TRKRECO_DEBUG_DETAIL
249 // static TChecker chk0("clusters before splitting (2)");
250 // chk0.check(list);
251 // chk0.dump("detail", " ");
252#endif
253
254 //...Examine each cluster...
255 for ( unsigned i = 0; i < n; i++ )
256 {
257 TSegment0* c = list[i];
258 unsigned type = c->clusterType();
259
260 if ( ( type == 1 ) || ( type == 2 ) )
261 {
262 c->dump( "hits mc", " " );
263 c->solveDualHits();
264 }
265 }
266
267#ifdef TRKRECO_DEBUG_DETAIL
268 // static TChecker chk1("clusters after splitting (2)");
269 // chk1.check(list);
270 // chk1.dump("detail", " ");
271#endif
272
273 return list;
274}

◆ findClusters2() [2/3]

AList< TSegment0 > TConformalFinder0::findClusters2 ( const THistogram & ) const

◆ findClusters2() [3/3]

AList< TSegment0 > TConformalFinder0::findClusters2 ( const THistogram & ) const

◆ findSegments() [1/3]

AList< AList< TSegment0 > > TConformalFinder0::findSegments ( const AList< TMLink > & in) const

finds segments.

Definition at line 877 of file TConformalFinder0.cxx.

877 {
878 AList<AList<TSegment0>> a;
879
880#ifdef TRKRECO_DEBUG_DETAIL
881 std::cout << name() << " ... finding segments : given hits =" << std::endl;
882 Dump( in, "sort" );
883#endif
884
885 //...Create lists of links for each super layer...
886 AList<TMLink> links[5];
887 unsigned n = in.length();
888 for ( unsigned i = 0; i < n; i++ )
889 {
890 TMLink& l = *in[i];
891 // links[l.wire()->superLayerId() / 2].append(l);
892 links[l.wire()->axialStereoLayerId() / 4].append( l );
893 }
894
895 //...Create phi hists and clusters for each super layer...
896 THistogram* hist[5];
897 hist[0] = new THistogram( 76 );
898 hist[1] = new THistogram( 100 );
899 hist[2] = new THistogram( 128 );
900 hist[3] = new THistogram( 256 );
901 hist[4] = new THistogram( 288 );
902 for ( unsigned i = 0; i < 5; i++ )
903 {
904 hist[i]->fillX( links[i] );
905 AList<TSegment0>* b = new AList<TSegment0>();
906 a.append( b );
907 b->append( findClusters( *hist[i] ) );
908 delete hist[i];
909 }
910
911 return a;
912}
AList< TSegment0 > findClusters(const THistogram &) const
finds segments. (obsolete functions)
void fillX(const AList< TMLink > &links)
fills with hits.
unsigned axialStereoLayerId(void) const
returns id of axial or stereo id.

◆ findSegments() [2/3]

AList< AList< TSegment0 > > TConformalFinder0::findSegments ( const AList< TMLink > & in) const

finds segments.

◆ findSegments() [3/3]

AList< AList< TSegment0 > > TConformalFinder0::findSegments ( const AList< TMLink > & in) const

finds segments.

◆ findSegments2() [1/3]

AList< AList< TSegment0 > > TConformalFinder0::findSegments2 ( const AList< TMLink > & in) const

◆ findSegments2() [2/3]

AList< AList< TSegment0 > > TConformalFinder0::findSegments2 ( const AList< TMLink > & in) const

◆ findSegments2() [3/3]

AList< AList< TSegment0 > > TConformalFinder0::findSegments2 ( const AList< TMLink > & in) const

◆ name() [1/3]

std::string TConformalFinder0::name ( void ) const
inlinevirtual

returns name.

Implements TFinderBase.

Definition at line 186 of file InstallArea/x86_64-el9-gcc13-dbg/include/TrkReco/TConformalFinder0.h.

186{ return "Conformal Finder 0"; }

Referenced by doit(), and findSegments().

◆ name() [2/3]

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

returns name.

Implements TFinderBase.

◆ name() [3/3]

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

returns name.

Implements TFinderBase.

◆ stereoConformalLinks() [1/3]

const AList< TMLink > & TConformalFinder0::stereoConformalLinks ( void ) const
inline

returns a list of conformal links.

Definition at line 178 of file InstallArea/x86_64-el9-gcc13-dbg/include/TrkReco/TConformalFinder0.h.

178 {
179 return _stereoConfLinks;
180}

◆ stereoConformalLinks() [2/3]

const AList< TMLink > & TConformalFinder0::stereoConformalLinks ( void ) const

returns a list of conformal links.

◆ stereoConformalLinks() [3/3]

const AList< TMLink > & TConformalFinder0::stereoConformalLinks ( void ) const

returns a list of conformal links.

◆ version() [1/3]

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

returns version.

Implements TFinderBase.

Definition at line 28 of file TConformalFinder0.cxx.

28{ return "1.63"; }

◆ version() [2/3]

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

returns version.

Implements TFinderBase.

◆ version() [3/3]

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

returns version.

Implements TFinderBase.


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