CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DataMixingModule.h
Go to the documentation of this file.
1 #ifndef SimGeneral_DataMixingModule_DataMixingModule_h
2 #define SimGeneral_DataMixingModule_DataMixingModule_h
3 
16 
20 
23 
25 
40 
41 #include <map>
42 #include <vector>
43 #include <string>
44 
46 
47 namespace edm {
48 
49  class ModuleCallingContext;
50 
52  {
53  public:
54 
56  explicit DataMixingModule(const edm::ParameterSet& ps, MixingCache::Config const* globalConf);
57 
59  virtual ~DataMixingModule();
60 
61  // copies, with EventSetup
62  virtual void checkSignal(const edm::Event &e) {}
63  virtual void createnewEDProduct() {}
64  virtual void addSignals(const edm::Event &e, const edm::EventSetup& ES);
65  virtual void doPileUp(edm::Event &e,const edm::EventSetup& ES) override;
66  virtual void put(edm::Event &e,const edm::EventSetup& ES) ;
67 
68  virtual void initializeEvent(edm::Event const& e, edm::EventSetup const& eventSetup);
69  void beginRun(edm::Run const& run, edm::EventSetup const& eventSetup);
70  void pileWorker(const edm::EventPrincipal&, int bcr, int EventId,const edm::EventSetup& ES, ModuleCallingContext const*);
71  //virtual void beginJob();
72  //virtual void endJob();
73  virtual void beginLuminosityBlock(LuminosityBlock const& l1, EventSetup const& c) override;
74  virtual void endLuminosityBlock(LuminosityBlock const& l1, EventSetup const& c) override;
75  virtual void endRun(const edm::Run& r, const edm::EventSetup& setup) override;
76 
77 
78 
79  private:
80  // data specifiers
81 
82  // Ecal
83  //output:
84  std::string EBRecHitCollectionDM_; // secondary name to be given to EB collection of hits
85  std::string EERecHitCollectionDM_; // secondary name to be given to EE collection of hits
86  std::string ESRecHitCollectionDM_; // secondary name to be given to EE collection of hits
87  //Digis:
88  //output
89  std::string EBDigiCollectionDM_; // secondary name to be given to EB collection of hits
90  std::string EEDigiCollectionDM_; // secondary name to be given to EE collection of hits
91  std::string ESDigiCollectionDM_; // secondary name to be given to EE collection of hits
92 
93  // Hcal
94  // Rechits:
95  // output:
96  std::string HBHERecHitCollectionDM_; // secondary name to be given to HBHE collection of hits
97  std::string HORecHitCollectionDM_ ; // secondary name to be given to HO collection of hits
98  std::string HFRecHitCollectionDM_ ; // secondary name to be given to HF collection of hits
99  std::string ZDCRecHitCollectionDM_ ; // secondary name to be given to ZDC collection of hits
100  // Digis:
101  // output:
102  std::string HBHEDigiCollectionDM_; // secondary name to be given to HBHE collection of hits
103  std::string HODigiCollectionDM_ ; // secondary name to be given to HO collection of hits
104  std::string HFDigiCollectionDM_ ; // secondary name to be given to HF collection of hits
105  std::string ZDCDigiCollectionDM_ ; // secondary name to be given to ZDC collection of hits
106 
107  // Muons
108  // output:
109  std::string DTDigiCollectionDM_; // secondary name to be given to new DT digis
110  std::string RPCDigiCollectionDM_; // secondary name to be given to new RPC digis
111  std::string CSCStripDigiCollectionDM_; // secondary name given to new collection of CSC Strip digis
112  std::string CSCWireDigiCollectionDM_; // secondary name given to new collection of CSC wire digis
113  std::string CSCComparatorDigiCollectionDM_; // " " CSC Comparator digis
114 
115  // SiStrips
116  std::string SiStripDigiCollectionDM_ ; // secondary name to be given to new SiStrip digis
117 
118  // SiPixels
119  std::string PixelDigiCollectionDM_ ; // secondary name to be given to new SiPixel digis
120 
121  // merge tracker digis or tracks?
123 
124  // Submodules to handle the individual detectors
125 
127 
132 
133  // Hcal
134 
138 
139  // tokens needed to DataMixingHcalDigiWorkerProd
140  edm::InputTag EBPileInputTag_; // InputTag for Pileup Digis collection
141  edm::InputTag EEPileInputTag_ ; // InputTag for Pileup Digis collection
142  edm::InputTag ESPileInputTag_ ; // InputTag for Pileup Digis collection
143  edm::InputTag HBHEPileInputTag_; // InputTag for Pileup Digis collection
144  edm::InputTag HOPileInputTag_ ; // InputTag for Pileup Digis collection
145  edm::InputTag HFPileInputTag_ ; // InputTag for Pileup Digis collection
146  edm::InputTag ZDCPileInputTag_ ; // InputTag for Pileup Digis collection
154 
157 
160 
161  // Muons
162 
164 
165  // Si-Strips
166 
173 
174  // Pixels
175 
178 
179  // Tracks
180 
182 
183 
184  // Validation
185 
187 
188  virtual void getSubdetectorNames();
189 
190  // internally used information : subdetectors present in input
191  std::vector<std::string> Subdetectors_;
192 
193  // unsigned int eventId_; //=0 for signal, from 1-n for pileup events
194 
196 
197  };
198 }//edm
199 
200 #endif
std::string siStripRawDigiSource_
virtual void doPileUp(edm::Event &e, const edm::EventSetup &ES) override
virtual void initializeEvent(edm::Event const &e, edm::EventSetup const &eventSetup)
std::string HFDigiCollectionDM_
virtual void endRun(const edm::Run &r, const edm::EventSetup &setup) override
virtual void beginLuminosityBlock(LuminosityBlock const &l1, EventSetup const &c) override
std::string HBHERecHitCollectionDM_
std::string ZDCRecHitCollectionDM_
void beginRun(edm::Run const &run, edm::EventSetup const &eventSetup)
edm::EDGetTokenT< EBDigitizerTraits::DigiCollection > tok_eb_
std::string CSCStripDigiCollectionDM_
std::string SiStripDigiCollectionDM_
edm::EDGetTokenT< ZDCDigitizerTraits::DigiCollection > tok_zdc_
edm::EDGetTokenT< HODigitizerTraits::DigiCollection > tok_ho_
DigiAccumulatorMixMod * GeneralTrackWorker_
std::string CSCWireDigiCollectionDM_
edm::EDGetTokenT< ESDigitizerTraits::DigiCollection > tok_es_
DataMixingSiStripRawWorker * SiStripRawWorker_
DataMixingSiPixelWorker * SiPixelWorker_
DataMixingSiStripMCDigiWorker * SiStripMCDigiWorker_
std::string RPCDigiCollectionDM_
std::string ZDCDigiCollectionDM_
DataMixingHcalDigiWorker * HcalDigiWorker_
DataMixingEMWorker * EMWorker_
virtual void addSignals(const edm::Event &e, const edm::EventSetup &ES)
edm::InputTag EEPileInputTag_
edm::EDGetTokenT< EEDigitizerTraits::DigiCollection > tok_ee_
edm::InputTag ESPileInputTag_
DataMixingPileupCopy * PUWorker_
virtual void createnewEDProduct()
std::string HORecHitCollectionDM_
DataMixingEcalDigiWorkerProd * EcalDigiWorkerProd_
virtual void endLuminosityBlock(LuminosityBlock const &l1, EventSetup const &c) override
DataMixingMuonWorker * MuonWorker_
virtual void getSubdetectorNames()
edm::InputTag EBPileInputTag_
std::string EEDigiCollectionDM_
DataMixingTrackingParticleWorker * TrackingParticleWorker_
edm::InputTag HBHEPileInputTag_
std::string HFRecHitCollectionDM_
void pileWorker(const edm::EventPrincipal &, int bcr, int EventId, const edm::EventSetup &ES, ModuleCallingContext const *)
std::string HBHEDigiCollectionDM_
std::string EBRecHitCollectionDM_
std::string CSCComparatorDigiCollectionDM_
edm::InputTag HOPileInputTag_
virtual void checkSignal(const edm::Event &e)
DataMixingModule(const edm::ParameterSet &ps, MixingCache::Config const *globalConf)
DataMixingSiStripWorker * SiStripWorker_
std::string ESRecHitCollectionDM_
std::string EERecHitCollectionDM_
edm::EDGetTokenT< HFDigitizerTraits::DigiCollection > tok_hf_
std::string ESDigiCollectionDM_
std::string DTDigiCollectionDM_
std::string EBDigiCollectionDM_
DataMixingHcalWorker * HcalWorker_
edm::InputTag HFPileInputTag_
std::string HODigiCollectionDM_
std::string PixelDigiCollectionDM_
DataMixingSiPixelMCDigiWorker * SiPixelMCDigiWorker_
edm::EDGetTokenT< HBHEDigitizerTraits::DigiCollection > tok_hbhe_
DataMixingHcalDigiWorkerProd * HcalDigiWorkerProd_
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
DataMixingEMDigiWorker * EMDigiWorker_
std::vector< std::string > Subdetectors_
Definition: Run.h:43
edm::InputTag ZDCPileInputTag_
virtual void put(edm::Event &e, const edm::EventSetup &ES)