CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes
TkGluedMeasurementDet Class Reference

#include <TkGluedMeasurementDet.h>

Inheritance diagram for TkGluedMeasurementDet:
MeasurementDet

Classes

class  HitCollectorForFastMeasurements
 
class  HitCollectorForRecHits
 

Public Member Functions

virtual std::vector
< TrajectoryMeasurement
fastMeasurements (const TrajectoryStateOnSurface &stateOnThisDet, const TrajectoryStateOnSurface &startingState, const Propagator &, const MeasurementEstimator &) const
 
bool hasBadComponents (const TrajectoryStateOnSurface &tsos) const
 return TRUE if at least one of the mono and stereo components has badChannels More...
 
bool isActive () const
 return TRUE if both mono and stereo components are active More...
 
const TkStripMeasurementDetmonoDet () const
 
template<typename Collector >
void projectOnGluedDet (Collector &collector, const RecHitContainer &hits, const GlobalVector &gdir) const
 
virtual RecHitContainer recHits (const TrajectoryStateOnSurface &) const
 
const GluedGeomDetspecificGeomDet () const
 
const TkStripMeasurementDetstereoDet () const
 
 TkGluedMeasurementDet (const GluedGeomDet *gdet, const SiStripRecHitMatcher *matcher, const MeasurementDet *monoDet, const MeasurementDet *stereoDet)
 
- Public Member Functions inherited from MeasurementDet
virtual const GeomDetgeomDet () const
 
 MeasurementDet (const GeomDet *gdet)
 
const Surface::PositionTypeposition () const
 
const BoundSurfacesurface () const
 

Private Member Functions

void checkHitProjection (const TransientTrackingRecHit &hit, const TrajectoryStateOnSurface &ts, const GeomDet &det) const
 
void checkProjection (const TrajectoryStateOnSurface &ts, const RecHitContainer &monoHits, const RecHitContainer &stereoHits) const
 
template<typename Collector >
void collectRecHits (const TrajectoryStateOnSurface &, Collector &coll) const
 
template<typename Collector >
void doubleMatch (const TrajectoryStateOnSurface &ts, Collector &collector) const
 
RecHitContainer projectOnGluedDet (const RecHitContainer &hits, const TrajectoryStateOnSurface &ts) const
 
template<typename HitCollector >
void projectOnGluedDet (HitCollector &collector, const RecHitContainer &hits, const GlobalVector &gdir) const
 
bool testStrips (const TrajectoryStateOnSurface &tsos, const BoundPlane &gluedPlane, const TkStripMeasurementDet &mdet) const
 Test the strips on one of the two dets with projection. More...
 

Private Attributes

const GluedGeomDettheGeomDet
 
const SiStripRecHitMatchertheMatcher
 
const TkStripMeasurementDettheMonoDet
 
const TkStripMeasurementDettheStereoDet
 

Additional Inherited Members

- Public Types inherited from MeasurementDet
typedef
TransientTrackingRecHit::ConstRecHitContainer 
RecHitContainer
 

Detailed Description

Definition at line 14 of file TkGluedMeasurementDet.h.

Constructor & Destructor Documentation

TkGluedMeasurementDet::TkGluedMeasurementDet ( const GluedGeomDet gdet,
const SiStripRecHitMatcher matcher,
const MeasurementDet monoDet,
const MeasurementDet stereoDet 
)

Definition at line 22 of file TkGluedMeasurementDet.cc.

References theMonoDet, and theStereoDet.

25  :
26  MeasurementDet(gdet), theGeomDet(gdet),
27  theMatcher(matcher),
28  theMonoDet( dynamic_cast<const TkStripMeasurementDet *>(monoDet)),
29  theStereoDet( dynamic_cast<const TkStripMeasurementDet *>(stereoDet))
30 {
31  if ((theMonoDet == 0) || (theStereoDet == 0)) {
32  throw MeasurementDetException("TkGluedMeasurementDet ERROR: Trying to glue a det which is not a TkStripMeasurementDet");
33  }
34 
35 }
const TkStripMeasurementDet * theMonoDet
const GluedGeomDet * theGeomDet
MeasurementDet(const GeomDet *gdet)
const SiStripRecHitMatcher * theMatcher
const TkStripMeasurementDet * theStereoDet

Member Function Documentation

void TkGluedMeasurementDet::checkHitProjection ( const TransientTrackingRecHit hit,
const TrajectoryStateOnSurface ts,
const GeomDet det 
) const
private

Definition at line 197 of file TkGluedMeasurementDet.cc.

References gather_cfg::cout, prof2calltree::cutoff, TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localPosition(), mag(), max(), LocalTrajectoryError::positionError(), TrackingRecHitProjector< ResultingHit >::project(), RecHitPropagator::propagate(), GeomDet::surface(), LocalError::xx(), LocalError::xy(), and LocalError::yy().

Referenced by checkProjection().

200 {
202  TransientTrackingRecHit::RecHitPointer projectedHit = proj.project( hit, det, ts);
203 
204  RecHitPropagator prop;
205  TrajectoryStateOnSurface propState = prop.propagate( hit, det.surface(), ts);
206 
207  if ((projectedHit->localPosition()-propState.localPosition()).mag() > 0.0001) {
208  cout << "PROBLEM: projected and propagated hit positions differ by "
209  << (projectedHit->localPosition()-propState.localPosition()).mag() << endl;
210  }
211 
212  LocalError le1 = projectedHit->localPositionError();
213  LocalError le2 = propState.localError().positionError();
214  double eps = 1.e-5;
215  double cutoff = 1.e-4; // if element below cutoff, use absolute instead of relative accuracy
216  double maxdiff = std::max( std::max( fabs(le1.xx() - le2.xx())/(cutoff+le1.xx()),
217  fabs(le1.xy() - le2.xy())/(cutoff+fabs(le1.xy()))),
218  fabs(le1.yy() - le2.yy())/(cutoff+le1.xx()));
219  if (maxdiff > eps) {
220  cout << "PROBLEM: projected and propagated hit errors differ by "
221  << maxdiff << endl;
222  }
223 
224 }
float xx() const
Definition: LocalError.h:19
TrajectoryStateOnSurface propagate(const TransientTrackingRecHit &hit, const Plane &plane, const TrajectoryStateOnSurface &ts) const
LocalError positionError() const
RecHitPointer project(const TransientTrackingRecHit &hit, const GeomDet &det, const TrajectoryStateOnSurface &ts) const
float xy() const
Definition: LocalError.h:20
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
float yy() const
Definition: LocalError.h:21
const T & max(const T &a, const T &b)
const LocalTrajectoryError & localError() const
tuple cout
Definition: gather_cfg.py:41
virtual const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
void TkGluedMeasurementDet::checkProjection ( const TrajectoryStateOnSurface ts,
const RecHitContainer monoHits,
const RecHitContainer stereoHits 
) const
private

Definition at line 185 of file TkGluedMeasurementDet.cc.

References checkHitProjection(), MeasurementDet::geomDet(), and i.

188 {
189  for (RecHitContainer::const_iterator i=monoHits.begin(); i != monoHits.end(); ++i) {
190  checkHitProjection( **i, ts, geomDet());
191  }
192  for (RecHitContainer::const_iterator i=stereoHits.begin(); i != stereoHits.end(); ++i) {
193  checkHitProjection( **i, ts, geomDet());
194  }
195 }
int i
Definition: DBlmapReader.cc:9
virtual const GeomDet & geomDet() const
void checkHitProjection(const TransientTrackingRecHit &hit, const TrajectoryStateOnSurface &ts, const GeomDet &det) const
template<typename Collector >
void TkGluedMeasurementDet::collectRecHits ( const TrajectoryStateOnSurface ts,
Collector &  coll 
) const
private

Definition at line 59 of file TkGluedMeasurementDet.cc.

References TrajectoryStateOnSurface::globalParameters(), TrajectoryStateOnSurface::isValid(), TrajectoryStateOnSurface::localDirection(), SiStripRecHitMatcher::match(), GlobalTrajectoryParameters::momentum(), MeasurementDet::position(), projectOnGluedDet(), TkStripMeasurementDet::recHits(), TkStripMeasurementDet::simpleRecHits(), specificGeomDet(), MeasurementDet::surface(), theMatcher, theMonoDet, theStereoDet, and GloballyPositioned< T >::toLocal().

Referenced by fastMeasurements(), and recHits().

60 {
61  //------ WARNING: here ts is used as it is on the mono/stereo surface.
62  //----- A further propagation is necessary.
63  //----- To limit the problem, the SimpleCPE should be used
64  RecHitContainer monoHits = theMonoDet->recHits( ts);
65  GlobalVector glbDir = (ts.isValid() ? ts.globalParameters().momentum() : position()-GlobalPoint(0,0,0));
66 
67  //edm::LogWarning("TkGluedMeasurementDet::recHits") << "Query-for-detid-" << theGeomDet->geographicalId().rawId();
68 
69  //checkProjection(ts, monoHits, stereoHits);
70 
71  if (monoHits.empty()) {
72  // make stereo TTRHs and project them
73  projectOnGluedDet( collector, theStereoDet->recHits(ts), glbDir);
74  } else {
75  // collect simple stereo hits
76  static std::vector<SiStripRecHit2D> simpleSteroHitsByValue;
77  simpleSteroHitsByValue.clear();
78  theStereoDet->simpleRecHits(ts, simpleSteroHitsByValue);
79 
80  if (simpleSteroHitsByValue.empty()) {
81  projectOnGluedDet( collector, monoHits, glbDir);
82  } else {
83 
84  LocalVector tkDir = (ts.isValid() ? ts.localDirection() : surface().toLocal( position()-GlobalPoint(0,0,0)));
86  vsStereoHits.resize(simpleSteroHitsByValue.size());
87  std::transform(simpleSteroHitsByValue.begin(), simpleSteroHitsByValue.end(), vsStereoHits.begin(), take_address());
88 
89  // convert mono hits to type expected by matcher
90  for (RecHitContainer::const_iterator monoHit = monoHits.begin();
91  monoHit != monoHits.end(); ++monoHit) {
92  const TrackingRecHit* tkhit = (**monoHit).hit();
93  const SiStripRecHit2D* verySpecificMonoHit = reinterpret_cast<const SiStripRecHit2D*>(tkhit);
94  theMatcher->match( verySpecificMonoHit, vsStereoHits.begin(), vsStereoHits.end(),
95  collector.collector(), &specificGeomDet(), tkDir);
96 
97  if (collector.hasNewMatchedHits()) {
98  collector.clearNewMatchedHitsFlag();
99  } else {
100  collector.addProjected( **monoHit, glbDir );
101  }
102  } // loop on mono hit
103  }
104  //GIO// std::cerr << "TkGluedMeasurementDet hits " << monoHits.size() << "/" << stereoHits.size() << " => " << result.size() << std::endl;
105  }
106 }
const TkStripMeasurementDet * theMonoDet
SiStripMatchedRecHit2D * match(const SiStripRecHit2D *monoRH, const SiStripRecHit2D *stereoRH, const GluedGeomDet *gluedDet, LocalVector trackdirection) const
LocalVector localDirection() const
TransientTrackingRecHit::ConstRecHitContainer RecHitContainer
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
const BoundSurface & surface() const
virtual RecHitContainer recHits(const TrajectoryStateOnSurface &) const
LocalPoint toLocal(const GlobalPoint &gp) const
const GluedGeomDet & specificGeomDet() const
const Surface::PositionType & position() const
const SiStripRecHitMatcher * theMatcher
const GlobalTrajectoryParameters & globalParameters() const
std::vector< const SiStripRecHit2D * > SimpleHitCollection
const TkStripMeasurementDet * theStereoDet
void simpleRecHits(const TrajectoryStateOnSurface &ts, std::vector< SiStripRecHit2D > &result) const
RecHitContainer projectOnGluedDet(const RecHitContainer &hits, const TrajectoryStateOnSurface &ts) const
template<typename Collector >
void TkGluedMeasurementDet::doubleMatch ( const TrajectoryStateOnSurface ts,
Collector &  collector 
) const
private
std::vector< TrajectoryMeasurement > TkGluedMeasurementDet::fastMeasurements ( const TrajectoryStateOnSurface stateOnThisDet,
const TrajectoryStateOnSurface startingState,
const Propagator ,
const MeasurementEstimator  
) const
virtual

faster version in case the TrajectoryState on the surface of the Det is already available. The first TrajectoryStateOnSurface is on the surface of this Det, and the second TrajectoryStateOnSurface is the statrting state, usually not on the surface of this Det. The stateOnThisDet should the result of
prop.propagate( startingState, this->surface())

Implements MeasurementDet.

Definition at line 110 of file TkGluedMeasurementDet.cc.

References InvalidTransientRecHit::build(), collectRecHits(), MeasurementDet::geomDet(), TkStripMeasurementDet::hasAllGoodChannels(), TrajectoryStateOnSurface::hasError(), TrackingRecHit::inactive, TkStripMeasurementDet::isActive(), query::result, python.multivaluedict::sort(), GeomDet::surface(), testStrips(), theMatcher, theMonoDet, and theStereoDet.

114 {
115  std::vector<TrajectoryMeasurement> result;
116  if (theMonoDet->isActive() || theStereoDet->isActive()) {
117 
118  HitCollectorForFastMeasurements collector( &geomDet(), theMatcher, stateOnThisDet, est, result);
119  collectRecHits(stateOnThisDet, collector);
120 
121  if ( result.empty()) {
122  //LogDebug("TkStripMeasurementDet") << "No hit found on TkGlued. Testing strips... ";
123  const BoundPlane &gluedPlane = geomDet().surface();
124  if ( // sorry for the big IF, but I want to exploit short-circuiting of logic
125  stateOnThisDet.hasError() && ( /* do this only if the state has uncertainties, otherwise it will throw
126  (states without uncertainties are passed to this code from seeding */
127  (theMonoDet->isActive() &&
129  testStrips(stateOnThisDet,gluedPlane,*theMonoDet)
130  )
131  ) /*Mono OK*/ ||
132  (theStereoDet->isActive() &&
134  testStrips(stateOnThisDet,gluedPlane,*theStereoDet)
135  )
136  ) /*Stereo OK*/
137  ) /* State has errors */
138  ) {
139  result.push_back( TrajectoryMeasurement( stateOnThisDet,
141  } else {
142  result.push_back( TrajectoryMeasurement(stateOnThisDet,
144  }
145  } else {
146  // sort results according to estimator value
147  if ( result.size() > 1) {
148  sort( result.begin(), result.end(), TrajMeasLessEstim());
149  }
150  }
151  } else {
152  // LogDebug("TkStripMeasurementDet") << " DetID " << geomDet().geographicalId().rawId() << " (glued) fully inactive";
153  result.push_back( TrajectoryMeasurement( stateOnThisDet,
155  0.F));
156  }
157  return result;
158 
159 }
bool testStrips(const TrajectoryStateOnSurface &tsos, const BoundPlane &gluedPlane, const TkStripMeasurementDet &mdet) const
Test the strips on one of the two dets with projection.
const TkStripMeasurementDet * theMonoDet
static RecHitPointer build(const GeomDet *geom, Type type=TrackingRecHit::missing, const DetLayer *layer=0)
void collectRecHits(const TrajectoryStateOnSurface &, Collector &coll) const
virtual const GeomDet & geomDet() const
tuple result
Definition: query.py:137
bool hasAllGoodChannels() const
does this module have at least one bad strip, APV or channel?
const SiStripRecHitMatcher * theMatcher
const TkStripMeasurementDet * theStereoDet
bool isActive() const
Is this module active in reconstruction? It must be both &#39;setActiveThisEvent&#39; and &#39;setActive&#39;...
virtual const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
bool TkGluedMeasurementDet::hasBadComponents ( const TrajectoryStateOnSurface tsos) const
inlinevirtual

return TRUE if at least one of the mono and stereo components has badChannels

Implements MeasurementDet.

Definition at line 38 of file TkGluedMeasurementDet.h.

References monoDet(), and stereoDet().

38  {
39  return (monoDet()->hasBadComponents(tsos) || stereoDet()->hasBadComponents(tsos));}
const TkStripMeasurementDet * monoDet() const
bool hasBadComponents(const TrajectoryStateOnSurface &tsos) const
return TRUE if at least one of the mono and stereo components has badChannels
const TkStripMeasurementDet * stereoDet() const
bool TkGluedMeasurementDet::isActive ( ) const
inlinevirtual

return TRUE if both mono and stereo components are active

Implements MeasurementDet.

Definition at line 35 of file TkGluedMeasurementDet.h.

References TkStripMeasurementDet::isActive(), monoDet(), and stereoDet().

35 {return monoDet()->isActive() && stereoDet()->isActive(); }
const TkStripMeasurementDet * monoDet() const
bool isActive() const
Is this module active in reconstruction? It must be both &#39;setActiveThisEvent&#39; and &#39;setActive&#39;...
const TkStripMeasurementDet * stereoDet() const
const TkStripMeasurementDet* TkGluedMeasurementDet::monoDet ( ) const
inline

Definition at line 31 of file TkGluedMeasurementDet.h.

References theMonoDet.

Referenced by hasBadComponents(), OnDemandMeasurementTracker::idToDet(), and isActive().

31 { return theMonoDet;}
const TkStripMeasurementDet * theMonoDet
TkGluedMeasurementDet::RecHitContainer TkGluedMeasurementDet::projectOnGluedDet ( const RecHitContainer hits,
const TrajectoryStateOnSurface ts 
) const
private

Definition at line 162 of file TkGluedMeasurementDet.cc.

References MeasurementDet::geomDet(), TrackingRecHitProjector< ResultingHit >::project(), and query::result.

Referenced by collectRecHits().

164 {
165  if (hits.empty()) return hits;
168  for ( RecHitContainer::const_iterator ihit = hits.begin(); ihit!=hits.end(); ihit++) {
169  result.push_back( proj.project( **ihit, geomDet(), ts));
170  }
171  return result;
172 }
TransientTrackingRecHit::ConstRecHitContainer RecHitContainer
virtual const GeomDet & geomDet() const
RecHitPointer project(const TransientTrackingRecHit &hit, const GeomDet &det, const TrajectoryStateOnSurface &ts) const
tuple result
Definition: query.py:137
template<typename HitCollector >
void TkGluedMeasurementDet::projectOnGluedDet ( HitCollector &  collector,
const RecHitContainer hits,
const GlobalVector gdir 
) const
private
template<typename Collector >
void TkGluedMeasurementDet::projectOnGluedDet ( Collector &  collector,
const RecHitContainer hits,
const GlobalVector gdir 
) const

Definition at line 176 of file TkGluedMeasurementDet.cc.

179 {
180  for ( RecHitContainer::const_iterator ihit = hits.begin(); ihit!=hits.end(); ihit++) {
181  collector.addProjected( **ihit, gdir );
182  }
183 }
TkGluedMeasurementDet::RecHitContainer TkGluedMeasurementDet::recHits ( const TrajectoryStateOnSurface ts) const
virtual

Implements MeasurementDet.

Definition at line 38 of file TkGluedMeasurementDet.cc.

References collectRecHits(), MeasurementDet::geomDet(), query::result, and theMatcher.

39 {
40 
42  HitCollectorForRecHits collector( &geomDet(), theMatcher, result );
43  collectRecHits(ts, collector);
44  return result;
45 }
void collectRecHits(const TrajectoryStateOnSurface &, Collector &coll) const
TransientTrackingRecHit::ConstRecHitContainer RecHitContainer
virtual const GeomDet & geomDet() const
tuple result
Definition: query.py:137
const SiStripRecHitMatcher * theMatcher
const GluedGeomDet& TkGluedMeasurementDet::specificGeomDet ( ) const
inline

Definition at line 23 of file TkGluedMeasurementDet.h.

References theGeomDet.

Referenced by collectRecHits().

23 {return *theGeomDet;}
const GluedGeomDet * theGeomDet
const TkStripMeasurementDet* TkGluedMeasurementDet::stereoDet ( ) const
inline

Definition at line 32 of file TkGluedMeasurementDet.h.

References theStereoDet.

Referenced by hasBadComponents(), OnDemandMeasurementTracker::idToDet(), and isActive().

32 { return theStereoDet;}
const TkStripMeasurementDet * theStereoDet
bool TkGluedMeasurementDet::testStrips ( const TrajectoryStateOnSurface tsos,
const BoundPlane gluedPlane,
const TkStripMeasurementDet mdet 
) const
private

Test the strips on one of the two dets with projection.

Definition at line 227 of file TkGluedMeasurementDet.cc.

References delta, Vector3DBase< T, FrameTag >::dot(), MeasurementDet::geomDet(), TrajectoryStateOnSurface::globalParameters(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localPosition(), Plane::localZ(), Topology::measurementError(), Topology::measurementPosition(), GlobalTrajectoryParameters::momentum(), Plane::normalVector(), pos, LocalTrajectoryError::positionError(), LocalError::rotate(), TkStripMeasurementDet::specificGeomDet(), StripGeomDetUnit::specificTopology(), mathSSE::sqrt(), GeomDet::surface(), TkStripMeasurementDet::testStrips(), Surface::toGlobal(), GloballyPositioned< T >::toLocal(), MeasurementError::uu(), PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), LocalError::xy(), PV3DBase< T, PVType, FrameType >::y(), LocalError::yy(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by fastMeasurements().

229  {
230  // from TrackingRecHitProjector
231  const GeomDet &det = mdet.geomDet();
232  const BoundPlane &stripPlane = det.surface();
233 
234  LocalPoint glp = tsos.localPosition();
235  LocalError err = tsos.localError().positionError();
236  /*LogDebug("TkStripMeasurementDet") <<
237  "Testing local pos glued: " << glp <<
238  " local err glued: " << tsos.localError().positionError() <<
239  " in? " << gluedPlane.bounds().inside(glp) <<
240  " in(3s)? " << gluedPlane.bounds().inside(glp, err, 3.0f);*/
241 
242  GlobalVector gdir = tsos.globalParameters().momentum();
243 
244  LocalPoint slp = stripPlane.toLocal(tsos.globalPosition());
245  LocalVector sld = stripPlane.toLocal(gdir);
246 
247  double delta = stripPlane.localZ( tsos.globalPosition());
248  LocalPoint pos = slp - sld * delta/sld.z();
249 
250 
251  // now the error
252  LocalVector hitXAxis = stripPlane.toLocal( gluedPlane.toGlobal( LocalVector(1,0,0)));
253  if (stripPlane.normalVector().dot( gluedPlane.normalVector()) < 0) {
254  // the two planes are inverted, and the correlation element must change sign
255  err = LocalError( err.xx(), -err.xy(), err.yy());
256  }
257  LocalError rotatedError = err.rotate( hitXAxis.x(), hitXAxis.y());
258 
259  /* // This is probably meaningless
260  LogDebug("TkStripMeasurementDet") <<
261  "Testing local pos on strip (SLP): " << slp <<
262  " in? :" << stripPlane.bounds().inside(slp) <<
263  " in(3s)? :" << stripPlane.bounds().inside(slp, rotatedError, 3.0f);
264  // but it helps to test bugs in the formula for POS */
265  /*LogDebug("TkStripMeasurementDet") <<
266  "Testing local pos strip: " << pos <<
267  " in? " << stripPlane.bounds().inside(pos) <<
268  " in(3s)? " << stripPlane.bounds().inside(pos, rotatedError, 3.0f);*/
269 
270  // now we need to convert to MeasurementFrame
271  const StripTopology &topo = mdet.specificGeomDet().specificTopology();
272  float utraj = topo.measurementPosition(pos).x();
273  float uerr = std::sqrt(topo.measurementError(pos,rotatedError).uu());
274  return mdet.testStrips(utraj, uerr);
275 }
dbl * delta
Definition: mlp_gen.cc:36
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:78
float xx() const
Definition: LocalError.h:19
GlobalVector normalVector() const
Definition: Plane.h:47
virtual const GeomDet & geomDet() const
T y() const
Definition: PV3DBase.h:57
float localZ(const GlobalPoint &gp) const
Fast access to distance from plane for a point.
Definition: Plane.h:52
GlobalPoint globalPosition() const
PreciseFloatType< T, U >::Type dot(const Vector3DBase< U, FrameTag > &v) const
Definition: Vector3DBase.h:107
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
LocalError positionError() const
float xy() const
Definition: LocalError.h:20
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
float yy() const
Definition: LocalError.h:21
T sqrt(T t)
Definition: SSEVec.h:28
LocalPoint toLocal(const GlobalPoint &gp) const
T z() const
Definition: PV3DBase.h:58
float uu() const
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
const LocalTrajectoryError & localError() const
const GlobalTrajectoryParameters & globalParameters() const
const StripGeomDetUnit & specificGeomDet() const
bool testStrips(float utraj, float uerr) const
return true if there are &#39;enough&#39; good strips in the utraj +/- 3 uerr range.
LocalError rotate(float x, float y) const
Return a new LocalError, rotated by an angle defined by the direction (x,y)
Definition: LocalError.h:34
T x() const
Definition: PV2DBase.h:39
T x() const
Definition: PV3DBase.h:56
virtual const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37

Member Data Documentation

const GluedGeomDet* TkGluedMeasurementDet::theGeomDet
private

Definition at line 42 of file TkGluedMeasurementDet.h.

Referenced by specificGeomDet().

const SiStripRecHitMatcher* TkGluedMeasurementDet::theMatcher
private

Definition at line 43 of file TkGluedMeasurementDet.h.

Referenced by collectRecHits(), fastMeasurements(), and recHits().

const TkStripMeasurementDet* TkGluedMeasurementDet::theMonoDet
private
const TkStripMeasurementDet* TkGluedMeasurementDet::theStereoDet
private