File indexing completed on 2024-04-06 12:26:06
0001 #ifndef RecoLocalMuon_DTRecHitBaseAlgo_H
0002 #define RecoLocalMuon_DTRecHitBaseAlgo_H
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
0012 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0013 #include "DataFormats/GeometrySurface/interface/LocalError.h"
0014
0015 #include "DataFormats/DTDigi/interface/DTDigiCollection.h"
0016 #include "DataFormats/DTRecHit/interface/DTRecHit1DPair.h"
0017 #include "DataFormats/Common/interface/OwnVector.h"
0018
0019 class DTDigi;
0020 class DTLayer;
0021 class DTLayerId;
0022 class DTTTrigBaseSync;
0023
0024 namespace edm {
0025 class ParameterSet;
0026 class EventSetup;
0027 class ConsumesCollector;
0028 }
0029
0030 class DTRecHitBaseAlgo {
0031 public:
0032
0033 DTRecHitBaseAlgo(const edm::ParameterSet& config, edm::ConsumesCollector);
0034
0035
0036 virtual ~DTRecHitBaseAlgo();
0037
0038
0039 virtual void setES(const edm::EventSetup& setup) = 0;
0040
0041
0042 virtual edm::OwnVector<DTRecHit1DPair> reconstruct(const DTLayer* layer,
0043 const DTLayerId& layerId,
0044 const DTDigiCollection::Range& digiRange);
0045
0046
0047
0048
0049
0050 virtual bool compute(const DTLayer* layer,
0051 const DTDigi& digi,
0052 LocalPoint& leftPoint,
0053 LocalPoint& rightPoint,
0054 LocalError& error) const = 0;
0055
0056
0057
0058
0059
0060
0061
0062 virtual bool compute(const DTLayer* layer,
0063 const DTRecHit1D& recHit1D,
0064 const float& angle,
0065 DTRecHit1D& newHit1D) const = 0;
0066
0067
0068
0069
0070
0071
0072
0073
0074 virtual bool compute(const DTLayer* layer,
0075 const DTRecHit1D& recHit1D,
0076 const float& angle,
0077 const GlobalPoint& globPos,
0078 DTRecHit1D& newHit1D) const = 0;
0079
0080 protected:
0081
0082 std::unique_ptr<DTTTrigBaseSync> theSync;
0083 };
0084 #endif