File indexing completed on 2024-04-06 12:19:28
0001 #ifndef CSCTrackFinder_CSCTFTrackProducer_h
0002 #define CSCTrackFinder_CSCTFTrackProducer_h
0003
0004 #include <string>
0005
0006 #include "FWCore/Framework/interface/one/EDProducer.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0008 #include "FWCore/Utilities/interface/InputTag.h"
0009 #include "FWCore/Utilities/interface/EDGetToken.h"
0010 #include "FWCore/Utilities/interface/ESGetToken.h"
0011 #include "FWCore/Framework/interface/EventSetup.h"
0012 #include "L1Trigger/CSCTrackFinder/interface/CSCTFDTReceiver.h"
0013 #include "L1Trigger/CSCTrackFinder/src/CSCTFTrackBuilder.h"
0014 #include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h"
0015 #include "CondFormats/DataRecord/interface/L1MuTriggerScalesRcd.h"
0016 #include "CondFormats/DataRecord/interface/L1MuTriggerPtScaleRcd.h"
0017 #include "Geometry/CSCGeometry/interface/CSCGeometry.h"
0018 #include "Geometry/Records/interface/MuonGeometryRecord.h"
0019
0020 class CSCTFTrackBuilder;
0021 class L1MuDTChambPhContainer;
0022 template <typename T>
0023 class CSCTriggerContainer;
0024 namespace csctf {
0025 class TrackStub;
0026 }
0027
0028 class CSCTFTrackProducer : public edm::one::EDProducer<edm::one::SharedResources> {
0029 public:
0030 CSCTFTrackProducer(const edm::ParameterSet&);
0031 void produce(edm::Event& e, const edm::EventSetup& c) override;
0032
0033 private:
0034 CSCTFDTReceiver my_dtrc;
0035 const bool useDT;
0036 const bool TMB07;
0037 const bool readDtDirect;
0038 const edm::EDGetTokenT<CSCCorrelatedLCTDigiCollection> input_module;
0039 const edm::EDGetTokenT<L1MuDTChambPhContainer> dt_producer;
0040 const edm::EDGetTokenT<CSCTriggerContainer<csctf::TrackStub> > directProd;
0041 const edm::ESGetToken<L1MuTriggerScales, L1MuTriggerScalesRcd> m_scalesToken;
0042 const edm::ESGetToken<L1MuTriggerPtScale, L1MuTriggerPtScaleRcd> m_ptScaleToken;
0043 const edm::ESGetToken<CSCGeometry, MuonGeometryRecord> m_pDDToken;
0044 const edm::ParameterSet sp_pset;
0045 const CSCTFTrackBuilder::Tokens m_builderTokens;
0046 unsigned long long m_scalesCacheID;
0047 unsigned long long m_ptScaleCacheID;
0048 std::unique_ptr<CSCTFTrackBuilder> my_builder;
0049 };
0050
0051 #endif