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/TTrackBase.h"
33#include "TrkReco/TMDCUtil.h"
34#include "TrkReco/TMLink.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;
90 unsigned width(
void)
const;
128 unsigned state(
void)
const;
129 unsigned state(
unsigned);
139 void update(
void)
const;
142 void updateType(
void)
const;
145 void updateDuality(
void)
const;
152 double maxdDistance(
TMLink *)
const;
172 mutable unsigned _innerWidth;
173 mutable unsigned _outerWidth;
174 mutable unsigned _innerMostLayer;
175 mutable unsigned _outerMostLayer;
178 mutable unsigned _nLayer;
179 mutable unsigned _clusterType;
180 mutable double _duality;
181 mutable unsigned _nDual;
182 mutable double _angle;
252#ifdef TSegment_NO_INLINE
256#define TSegment_INLINE_DEFINE_HERE
259#ifdef TSegment_INLINE_DEFINE_HERE
307 return _innerMostLayer;
314 return _outerMostLayer;
321 if (_clusterType == 0) updateType();
340 unsigned id = (
links())[0]->wire()->superLayerId();
344 unsigned n = list.length();
345 for (
unsigned i = 1; i <
n; i++) {
347 std::cout <<
"TSegment::superLayerId !!! strange segment found";
348 std::cout << std::endl;
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.
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.
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.
virtual ~TSegment()
Destructor.
AList< TSegment > split(void) const
returns a list of sub TSegments in this cluster. If cluster type is 1, 2, or 7, no cluster is returne...
AList< TSegment > splitTsf(AList< TMLink > &)
virtual unsigned objectType(void) const
returns type.
unsigned state(void) const
unsigned innerWidth(void) const
returns inner width.
unsigned innerMostLayer(void) const
returns inner most layer.
unsigned clusterType(void) const
returns cluster type. 0:empty, 1:short line, 2:long line, 3:V shage(from outside),...
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)
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
returns a list of masked TMLinks assigned to this track. 'mask' will be applied if mask is not 0.
unsigned nLinks(unsigned mask=0) const
returns # of masked TMLinks assigned to this track object.
A class to represent a track in tracking.