File indexing completed on 2025-01-09 23:33:59
0001 #ifndef RecoMuon_TrackerSeedGenerator_CompositeTSG_H
0002 #define RecoMuon_TrackerSeedGenerator_CompositeTSG_H
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #include "RecoMuon/TrackerSeedGenerator/interface/TrackerSeedGenerator.h"
0013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0014 #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h"
0015 #include "FWCore/Framework/interface/ConsumesCollector.h"
0016
0017 class TrackingRegion;
0018 class MuonServiceProxy;
0019 class TrackerTopology;
0020
0021 class CompositeTSG : public TrackerSeedGenerator {
0022 public:
0023 typedef std::vector<TrajectorySeed> BTSeedCollection;
0024 typedef std::pair<const Trajectory *, reco::TrackRef> TrackCand;
0025
0026 CompositeTSG(const edm::ParameterSet &pset, edm::ConsumesCollector &IC);
0027 ~CompositeTSG() override;
0028
0029
0030 void init(const MuonServiceProxy *service) override;
0031
0032 void setEvent(const edm::Event &event) override;
0033
0034
0035 void trackerSeeds(const TrackCand &, const TrackingRegion &, const TrackerTopology *, BTSeedCollection &) override = 0;
0036
0037 protected:
0038 unsigned int nTSGs() { return theTSGs.size(); }
0039 std::vector<std::unique_ptr<TrackerSeedGenerator>> theTSGs;
0040 std::vector<std::string> theNames;
0041 std::string theCategory;
0042
0043 const MuonServiceProxy *theProxyService;
0044 };
0045
0046 #endif