18#ifdef TRKRECO_DEBUG_DETAIL
23#define HEP_SHORT_NAMES
25#ifndef CLHEP_POINT3D_H
26#include "CLHEP/Geometry/Point3D.h"
28#ifndef ENABLE_BACKWARDS_COMPATIBILITY
32#include "CLHEP/Alist/ConstAList.h"
64 void dump(
const std::string & message = std::string(
""),
65 const std::string & prefix = std::string(
""))
const;
77 double pull(
void)
const;
89 double dPhi(
void)
const;
98 int zPair(
void)
const;
194 const unsigned fit2D(
const unsigned &);
195 unsigned fit2D(
void);
199 float drift(
void)
const;
200 float drift(
unsigned)
const;
201 float drift(
float,
unsigned);
202 double cDrift(
void)
const;
203 double cDrift(
unsigned)
const;
204 double cDrift(
double,
unsigned);
208 float dDrift(
unsigned)
const;
209 float dDrift(
float,
unsigned);
212 unsigned tsfTag(
void)
const;
213 unsigned tsfTag(
unsigned);
216 double tof(
void)
const;
343template <
class T>
class CAList;
357 const std::string & message = std::string(
""),
358 const std::string & prefix = std::string(
""));
361 const std::string & message = std::string(
""),
362 const std::string & prefix = std::string(
""));
374SortByX(
const void* a,
const void* b);
379#ifdef TMLink_NO_INLINE
383#define TMLink_INLINE_DEFINE_HERE
386#ifdef TMLink_INLINE_DEFINE_HERE
487 return _leftRight = a;
511 return _position = a;
523 return _positionD = a;
569 return (_onTrack-_onWire).mag() ;
665 if(i < 4)
return _arcZ[i];
666 std::cerr <<
"Error!! Please stop!!.....arcZ of TMLink!!! in TrkReco." << std::endl;
673 if(i < 4)
return _arcZ[i] = az;
674 std::cerr <<
"Error!! Please stop!!.....arcZ of TMLink!!! in TrkReco." << std::endl;
705 return _drift[a] = b;
717 return _cDrift[a] = b;
729 return _dDrift[a] = b;
735 return (_drift[0] + _drift[1]) / 2.;
741 return (_cDrift[0] + _cDrift[1]) / 2.;
747 return (_dDrift[0] + _dDrift[1]) / 2.;
AList< TMLink > StereoHits(const AList< TMLink > &links)
returns stereo hits.
HepGeom::Point3D< double > HepPoint3D
void Dump(const CAList< TMLink > &links, const std::string &message=std::string(""), const std::string &prefix=std::string(""))
dumps TMLinks.
AList< TMLink > SameSuperLayer(const AList< TMLink > &list, const TMLink &a)
returns links which are in the same super layer as 'a' or 'id'.
unsigned NAxialHits(const AList< TMLink > &links)
returns # of axial hits.
AList< TMLink > Edges(const AList< TMLink > &)
returns links which are edges. This function assumes that all TMLink's are in the same super layer.
unsigned SuperLayer(const AList< TMLink > &list)
returns super layer pattern.
unsigned Width(const AList< TMLink > &)
returns width(wire cell unit) of given AList<TMLink>. This function assumes that all TMLink's are in ...
void NHits(const AList< TMLink > &links, unsigned nHits[50])
returns # of hits per layer.
const TTrackHEP & Links2HEP(const AList< TMLink > &links)
returns TTrackHEP
AList< TMLink > AxialHits(const AList< TMLink > &links)
returns axial hits.
AList< TMLink > InOut(const AList< TMLink > &)
returns links which are in the inner most and outer most layer. This function assumes that all TMLink...
TMLink * OuterMost(const AList< TMLink > &links)
void NHitsSuperLayer(const AList< TMLink > &links, unsigned nHits[11])
returns # of hits per super layer.
unsigned NLayers(const AList< TMLink > &links)
returns # of layers.
TMLink * InnerMost(const AList< TMLink > &links)
returns the inner(outer)-most link.
unsigned NSuperLayers(const AList< TMLink > &links)
returns # of layers.
int SortByX(const void *a, const void *b)
AList< TMLink > Cores(const AList< TMLink > &input)
unsigned NStereoHits(const AList< TMLink > &links)
returns # of stereo hits.
AList< TMLink > SameLayer(const AList< TMLink > &list, const TMLink &a)
returns links which are in the same layer as 'a' or 'id'.
unsigned NMissingAxialSuperLayers(const AList< TMLink > &links)
void SeparateCores(const AList< TMLink > &input, AList< TMLink > &cores, AList< TMLink > &nonCores)
separate cores and non-cores.
int SortByWireId(const void *a, const void *b)
Sorter.
A class to represent a wire in MDC.
A class to relate TMDCWireHit and TTrack objects.
void setDriftTime(double)
add by jialk returns timeDrift after prop correction
double distance(void) const
returns distance between point on wire and on track.
const HepPoint3D & positionOnWire(void) const
returns the closest point on wire to a track.
double distancenew(void) const
TMLink * link(void) const
returns a pointer to a TMLink.
virtual ~TMLink()
Destructor.
TMLink * neighbor(unsigned int) const
returns neighbor TMLink.
double DriftTime(double, double) const
returs drift time
void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
dumps debug information.
const HepPoint3D & conf(const HepPoint3D &conf)
const HepPoint3D & xyPosition(void) const
returns middle position of a wire. z componet is 0.
const HepPoint3D & positionOnTrack(void) const
returns the closest point on track to wire.
int zPair(void) const
returns id# of the pair, if zStatus == 20 (2 consective hits).
double getDriftTime(void)
unsigned tsfTag(void) const
return tsfTag of links
unsigned leftRight(void) const
returns left-right. 0:left, 1:right, 2:wire
const HepPoint3D & arcZ(const unsigned=0) const
returns UseCathode flag
int zStatus(void) const
returns stauts of stereo hit
TTrack * track(void) const
returns a pointer to a track.
const TMDCWireHit * hit(void) const
returns a pointer to a hit.
void update(const HepPoint3D &onTrack, const HepPoint3D &onWire, unsigned leftRight, double pull)
sets results of fitting.
double tof(void) const
return time of flight
const HepPoint3D & positionD(void) const
float dDrift(void) const
returns/sets drift distance error.
double dPhi(void) const
returns dPhi to the closest point.
double pull(void) const
returns pull.
void neighbor(unsigned int, TMLink *)
sets neighbor TMLink.
double cDrift(void) const
float drift(void) const
returns/sets drift distance.
const HepPoint3D & position(void) const
returns position.
const TMDCWire *const wire(void) const
returns a pointer to a wire.
A class to represent a GEN_HEPEVT particle in tracking.
A class to represent a track in tracking.