File indexing completed on 2023-10-25 10:04:39
0001 #ifndef SimGeneral_DataMixingModule_DataMixingModule_h
0002 #define SimGeneral_DataMixingModule_DataMixingModule_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #include "Mixing/Base/interface/BMixingModule.h"
0016
0017 #include "FWCore/Framework/interface/Event.h"
0018 #include "FWCore/Framework/interface/EventPrincipal.h"
0019 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0020
0021 #include "DataFormats/Common/interface/Handle.h"
0022 #include "DataFormats/Provenance/interface/ProductID.h"
0023
0024 #include "SimDataFormats/PileupSummaryInfo/interface/PileupSummaryInfo.h"
0025
0026 #include "SimGeneral/DataMixingModule/plugins/DataMixingEMDigiWorker.h"
0027 #include "SimGeneral/DataMixingModule/plugins/DataMixingEMWorker.h"
0028 #include "SimGeneral/DataMixingModule/plugins/DataMixingHcalDigiWorker.h"
0029 #include "SimGeneral/DataMixingModule/plugins/DataMixingHcalDigiWorkerProd.h"
0030 #include "SimGeneral/DataMixingModule/plugins/DataMixingHcalWorker.h"
0031 #include "SimGeneral/DataMixingModule/plugins/DataMixingMuonWorker.h"
0032 #include "SimGeneral/DataMixingModule/plugins/DataMixingPileupCopy.h"
0033 #include "SimGeneral/DataMixingModule/plugins/DataMixingSiPixelWorker.h"
0034 #include "SimGeneral/DataMixingModule/plugins/DataMixingSiStripRawWorker.h"
0035 #include "SimGeneral/DataMixingModule/plugins/DataMixingSiStripWorker.h"
0036
0037 #include <map>
0038 #include <string>
0039 #include <vector>
0040
0041 namespace edm {
0042
0043 class ModuleCallingContext;
0044
0045 class DataMixingModule : public BMixingModule {
0046 public:
0047
0048 explicit DataMixingModule(const edm::ParameterSet &ps, MixingCache::Config const *globalConf);
0049
0050
0051 ~DataMixingModule() override;
0052
0053
0054 void checkSignal(const edm::Event &e) override{};
0055 void createnewEDProduct() override {}
0056 void addSignals(const edm::Event &e, const edm::EventSetup &ES) override;
0057 void doPileUp(edm::Event &e, const edm::EventSetup &ES) override;
0058 void put(edm::Event &e, const edm::EventSetup &ES) override;
0059
0060 void initializeEvent(edm::Event const &e, edm::EventSetup const &eventSetup) override;
0061 void beginRun(edm::Run const &run, edm::EventSetup const &eventSetup) override;
0062 bool pileWorker(
0063 const edm::EventPrincipal &, int bcr, int EventId, const edm::EventSetup &ES, ModuleCallingContext const *);
0064
0065
0066 void beginLuminosityBlock(LuminosityBlock const &l1, EventSetup const &c) override;
0067 void endLuminosityBlock(LuminosityBlock const &l1, EventSetup const &c) override;
0068 void endRun(const edm::Run &r, const edm::EventSetup &setup) override;
0069
0070 private:
0071
0072
0073
0074
0075 std::string EBRecHitCollectionDM_;
0076
0077 std::string EERecHitCollectionDM_;
0078
0079 std::string ESRecHitCollectionDM_;
0080
0081
0082
0083 std::string EBDigiCollectionDM_;
0084
0085 std::string EEDigiCollectionDM_;
0086
0087 std::string ESDigiCollectionDM_;
0088
0089
0090
0091
0092
0093 std::string HBHERecHitCollectionDM_;
0094
0095 std::string HORecHitCollectionDM_;
0096
0097 std::string HFRecHitCollectionDM_;
0098
0099 std::string ZDCRecHitCollectionDM_;
0100
0101
0102
0103 std::string HBHEDigiCollectionDM_;
0104
0105 std::string HODigiCollectionDM_;
0106
0107 std::string HFDigiCollectionDM_;
0108
0109 std::string ZDCDigiCollectionDM_;
0110
0111 std::string QIE10DigiCollectionDM_;
0112
0113 std::string QIE11DigiCollectionDM_;
0114
0115
0116
0117
0118 std::string DTDigiCollectionDM_;
0119 std::string RPCDigiCollectionDM_;
0120 std::string CSCStripDigiCollectionDM_;
0121
0122 std::string CSCWireDigiCollectionDM_;
0123
0124 std::string CSCComparatorDigiCollectionDM_;
0125
0126
0127 std::string SiStripDigiCollectionDM_;
0128
0129
0130
0131 std::string PixelDigiCollectionDM_;
0132
0133
0134 bool MergeTrackerDigis_;
0135
0136
0137
0138 DataMixingPileupCopy *PUWorker_;
0139
0140 DataMixingEMWorker *EMWorker_;
0141 DataMixingEMDigiWorker *EMDigiWorker_;
0142 bool MergeEMDigis_;
0143
0144
0145
0146 DataMixingHcalWorker *HcalWorker_;
0147 DataMixingHcalDigiWorker *HcalDigiWorker_;
0148 DataMixingHcalDigiWorkerProd *HcalDigiWorkerProd_;
0149
0150
0151 edm::InputTag EBPileInputTag_;
0152 edm::InputTag EEPileInputTag_;
0153 edm::InputTag ESPileInputTag_;
0154 edm::InputTag HBHEPileInputTag_;
0155 edm::InputTag HOPileInputTag_;
0156 edm::InputTag HFPileInputTag_;
0157 edm::InputTag ZDCPileInputTag_;
0158 edm::InputTag QIE10PileInputTag_;
0159 edm::InputTag QIE11PileInputTag_;
0160 edm::EDGetTokenT<HBHEDigitizerTraits::DigiCollection> tok_hbhe_;
0161 edm::EDGetTokenT<HODigitizerTraits::DigiCollection> tok_ho_;
0162 edm::EDGetTokenT<HFDigitizerTraits::DigiCollection> tok_hf_;
0163 edm::EDGetTokenT<ZDCDigitizerTraits::DigiCollection> tok_zdc_;
0164 edm::EDGetTokenT<HcalQIE10DigitizerTraits::DigiCollection> tok_qie10_;
0165 edm::EDGetTokenT<HcalQIE11DigitizerTraits::DigiCollection> tok_qie11_;
0166
0167 const edm::ESGetToken<HcalDbService, HcalDbRecord> tokDB_;
0168
0169 bool MergeHcalDigis_;
0170 bool MergeHcalDigisProd_;
0171
0172 bool MergePileup_;
0173 bool AddedPileup_;
0174
0175
0176
0177 DataMixingMuonWorker *MuonWorker_;
0178
0179
0180
0181 DataMixingSiStripWorker *SiStripWorker_;
0182 DataMixingSiStripRawWorker *SiStripRawWorker_;
0183 bool useSiStripRawDigi_;
0184 std::string siStripRawDigiSource_;
0185
0186
0187
0188 DataMixingSiPixelWorker *SiPixelWorker_;
0189
0190 virtual void getSubdetectorNames();
0191
0192
0193 std::vector<std::string> Subdetectors_;
0194
0195
0196
0197 std::string label_;
0198 };
0199 }
0200
0201 #endif