CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_3/src/SimGeneral/DataMixingModule/plugins/DataMixingHcalDigiWorker.h

Go to the documentation of this file.
00001 #ifndef DataMixingHcalDigiWorker_h
00002 #define SimDataMixingHcalDigiWorker_h
00003 
00017 #include "FWCore/Framework/interface/Event.h"
00018 #include "FWCore/Framework/interface/EventPrincipal.h"
00019 #include "FWCore/Framework/interface/EventSetup.h"
00020 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00021 #include "FWCore/Framework/interface/Selector.h"
00022 
00023 #include "CalibFormats/CaloObjects/interface/CaloSamples.h"
00024 #include "DataFormats/Provenance/interface/ProductID.h"
00025 #include "DataFormats/Common/interface/Handle.h"
00026 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"
00027 #include "DataFormats/HcalDigi/interface/HBHEDataFrame.h"
00028 #include "DataFormats/HcalDigi/interface/HODataFrame.h"
00029 #include "DataFormats/HcalDigi/interface/HFDataFrame.h"
00030 
00031 
00032 #include <map>
00033 #include <vector>
00034 #include <string>
00035 
00036 
00037 namespace edm
00038 {
00039   class DataMixingHcalDigiWorker
00040     {
00041     public:
00042 
00043       DataMixingHcalDigiWorker();
00044 
00046       explicit DataMixingHcalDigiWorker(const edm::ParameterSet& ps);
00047 
00049       virtual ~DataMixingHcalDigiWorker();
00050 
00051       void putHcal(edm::Event &e,const edm::EventSetup& ES) ;
00052       void addHcalSignals(const edm::Event &e,const edm::EventSetup& ES); 
00053       void addHcalPileups(const int bcr, const edm::EventPrincipal*,unsigned int EventId,const edm::EventSetup& ES);
00054 
00055 
00056     private:
00057       // data specifiers
00058 
00059       // Hcal
00060       edm::InputTag HBHEdigiCollectionSig_; // secondary name given to collection of digis
00061       edm::InputTag HOdigiCollectionSig_  ; // secondary name given to collection of digis
00062       edm::InputTag HFdigiCollectionSig_  ; // secondary name given to collection of digis
00063       edm::InputTag ZDCdigiCollectionSig_ ; // secondary name given to collection of digis
00064 
00065       edm::InputTag HBHEPileInputTag_; // InputTag for Pileup Digis collection  
00066       edm::InputTag HOPileInputTag_  ; // InputTag for Pileup Digis collection
00067       edm::InputTag HFPileInputTag_  ; // InputTag for Pileup Digis collection
00068       edm::InputTag ZDCPileInputTag_ ; // InputTag for Pileup Digis collection
00069 
00070       std::string HBHEDigiCollectionDM_; // secondary name to be given to collection of digis
00071       std::string HODigiCollectionDM_  ; // secondary name to be given to collection of digis
00072       std::string HFDigiCollectionDM_  ; // secondary name to be given to collection of digis
00073       std::string ZDCDigiCollectionDM_ ; // secondary name to be given to collection of digis
00074 
00075       typedef std::multimap<DetId, CaloSamples> HBHEDigiMap;
00076       typedef std::multimap<DetId, CaloSamples> HFDigiMap;
00077       typedef std::multimap<DetId, CaloSamples> HODigiMap;
00078       typedef std::multimap<DetId, CaloSamples> ZDCDigiMap;
00079 
00080       //      typedef std::multimap<DetId, HBHEDataFrame> HBHEDigiMap;
00081       //      typedef std::multimap<DetId, HFDataFrame>   HFDigiMap;
00082       //      typedef std::multimap<DetId, HODataFrame>   HODigiMap;
00083       //      typedef std::multimap<DetId, ZDCDataFrame>  ZDCDigiMap;
00084 
00085       HBHEDigiMap HBHEDigiStorage_;
00086       HFDigiMap   HFDigiStorage_;
00087       HODigiMap   HODigiStorage_;
00088       ZDCDigiMap  ZDCDigiStorage_;
00089 
00090       bool DoZDC_;
00091 
00092       //      unsigned int eventId_; //=0 for signal, from 1-n for pileup events
00093 
00094       Selector * sel_;
00095       std::string label_;
00096 
00097     };
00098 }//edm
00099 
00100 #endif