CMS 3D CMS Logo

DTRecHitBaseAlgo.h
Go to the documentation of this file.
1 #ifndef RecoLocalMuon_DTRecHitBaseAlgo_H
2 #define RecoLocalMuon_DTRecHitBaseAlgo_H
3 
14 
18 
19 class DTDigi;
20 class DTLayer;
21 class DTLayerId;
22 class DTTTrigBaseSync;
23 
24 namespace edm {
25  class ParameterSet;
26  class EventSetup;
27  class ConsumesCollector;
28 } // namespace edm
29 
31 public:
34 
36  virtual ~DTRecHitBaseAlgo();
37 
39  virtual void setES(const edm::EventSetup& setup) = 0;
40 
43  const DTLayerId& layerId,
44  const DTDigiCollection::Range& digiRange);
45 
50  virtual bool compute(const DTLayer* layer,
51  const DTDigi& digi,
52  LocalPoint& leftPoint,
53  LocalPoint& rightPoint,
54  LocalError& error) const = 0;
55 
62  virtual bool compute(const DTLayer* layer,
63  const DTRecHit1D& recHit1D,
64  const float& angle,
65  DTRecHit1D& newHit1D) const = 0;
66 
74  virtual bool compute(const DTLayer* layer,
75  const DTRecHit1D& recHit1D,
76  const float& angle,
77  const GlobalPoint& globPos,
78  DTRecHit1D& newHit1D) const = 0;
79 
80 protected:
81  // The module to be used for digi time synchronization
82  std::unique_ptr<DTTTrigBaseSync> theSync;
83 };
84 #endif
virtual ~DTRecHitBaseAlgo()
Destructor.
virtual edm::OwnVector< DTRecHit1DPair > reconstruct(const DTLayer *layer, const DTLayerId &layerId, const DTDigiCollection::Range &digiRange)
Build all hits in the range associated to the layerId, at the 1st step.
Definition: config.py:1
constexpr std::array< uint8_t, layerIndexSize > layer
DTRecHitBaseAlgo(const edm::ParameterSet &config, edm::ConsumesCollector)
Constructor.
virtual void setES(const edm::EventSetup &setup)=0
Pass the Event Setup to the algo at each event.
virtual bool compute(const DTLayer *layer, const DTDigi &digi, LocalPoint &leftPoint, LocalPoint &rightPoint, LocalError &error) const =0
Definition: DTDigi.h:17
std::unique_ptr< DTTTrigBaseSync > theSync
std::pair< const_iterator, const_iterator > Range
HLT enums.
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11