File indexing completed on 2024-04-06 12:27:15
0001 #ifndef RecoMuon_TrackerSeedGenerator_L1MuonRegionProducer_H
0002 #define RecoMuon_TrackerSeedGenerator_L1MuonRegionProducer_H
0003 #include "FWCore/Framework/interface/ConsumesCollector.h"
0004 #include "FWCore/Framework/interface/FrameworkfwdMostUsed.h"
0005 #include "RecoTracker/TkTrackingRegions/interface/TrackingRegion.h"
0006 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0007 #include <vector>
0008 #include <memory>
0009
0010 class TrackingRegion;
0011 class L1MuGMTCand;
0012 class MagneticField;
0013 class IdealMagneticFieldRecord;
0014 class MultipleScatteringParametrisationMaker;
0015 class TrackerMultipleScatteringRecord;
0016
0017 class L1MuonRegionProducer {
0018 public:
0019 L1MuonRegionProducer(const edm::ParameterSet& cfg, edm::ConsumesCollector iC);
0020 ~L1MuonRegionProducer() = default;
0021 void setL1Constraint(const L1MuGMTCand& muon);
0022 std::vector<std::unique_ptr<TrackingRegion> > regions(const edm::EventSetup& iSetup) const;
0023
0024 private:
0025
0026 double thePtMin, theOriginRadius, theOriginHalfLength;
0027 GlobalPoint theOrigin;
0028
0029
0030 double thePtL1, thePhiL1, theEtaL1;
0031 int theChargeL1;
0032
0033 edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> theFieldToken;
0034 edm::ESGetToken<MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord> theMSMakerToken;
0035 };
0036
0037 #endif