File indexing completed on 2024-09-07 04:37:41
0001 #ifndef RecoLocalMuon_RPCRecHitBaseAlgo_H
0002 #define RecoLocalMuon_RPCRecHitBaseAlgo_H
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
0012 #include "DataFormats/GeometrySurface/interface/LocalError.h"
0013 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0014 #include "DataFormats/RPCDigi/interface/RPCDigiCollection.h"
0015 #include "DataFormats/RPCRecHit/interface/RPCRecHit.h"
0016 #include "DataFormats/Common/interface/OwnVector.h"
0017
0018 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0019 #include "RPCRollMask.h"
0020
0021 class RPCCluster;
0022 class RPCRoll;
0023 class RPCDetId;
0024
0025 namespace edm {
0026 class EventSetup;
0027 }
0028
0029 class RPCRecHitBaseAlgo {
0030 public:
0031
0032 RPCRecHitBaseAlgo(const edm::ParameterSet& config);
0033
0034
0035 virtual ~RPCRecHitBaseAlgo() {}
0036
0037
0038 virtual void setES(const edm::EventSetup& setup) = 0;
0039
0040
0041 virtual edm::OwnVector<RPCRecHit> reconstruct(const RPCRoll& roll,
0042 const RPCDetId& rpcId,
0043 const RPCDigiCollection::Range& digiRange,
0044 const RollMask& mask);
0045
0046
0047 virtual bool compute(const RPCRoll& roll,
0048 const RPCCluster& cl,
0049 LocalPoint& Point,
0050 LocalError& error,
0051 float& time,
0052 float& timeErr) const = 0;
0053
0054
0055
0056 virtual bool compute(const RPCRoll& roll,
0057 const RPCCluster& cl,
0058 const float& angle,
0059 const GlobalPoint& globPos,
0060 LocalPoint& Point,
0061 LocalError& error,
0062 float& time,
0063 float& timeErr) const = 0;
0064 };
0065 #endif