File indexing completed on 2024-04-06 12:26:11
0001 #ifndef GEMRecHit_GEMCSCSegAlgoRR_h
0002 #define GEMRecHit_GEMCSCSegAlgoRR_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include <RecoLocalMuon/GEMCSCSegment/plugins/GEMCSCSegmentAlgorithm.h>
0017 #include <DataFormats/GEMRecHit/interface/GEMRecHit.h>
0018 #include <DataFormats/CSCRecHit/interface/CSCSegment.h>
0019
0020 #include <deque>
0021 #include <vector>
0022
0023 class GEMCSCSegFit;
0024
0025 class GEMCSCSegAlgoRR : public GEMCSCSegmentAlgorithm {
0026 public:
0027
0028 explicit GEMCSCSegAlgoRR(const edm::ParameterSet& ps);
0029
0030
0031 ~GEMCSCSegAlgoRR() override;
0032
0033
0034
0035
0036 std::vector<GEMCSCSegment> run(const std::map<uint32_t, const CSCLayer*>& csclayermap,
0037 const std::map<uint32_t, const GEMEtaPartition*>& gemrollmap,
0038 const std::vector<const CSCSegment*>& cscsegments,
0039 const std::vector<const GEMRecHit*>& gemrechits) override;
0040
0041 private:
0042
0043
0044
0045
0046 std::vector<const TrackingRecHit*> chainHitsToSegm(const CSCSegment* cscsegment,
0047 const std::vector<const GEMRecHit*>& gemrechits);
0048
0049
0050
0051
0052 std::vector<GEMCSCSegment> buildSegments(const CSCSegment* cscsegment,
0053 const std::vector<const TrackingRecHit*>& rechits);
0054
0055
0056 bool debug;
0057 unsigned int minHitsPerSegment;
0058 bool preClustering;
0059 double dXclusBoxMax;
0060 double dYclusBoxMax;
0061 bool preClustering_useChaining;
0062 double dPhiChainBoxMax;
0063 double dThetaChainBoxMax;
0064 double dRChainBoxMax;
0065 int maxRecHitsInCluster;
0066
0067
0068 const std::string myName;
0069
0070 std::map<uint32_t, const CSCLayer*> theCSCLayers_;
0071 std::map<uint32_t, const GEMEtaPartition*> theGEMEtaParts_;
0072 GEMCSCSegFit* sfit_;
0073 };
0074
0075 #endif