Go to the documentation of this file.00001 #ifndef DataMixingEMDigiWorker_h
00002 #define SimDataMixingEMDigiWorker_h
00003
00017 #include "FWCore/Framework/interface/Event.h"
00018 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00019 #include "FWCore/Framework/interface/EventPrincipal.h"
00020
00021 #include "DataFormats/Provenance/interface/ProductID.h"
00022 #include "DataFormats/Common/interface/Handle.h"
00023 #include "DataFormats/EcalDetId/interface/EBDetId.h"
00024 #include "DataFormats/EcalDetId/interface/EEDetId.h"
00025 #include "DataFormats/EcalDetId/interface/ESDetId.h"
00026
00027 #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h"
00028 #include "DataFormats/EcalDigi/interface/EBDataFrame.h"
00029 #include "DataFormats/EcalDigi/interface/EEDataFrame.h"
00030 #include "DataFormats/EcalDigi/interface/ESDataFrame.h"
00031
00032
00033 #include <map>
00034 #include <vector>
00035 #include <string>
00036
00037
00038 namespace edm
00039 {
00040 class DataMixingEMDigiWorker
00041 {
00042 public:
00043
00044 DataMixingEMDigiWorker();
00045
00047 explicit DataMixingEMDigiWorker(const edm::ParameterSet& ps);
00048
00050 virtual ~DataMixingEMDigiWorker();
00051
00052 void putEM(edm::Event &e,const edm::EventSetup& ES) ;
00053 void addEMSignals(const edm::Event &e,const edm::EventSetup& ES);
00054 void addEMPileups(const int bcr, const edm::EventPrincipal*,unsigned int EventId,const edm::EventSetup& ES);
00055
00056
00057 private:
00059 const std::vector<float> GetPedestals (const edm::EventSetup& ES,
00060 const DetId& detid) ;
00061
00063 const std::vector<float> GetGainRatios(const edm::EventSetup& ES,
00064 const DetId& detid) ;
00065
00066
00067
00068 edm::InputTag EBProducerSig_;
00069 edm::InputTag EEProducerSig_;
00070 edm::InputTag ESProducerSig_;
00071
00072 edm::InputTag EBdigiCollectionSig_;
00073 edm::InputTag EEdigiCollectionSig_;
00074 edm::InputTag ESdigiCollectionSig_;
00075
00076 edm::InputTag EBPileInputTag_;
00077 edm::InputTag EEPileInputTag_;
00078 edm::InputTag ESPileInputTag_;
00079
00080 std::string EBDigiCollectionDM_;
00081 std::string EEDigiCollectionDM_;
00082 std::string ESDigiCollectionDM_;
00083
00084 typedef std::multimap<DetId, EBDataFrame> EBDigiMap;
00085 typedef std::multimap<DetId, EEDataFrame> EEDigiMap;
00086 typedef std::multimap<DetId, ESDataFrame> ESDigiMap;
00087
00088 EBDigiMap EBDigiStorage_;
00089 EEDigiMap EEDigiStorage_;
00090 ESDigiMap ESDigiStorage_;
00091
00092
00093
00094
00095 std::string label_;
00096
00097 };
00098 }
00099
00100 #endif