File indexing completed on 2025-01-09 23:33:54
0001 #ifndef RecoMuon_MuonSeedGenerator_RPCSeedFinder_H
0002 #define RecoMuon_MuonSeedGenerator_RPCSeedFinder_H
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include "RecoMuon/MuonSeedGenerator/interface/RPCSeedPattern.h"
0012 #include <DataFormats/TrajectorySeed/interface/TrajectorySeed.h>
0013 #include <RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h>
0014 #include <FWCore/ParameterSet/interface/ParameterSet.h>
0015 #include <vector>
0016 #include <algorithm>
0017
0018 class MagneticField;
0019 class RPCGeometry;
0020
0021 class RPCSeedFinder {
0022 typedef MuonTransientTrackingRecHit::MuonRecHitPointer MuonRecHitPointer;
0023 typedef MuonTransientTrackingRecHit::ConstMuonRecHitPointer ConstMuonRecHitPointer;
0024 typedef MuonTransientTrackingRecHit::MuonRecHitContainer MuonRecHitContainer;
0025 typedef MuonTransientTrackingRecHit::ConstMuonRecHitContainer ConstMuonRecHitContainer;
0026 typedef RPCSeedPattern::weightedTrajectorySeed weightedTrajectorySeed;
0027
0028 public:
0029 RPCSeedFinder();
0030 ~RPCSeedFinder();
0031 void configure(const edm::ParameterSet &iConfig);
0032 void setOutput(std::vector<weightedTrajectorySeed> *goodweightedRef,
0033 std::vector<weightedTrajectorySeed> *candidateweightedRef);
0034 void setrecHits(ConstMuonRecHitContainer &recHits);
0035 void setEventSetup(const MagneticField &field, const RPCGeometry &rpcGeom);
0036 void seed();
0037
0038 private:
0039
0040 bool isrecHitsset;
0041 bool isConfigured;
0042 bool isOutputset;
0043 bool isEventSetupset;
0044 const MagneticField *pField = nullptr;
0045 const RPCGeometry *pRPCGeom = nullptr;
0046 RPCSeedPattern oneSeed;
0047
0048 std::vector<weightedTrajectorySeed> *goodweightedSeedsRef;
0049 std::vector<weightedTrajectorySeed> *candidateweightedSeedsRef;
0050 };
0051 #endif