File indexing completed on 2024-09-07 04:36:15
0001 #include "FWCore/Utilities/interface/InputTag.h"
0002
0003 #include "EventFilter/L1TRawToDigi/plugins/PackerFactory.h"
0004 #include "EventFilter/L1TRawToDigi/plugins/PackingSetupFactory.h"
0005 #include "EventFilter/L1TRawToDigi/plugins/UnpackerFactory.h"
0006
0007 #include "EMTFSetup.h"
0008
0009 namespace l1t {
0010 namespace stage2 {
0011 std::unique_ptr<PackerTokens> EMTFSetup::registerConsumes(const edm::ParameterSet& cfg,
0012 edm::ConsumesCollector& cc) {
0013 return std::unique_ptr<PackerTokens>(new EMTFTokens(cfg, cc));
0014 }
0015
0016
0017 void EMTFSetup::fillDescription(edm::ParameterSetDescription& desc) {
0018 desc.addOptional<edm::InputTag>("EMTFInputLabelAWB")->setComment("for stage2");
0019 }
0020
0021 PackerMap EMTFSetup::getPackers(int fed, unsigned int fw) {
0022 PackerMap res;
0023
0024 if (fed == 1402) {
0025
0026 res[{1, 1}] = {
0027
0028 PackerFactory::get()->make("stage2::RegionalMuonEMTFPacker"),
0029
0030 PackerFactory::get()->make("stage2::MuonPacker"),
0031 };
0032 }
0033
0034 return res;
0035 }
0036
0037 void EMTFSetup::registerProducts(edm::ProducesCollector prod) {
0038 prod.produces<RegionalMuonCandBxCollection>();
0039 prod.produces<RegionalMuonShowerBxCollection>();
0040 prod.produces<EMTFDaqOutCollection>();
0041 prod.produces<EMTFHitCollection>();
0042 prod.produces<EMTFTrackCollection>();
0043 prod.produces<CSCCorrelatedLCTDigiCollection>();
0044 prod.produces<CSCShowerDigiCollection>();
0045 prod.produces<CPPFDigiCollection>();
0046 prod.produces<GEMPadDigiClusterCollection>();
0047 }
0048
0049 std::unique_ptr<UnpackerCollections> EMTFSetup::getCollections(edm::Event& e) {
0050 return std::unique_ptr<UnpackerCollections>(new EMTFCollections(e));
0051 }
0052
0053 UnpackerMap EMTFSetup::getUnpackers(int fed, int board, int amc, unsigned int fw) {
0054
0055
0056
0057 UnpackerMap res;
0058
0059
0060
0061 auto emtf_headers_unp = UnpackerFactory::get()->make(
0062 "stage2::emtf::HeadersBlockUnpacker");
0063 auto emtf_counters_unp =
0064 UnpackerFactory::get()->make("stage2::emtf::CountersBlockUnpacker");
0065 auto emtf_me_unp = UnpackerFactory::get()->make("stage2::emtf::MEBlockUnpacker");
0066 auto emtf_rpc_unp = UnpackerFactory::get()->make("stage2::emtf::RPCBlockUnpacker");
0067 auto emtf_gem_unp = UnpackerFactory::get()->make("stage2::emtf::GEMBlockUnpacker");
0068
0069 auto emtf_sp_unp =
0070 UnpackerFactory::get()->make("stage2::emtf::SPBlockUnpacker");
0071 auto emtf_trailers_unp =
0072 UnpackerFactory::get()->make("stage2::emtf::TrailersBlockUnpacker");
0073
0074
0075 emtf_me_unp->setAlgoVersion(fw);
0076 emtf_sp_unp->setAlgoVersion(fw);
0077 emtf_rpc_unp->setAlgoVersion(fw);
0078 emtf_gem_unp->setAlgoVersion(fw);
0079
0080
0081 res[l1t::mtf7::EvHd] = emtf_headers_unp;
0082 res[l1t::mtf7::CnBlk] = emtf_counters_unp;
0083 res[l1t::mtf7::ME] = emtf_me_unp;
0084 res[l1t::mtf7::RPC] = emtf_rpc_unp;
0085 res[l1t::mtf7::GEM] = emtf_gem_unp;
0086
0087 res[l1t::mtf7::SPOut] = emtf_sp_unp;
0088 res[l1t::mtf7::EvTr] = emtf_trailers_unp;
0089
0090 return res;
0091 }
0092 }
0093 }
0094
0095 DEFINE_L1T_PACKING_SETUP(l1t::stage2::EMTFSetup);