File indexing completed on 2024-04-06 12:30:32
0001 #ifndef SimDataMixingEMDigiWorker_h
0002 #define SimDataMixingEMDigiWorker_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #include "FWCore/Framework/interface/ConsumesCollector.h"
0018 #include "FWCore/Framework/interface/Event.h"
0019 #include "FWCore/Framework/interface/EventPrincipal.h"
0020 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0021
0022 #include "DataFormats/Common/interface/Handle.h"
0023 #include "DataFormats/EcalDetId/interface/EBDetId.h"
0024 #include "DataFormats/EcalDetId/interface/EEDetId.h"
0025 #include "DataFormats/EcalDetId/interface/ESDetId.h"
0026 #include "DataFormats/Provenance/interface/ProductID.h"
0027
0028 #include "DataFormats/EcalDigi/interface/EBDataFrame.h"
0029 #include "DataFormats/EcalDigi/interface/EEDataFrame.h"
0030 #include "DataFormats/EcalDigi/interface/ESDataFrame.h"
0031 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
0032
0033 #include "CondFormats/DataRecord/interface/EcalPedestalsRcd.h"
0034 #include "CondFormats/EcalObjects/interface/EcalPedestals.h"
0035 #include "CondFormats/DataRecord/interface/EcalGainRatiosRcd.h"
0036 #include "CondFormats/EcalObjects/interface/EcalGainRatios.h"
0037
0038 #include <map>
0039 #include <string>
0040 #include <vector>
0041
0042 namespace edm {
0043 class ModuleCallingContext;
0044
0045 class DataMixingEMDigiWorker {
0046 public:
0047 DataMixingEMDigiWorker();
0048
0049
0050 explicit DataMixingEMDigiWorker(const edm::ParameterSet &ps, edm::ConsumesCollector &&iC);
0051
0052
0053 virtual ~DataMixingEMDigiWorker();
0054
0055 void putEM(edm::Event &e, const edm::EventSetup &ES);
0056 void addEMSignals(const edm::Event &e, const edm::EventSetup &ES);
0057 void addEMPileups(const int bcr,
0058 const edm::EventPrincipal *,
0059 unsigned int EventId,
0060 const edm::EventSetup &ES,
0061 ModuleCallingContext const *);
0062
0063 private:
0064
0065 const std::vector<float> GetPedestals(const edm::EventSetup &ES, const DetId &detid);
0066
0067
0068 const std::vector<float> GetGainRatios(const edm::EventSetup &ES, const DetId &detid);
0069
0070
0071
0072 edm::InputTag EBProducerSig_;
0073 edm::InputTag EEProducerSig_;
0074 edm::InputTag ESProducerSig_;
0075
0076 edm::InputTag EBdigiCollectionSig_;
0077
0078 edm::InputTag EEdigiCollectionSig_;
0079
0080 edm::InputTag ESdigiCollectionSig_;
0081
0082
0083 edm::InputTag EBPileInputTag_;
0084 edm::InputTag EEPileInputTag_;
0085 edm::InputTag ESPileInputTag_;
0086
0087 edm::EDGetTokenT<EBDigiCollection> EBDigiToken_;
0088 edm::EDGetTokenT<EEDigiCollection> EEDigiToken_;
0089 edm::EDGetTokenT<ESDigiCollection> ESDigiToken_;
0090
0091 edm::EDGetTokenT<EBDigiCollection> EBDigiPileToken_;
0092 edm::EDGetTokenT<EEDigiCollection> EEDigiPileToken_;
0093 edm::EDGetTokenT<ESDigiCollection> ESDigiPileToken_;
0094
0095 std::string EBDigiCollectionDM_;
0096
0097 std::string EEDigiCollectionDM_;
0098
0099 std::string ESDigiCollectionDM_;
0100
0101
0102 typedef std::multimap<DetId, EBDataFrame> EBDigiMap;
0103 typedef std::multimap<DetId, EEDataFrame> EEDigiMap;
0104 typedef std::multimap<DetId, ESDataFrame> ESDigiMap;
0105
0106 EBDigiMap EBDigiStorage_;
0107 EEDigiMap EEDigiStorage_;
0108 ESDigiMap ESDigiStorage_;
0109
0110
0111
0112 std::string label_;
0113
0114 edm::ESGetToken<EcalPedestals, EcalPedestalsRcd> pedToken_;
0115 edm::ESGetToken<EcalGainRatios, EcalGainRatiosRcd> grToken_;
0116 };
0117 }
0118
0119 #endif