File indexing completed on 2023-03-17 11:19:25
0001 #ifndef RecoLocalMuon_GEMRecHit_GEMRecHitBaseAlgo_H
0002 #define RecoLocalMuon_GEMRecHit_GEMRecHitBaseAlgo_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/GEMDigi/interface/GEMDigiCollection.h"
0015 #include "DataFormats/GEMRecHit/interface/GEMRecHit.h"
0016 #include "DataFormats/Common/interface/OwnVector.h"
0017
0018 #include "RecoLocalMuon/GEMRecHit/interface/GEMEtaPartitionMask.h"
0019 #include "RecoLocalMuon/GEMRecHit/interface/GEMMaskReClusterizer.h"
0020
0021 class GEMCluster;
0022 class GEMEtaPartition;
0023 class GEMDetId;
0024
0025 namespace edm {
0026 class ParameterSet;
0027 class EventSetup;
0028 }
0029
0030 class GEMRecHitBaseAlgo {
0031 public:
0032
0033 GEMRecHitBaseAlgo(const edm::ParameterSet& config);
0034
0035
0036 virtual ~GEMRecHitBaseAlgo();
0037
0038
0039 virtual void setES(const edm::EventSetup& setup) = 0;
0040
0041
0042 virtual edm::OwnVector<GEMRecHit> reconstruct(const GEMEtaPartition& roll,
0043 const GEMDetId& gemId,
0044 const GEMDigiCollection::Range& digiRange,
0045 const EtaPartitionMask& mask);
0046
0047
0048 virtual bool compute(const GEMEtaPartition& roll,
0049 const GEMCluster& cl,
0050 LocalPoint& Point,
0051 LocalError& error) const = 0;
0052
0053
0054
0055 virtual bool compute(const GEMEtaPartition& roll,
0056 const GEMCluster& cl,
0057 const float& angle,
0058 const GlobalPoint& globPos,
0059 LocalPoint& Point,
0060 LocalError& error) const = 0;
0061 };
0062 #endif