CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HLTGetDigi.cc
Go to the documentation of this file.
1 
13 
17 
18 // system include files
19 #include <memory>
20 #include <vector>
21 #include <map>
22 
27 
62 
63 using namespace edm;
64 using namespace std;
65 
66 //
67 // constructors and destructor
68 //
70 {
71  EBdigiCollection_ = ps.getParameter<edm::InputTag>("EBdigiCollection");
72  EEdigiCollection_ = ps.getParameter<edm::InputTag>("EEdigiCollection");
73  ESdigiCollection_ = ps.getParameter<edm::InputTag>("ESdigiCollection");
74  HBHEdigiCollection_ = ps.getParameter<edm::InputTag>("HBHEdigiCollection");
75  HOdigiCollection_ = ps.getParameter<edm::InputTag>("HOdigiCollection");
76  HFdigiCollection_ = ps.getParameter<edm::InputTag>("HFdigiCollection");
77  PXLdigiCollection_ = ps.getParameter<edm::InputTag>("SiPixeldigiCollection");
78  SSTdigiCollection_ = ps.getParameter<edm::InputTag>("SiStripdigiCollection");
79  CSCStripdigiCollection_ = ps.getParameter<edm::InputTag>("CSCStripdigiCollection");
80  CSCWiredigiCollection_ = ps.getParameter<edm::InputTag>("CSCWiredigiCollection");
81  DTdigiCollection_ = ps.getParameter<edm::InputTag>("DTdigiCollection");
82  RPCdigiCollection_ = ps.getParameter<edm::InputTag>("RPCdigiCollection");
83 
84  GctCaloEmLabel_ = ps.getParameter<edm::InputTag>("L1CaloEmCollection");
85  GctCaloRegionLabel_ = ps.getParameter<edm::InputTag>("L1CaloRegionCollection");
86 
87  GctIsoEmLabel_ = ps.getParameter<edm::InputTag>("GctIsoEmCollection");
88  GctNonIsoEmLabel_ = ps.getParameter<edm::InputTag>("GctNonIsoEmCollection");
89 
90  GctCenJetLabel_ = ps.getParameter<edm::InputTag>("GctCenJetCollection");
91  GctForJetLabel_ = ps.getParameter<edm::InputTag>("GctForJetCollection");
92  GctTauJetLabel_ = ps.getParameter<edm::InputTag>("GctTauJetCollection");
93  GctJetCountsLabel_ = ps.getParameter<edm::InputTag>("GctJetCounts");
94 
95  GctEtHadLabel_ = ps.getParameter<edm::InputTag>("GctEtHadCollection");
96  GctEtMissLabel_ = ps.getParameter<edm::InputTag>("GctEtMissCollection");
97  GctEtTotalLabel_ = ps.getParameter<edm::InputTag>("GctEtTotalCollection");
98 
99  GtEvmRRLabel_ = ps.getParameter<edm::InputTag>("GtEvmReadoutRecord");
100  GtObjectMapLabel_ = ps.getParameter<edm::InputTag>("GtObjectMapRecord");
101  GtRRLabel_ = ps.getParameter<edm::InputTag>("GtReadoutRecord");
102 
103  GmtCandsLabel_ = ps.getParameter<edm::InputTag>("GmtCands");
104  GmtReadoutCollection_ = ps.getParameter<edm::InputTag>("GmtReadoutCollection");
105 
106  //--- Define which digis we want ---//
107  getEcalDigis_ = ps.getUntrackedParameter<bool>("getEcal",true) ;
108  getEcalESDigis_ = ps.getUntrackedParameter<bool>("getEcalES",true) ;
109  getHcalDigis_ = ps.getUntrackedParameter<bool>("getHcal",true) ;
110  getPixelDigis_ = ps.getUntrackedParameter<bool>("getPixels",true) ;
111  getStripDigis_ = ps.getUntrackedParameter<bool>("getStrips",true) ;
112  getCSCDigis_ = ps.getUntrackedParameter<bool>("getCSC",true) ;
113  getDTDigis_ = ps.getUntrackedParameter<bool>("getDT",true) ;
114  getRPCDigis_ = ps.getUntrackedParameter<bool>("getRPC",true) ;
115  getGctEmDigis_ = ps.getUntrackedParameter<bool>("getGctEm",true) ;
116  getGctJetDigis_ = ps.getUntrackedParameter<bool>("getGctJet",true) ;
117  getGctJetCounts_ = ps.getUntrackedParameter<bool>("getGctJetCounts",true) ;
118  getGctEtDigis_ = ps.getUntrackedParameter<bool>("getGctEt",true) ;
119  getL1Calo_ = ps.getUntrackedParameter<bool>("getL1Calo",true) ;
120  getGtEvmRR_ = ps.getUntrackedParameter<bool>("getGtEvmRR",true) ;
121  getGtObjectMap_ = ps.getUntrackedParameter<bool>("getGtObjectMap",true) ;
122  getGtRR_ = ps.getUntrackedParameter<bool>("getGtReadoutRecord",true) ;
123  getGmtCands_ = ps.getUntrackedParameter<bool>("getGmtCands",true) ;
124  getGmtRC_ = ps.getUntrackedParameter<bool>("getGmtReadout",true) ;
125 
126 }
127 
129 { }
130 
131 //
132 // member functions
133 //
134 
135 // ------------ method called to produce the data ------------
136 void
138 {
139  using namespace edm;
140 
141  //--- L1 GCT and GT Digis ---//
142  edm::Handle<L1GctEtHad> GctEtHad ;
143  edm::Handle<L1GctEtMiss> GctEtMiss ;
144  edm::Handle<L1GctEtTotal> GctEtTotal ;
145 
146  const L1GctEtHad* etHad = 0 ;
147  const L1GctEtMiss* etMiss = 0 ;
148  const L1GctEtTotal* etTotal = 0 ;
149 
150  if (getGctEtDigis_) {
151  iEvent.getByLabel(GctEtHadLabel_,GctEtHad) ;
152  iEvent.getByLabel(GctEtMissLabel_,GctEtMiss) ;
153  iEvent.getByLabel(GctEtTotalLabel_,GctEtTotal) ;
154  etHad = GctEtHad.product() ;
155  etMiss = GctEtMiss.product() ;
156  etTotal = GctEtTotal.product() ;
157 
158  LogDebug("DigiInfo") << "Value of L1GctEtHad::et(): " << etHad->et() ;
159  LogDebug("DigiInfo") << "Value of L1GctEtMiss::et(): " << etMiss->et() << ", phi(): " << etMiss->phi() ;
160  LogDebug("DigiInfo") << "Value of L1GctEtTotal::et(): " << etTotal->et() ;
161  }
162 
165 
166  const L1GctEmCandCollection* isoEMdigis = 0 ;
167  const L1GctEmCandCollection* nonIsoEMdigis = 0 ;
168  if (getGctEmDigis_) {
169  iEvent.getByLabel(GctIsoEmLabel_,GctIsoEM) ;
170  isoEMdigis = GctIsoEM.product() ;
171  iEvent.getByLabel(GctNonIsoEmLabel_,GctNonIsoEM) ;
172  nonIsoEMdigis = GctNonIsoEM.product() ;
173  LogDebug("DigiInfo") << "total # Gct Iso EM digis: " << isoEMdigis->size() ;
174  LogDebug("DigiInfo") << "total # Gct non-Iso EM digis: " << nonIsoEMdigis->size() ;
175  }
176 
180  edm::Handle<L1GctJetCounts> GctJetCounts ;
181 
182  const L1GctJetCandCollection* cenJetDigis = 0 ;
183  const L1GctJetCandCollection* forJetDigis = 0 ;
184  const L1GctJetCandCollection* tauJetDigis = 0 ;
185  std::auto_ptr<L1GctJetCounts> newCounts( new L1GctJetCounts() ) ;
186  L1GctJetCounts* counts = newCounts.get() ;
187 
188  if (getGctJetDigis_) {
189  iEvent.getByLabel(GctCenJetLabel_,GctCenJets) ;
190  cenJetDigis = GctCenJets.product() ;
191  iEvent.getByLabel(GctForJetLabel_,GctForJets) ;
192  forJetDigis = GctForJets.product() ;
193  iEvent.getByLabel(GctTauJetLabel_,GctTauJets) ;
194  tauJetDigis = GctTauJets.product() ;
195  LogDebug("DigiInfo") << "total # Gct central Jet digis: " << cenJetDigis->size() ;
196  LogDebug("DigiInfo") << "total # Gct forward Jet digis: " << forJetDigis->size() ;
197  LogDebug("DigiInfo") << "total # Gct tau Jet digis: " << tauJetDigis->size() ;
198  }
199 
200  if (getGctJetCounts_) {
201  iEvent.getByLabel(GctJetCountsLabel_,GctJetCounts) ;
202  *counts = *GctJetCounts.product() ;
203  }
204 
206  edm::Handle<L1CaloRegionCollection> GctCaloRegion ;
207 
208  const L1CaloEmCollection* caloEm = 0 ;
209  const L1CaloRegionCollection* caloRegion = 0 ;
210 
211  if (getL1Calo_) {
212  iEvent.getByLabel(GctCaloEmLabel_,GctCaloEm) ;
213  iEvent.getByLabel(GctCaloRegionLabel_,GctCaloRegion) ;
214 
215  caloEm = GctCaloEm.product() ;
216  caloRegion = GctCaloRegion.product() ;
217 
218  LogDebug("DigiInfo") << "Calo EM size: " << caloEm->size() ;
219  LogDebug("DigiInfo") << "Calo region size: " << caloRegion->size() ;
220  }
221 
225 
227  iSetup.get< L1GtParametersRcd >().get( l1GtPar ) ;
228  int nBx = l1GtPar->gtTotalBxInEvent() ;
229 
230  std::auto_ptr<L1GlobalTriggerEvmReadoutRecord> newGtEvm( new L1GlobalTriggerEvmReadoutRecord(nBx) ) ;
231  std::auto_ptr<L1GlobalTriggerObjectMapRecord> newGtMap( new L1GlobalTriggerObjectMapRecord() ) ;
232  std::auto_ptr<L1GlobalTriggerReadoutRecord> newGtRR( new L1GlobalTriggerReadoutRecord(nBx) ) ;
233  L1GlobalTriggerEvmReadoutRecord* evm = newGtEvm.get() ;
234  L1GlobalTriggerObjectMapRecord* map = newGtMap.get() ;
235  L1GlobalTriggerReadoutRecord* rr = newGtRR.get() ;
236 
237  if (getGtEvmRR_) {
238  iEvent.getByLabel(GtEvmRRLabel_, gtEvmRR) ;
239  *evm = *gtEvmRR.product() ;
240  }
241  if (getGtObjectMap_) {
242  iEvent.getByLabel(GtObjectMapLabel_, gtMap) ;
243  *map = *gtMap.product() ;
244  }
245  if (getGtRR_) {
246  iEvent.getByLabel(GtRRLabel_, gtRR) ;
247  *rr = *gtRR.product() ;
248  }
249 
251  edm::Handle<L1MuGMTReadoutCollection> GmtMuCollection ;
252  std::auto_ptr<std::vector<L1MuGMTCand> > cands( new std::vector<L1MuGMTCand> ) ;
253  std::auto_ptr<L1MuGMTReadoutCollection> muCollection(new L1MuGMTReadoutCollection(nBx)) ;
254 
255  if (getGmtCands_) {
256  iEvent.getByLabel(GmtCandsLabel_,GmtCands) ;
257  *cands = *GmtCands.product() ;
258  }
259  if (getGmtRC_) {
260  iEvent.getByLabel(GmtReadoutCollection_,GmtMuCollection) ;
261  *muCollection = *GmtMuCollection.product() ;
262  std::vector<L1MuGMTExtendedCand> muons = muCollection->getRecord().getGMTCands() ;
263  LogDebug("DigiInfo") << "GMT muons present: " << muons.size() ;
264  }
265 
267  auto_ptr<DetSetVector<PixelDigi> > NewPixelDigi(new DetSetVector<PixelDigi> );
268  DetSetVector<PixelDigi>* tt = NewPixelDigi.get();
269  if (getPixelDigis_) {
270  iEvent.getByLabel(PXLdigiCollection_, input);
271  *tt = *input.product();
272  }
273 
275  auto_ptr<DetSetVector<SiStripDigi> > NewSiDigi(new DetSetVector<SiStripDigi> );
276  DetSetVector<SiStripDigi>* uu = NewSiDigi.get();
277  if (getStripDigis_) {
278  iEvent.getByLabel(SSTdigiCollection_, input2);
279  *uu = *input2.product();
280  }
281 
282  Handle<EBDigiCollection> EcalDigiEB;
283  Handle<EEDigiCollection> EcalDigiEE;
284  Handle<ESDigiCollection> EcalDigiES;
285  const EBDigiCollection* EBdigis = 0;
286  const EEDigiCollection* EEdigis = 0;
287  const ESDigiCollection* ESdigis = 0;
288 
289  if (getEcalDigis_) {
290  iEvent.getByLabel( EBdigiCollection_, EcalDigiEB );
291  EBdigis = EcalDigiEB.product();
292  LogDebug("DigiInfo") << "total # EBdigis: " << EBdigis->size() ;
293 
294  iEvent.getByLabel( EEdigiCollection_, EcalDigiEE );
295  EEdigis = EcalDigiEE.product();
296  LogDebug("DigiInfo") << "total # EEdigis: " << EEdigis->size() ;
297  }
298 
299  if (getEcalESDigis_) {
300  iEvent.getByLabel( ESdigiCollection_, EcalDigiES );
301  ESdigis = EcalDigiES.product();
302  LogDebug("DigiInfo") << "total # ESdigis: " << ESdigis->size() ;
303  }
304 
305  Handle<HBHEDigiCollection> HcalDigiHBHE ;
306  Handle<HODigiCollection> HcalDigiHO ;
307  Handle<HFDigiCollection> HcalDigiHF ;
308  const HBHEDigiCollection* HBHEdigis = 0 ;
309  const HODigiCollection* HOdigis = 0 ;
310  const HFDigiCollection* HFdigis = 0 ;
311 
312  if (getHcalDigis_) {
313  iEvent.getByLabel( HBHEdigiCollection_, HcalDigiHBHE );
314  HBHEdigis = HcalDigiHBHE.product();
315  LogDebug("DigiInfo") << "total # HBHEdigis: " << HBHEdigis->size() ;
316 
317  iEvent.getByLabel( HOdigiCollection_, HcalDigiHO );
318  HOdigis = HcalDigiHO.product();
319  LogDebug("DigiInfo") << "total # HOdigis: " << HOdigis->size() ;
320 
321  iEvent.getByLabel( HFdigiCollection_, HcalDigiHF );
322  HFdigis = HcalDigiHF.product();
323  LogDebug("DigiInfo") << "total # HFdigis: " << HFdigis->size() ;
324  }
325 
326  Handle<CSCStripDigiCollection> CSCDigiStrip ;
327  Handle<CSCWireDigiCollection> CSCDigiWire ;
328  const CSCStripDigiCollection* CSCstripdigis ;
329  const CSCWireDigiCollection* CSCwiredigis ;
330 
331  if (getCSCDigis_) {
332  iEvent.getByLabel( CSCStripdigiCollection_, CSCDigiStrip );
333  CSCstripdigis = CSCDigiStrip.product();
334  iEvent.getByLabel( CSCWiredigiCollection_, CSCDigiWire );
335  CSCwiredigis = CSCDigiWire.product();
336 
337  int numDigis = 0 ;
338  for (CSCStripDigiCollection::DigiRangeIterator iter=CSCDigiStrip->begin();
339  iter!=CSCDigiStrip->end(); iter++) {
340  for ( vector<CSCStripDigi>::const_iterator digiIter = (*iter).second.first;
341  digiIter != (*iter).second.second; digiIter++) numDigis++ ;
342  }
343  LogDebug("DigiInfo") << "total # CSCstripdigis: " << numDigis ;
344  numDigis = 0 ;
345  for (CSCWireDigiCollection::DigiRangeIterator iter=CSCDigiWire->begin();
346  iter!=CSCDigiWire->end(); iter++) {
347  for ( vector<CSCWireDigi>::const_iterator digiIter = (*iter).second.first;
348  digiIter != (*iter).second.second; digiIter++) numDigis++ ;
349  }
350  LogDebug("DigiInfo") << "total # CSCwiredigis: " << numDigis ;
351  }
352 
353  Handle<DTDigiCollection> DTDigiHandle ;
354  const DTDigiCollection* DTdigis ;
355 
356  if (getDTDigis_) {
357  iEvent.getByLabel( DTdigiCollection_, DTDigiHandle );
358  DTdigis = DTDigiHandle.product();
359 
360  int numDigis = 0 ;
361  for (DTDigiCollection::DigiRangeIterator iter=DTDigiHandle->begin();
362  iter!=DTDigiHandle->end(); iter++) {
363  for ( vector<DTDigi>::const_iterator digiIter = (*iter).second.first;
364  digiIter != (*iter).second.second; digiIter++) numDigis++ ;
365  }
366  LogDebug("DigiInfo") << "total # DTdigis: " << numDigis ;
367  }
368 
369  Handle<RPCDigiCollection> RPCDigiHandle ;
370  const RPCDigiCollection* RPCdigis ;
371 
372  if (getRPCDigis_) {
373  iEvent.getByLabel( RPCdigiCollection_, RPCDigiHandle );
374  RPCdigis = RPCDigiHandle.product();
375 
376  int numDigis = 0 ;
377  for (RPCDigiCollection::DigiRangeIterator iter=RPCDigiHandle->begin();
378  iter!=RPCDigiHandle->end(); iter++) {
379  for ( vector<RPCDigi>::const_iterator digiIter = (*iter).second.first;
380  digiIter != (*iter).second.second; digiIter++) numDigis++ ;
381  }
382  LogDebug("DigiInfo") << "total # RPCdigis: " << numDigis ;
383  }
384 
385  LogDebug("DigiInfo") << "***--------------- End of Event -----------------***" ;
386 
387 }
#define LogDebug(id)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< L1CaloEmCand > L1CaloEmCollection
Persistable copy of missing Et measured at Level-1.
Definition: L1GctEtMiss.h:18
#define input2
Definition: AMPTWrapper.h:149
dictionary map
Definition: Association.py:160
std::vector< L1GctJetCand > L1GctJetCandCollection
int iEvent
Definition: GenABIO.cc:243
Persistable copy of total Et measured at Level-1.
Definition: L1GctEtTotal.h:18
Persistable copy of total Ht measured at Level-1.
Definition: L1GctEtHad.h:18
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:359
tuple input
Definition: collect_tpl.py:10
const T & get() const
Definition: EventSetup.h:55
void analyze(const edm::Event &, const edm::EventSetup &)
Definition: HLTGetDigi.cc:137
HLTGetDigi(const edm::ParameterSet &)
Definition: HLTGetDigi.cc:69
std::vector< L1CaloRegion > L1CaloRegionCollection
std::vector< L1GctEmCand > L1GctEmCandCollection