CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Public Attributes | Private Attributes
EcalRawToDigi Class Reference

#include <EcalRawToDigi.h>

Inheritance diagram for EcalRawToDigi:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

virtual void beginRun (edm::Run &run, const edm::EventSetup &es)
 
 EcalRawToDigi (const edm::ParameterSet &ps)
 
virtual void produce (edm::Event &e, const edm::EventSetup &c)
 
virtual ~EcalRawToDigi ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Public Attributes

edm::ESWatcher< EcalMappingRcdwatcher_
 

Private Attributes

edm::InputTag dataLabel_
 
edm::InputTag fedsLabel_
 
std::vector< int > fedUnpackList_
 
bool feIdCheck_
 
bool feUnpacking_
 
bool first_
 
bool forceToKeepFRdata_
 
bool headerUnpacking_
 
bool memUnpacking_
 
EcalElectronicsMappermyMap_
 
unsigned int nevts_
 
unsigned int numbTriggerTSamples_
 
unsigned int numbXtalTSamples_
 
std::vector< int > orderedDCCIdList_
 
std::vector< int > orderedFedUnpackList_
 
bool put_
 
bool REGIONAL_
 
double RUNNING_TIME_
 
double SETUP_TIME_
 
bool srpUnpacking_
 
bool syncCheck_
 
bool tccUnpacking_
 
DCCDataUnpackertheUnpacker_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Definition at line 42 of file EcalRawToDigi.h.

Constructor & Destructor Documentation

EcalRawToDigi::EcalRawToDigi ( const edm::ParameterSet ps)
explicit

Class constructor

Definition at line 13 of file EcalRawToDigi.cc.

References fedUnpackList_, feIdCheck_, feUnpacking_, first_, forceToKeepFRdata_, edm::ParameterSet::getUntrackedParameter(), headerUnpacking_, i, FEDNumbering::MAXECALFEDID, memUnpacking_, FEDNumbering::MINECALFEDID, myMap_, numbTriggerTSamples_, numbXtalTSamples_, orderedDCCIdList_, orderedFedUnpackList_, convertSQLitetoXML_cfg::output, DCCDataUnpacker::silentMode_, srpUnpacking_, syncCheck_, tccUnpacking_, and theUnpacker_.

13  :
14 
15  //define the list of FED to be unpacked
16  fedUnpackList_(conf.getParameter<std::vector<int> >("FEDs")),
17 
18  //define the ordered FED list
19  orderedFedUnpackList_(conf.getParameter<std::vector<int> >("orderedFedList")),
20 
21  //define the ordered DCCId list
22  orderedDCCIdList_(conf.getParameter<std::vector<int> >("orderedDCCIdList")),
23 
24  //get number of Xtal Time Samples
25  numbXtalTSamples_(conf.getParameter<int>("numbXtalTSamples")),
26 
27  //Get number of Trigger Time Samples
28  numbTriggerTSamples_(conf.getParameter<int>("numbTriggerTSamples")),
29 
30  //See if header unpacking is enabled
31  headerUnpacking_(conf.getParameter<bool>("headerUnpacking")),
32 
33  //See if srp unpacking is enabled
34  srpUnpacking_(conf.getParameter<bool>("srpUnpacking")),
35 
36  //See if tcc unpacking is enabled
37  tccUnpacking_(conf.getParameter<bool>("tccUnpacking")),
38 
39  //See if fe unpacking is enabled
40  feUnpacking_(conf.getParameter<bool>("feUnpacking")),
41 
42  //See if fe unpacking is enabled for mem box
43  memUnpacking_(conf.getParameter<bool>("memUnpacking")),
44 
45  //See if syncCheck is enabled
46  syncCheck_(conf.getParameter<bool>("syncCheck")),
47 
48  //See if feIdCheck is enabled
49  feIdCheck_(conf.getParameter<bool>("feIdCheck")),
50 
51  // See if we want to keep data even if we have a mismatch between SR decision and block length
52  forceToKeepFRdata_(conf.getParameter<bool>("forceToKeepFRData")),
53 
54 
55  put_(conf.getParameter<bool>("eventPut")),
56 
57  dataLabel_(conf.getParameter<edm::InputTag>("InputLabel")),
58 
59  REGIONAL_(conf.getParameter<bool>("DoRegional")),
60 
61  fedsLabel_(conf.getParameter<edm::InputTag>("FedLabel")),
62 
63  myMap_(0),
64 
65  theUnpacker_(0)
66 
67 {
68 
69  first_ = true;
70  DCCDataUnpacker::silentMode_ = conf.getUntrackedParameter<bool>("silentMode",false) ;
71 
72  if( numbXtalTSamples_ <6 || numbXtalTSamples_>64 || (numbXtalTSamples_-2)%4 ){
73  std::ostringstream output;
74  output <<"\n Unsuported number of xtal time samples : "<<numbXtalTSamples_
75  <<"\n Valid Number of xtal time samples are : 6,10,14,18,...,62";
76  edm::LogError("IncorrectConfiguration")<< output.str();
77  // todo : throw an execption
78  }
79 
81  std::ostringstream output;
82  output <<"\n Unsuported number of trigger time samples : "<<numbTriggerTSamples_
83  <<"\n Valid number of trigger time samples are : 1, 4 or 8";
84  edm::LogError("IncorrectConfiguration")<< output.str();
85  // todo : throw an execption
86  }
87 
88  //NA : testing
89  //nevts_=0;
90  //RUNNING_TIME_=0;
91 
92  // if there are FEDs specified to unpack fill the vector of the fedUnpackList_
93  // else fill with the entire ECAL fed range (600-670)
94  if (fedUnpackList_.empty())
96  fedUnpackList_.push_back(i);
97 
98  //print the FEDs to unpack to the logger
99  std::ostringstream loggerOutput_;
100  if(fedUnpackList_.size()!=0){
101  for (unsigned int i=0; i<fedUnpackList_.size(); i++)
102  loggerOutput_ << fedUnpackList_[i] << " ";
103  edm::LogInfo("EcalRawToDigi") << "EcalRawToDigi will unpack FEDs ( " << loggerOutput_.str() << ")";
104  }
105 
106  edm::LogInfo("EcalRawToDigi")
107  <<"\n ECAL RawToDigi configuration:"
108  <<"\n Header unpacking is "<<headerUnpacking_
109  <<"\n SRP Bl. unpacking is "<<srpUnpacking_
110  <<"\n TCC Bl. unpacking is "<<tccUnpacking_
111  <<"\n FE Bl. unpacking is "<<feUnpacking_
112  <<"\n MEM Bl. unpacking is "<<memUnpacking_<<"\n";
113 
114  // Producer products :
115  produces<EBDigiCollection>("ebDigis");
116  produces<EEDigiCollection>("eeDigis");
117  produces<EBSrFlagCollection>();
118  produces<EESrFlagCollection>();
119  produces<EcalRawDataCollection>();
120  produces<EcalPnDiodeDigiCollection>();
121  produces<EcalTrigPrimDigiCollection>("EcalTriggerPrimitives");
122  produces<EcalPSInputDigiCollection>("EcalPseudoStripInputs");
123 
124  // Integrity for xtal data
125  produces<EBDetIdCollection>("EcalIntegrityGainErrors");
126  produces<EBDetIdCollection>("EcalIntegrityGainSwitchErrors");
127  produces<EBDetIdCollection>("EcalIntegrityChIdErrors");
128 
129  // Integrity for xtal data - EE specific (to be rivisited towards EB+EE common collection)
130  produces<EEDetIdCollection>("EcalIntegrityGainErrors");
131  produces<EEDetIdCollection>("EcalIntegrityGainSwitchErrors");
132  produces<EEDetIdCollection>("EcalIntegrityChIdErrors");
133 
134  // Integrity Errors
135  produces<EcalElectronicsIdCollection>("EcalIntegrityTTIdErrors");
136  produces<EcalElectronicsIdCollection>("EcalIntegrityZSXtalIdErrors");
137  produces<EcalElectronicsIdCollection>("EcalIntegrityBlockSizeErrors");
138 
139  // Mem channels' integrity
140  produces<EcalElectronicsIdCollection>("EcalIntegrityMemTtIdErrors");
141  produces<EcalElectronicsIdCollection>("EcalIntegrityMemBlockSizeErrors");
142  produces<EcalElectronicsIdCollection>("EcalIntegrityMemChIdErrors");
143  produces<EcalElectronicsIdCollection>("EcalIntegrityMemGainErrors");
144 
145 
146 
147  // Build a new Electronics mapper and parse default map file
148  myMap_ = new EcalElectronicsMapper(numbXtalTSamples_,numbTriggerTSamples_);
149 
150  // in case of external text file (deprecated by HLT environment)
151  // bool readResult = myMap_->readDCCMapFile(conf.getParameter<std::string>("DCCMapFile",""));
152 
153  // use two arrays from cfg to establish DCCId:FedId. If they are empy, than use hard coded correspondence
154  bool readResult = myMap_->makeMapFromVectors(orderedFedUnpackList_, orderedDCCIdList_);
155  // myMap::makeMapFromVectors() returns "true" always
156  // need to be fixed?
157 
158  if(!readResult){
159  edm::LogWarning("IncorrectConfiguration")
160  << "Arrays orderedFedList and orderedDCCIdList are emply. "
161  "Hard coded correspondence for DCCId:FedId will be used.";
162  // edm::LogError("EcalRawToDigi")<<"\n unable to read file : "
163  // <<conf.getParameter<std::string>("DCCMapFile");
164  }
165 
166  // Build a new ECAL DCC data unpacker
168 
169 }
int i
Definition: DBlmapReader.cc:9
unsigned int numbXtalTSamples_
Definition: EcalRawToDigi.h:75
bool forceToKeepFRdata_
Definition: EcalRawToDigi.h:85
std::vector< int > orderedFedUnpackList_
Definition: EcalRawToDigi.h:72
static bool silentMode_
std::vector< int > fedUnpackList_
Definition: EcalRawToDigi.h:70
DCCDataUnpacker * theUnpacker_
unsigned int numbTriggerTSamples_
Definition: EcalRawToDigi.h:76
std::vector< int > orderedDCCIdList_
Definition: EcalRawToDigi.h:73
tuple conf
Definition: dbtoconf.py:185
bool headerUnpacking_
Definition: EcalRawToDigi.h:78
EcalElectronicsMapper * myMap_
Definition: EcalRawToDigi.h:98
edm::InputTag fedsLabel_
Definition: EcalRawToDigi.h:95
edm::InputTag dataLabel_
Definition: EcalRawToDigi.h:91
EcalRawToDigi::~EcalRawToDigi ( )
virtual

Class destructor

Definition at line 467 of file EcalRawToDigi.cc.

References myMap_, and theUnpacker_.

468 {
469 
470  //cout << "EcalDCCUnpackingModule " << "N events " << (nevts_-1)<<endl;
471  //cout << "EcalDCCUnpackingModule " << " --- SETUP time " << endl;
472  //cout << "EcalDCCUnpackingModule " << "Time (sys) " << SETUP_TIME_ << endl;
473  //cout << "EcalDCCUnpackingModule " << "Time in sec. " << SETUP_TIME_/ CLOCKS_PER_SEC << endl;
474  //cout << "EcalDCCUnpackingModule " << " --- Per event " << endl;
475 
476  //RUNNING_TIME_ = RUNNING_TIME_ / (nevts_-1);
477 
478  //cout << "EcalDCCUnpackingModule "<< "Time (sys) " << RUNNING_TIME_ << endl;
479  //cout << "EcalDCCUnpackingModule "<< "Time in sec. " << RUNNING_TIME_ / CLOCKS_PER_SEC << endl;
480 
481 
482 
483  if(myMap_ ) delete myMap_;
484  if(theUnpacker_) delete theUnpacker_;
485 
486 }
DCCDataUnpacker * theUnpacker_
EcalElectronicsMapper * myMap_
Definition: EcalRawToDigi.h:98

Member Function Documentation

void EcalRawToDigi::beginRun ( edm::Run run,
const edm::EventSetup es 
)
virtual

Reimplemented from edm::EDProducer.

Definition at line 227 of file EcalRawToDigi.cc.

References edm::EventSetup::get(), edm::ESHandle< class >::product(), DCCDataUnpacker::setChannelStatusDB(), and theUnpacker_.

228 {
229  // channel status database
231  es.get<EcalChannelStatusRcd>().get(pChStatus);
233 
234  // uncomment following line to print list of crystals with bad status
235  //edm::ESHandle<EcalElectronicsMapping> pEcalMapping;
236  //es.get<EcalMappingRcd>().get(pEcalMapping);
237  //const EcalElectronicsMapping* mapping = pEcalMapping.product();
238  //printStatusRecords(theUnpacker_, mapping);
239 }
void setChannelStatusDB(const EcalChannelStatusMap *chdb)
DCCDataUnpacker * theUnpacker_
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
void EcalRawToDigi::produce ( edm::Event e,
const edm::EventSetup c 
)
virtual

Functions that are called by framework at each event

Implements edm::EDProducer.

Definition at line 242 of file EcalRawToDigi.cc.

References edm::ESWatcher< T >::check(), FEDRawData::data(), dataLabel_, EMPTYEVENTSIZE, fedsLabel_, fedUnpackList_, feUnpacking_, spr::find(), first_, edm::EventSetup::get(), EcalElectronicsMapper::getActiveSM(), edm::Event::getByLabel(), headerUnpacking_, i, LogDebug, memUnpacking_, myMap_, edm::ESHandle< class >::product(), edm::Event::put(), put_, REGIONAL_, EcalElectronicsMapper::setActiveDCC(), DCCDataUnpacker::setDccHeadersCollection(), DCCDataUnpacker::setEBDigisCollection(), DCCDataUnpacker::setEBSrFlagsCollection(), DCCDataUnpacker::setEcalPSsCollection(), DCCDataUnpacker::setEcalTpsCollection(), DCCDataUnpacker::setEEDigisCollection(), DCCDataUnpacker::setEESrFlagsCollection(), DCCDataUnpacker::setInvalidBlockLengthsCollection(), DCCDataUnpacker::setInvalidChIdsCollection(), DCCDataUnpacker::setInvalidEEChIdsCollection(), DCCDataUnpacker::setInvalidEEGainsCollection(), DCCDataUnpacker::setInvalidEEGainsSwitchCollection(), DCCDataUnpacker::setInvalidGainsCollection(), DCCDataUnpacker::setInvalidGainsSwitchCollection(), DCCDataUnpacker::setInvalidMemBlockSizesCollection(), DCCDataUnpacker::setInvalidMemChIdsCollection(), DCCDataUnpacker::setInvalidMemGainsCollection(), DCCDataUnpacker::setInvalidMemTtIdsCollection(), DCCDataUnpacker::setInvalidTTIdsCollection(), DCCDataUnpacker::setInvalidZSXtalIdsCollection(), DCCDataUnpacker::setPnDiodeDigisCollection(), FEDRawData::size(), srpUnpacking_, tccUnpacking_, theUnpacker_, DCCDataUnpacker::unpack(), and watcher_.

Referenced by python.JSONExport.JsonExport::export(), and python.HTMLExport.HTMLExport::export().

243 {
244 
245  //double TIME_START = clock();
246  //nevts_++; //NUNO
247 
248 
249  if (first_) {
250  watcher_.check(es);
252  es.get< EcalMappingRcd >().get(ecalmapping);
253  myMap_ -> setEcalElectronicsMapping(ecalmapping.product());
254 
255  first_ = false;
256 
257  }else{
258 
259  if ( watcher_.check(es) ) {
261  es.get< EcalMappingRcd >().get(ecalmapping);
262  myMap_ -> deletePointers();
263  myMap_ -> resetPointers();
264  myMap_ -> setEcalElectronicsMapping(ecalmapping.product());
265  }
266 
267  }
268 
269  // Get list of FEDS :
270  std::vector<int> FEDS_to_unpack;
271  if (REGIONAL_) {
272  edm::Handle<EcalListOfFEDS> listoffeds;
273  e.getByLabel(fedsLabel_, listoffeds);
274  FEDS_to_unpack = listoffeds -> GetList();
275  }
276 
277 
278 
279  // Step A: Get Inputs
280 
282  e.getByLabel(dataLabel_,rawdata);
283 
284 
285  // Step B: encapsulate vectors in actual collections and set unpacker pointers
286 
287  // create the collection of Ecal Digis
288  std::auto_ptr<EBDigiCollection> productDigisEB(new EBDigiCollection);
289  productDigisEB->reserve(1700);
290  theUnpacker_->setEBDigisCollection(&productDigisEB);
291 
292  // create the collection of Ecal Digis
293  std::auto_ptr<EEDigiCollection> productDigisEE(new EEDigiCollection);
294  theUnpacker_->setEEDigisCollection(&productDigisEE);
295 
296  // create the collection for headers
297  std::auto_ptr<EcalRawDataCollection> productDccHeaders(new EcalRawDataCollection);
298  theUnpacker_->setDccHeadersCollection(&productDccHeaders);
299 
300  // create the collection for invalid gains
301  std::auto_ptr< EBDetIdCollection> productInvalidGains(new EBDetIdCollection);
302  theUnpacker_->setInvalidGainsCollection(&productInvalidGains);
303 
304  // create the collection for invalid gain Switch
305  std::auto_ptr< EBDetIdCollection> productInvalidGainsSwitch(new EBDetIdCollection);
306  theUnpacker_->setInvalidGainsSwitchCollection(&productInvalidGainsSwitch);
307 
308  // create the collection for invalid chids
309  std::auto_ptr< EBDetIdCollection> productInvalidChIds(new EBDetIdCollection);
310  theUnpacker_->setInvalidChIdsCollection(&productInvalidChIds);
311 
313 
314  // create the collection for invalid gains
315  std::auto_ptr<EEDetIdCollection> productInvalidEEGains(new EEDetIdCollection);
316  theUnpacker_->setInvalidEEGainsCollection(&productInvalidEEGains);
317 
318  // create the collection for invalid gain Switch
319  std::auto_ptr<EEDetIdCollection> productInvalidEEGainsSwitch(new EEDetIdCollection);
320  theUnpacker_->setInvalidEEGainsSwitchCollection(&productInvalidEEGainsSwitch);
321 
322  // create the collection for invalid chids
323  std::auto_ptr<EEDetIdCollection> productInvalidEEChIds(new EEDetIdCollection);
324  theUnpacker_->setInvalidEEChIdsCollection(&productInvalidEEChIds);
325 
327 
328  // create the collection for EB srflags
329  std::auto_ptr<EBSrFlagCollection> productEBSrFlags(new EBSrFlagCollection);
330  theUnpacker_->setEBSrFlagsCollection(&productEBSrFlags);
331 
332  // create the collection for EB srflags
333  std::auto_ptr<EESrFlagCollection> productEESrFlags(new EESrFlagCollection);
334  theUnpacker_->setEESrFlagsCollection(&productEESrFlags);
335 
336  // create the collection for ecal trigger primitives
337  std::auto_ptr<EcalTrigPrimDigiCollection> productEcalTps(new EcalTrigPrimDigiCollection);
338  theUnpacker_->setEcalTpsCollection(&productEcalTps);
340 
341  // create the collection for ecal trigger primitives
342  std::auto_ptr<EcalPSInputDigiCollection> productEcalPSs(new EcalPSInputDigiCollection);
343  theUnpacker_->setEcalPSsCollection(&productEcalPSs);
345 
346  // create the collection for invalid TTIds
347  std::auto_ptr<EcalElectronicsIdCollection> productInvalidTTIds(new EcalElectronicsIdCollection);
348  theUnpacker_->setInvalidTTIdsCollection(&productInvalidTTIds);
349 
350  // create the collection for invalid TTIds
351  std::auto_ptr<EcalElectronicsIdCollection> productInvalidZSXtalIds(new EcalElectronicsIdCollection);
352  theUnpacker_->setInvalidZSXtalIdsCollection(&productInvalidZSXtalIds);
353 
354 
355 
356  // create the collection for invalid BlockLengths
357  std::auto_ptr<EcalElectronicsIdCollection> productInvalidBlockLengths(new EcalElectronicsIdCollection);
358  theUnpacker_->setInvalidBlockLengthsCollection(&productInvalidBlockLengths);
359 
360  // MEMs Collections
361  // create the collection for the Pn Diode Digis
362  std::auto_ptr<EcalPnDiodeDigiCollection> productPnDiodeDigis(new EcalPnDiodeDigiCollection);
363  theUnpacker_->setPnDiodeDigisCollection(&productPnDiodeDigis);
364 
365  // create the collection for invalid Mem Tt id
366  std::auto_ptr<EcalElectronicsIdCollection> productInvalidMemTtIds(new EcalElectronicsIdCollection);
367  theUnpacker_->setInvalidMemTtIdsCollection(& productInvalidMemTtIds);
368 
369  // create the collection for invalid Mem Block Size
370  std::auto_ptr<EcalElectronicsIdCollection> productInvalidMemBlockSizes(new EcalElectronicsIdCollection);
371  theUnpacker_->setInvalidMemBlockSizesCollection(& productInvalidMemBlockSizes);
372 
373  // create the collection for invalid Mem Block Size
374  std::auto_ptr<EcalElectronicsIdCollection> productInvalidMemChIds(new EcalElectronicsIdCollection);
375  theUnpacker_->setInvalidMemChIdsCollection(& productInvalidMemChIds);
376 
377  // create the collection for invalid Mem Gain Errors
378  std::auto_ptr<EcalElectronicsIdCollection> productInvalidMemGains(new EcalElectronicsIdCollection);
379  theUnpacker_->setInvalidMemGainsCollection(& productInvalidMemGains);
380  // double TIME_START = clock();
381 
382 
383  // Step C: unpack all requested FEDs
384  for (std::vector<int>::const_iterator i=fedUnpackList_.begin(); i!=fedUnpackList_.end(); i++) {
385 
386  if (REGIONAL_) {
387  std::vector<int>::const_iterator fed_it = find(FEDS_to_unpack.begin(), FEDS_to_unpack.end(), *i);
388  if (fed_it == FEDS_to_unpack.end()) continue;
389  }
390 
391 
392  // get fed raw data and SM id
393  const FEDRawData & fedData = rawdata->FEDData(*i);
394  int length = fedData.size();
395 
396  LogDebug("EcalRawToDigi") << "raw data length: " << length ;
397  //if data size is not null interpret data
398  if ( length >= EMPTYEVENTSIZE ){
399 
400  if(myMap_->setActiveDCC(*i)){
401 
402  int smId = myMap_->getActiveSM();
403  LogDebug("EcalRawToDigi") << "Getting FED = " << *i <<"(SM = "<<smId<<")"<<" data size is: " << length;
404 
405  uint64_t * pData = (uint64_t *)(fedData.data());
406  theUnpacker_->unpack( pData, static_cast<unsigned int>(length),smId,*i);
407  }
408  }
409 
410  }// loop on FEDs
411 
412  //if(nevts_>1){ //NUNO
413  // double TIME_END = clock(); //NUNO
414  // RUNNING_TIME_ += TIME_END-TIME_START; //NUNO
415  // }
416 
417 
418  // Add collections to the event
419 
420  if(put_){
421 
422  if( headerUnpacking_){
423  e.put(productDccHeaders);
424  }
425 
426  if(feUnpacking_){
427  productDigisEB->sort();
428  e.put(productDigisEB,"ebDigis");
429  productDigisEE->sort();
430  e.put(productDigisEE,"eeDigis");
431  e.put(productInvalidGains,"EcalIntegrityGainErrors");
432  e.put(productInvalidGainsSwitch, "EcalIntegrityGainSwitchErrors");
433  e.put(productInvalidChIds, "EcalIntegrityChIdErrors");
434  // EE (leaving for now the same names as in EB)
435  e.put(productInvalidEEGains,"EcalIntegrityGainErrors");
436  e.put(productInvalidEEGainsSwitch, "EcalIntegrityGainSwitchErrors");
437  e.put(productInvalidEEChIds, "EcalIntegrityChIdErrors");
438  // EE
439  e.put(productInvalidTTIds,"EcalIntegrityTTIdErrors");
440  e.put(productInvalidZSXtalIds,"EcalIntegrityZSXtalIdErrors");
441  e.put(productInvalidBlockLengths,"EcalIntegrityBlockSizeErrors");
442  e.put(productPnDiodeDigis);
443  }
444  if(memUnpacking_){
445  e.put(productInvalidMemTtIds,"EcalIntegrityMemTtIdErrors");
446  e.put(productInvalidMemBlockSizes,"EcalIntegrityMemBlockSizeErrors");
447  e.put(productInvalidMemChIds,"EcalIntegrityMemChIdErrors");
448  e.put(productInvalidMemGains,"EcalIntegrityMemGainErrors");
449  }
450  if(srpUnpacking_){
451  e.put(productEBSrFlags);
452  e.put(productEESrFlags);
453  }
454  if(tccUnpacking_){
455  e.put(productEcalTps,"EcalTriggerPrimitives");
456  e.put(productEcalPSs,"EcalPseudoStripInputs");
457  }
458  }
459 
460 //if(nevts_>1){ //NUNO
461 // double TIME_END = clock(); //NUNO
462 // RUNNING_TIME_ += TIME_END-TIME_START; //NUNO
463 //}
464 
465 }
#define LogDebug(id)
void unpack(uint64_t *buffer, unsigned int bufferSize, unsigned int smId, unsigned int fedId)
void setPnDiodeDigisCollection(std::auto_ptr< EcalPnDiodeDigiCollection > *x)
edm::ESWatcher< EcalMappingRcd > watcher_
Definition: EcalRawToDigi.h:64
int i
Definition: DBlmapReader.cc:9
void setInvalidZSXtalIdsCollection(std::auto_ptr< EcalElectronicsIdCollection > *x)
void setInvalidMemBlockSizesCollection(std::auto_ptr< EcalElectronicsIdCollection > *x)
void setDccHeadersCollection(std::auto_ptr< EcalRawDataCollection > *x)
void setEcalPSsCollection(std::auto_ptr< EcalPSInputDigiCollection > *x)
void setInvalidEEGainsSwitchCollection(std::auto_ptr< EEDetIdCollection > *x)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
void setEEDigisCollection(std::auto_ptr< EEDigiCollection > *x)
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
std::vector< int > fedUnpackList_
Definition: EcalRawToDigi.h:70
DCCDataUnpacker * theUnpacker_
void setInvalidMemTtIdsCollection(std::auto_ptr< EcalElectronicsIdCollection > *x)
void setEBSrFlagsCollection(std::auto_ptr< EBSrFlagCollection > *x)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:84
bool setActiveDCC(unsigned int dccId)
void setEBDigisCollection(std::auto_ptr< EBDigiCollection > *x)
void setInvalidMemGainsCollection(std::auto_ptr< EcalElectronicsIdCollection > *x)
void setInvalidGainsCollection(std::auto_ptr< EBDetIdCollection > *x)
void setInvalidEEChIdsCollection(std::auto_ptr< EEDetIdCollection > *x)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:359
void setInvalidTTIdsCollection(std::auto_ptr< EcalElectronicsIdCollection > *x)
bool headerUnpacking_
Definition: EcalRawToDigi.h:78
void setInvalidGainsSwitchCollection(std::auto_ptr< EBDetIdCollection > *x)
unsigned long long uint64_t
Definition: Time.h:15
void setEESrFlagsCollection(std::auto_ptr< EESrFlagCollection > *x)
T const * product() const
Definition: ESHandle.h:62
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:59
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:29
void setEcalTpsCollection(std::auto_ptr< EcalTrigPrimDigiCollection > *x)
void setInvalidMemChIdsCollection(std::auto_ptr< EcalElectronicsIdCollection > *x)
void setInvalidBlockLengthsCollection(std::auto_ptr< EcalElectronicsIdCollection > *x)
void setInvalidEEGainsCollection(std::auto_ptr< EEDetIdCollection > *x)
EcalElectronicsMapper * myMap_
Definition: EcalRawToDigi.h:98
edm::InputTag fedsLabel_
Definition: EcalRawToDigi.h:95
edm::InputTag dataLabel_
Definition: EcalRawToDigi.h:91
void setInvalidChIdsCollection(std::auto_ptr< EBDetIdCollection > *x)

Member Data Documentation

edm::InputTag EcalRawToDigi::dataLabel_
private

Definition at line 91 of file EcalRawToDigi.h.

Referenced by produce().

edm::InputTag EcalRawToDigi::fedsLabel_
private

Definition at line 95 of file EcalRawToDigi.h.

Referenced by produce().

std::vector<int> EcalRawToDigi::fedUnpackList_
private

Definition at line 70 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi(), and produce().

bool EcalRawToDigi::feIdCheck_
private

Definition at line 84 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi().

bool EcalRawToDigi::feUnpacking_
private

Definition at line 81 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi(), and produce().

bool EcalRawToDigi::first_
private

Definition at line 86 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi(), and produce().

bool EcalRawToDigi::forceToKeepFRdata_
private

Definition at line 85 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi().

bool EcalRawToDigi::headerUnpacking_
private

Definition at line 78 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi(), and produce().

bool EcalRawToDigi::memUnpacking_
private

Definition at line 82 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi(), and produce().

EcalElectronicsMapper* EcalRawToDigi::myMap_
private

Definition at line 98 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi(), produce(), and ~EcalRawToDigi().

unsigned int EcalRawToDigi::nevts_
private

Definition at line 103 of file EcalRawToDigi.h.

unsigned int EcalRawToDigi::numbTriggerTSamples_
private

Definition at line 76 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi().

unsigned int EcalRawToDigi::numbXtalTSamples_
private

Definition at line 75 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi().

std::vector<int> EcalRawToDigi::orderedDCCIdList_
private

Definition at line 73 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi().

std::vector<int> EcalRawToDigi::orderedFedUnpackList_
private

Definition at line 72 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi().

bool EcalRawToDigi::put_
private

Definition at line 87 of file EcalRawToDigi.h.

Referenced by produce().

bool EcalRawToDigi::REGIONAL_
private

Definition at line 94 of file EcalRawToDigi.h.

Referenced by produce().

double EcalRawToDigi::RUNNING_TIME_
private

Definition at line 104 of file EcalRawToDigi.h.

double EcalRawToDigi::SETUP_TIME_
private

Definition at line 104 of file EcalRawToDigi.h.

bool EcalRawToDigi::srpUnpacking_
private

Definition at line 79 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi(), and produce().

bool EcalRawToDigi::syncCheck_
private

Definition at line 83 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi().

bool EcalRawToDigi::tccUnpacking_
private

Definition at line 80 of file EcalRawToDigi.h.

Referenced by EcalRawToDigi(), and produce().

DCCDataUnpacker* EcalRawToDigi::theUnpacker_
private

Definition at line 101 of file EcalRawToDigi.h.

Referenced by beginRun(), EcalRawToDigi(), produce(), and ~EcalRawToDigi().

edm::ESWatcher<EcalMappingRcd> EcalRawToDigi::watcher_

Definition at line 64 of file EcalRawToDigi.h.

Referenced by produce().