Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:21:07

0001 #ifndef L1T_OmtfP1_L1TMuonOverlapPhase1TrackProducer_H
0002 #define L1T_OmtfP1_L1TMuonOverlapPhase1TrackProducer_H
0003 
0004 #include "L1Trigger/L1TMuonOverlapPhase1/interface/Omtf/OMTFReconstruction.h"
0005 
0006 #include "DataFormats/L1TMuon/interface/RegionalMuonCand.h"
0007 #include "DataFormats/L1TMuon/interface/RegionalMuonCandFwd.h"
0008 
0009 #include "FWCore/Framework/interface/Frameworkfwd.h"
0010 #include "FWCore/Framework/interface/Event.h"
0011 #include "FWCore/Framework/interface/EventSetup.h"
0012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0013 #include "FWCore/Framework/interface/one/EDProducer.h"
0014 
0015 #include "DataFormats/L1DTTrackFinder/interface/L1MuDTChambPhContainer.h"
0016 #include "DataFormats/L1DTTrackFinder/interface/L1MuDTChambThContainer.h"
0017 #include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h"
0018 #include "DataFormats/RPCDigi/interface/RPCDigiCollection.h"
0019 
0020 /**
0021  * The OMTF emulator cannot be run in multiple threads, because GoldenPatternBase keeps GoldenPatternResult's
0022  * which are then used in the GoldenPatternBase::finalise called at the end of OMTFProcessor<GoldenPatternType>::processInput.
0023  * Also patterns generation relies on updating the statistics for the patterns
0024  * This can be fixed, but requires some work.
0025  */
0026 class L1TMuonOverlapPhase1TrackProducer : public edm::one::EDProducer<edm::one::WatchRuns> {
0027 public:
0028   L1TMuonOverlapPhase1TrackProducer(const edm::ParameterSet&);
0029 
0030   ~L1TMuonOverlapPhase1TrackProducer() override;
0031 
0032   void beginJob() override;
0033 
0034   void endJob() override;
0035 
0036   void beginRun(edm::Run const& run, edm::EventSetup const& iSetup) override;
0037 
0038   void endRun(edm::Run const& run, edm::EventSetup const& iSetup) override{};
0039 
0040   void produce(edm::Event&, const edm::EventSetup&) override;
0041 
0042 private:
0043   //edm::EDGetTokenT<edm::SimTrackContainer> inputTokenSimHit;  //TODO remove
0044 
0045   MuStubsInputTokens muStubsInputTokens;
0046 
0047   edm::ESGetToken<L1TMuonOverlapParams, L1TMuonOverlapParamsRcd> omtfParamsEsToken;
0048 
0049   //needed for AngleConverterBase
0050   MuonGeometryTokens muonGeometryTokens;
0051 
0052   ///needed by tools/CandidateSimMuonMatcher.h
0053   edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> magneticFieldEsToken;
0054   edm::ESGetToken<Propagator, TrackingComponentsRecord> propagatorEsToken;
0055 
0056   OMTFReconstruction omtfReconstruction;
0057 };
0058 
0059 #endif