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/TMDCUtil.h"
33#include "TrkReco/TMLink.h"
34#include "TrkReco/TTrackBase.h"
38template <
class T>
class CAList;
56 void dump(
const std::string& message = std::string(
"" ),
57 const std::string& prefix = std::string(
"" ) )
const;
112 void update(
void )
const;
115 void updateType(
void )
const;
118 void updateDuality(
void )
const;
128 mutable unsigned _innerWidth;
129 mutable unsigned _outerWidth;
130 mutable unsigned _innerMostLayer;
131 mutable unsigned _outerMostLayer;
134 mutable unsigned _nLayer;
135 mutable unsigned _clusterType;
136 mutable double _duality;
137 mutable unsigned _nDual;
138 mutable double _angle;
151CheckSegments(const CAList<TSegment0> & segmentList);
155CheckSegmentLink(const TSegment0 & base,
156 const TSegment0 & next,
163#ifdef TSegment0_NO_INLINE
167# define TSegment0_INLINE_DEFINE_HERE
170#ifdef TSegment0_INLINE_DEFINE_HERE
194 return _innerMostLayer;
199 return _outerMostLayer;
203 if ( !
nLinks() )
return 0;
204 if ( _clusterType == 0 ) updateType();
213 unsigned id = (
links() )[0]->wire()->superLayerId();
216 const AList<TMLink>& list =
links();
217 unsigned n = list.length();
218 for (
unsigned i = 1; i <
n; i++ )
222 std::cout <<
"TSegment0::superLayerId !!! strange segment found";
223 std::cout << std::endl;
HepGeom::Vector3D< double > HepVector3D
HepGeom::Point3D< double > HepPoint3D
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)
virtual ~TSegment0()
Destructor.
double distance(const HepPoint3D &, const HepVector3D &) const
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
TSegment0(const AList< TMLink > &)
const HepVector3D & direction(void) const
returns direction.
unsigned innerWidth(void) const
returns inner width.
unsigned outerWidth(void) const
returns outer width.
virtual unsigned objectType(void) const
returns type.
const HepPoint3D & position(void) const
returns position.
unsigned clusterType(void) const
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.