File indexing completed on 2024-04-06 12:18:40
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include <memory>
0021
0022
0023 #include "FWCore/Framework/interface/Frameworkfwd.h"
0024 #include "FWCore/Framework/interface/global/EDProducer.h"
0025
0026 #include "FWCore/Framework/interface/Event.h"
0027 #include "FWCore/Framework/interface/MakerMacros.h"
0028
0029 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0030 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0031 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0032
0033
0034 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
0035 #include "DataFormats/EcalRecHit/interface/EcalRecHitComparison.h"
0036
0037 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"
0038
0039
0040 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
0041
0042 #include <DataFormats/DTDigi/interface/DTDigiCollection.h>
0043 #include <DataFormats/DTDigi/interface/DTLocalTriggerCollection.h>
0044
0045 #include "DataFormats/CSCDigi/interface/CSCStripDigiCollection.h"
0046 #include "DataFormats/CSCDigi/interface/CSCWireDigiCollection.h"
0047 #include "DataFormats/CSCDigi/interface/CSCComparatorDigiCollection.h"
0048 #include "DataFormats/CSCDigi/interface/CSCALCTDigiCollection.h"
0049 #include "DataFormats/CSCDigi/interface/CSCCLCTDigiCollection.h"
0050 #include "DataFormats/CSCDigi/interface/CSCRPCDigiCollection.h"
0051 #include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h"
0052 #include "DataFormats/MuonDetId/interface/CSCDetId.h"
0053
0054 #include "DataFormats/SiPixelDigi/interface/PixelDigi.h"
0055 #include "DataFormats/Common/interface/DetSetVector.h"
0056
0057 #include "DataFormats/Common/interface/DetSetVectorNew.h"
0058 #include "DataFormats/SiStripCluster/interface/SiStripCluster.h"
0059
0060 #include "DataFormats/L1GlobalCaloTrigger/interface/L1GctCollections.h"
0061
0062
0063 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerObjectMapRecord.h"
0064
0065
0066
0067
0068
0069 class HLTDummyCollections : public edm::global::EDProducer<> {
0070 public:
0071 explicit HLTDummyCollections(const edm::ParameterSet&);
0072 ~HLTDummyCollections() override;
0073 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0074
0075 private:
0076 void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
0077
0078
0079
0080
0081 bool doHcal_;
0082 bool unpackZDC_;
0083 bool doEcalPreshower_;
0084 std::string ESdigiCollection_;
0085 bool doMuonDTDigis_;
0086 bool doMuonCSCDigis_;
0087 bool doSiPixelDigis_;
0088 bool doSiStrip_;
0089 bool doGCT_;
0090 bool doObjectMap_;
0091 };
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104 HLTDummyCollections::HLTDummyCollections(const edm::ParameterSet& iConfig) {
0105 auto action = iConfig.getParameter<std::string>("action");
0106 unpackZDC_ = iConfig.getParameter<bool>("UnpackZDC");
0107 ESdigiCollection_ = iConfig.getParameter<std::string>("ESdigiCollection");
0108
0109
0110 doHcal_ = (action == "doHcal");
0111 doEcalPreshower_ = (action == "doEcalPreshower");
0112 doMuonDTDigis_ = (action == "doMuonDT");
0113 doMuonCSCDigis_ = (action == "doMuonCSC");
0114 doSiPixelDigis_ = (action == "doSiPixel");
0115 doSiStrip_ = (action == "doSiStrip");
0116 doObjectMap_ = (action == "doObjectMap");
0117 doGCT_ = (action == "doGCT");
0118
0119
0120
0121
0122
0123
0124
0125 if (doHcal_) {
0126
0127 produces<HBHEDigiCollection>();
0128 produces<HFDigiCollection>();
0129 produces<HODigiCollection>();
0130 produces<HcalTrigPrimDigiCollection>();
0131 produces<HOTrigPrimDigiCollection>();
0132 if (unpackZDC_) {
0133 produces<ZDCDigiCollection>();
0134 }
0135 }
0136
0137 if (doEcalPreshower_) {
0138 produces<ESDigiCollection>();
0139 }
0140
0141 if (doMuonDTDigis_) {
0142 produces<DTDigiCollection>();
0143 produces<DTLocalTriggerCollection>();
0144 }
0145
0146 if (doMuonCSCDigis_) {
0147 produces<CSCWireDigiCollection>("MuonCSCWireDigi");
0148 produces<CSCStripDigiCollection>("MuonCSCStripDigi");
0149 produces<CSCALCTDigiCollection>("MuonCSCALCTDigi");
0150 produces<CSCCLCTDigiCollection>("MuonCSCCLCTDigi");
0151 produces<CSCComparatorDigiCollection>("MuonCSCComparatorDigi");
0152 produces<CSCRPCDigiCollection>("MuonCSCRPCDigi");
0153 produces<CSCCorrelatedLCTDigiCollection>("MuonCSCCorrelatedLCTDigi");
0154 }
0155
0156 if (doSiPixelDigis_) {
0157 produces<edm::DetSetVector<PixelDigi> >();
0158 }
0159
0160 if (doSiStrip_) {
0161 produces<edmNew::DetSetVector<SiStripCluster> >();
0162 }
0163
0164 if (doGCT_) {
0165
0166 produces<L1GctEmCandCollection>("isoEm");
0167 produces<L1GctEmCandCollection>("nonIsoEm");
0168 produces<L1GctJetCandCollection>("cenJets");
0169 produces<L1GctJetCandCollection>("forJets");
0170 produces<L1GctJetCandCollection>("tauJets");
0171 produces<L1GctHFBitCountsCollection>();
0172 produces<L1GctHFRingEtSumsCollection>();
0173 produces<L1GctEtTotalCollection>();
0174 produces<L1GctEtHadCollection>();
0175 produces<L1GctEtMissCollection>();
0176 produces<L1GctHtMissCollection>();
0177 produces<L1GctJetCountsCollection>();
0178 }
0179
0180 if (doObjectMap_) {
0181 produces<L1GlobalTriggerObjectMapRecord>();
0182 }
0183 }
0184
0185 HLTDummyCollections::~HLTDummyCollections() {
0186
0187
0188 }
0189
0190 void HLTDummyCollections::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0191 edm::ParameterSetDescription desc;
0192 desc.add<std::string>("action", "");
0193 desc.add<bool>("UnpackZDC", false);
0194 desc.add<std::string>("ESdigiCollection", "");
0195 descriptions.add("HLTDummyCollections", desc);
0196 }
0197
0198
0199
0200
0201
0202
0203 void HLTDummyCollections::produce(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const {
0204 using namespace edm;
0205
0206
0207
0208
0209
0210
0211
0212 if (doHcal_) {
0213 std::unique_ptr<HBHEDigiCollection> hbhe_prod(new HBHEDigiCollection());
0214 std::unique_ptr<HFDigiCollection> hf_prod(new HFDigiCollection());
0215 std::unique_ptr<HODigiCollection> ho_prod(new HODigiCollection());
0216 std::unique_ptr<HcalTrigPrimDigiCollection> htp_prod(new HcalTrigPrimDigiCollection());
0217 std::unique_ptr<HOTrigPrimDigiCollection> hotp_prod(new HOTrigPrimDigiCollection());
0218 iEvent.put(std::move(hbhe_prod));
0219 iEvent.put(std::move(hf_prod));
0220 iEvent.put(std::move(ho_prod));
0221 iEvent.put(std::move(htp_prod));
0222 iEvent.put(std::move(hotp_prod));
0223 if (unpackZDC_) {
0224 std::unique_ptr<ZDCDigiCollection> zdcprod(new ZDCDigiCollection());
0225 iEvent.put(std::move(zdcprod));
0226 }
0227 }
0228
0229 if (doEcalPreshower_) {
0230 std::unique_ptr<ESDigiCollection> productDigis(new ESDigiCollection);
0231 iEvent.put(std::move(productDigis), ESdigiCollection_);
0232 }
0233
0234 if (doMuonDTDigis_) {
0235 std::unique_ptr<DTDigiCollection> detectorProduct(new DTDigiCollection);
0236 std::unique_ptr<DTLocalTriggerCollection> triggerProduct(new DTLocalTriggerCollection);
0237 iEvent.put(std::move(detectorProduct));
0238 iEvent.put(std::move(triggerProduct));
0239 }
0240
0241 if (doMuonCSCDigis_) {
0242 std::unique_ptr<CSCWireDigiCollection> wireProduct(new CSCWireDigiCollection);
0243 std::unique_ptr<CSCStripDigiCollection> stripProduct(new CSCStripDigiCollection);
0244 std::unique_ptr<CSCALCTDigiCollection> alctProduct(new CSCALCTDigiCollection);
0245 std::unique_ptr<CSCCLCTDigiCollection> clctProduct(new CSCCLCTDigiCollection);
0246 std::unique_ptr<CSCComparatorDigiCollection> comparatorProduct(new CSCComparatorDigiCollection);
0247 std::unique_ptr<CSCRPCDigiCollection> rpcProduct(new CSCRPCDigiCollection);
0248 std::unique_ptr<CSCCorrelatedLCTDigiCollection> corrlctProduct(new CSCCorrelatedLCTDigiCollection);
0249
0250 iEvent.put(std::move(wireProduct), "MuonCSCWireDigi");
0251 iEvent.put(std::move(stripProduct), "MuonCSCStripDigi");
0252 iEvent.put(std::move(alctProduct), "MuonCSCALCTDigi");
0253 iEvent.put(std::move(clctProduct), "MuonCSCCLCTDigi");
0254 iEvent.put(std::move(comparatorProduct), "MuonCSCComparatorDigi");
0255 iEvent.put(std::move(rpcProduct), "MuonCSCRPCDigi");
0256 iEvent.put(std::move(corrlctProduct), "MuonCSCCorrelatedLCTDigi");
0257 }
0258
0259 if (doSiPixelDigis_) {
0260 std::unique_ptr<edm::DetSetVector<PixelDigi> > SiPicollection(new edm::DetSetVector<PixelDigi>);
0261 iEvent.put(std::move(SiPicollection));
0262 }
0263
0264 if (doSiStrip_) {
0265 std::unique_ptr<edmNew::DetSetVector<SiStripCluster> > SiStripcollection(new edmNew::DetSetVector<SiStripCluster>);
0266 iEvent.put(std::move(SiStripcollection));
0267 }
0268
0269 if (doGCT_) {
0270 std::unique_ptr<L1GctEmCandCollection> m_gctIsoEm(new L1GctEmCandCollection);
0271 std::unique_ptr<L1GctEmCandCollection> m_gctNonIsoEm(new L1GctEmCandCollection);
0272 std::unique_ptr<L1GctJetCandCollection> m_gctCenJets(new L1GctJetCandCollection);
0273 std::unique_ptr<L1GctJetCandCollection> m_gctForJets(new L1GctJetCandCollection);
0274 std::unique_ptr<L1GctJetCandCollection> m_gctTauJets(new L1GctJetCandCollection);
0275 std::unique_ptr<L1GctHFBitCountsCollection> m_gctHfBitCounts(new L1GctHFBitCountsCollection);
0276 std::unique_ptr<L1GctHFRingEtSumsCollection> m_gctHfRingEtSums(new L1GctHFRingEtSumsCollection);
0277 std::unique_ptr<L1GctEtTotalCollection> m_gctEtTot(new L1GctEtTotalCollection);
0278 std::unique_ptr<L1GctEtHadCollection> m_gctEtHad(new L1GctEtHadCollection);
0279 std::unique_ptr<L1GctEtMissCollection> m_gctEtMiss(new L1GctEtMissCollection);
0280 std::unique_ptr<L1GctHtMissCollection> m_gctHtMiss(new L1GctHtMissCollection);
0281 std::unique_ptr<L1GctJetCountsCollection> m_gctJetCounts(new L1GctJetCountsCollection);
0282
0283 iEvent.put(std::move(m_gctIsoEm), "isoEm");
0284 iEvent.put(std::move(m_gctNonIsoEm), "nonIsoEm");
0285 iEvent.put(std::move(m_gctCenJets), "cenJets");
0286 iEvent.put(std::move(m_gctForJets), "forJets");
0287 iEvent.put(std::move(m_gctTauJets), "tauJets");
0288 iEvent.put(std::move(m_gctHfBitCounts));
0289 iEvent.put(std::move(m_gctHfRingEtSums));
0290 iEvent.put(std::move(m_gctEtTot));
0291 iEvent.put(std::move(m_gctEtHad));
0292 iEvent.put(std::move(m_gctEtMiss));
0293 iEvent.put(std::move(m_gctHtMiss));
0294 iEvent.put(std::move(m_gctJetCounts));
0295 }
0296
0297 if (doObjectMap_) {
0298 std::unique_ptr<L1GlobalTriggerObjectMapRecord> gtObjectMapRecord(new L1GlobalTriggerObjectMapRecord());
0299 iEvent.put(std::move(gtObjectMapRecord));
0300 }
0301 }
0302
0303
0304 DEFINE_FWK_MODULE(HLTDummyCollections);