Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-10-01 22:40:55

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   // region configuration
0026   double thePtMin, theOriginRadius, theOriginHalfLength;
0027   GlobalPoint theOrigin;
0028 
0029   // L1 constraint
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