CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TkGluedMeasurementDet.h
Go to the documentation of this file.
1 #ifndef TkGluedMeasurementDet_H
2 #define TkGluedMeasurementDet_H
3 
6 
7 class GluedGeomDet;
8 //class SiStripRecHitMatcher;
13 
15 public:
16 
17  TkGluedMeasurementDet( const GluedGeomDet* gdet,const SiStripRecHitMatcher* matcher,
18  const MeasurementDet* monoDet,
19  const MeasurementDet* stereoDet);
20 
21  virtual RecHitContainer recHits( const TrajectoryStateOnSurface&) const;
22 
23  const GluedGeomDet& specificGeomDet() const {return *theGeomDet;}
24 
25  virtual std::vector<TrajectoryMeasurement>
26  fastMeasurements( const TrajectoryStateOnSurface& stateOnThisDet,
27  const TrajectoryStateOnSurface& startingState,
28  const Propagator&,
29  const MeasurementEstimator&) const;
30 
31  const TkStripMeasurementDet* monoDet() const{ return theMonoDet;}
32  const TkStripMeasurementDet* stereoDet() const{ return theStereoDet;}
33 
35  bool isActive() const {return monoDet()->isActive() && stereoDet()->isActive(); }
36 
38  bool hasBadComponents( const TrajectoryStateOnSurface &tsos ) const {
39  return (monoDet()->hasBadComponents(tsos) || stereoDet()->hasBadComponents(tsos));}
40 
41 private:
46 
47 
48  template<typename Collector>
49  void doubleMatch(const TrajectoryStateOnSurface& ts, Collector & collector) const;
50 
51  template<typename Collector>
52  void collectRecHits(const TrajectoryStateOnSurface&, Collector &coll) const;
53 
55  public:
58  const SiStripRecHitMatcher * matcher,
61  target_.push_back(
62  TSiStripMatchedRecHit::build( geomDet_, std::auto_ptr<TrackingRecHit>(hit.clone()), matcher_)
63  );
64  hasNewHits_ = true;
65  }
67  const GlobalVector & gdir) ;
69  bool hasNewMatchedHits() const { return hasNewHits_; }
71  private:
72  const GeomDet * geomDet_;
77  };
78 
79 
81  public:
84 
86  const SiStripRecHitMatcher * matcher,
87  const TrajectoryStateOnSurface& stateOnThisDet,
88  const MeasurementEstimator& est,
89  std::vector<TrajectoryMeasurement> & target) ;
90  void add(SiStripMatchedRecHit2D const& hit) ;
92  const GlobalVector & gdir) ;
93 
95  bool hasNewMatchedHits() const { return hasNewHits_; }
97  private:
98  const GeomDet * geomDet_;
102  std::vector<TrajectoryMeasurement> & target_;
105  };
106 
107 
109  projectOnGluedDet( const RecHitContainer& hits,
110  const TrajectoryStateOnSurface& ts) const;
111 
112  template<typename HitCollector>
113  void
114  projectOnGluedDet( HitCollector & collector,
115  const RecHitContainer& hits,
116  const GlobalVector & gdir ) const ;
117 
119  const RecHitContainer& monoHits,
120  const RecHitContainer& stereoHits) const;
122  const TrajectoryStateOnSurface& ts,
123  const GeomDet& det) const;
124 
126  bool testStrips(const TrajectoryStateOnSurface& tsos,
127  const BoundPlane &gluedPlane,
128  const TkStripMeasurementDet &mdet) const ;
129 
130 };
131 
132 #endif
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
void addProjected(const TransientTrackingRecHit &hit, const GlobalVector &gdir)
const GluedGeomDet * theGeomDet
virtual SiStripMatchedRecHit2D * clone() const
void checkProjection(const TrajectoryStateOnSurface &ts, const RecHitContainer &monoHits, const RecHitContainer &stereoHits) const
void collectRecHits(const TrajectoryStateOnSurface &, Collector &coll) const
TransientTrackingRecHit::ConstRecHitContainer RecHitContainer
virtual const GeomDet & geomDet() const
const TkStripMeasurementDet * monoDet() const
void addProjected(const TransientTrackingRecHit &hit, const GlobalVector &gdir)
bool hasBadComponents(const TrajectoryStateOnSurface &tsos) const
return TRUE if at least one of the mono and stereo components has badChannels
TkGluedMeasurementDet(const GluedGeomDet *gdet, const SiStripRecHitMatcher *matcher, const MeasurementDet *monoDet, const MeasurementDet *stereoDet)
const GluedGeomDet & specificGeomDet() const
TransientTrackingRecHit::RecHitPointer RecHitPointer
void checkHitProjection(const TransientTrackingRecHit &hit, const TrajectoryStateOnSurface &ts, const GeomDet &det) const
HitCollectorForFastMeasurements(const GeomDet *geomDet, const SiStripRecHitMatcher *matcher, const TrajectoryStateOnSurface &stateOnThisDet, const MeasurementEstimator &est, std::vector< TrajectoryMeasurement > &target)
void doubleMatch(const TrajectoryStateOnSurface &ts, Collector &collector) const
virtual RecHitContainer recHits(const TrajectoryStateOnSurface &) const
const SiStripRecHitMatcher * theMatcher
SiStripRecHitMatcher::Collector & collector()
JetCorrectorParametersCollection coll
Definition: classes.h:14
virtual std::vector< TrajectoryMeasurement > fastMeasurements(const TrajectoryStateOnSurface &stateOnThisDet, const TrajectoryStateOnSurface &startingState, const Propagator &, const MeasurementEstimator &) const
static RecHitPointer build(const GeomDet *geom, const TrackingRecHit *rh, const SiStripRecHitMatcher *matcher, const StripClusterParameterEstimator *cpe=0, float weight=1., float annealing=1., bool computeCoarseLocalPosition=false)
const TkStripMeasurementDet * theStereoDet
HitCollectorForRecHits(const GeomDet *geomDet, const SiStripRecHitMatcher *matcher, RecHitContainer &target)
void add(SiStripMatchedRecHit2D const &hit)
bool isActive() const
Is this module active in reconstruction? It must be both &#39;setActiveThisEvent&#39; and &#39;setActive&#39;...
RecHitContainer projectOnGluedDet(const RecHitContainer &hits, const TrajectoryStateOnSurface &ts) const
boost::function< void(SiStripMatchedRecHit2D const &)> Collector
const TkStripMeasurementDet * stereoDet() const
bool isActive() const
return TRUE if both mono and stereo components are active