File indexing completed on 2024-09-07 04:37:41
0001 #ifndef GEMRecHit_ME0SegmentAlgorithmBase_h
0002 #define GEMRecHit_ME0SegmentAlgorithmBase_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #include "DataFormats/GEMRecHit/interface/ME0RecHitCollection.h"
0016 #include "DataFormats/GEMRecHit/interface/ME0Segment.h"
0017 #include "Geometry/GEMGeometry/interface/ME0EtaPartition.h"
0018 #include "Geometry/GEMGeometry/interface/ME0Chamber.h"
0019 #include "FWCore/Framework/interface/Frameworkfwd.h"
0020 #include <map>
0021 #include <vector>
0022
0023 class ME0SegmentAlgorithmBase {
0024 public:
0025 struct HitAndPosition {
0026 HitAndPosition(const ME0RecHit* rh, const LocalPoint& lp, const GlobalPoint& gp, unsigned int idx)
0027 : rh(rh), lp(lp), gp(gp), layer(rh->me0Id().layer()), idx(idx) {}
0028 const ME0RecHit* rh;
0029 LocalPoint lp;
0030 GlobalPoint gp;
0031 unsigned int layer;
0032 unsigned int idx;
0033 };
0034
0035 typedef std::vector<HitAndPosition> HitAndPositionContainer;
0036 typedef std::vector<const HitAndPosition*> HitAndPositionPtrContainer;
0037
0038
0039 explicit ME0SegmentAlgorithmBase(const edm::ParameterSet&) {}
0040
0041 virtual ~ME0SegmentAlgorithmBase() {}
0042
0043
0044
0045 virtual std::vector<ME0Segment> run(const ME0Chamber* chamber, const HitAndPositionContainer& rechits) = 0;
0046
0047 private:
0048 };
0049 #endif