CMS 3D CMS Logo

TkPhase2OTMeasurementDet.h
Go to the documentation of this file.
1 #ifndef TkPhase2OTMeasurementDet_H
2 #define TkPhase2OTMeasurementDet_H
3 
12 
13 class TrackingRecHit;
15 
17 public:
19 
23 
25 
26  void update(Phase2OTMeasurementDetSet& data, const detset& detSet) {
27  data.update(index(), detSet);
28  data.setActiveThisEvent(index(), true);
29  }
30 
32  bool isEmpty(const Phase2OTMeasurementDetSet& data) const { return data.empty(index()); }
33 
35 
36  RecHitContainer recHits(const TrajectoryStateOnSurface&, const MeasurementTrackerEvent& dat) const override;
37  bool recHits(const TrajectoryStateOnSurface& stateOnThisDet,
38  const MeasurementEstimator&,
40  RecHitContainer& result,
41  std::vector<float>&) const override;
42 
43  // simple hits
45  const TrajectoryStateOnSurface& stateOnThisDet,
46  const MeasurementEstimator&,
47  const MeasurementTrackerEvent& data) const override {
48  assert("not implemented for Pixel yet" == nullptr);
49  }
50 
51  bool measurements(const TrajectoryStateOnSurface& stateOnThisDet,
52  const MeasurementEstimator& est,
53  const MeasurementTrackerEvent& dat,
54  TempMeasurements& result) const override;
55 
56  const PixelGeomDetUnit& specificGeomDet() const { return static_cast<PixelGeomDetUnit const&>(fastGeomDet()); }
57 
58  TrackingRecHit::RecHitPointer buildRecHit(const Phase2TrackerCluster1DRef& cluster,
59  const LocalTrajectoryParameters& ltp) const;
60 
62  void setActive(bool active) { conditionSet().setActive(index(), active); }
66  data.setActiveThisEvent(index(), active);
67  }
69  bool isActive(const MeasurementTrackerEvent& data) const override { return data.phase2OTData().isActive(index()); }
70 
71  bool hasBadComponents(const TrajectoryStateOnSurface& tsos, const MeasurementTrackerEvent& dat) const override;
72 
73  //FIXME:just temporary solution for phase2!
75  // void setBadRocPositions(std::vector< LocalPoint > & positions) { badRocPositions_.swap(positions); }
77  // void clearBadRocPositions() { badRocPositions_.clear(); }
78 
79  int index() const { return index_; }
80  void setIndex(int i) { index_ = i; }
81 
82 private:
83  unsigned int id_;
84  // std::vector< LocalPoint > badRocPositions_;
85 
86  int index_;
88  Phase2OTMeasurementConditionSet& conditionSet() { return *theDetConditions; }
89  const Phase2OTMeasurementConditionSet& conditionSet() const { return *theDetConditions; }
90 
91  const ClusterParameterEstimator<Phase2TrackerCluster1D>* cpe() const { return conditionSet().cpe(); }
92 };
93 
94 #endif
edm::Ref< edmNew::DetSetVector< Phase2TrackerCluster1D >, Phase2TrackerCluster1D > Phase2TrackerCluster1DRef
const ClusterParameterEstimator< Phase2TrackerCluster1D > * cpe() const
void setActiveThisEvent(Phase2OTMeasurementDetSet &data, bool active) const
Turn on/off the module for reconstruction for one events. This per-event flag is cleared by any call ...
data_type const * const_iterator
Definition: DetSetNew.h:31
assert(be >=bs)
bool isEmpty(const Phase2OTMeasurementDetSet &data) const
edmNew::DetSet< Phase2TrackerCluster1D > detset
int index() const
Sets the list of bad ROCs, identified by the positions of their centers in the local coordinate frame...
bool isActive(const MeasurementTrackerEvent &data) const override
Is this module active in reconstruction? It must be both &#39;setActiveThisEvent&#39; and &#39;setActive&#39;...
std::shared_ptr< TrackingRecHit const > RecHitPointer
virtual RecHitContainer recHits(const TrajectoryStateOnSurface &, const MeasurementTrackerEvent &) const =0
ClusterParameterEstimator< Phase2TrackerCluster1D >::LocalValues LocalValues
Phase2OTMeasurementConditionSet * theDetConditions
#define dso_hidden
Definition: Visibility.h:12
Phase2OTMeasurementConditionSet & conditionSet()
const GeomDet & fastGeomDet() const
void setEmpty(Phase2OTMeasurementDetSet &data)
const Phase2OTMeasurementConditionSet & conditionSet() const
const PixelGeomDetUnit & specificGeomDet() const
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:80
void setActive(bool active)
Turn on/off the module for reconstruction, for the full run or lumi (using info from DB...
std::vector< BaseTrackerRecHit * > SimpleHitContainer
detset::const_iterator const_iterator
virtual bool hasBadComponents(const TrajectoryStateOnSurface &tsos, const MeasurementTrackerEvent &data) const =0
void update(Phase2OTMeasurementDetSet &data, const detset &detSet)
bool recHits(SimpleHitContainer &result, const TrajectoryStateOnSurface &stateOnThisDet, const MeasurementEstimator &, const MeasurementTrackerEvent &data) const override
virtual bool measurements(const TrajectoryStateOnSurface &stateOnThisDet, const MeasurementEstimator &est, const MeasurementTrackerEvent &data, TempMeasurements &result) const =0