13#ifndef TSegment0_FLAG_
14#define TSegment0_FLAG_
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;
56 void dump(
const std::string & message = std::string(
""),
57 const std::string & prefix = std::string(
""))
const;
110 void update(
void)
const;
113 void updateType(
void)
const;
116 void updateDuality(
void)
const;
126 mutable unsigned _innerWidth;
127 mutable unsigned _outerWidth;
128 mutable unsigned _innerMostLayer;
129 mutable unsigned _outerMostLayer;
132 mutable unsigned _nLayer;
133 mutable unsigned _clusterType;
134 mutable double _duality;
135 mutable unsigned _nDual;
136 mutable double _angle;
149CheckSegments(const CAList<TSegment0> & segmentList);
153CheckSegmentLink(const TSegment0 & base,
154 const TSegment0 & next,
161#ifdef TSegment0_NO_INLINE
165#define TSegment0_INLINE_DEFINE_HERE
168#ifdef TSegment0_INLINE_DEFINE_HERE
202 return _innerMostLayer;
209 return _outerMostLayer;
216 if (_clusterType == 0) updateType();
235 unsigned id = (
links())[0]->wire()->superLayerId();
239 unsigned n = list.length();
240 for (
unsigned i = 1; i <
n; i++) {
242 std::cout <<
"TSegment0::superLayerId !!! strange segment found";
243 std::cout << std::endl;
HepGeom::Point3D< double > HepPoint3D
unsigned NCoreLinks(const CAList< TSegment0 > &list)
returns # of core links in segments.
HepGeom::Vector3D< double > HepVector3D
AList< TMLink > Links(const TSegment0 &, const TTrack &)
returns AList of TMLink used for a track.
to specify 1-dim region or range by two floats
A class to relate TMDCWireHit and TTrack objects.
unsigned outerMostLayer(void) const
returns outer most layer.
void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
dumps debug information.
virtual unsigned objectType(void) const
returns type.
AList< TTrack > & tracks(void)
AList< TSegment0 > & innerLinks(void)
double duality(void) const
unsigned superLayerId() const
returns super layer id.
double distance(const TSegment0 &) const
calculates distance between two clusters. Smaller value indicates closer.
unsigned innerMostLayer(void) const
returns inner most layer.
Range rangeX(double min, double max) const
returns Range of x-coordinate of TMLinks.
AList< TSegment0 > split(void) const
returns a list of sub TSegments in this cluster. If cluster type is 1, 2, or 7, no cluster is returne...
const HepVector3D & direction(void) const
returns direction.
unsigned innerWidth(void) const
returns inner width.
unsigned outerWidth(void) const
returns outer width.
virtual ~TSegment0()
Destructor.
const HepPoint3D & position(void) const
returns position.
unsigned clusterType(void) const
returns cluster type. 0:empty, 1:short line, 2:long line, 3:V shage(from outside),...
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.