16#ifdef TRKRECO_DEBUG_DETAIL
21#ifndef CLHEP_POINT3D_H
22# include "CLHEP/Geometry/Point3D.h"
24#ifndef ENABLE_BACKWARDS_COMPATIBILITY
27#include "CLHEP/Geometry/Vector3D.h"
28#ifndef ENABLE_BACKWARDS_COMPATIBILITY
32#include "TrkReco/TMDCUtil.h"
33#include "TrkReco/TMLink.h"
34#include "TrkReco/TTrackBase.h"
38template <
class T>
class CAList;
40#define TSegmentCrowd 8
58 void dump(
const std::string& message = std::string(
"" ),
59 const std::string& prefix = std::string(
"" ) )
const;
141 void update(
void )
const;
144 void updateType(
void )
const;
147 void updateDuality(
void )
const;
155 double maxdDistance(
TMLink* )
const;
176 mutable unsigned _innerWidth;
177 mutable unsigned _outerWidth;
178 mutable unsigned _innerMostLayer;
179 mutable unsigned _outerMostLayer;
182 mutable unsigned _nLayer;
183 mutable unsigned _clusterType;
184 mutable double _duality;
185 mutable unsigned _nDual;
186 mutable double _angle;
247#ifdef TSegment_NO_INLINE
251# define TSegment_INLINE_DEFINE_HERE
254#ifdef TSegment_INLINE_DEFINE_HERE
288 return _innerMostLayer;
293 return _outerMostLayer;
297 if ( !
nLinks() )
return 0;
298 if ( _clusterType == 0 ) updateType();
307 unsigned id = (
links() )[0]->wire()->superLayerId();
310 const AList<TMLink>& list =
links();
311 unsigned n = list.length();
312 for (
unsigned i = 1; i <
n; i++ )
316 std::cout <<
"TSegment::superLayerId !!! strange segment found";
317 std::cout << std::endl;
HepGeom::Vector3D< double > HepVector3D
HepGeom::Point3D< double > HepPoint3D
HepGeom::Point3D< double > HepPoint3D
unsigned NMajorLinks(const TSegment &a)
returns # of links in the major link.
AList< TMLink > Links(const TSegment &, const TTrack &)
returns AList of TMLink used for a track.
unsigned NUniqueLinks(const TSegment &a)
checks property of segments.
HepGeom::Vector3D< double > HepVector3D
void SeparateCrowded(const AList< TSegment > &input, AList< TSegment > &isolated, AList< TSegment > &crowded)
returns isolated and crowded list.
TSegment * OuterMostUniqueLink(const TSegment &a)
returns a segment to the outer-most unique segment.
unsigned NLinkBranches(const TSegment &a)
returns # of link branches in the major link.
unsigned NCoreLinks(const CAList< TSegment > &list)
returns # of core links in segments.
AList< TSegment > UniqueLinks(const TSegment &a)
returns a list of unique segments in links.
AList< TSegment > MajorLinks(const TSegment &a)
returns a list of segments in major links.
unsigned SuperLayer(const AList< TSegment > &list)
returns super layer pattern.
to specify 1-dim region or range by two floats
A class to relate TMDCWireHit and TTrack objects.
A class to relate TMDCWireHit and TTrack objects.
unsigned outerWidth(void) const
returns outer width.
double duality(void) const
const AList< TMLink > & inners(void) const
returns TMLinks in inner/outer-most layer.
const HepVector3D & direction(void) const
returns direction.
virtual ~TSegment()
Destructor.
void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
dumps debug information.
const TMLink & center(void) const
returns a TMLink which is the closest to the center.
TSegment(const AList< TMLink > &)
const AList< TMLink > & outers(void) const
unsigned superLayerId() const
returns super layer id.
void solveThreeHits(void)
Range rangeX(double min, double max) const
returns Range of x-coordinate of TMLinks.
const AList< TSegment > & outerLinks(void) const
const HepPoint3D & lineTsf(const HepPoint3D &)
AList< TSegment > split(void) const
AList< TSegment > splitTsf(AList< TMLink > &)
virtual unsigned objectType(void) const
returns type.
unsigned state(void) const
double distance(const HepPoint3D &, const HepVector3D &) const
unsigned innerWidth(void) const
returns inner width.
const AList< TSegment > & innerLinks(void) const
unsigned innerMostLayer(void) const
returns inner most layer.
unsigned clusterType(void) const
void solveLR(void)
solve LR of hit in TSF.
AList< TSegment > & outerLinks(void)
const HepPoint3D & position(void) const
returns position.
unsigned width(void) const
returns width.
double distance(const TSegment &) const
calculates distance between two clusters. Smaller value indicates closer.
const HepPoint3D & outerPosition(void) const
unsigned outerMostLayer(void) const
returns outer most layer.
AList< TSegment > & innerLinks(void)
virtual unsigned objectType(void) const
returns type.
const HepPoint3D & lineTsf(void) const
return line of Tsf for pos and dir
AList< TTrack > & tracks(void)
A virtual class for a track class in tracking.
const AList< TMLink > & links(unsigned mask=0) const
unsigned nLinks(unsigned mask=0) const
returns # of masked TMLinks assigned to this track object.
void update(void) const
update cache.
A class to represent a track in tracking.