Go to the documentation of this file.00001 #ifndef RecoLocalMuon_RPCRecHitBaseAlgo_H
00002 #define RecoLocalMuon_RPCRecHitBaseAlgo_H
00003
00014 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
00015 #include "DataFormats/GeometrySurface/interface/LocalError.h"
00016 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00017 #include "DataFormats/RPCDigi/interface/RPCDigiCollection.h"
00018 #include "DataFormats/RPCRecHit/interface/RPCRecHit.h"
00019 #include "DataFormats/Common/interface/OwnVector.h"
00020
00021 #include "RecoLocalMuon/RPCRecHit/src/RPCRollMask.h"
00022 #include "RecoLocalMuon/RPCRecHit/src/RPCMaskReClusterizer.h"
00023
00024 class RPCCluster;
00025 class RPCRoll;
00026 class RPCDetId;
00027
00028 namespace edm {
00029 class ParameterSet;
00030 class EventSetup;
00031 }
00032
00033
00034 class RPCRecHitBaseAlgo {
00035
00036 public:
00037
00039 RPCRecHitBaseAlgo(const edm::ParameterSet& config);
00040
00042 virtual ~RPCRecHitBaseAlgo();
00043
00045 virtual void setES(const edm::EventSetup& setup) = 0;
00046
00048 virtual edm::OwnVector<RPCRecHit> reconstruct(const RPCRoll& roll,
00049 const RPCDetId& rpcId,
00050 const RPCDigiCollection::Range& digiRange,
00051 const RollMask& mask);
00052
00054 virtual bool compute(const RPCRoll& roll,
00055 const RPCCluster& cl,
00056 LocalPoint& Point,
00057 LocalError& error) const = 0;
00058
00059
00062 virtual bool compute(const RPCRoll& roll,
00063 const RPCCluster& cl,
00064 const float& angle,
00065 const GlobalPoint& globPos,
00066 LocalPoint& Point,
00067 LocalError& error) const = 0;
00068 };
00069 #endif