CMS 3D CMS Logo

HcalRawToDigi.cc
Go to the documentation of this file.
11 #include <iostream>
12 #include <unordered_set>
13 
15  unpacker_(conf.getUntrackedParameter<int>("HcalFirstFED",int(FEDNumbering::MINHCALFEDID)),conf.getParameter<int>("firstSample"),conf.getParameter<int>("lastSample")),
16  filter_(conf.getParameter<bool>("FilterDataQuality"),conf.getParameter<bool>("FilterDataQuality"),
17  false,
18  0, 0,
19  -1),
20  fedUnpackList_(conf.getUntrackedParameter<std::vector<int> >("FEDs", std::vector<int>())),
21  firstFED_(conf.getUntrackedParameter<int>("HcalFirstFED",FEDNumbering::MINHCALFEDID)),
22  unpackCalib_(conf.getUntrackedParameter<bool>("UnpackCalib",false)),
23  unpackZDC_(conf.getUntrackedParameter<bool>("UnpackZDC",false)),
24  unpackTTP_(conf.getUntrackedParameter<bool>("UnpackTTP",false)),
25  unpackUMNio_(conf.getUntrackedParameter<bool>("UnpackUMNio",false)),
26  saveQIE10DataNSamples_(conf.getUntrackedParameter<std::vector<int> >("saveQIE10DataNSamples", std::vector<int>())),
27  saveQIE10DataTags_(conf.getUntrackedParameter<std::vector<std::string> >("saveQIE10DataTags", std::vector<std::string>())),
28  saveQIE11DataNSamples_(conf.getUntrackedParameter<std::vector<int> >("saveQIE11DataNSamples", std::vector<int>())),
29  saveQIE11DataTags_(conf.getUntrackedParameter<std::vector<std::string> >("saveQIE11DataTags", std::vector<std::string>())),
30  silent_(conf.getUntrackedParameter<bool>("silent",true)),
31  complainEmptyData_(conf.getUntrackedParameter<bool>("ComplainEmptyData",false)),
32  unpackerMode_(conf.getUntrackedParameter<int>("UnpackerMode",0)),
33  expectedOrbitMessageTime_(conf.getUntrackedParameter<int>("ExpectedOrbitMessageTime",-1))
34 {
35  electronicsMapLabel_ = conf.getParameter<std::string>("ElectronicsMap");
36  tok_data_ = consumes<FEDRawDataCollection>(conf.getParameter<edm::InputTag>("InputLabel"));
37 
38  if (fedUnpackList_.empty()) {
39  // VME range for back-compatibility
41  fedUnpackList_.push_back(i);
42 
43  // uTCA range
45  fedUnpackList_.push_back(i);
46  }
47 
50  std::ostringstream ss;
51  for (unsigned int i=0; i<fedUnpackList_.size(); i++)
52  ss << fedUnpackList_[i] << " ";
53  edm::LogInfo("HCAL") << "HcalRawToDigi will unpack FEDs ( " << ss.str() << ")";
54 
55  // products produced...
56  produces<HBHEDigiCollection>();
57  produces<HFDigiCollection>();
58  produces<HODigiCollection>();
59  produces<HcalTrigPrimDigiCollection>();
60  produces<HOTrigPrimDigiCollection>();
61  produces<HcalUnpackerReport>();
62  if (unpackCalib_)
63  produces<HcalCalibDigiCollection>();
64  if (unpackZDC_)
65  produces<ZDCDigiCollection>();
66  if (unpackTTP_)
67  produces<HcalTTPDigiCollection>();
68  if (unpackUMNio_)
69  produces<HcalUMNioDigi>();
70  produces<QIE10DigiCollection>();
71  produces<QIE11DigiCollection>();
72 
73  produces<QIE10DigiCollection>("ZDC");
74  produces<QIE10DigiCollection>("LASERMON");
75 
76  // Print a warning if an already
77  // used tag was requested
78  if( std::find( saveQIE10DataTags_.begin(), saveQIE10DataTags_.end(), "ZDC")
79  != saveQIE10DataTags_.end() ) {
80  edm::LogWarning("HcalRawToDigi") << "Cannot create an additional QIE10 sample with name ZDC, it is already created! It must be removed along with the corresponding entry in saveQIE10DataNSamples" << std::endl;
81  saveQIE10DataTags_.clear();
82  saveQIE10DataNSamples_.clear();
83  }
84  // Print a warning if an already
85  // used tag was requested
86  if( std::find( saveQIE10DataTags_.begin(), saveQIE10DataTags_.end(), "LASERMON")
87  != saveQIE10DataTags_.end() ) {
88  edm::LogWarning("HcalRawToDigi") << "Cannot create an additional QIE10 sample with name LASERMON, it is already created! It must be removed along with the corresponding entry in saveQIE10DataNSamples" << std::endl;
89  saveQIE10DataTags_.clear();
90  saveQIE10DataNSamples_.clear();
91  }
92 
93  // Print a warning if the two vectors
94  // for additional qie10 or qie11 data
95  // are not the same length
96  if( saveQIE10DataTags_.size() != saveQIE10DataNSamples_.size() ) {
97  edm::LogWarning("HcalRawToDigi") << "The saveQIE10DataTags and saveQIE10DataNSamples inputs must be the same length! These will be ignored" << std::endl;
98  saveQIE10DataTags_.clear();
99  saveQIE10DataNSamples_.clear();
100  }
101  if( saveQIE11DataTags_.size() != saveQIE11DataNSamples_.size() ) {
102  edm::LogWarning("HcalRawToDigi") << "The saveQIE11DataTags and saveQIE11DataNSamples inputs must be the same length! These will be ignored" << std::endl;
103  saveQIE11DataTags_.clear();
104  saveQIE11DataNSamples_.clear();
105  }
106 
107 
108  // If additional qie10 samples were requested,
109  // declare that we will produce this collection
110  // with the given tag. Also store the map
111  // from nSamples to tag for later use
112  for( unsigned idx = 0; idx < saveQIE10DataNSamples_.size(); ++idx ) {
113  int nsamples = saveQIE10DataNSamples_[idx];
115 
116  produces<QIE10DigiCollection>(tag);
117 
118  saveQIE10Info_[nsamples] = tag;
119  }
120 
121  // If additional qie11 samples were requested,
122  // declare that we will produce this collection
123  // with the given tag. Also store the map
124  // from nSamples to tag for later use
125  for( unsigned idx = 0; idx < saveQIE11DataNSamples_.size(); ++idx ) {
126  int nsamples = saveQIE11DataNSamples_[idx];
128 
129  produces<QIE11DigiCollection>(tag);
130 
131  saveQIE11Info_[nsamples] = tag;
132  }
133 
134  memset(&stats_,0,sizeof(stats_));
135 
136 }
137 
138 // Virtual destructor needed.
140 
143  desc.addUntracked<int>("HcalFirstFED",int(FEDNumbering::MINHCALFEDID));
144  desc.add<int>("firstSample",0);
145  desc.add<int>("lastSample",9);
146  desc.add<bool>("FilterDataQuality",true);
147  desc.addUntracked<std::vector<int>>("FEDs", std::vector<int>());
148  desc.addUntracked<bool>("UnpackZDC",true);
149  desc.addUntracked<bool>("UnpackCalib",true);
150  desc.addUntracked<bool>("UnpackUMNio",true);
151  desc.addUntracked<bool>("UnpackTTP",true);
152  desc.addUntracked<bool>("silent",true);
153  desc.addUntracked<std::vector<int> >("saveQIE10DataNSamples", std::vector<int>());
154  desc.addUntracked<std::vector<std::string> >("saveQIE10DataTags", std::vector<std::string>());
155  desc.addUntracked<std::vector<int> >("saveQIE11DataNSamples", std::vector<int>());
156  desc.addUntracked<std::vector<std::string> >("saveQIE11DataTags", std::vector<std::string>());
157  desc.addUntracked<bool>("ComplainEmptyData",false);
158  desc.addUntracked<int>("UnpackerMode",0);
159  desc.addUntracked<int>("ExpectedOrbitMessageTime",-1);
160  desc.add<edm::InputTag>("InputLabel",edm::InputTag("rawDataCollector"));
161  desc.add<std::string>("ElectronicsMap","");
162  descriptions.add("hcalRawToDigi",desc);
163 }
164 
165 
166 // Functions that gets called by framework every event
168 {
169  // Step A: Get Inputs
171  e.getByToken(tok_data_,rawraw);
172  // get the mapping
174  es.get<HcalDbRecord>().get( pSetup );
177  const HcalElectronicsMap* readoutMap = item.product();
178  filter_.setConditions(pSetup.product());
179 
180  // Step B: Create empty output : three vectors for three classes...
181  std::vector<HBHEDataFrame> hbhe;
182  std::vector<HODataFrame> ho;
183  std::vector<HFDataFrame> hf;
184  std::vector<HcalTriggerPrimitiveDigi> htp;
185  std::vector<HcalCalibDataFrame> hc;
186  std::vector<ZDCDataFrame> zdc;
187  std::vector<HcalTTPDigi> ttp;
188  std::vector<HOTriggerPrimitiveDigi> hotp;
189  HcalUMNioDigi umnio;
190  auto report = std::make_unique<HcalUnpackerReport>();
191 
192  // Heuristics: use ave+(max-ave)/8
193  if (stats_.max_hbhe>0) hbhe.reserve(stats_.ave_hbhe+(stats_.max_hbhe-stats_.ave_hbhe)/8);
194  if (stats_.max_ho>0) ho.reserve(stats_.ave_ho+(stats_.max_ho-stats_.ave_ho)/8);
195  if (stats_.max_hf>0) hf.reserve(stats_.ave_hf+(stats_.max_hf-stats_.ave_hf)/8);
197  if (stats_.max_tp>0) htp.reserve(stats_.ave_tp+(stats_.max_tp-stats_.ave_tp)/8);
198  if (stats_.max_tpho>0) hotp.reserve(stats_.ave_tpho+(stats_.max_tpho-stats_.ave_tpho)/8);
199 
200  if (unpackZDC_) zdc.reserve(24);
201 
202 
204  colls.hbheCont=&hbhe;
205  colls.hoCont=&ho;
206  colls.hfCont=&hf;
207  colls.tpCont=&htp;
208  colls.tphoCont=&hotp;
209  colls.calibCont=&hc;
210  colls.zdcCont=&zdc;
211  colls.umnio=&umnio;
212  if (unpackTTP_) colls.ttp=&ttp;
213 
214  // make an entry for each additional qie10 collection that is requested
215  for( const auto &info : saveQIE10Info_ ) {
216  colls.qie10Addtl[info.first] = new QIE10DigiCollection(info.first);
217  }
218 
219  // make an entry for each additional qie11 collection that is requested
220  for( const auto &info : saveQIE11Info_ ) {
221  colls.qie11Addtl[info.first] = new QIE11DigiCollection(info.first);
222  }
223 
224  // Step C: unpack all requested FEDs
225  for (std::vector<int>::const_iterator i=fedUnpackList_.begin(); i!=fedUnpackList_.end(); i++) {
226  const FEDRawData& fed = rawraw->FEDData(*i);
227  if (fed.size()==0) {
228  if (complainEmptyData_) {
229  if (!silent_) edm::LogWarning("EmptyData") << "No data for FED " << *i;
230  report->addError(*i);
231  }
232  } else if (fed.size()<8*3) {
233  if (!silent_) edm::LogWarning("EmptyData") << "Tiny data " << fed.size() << " for FED " << *i;
234  report->addError(*i);
235  } else {
236  try {
237  unpacker_.unpack(fed,*readoutMap,colls, *report,silent_);
238  report->addUnpacked(*i);
239  } catch (cms::Exception& e) {
240  if (!silent_) edm::LogWarning("Unpacking error") << e.what();
241  report->addError(*i);
242  } catch (...) {
243  if (!silent_) edm::LogWarning("Unpacking exception");
244  report->addError(*i);
245  }
246  }
247  }
248 
249 
250  // gather statistics
251  stats_.max_hbhe=std::max(stats_.max_hbhe,(int)hbhe.size());
252  stats_.ave_hbhe=(stats_.ave_hbhe*stats_.n+hbhe.size())/(stats_.n+1);
253  stats_.max_ho=std::max(stats_.max_ho,(int)ho.size());
254  stats_.ave_ho=(stats_.ave_ho*stats_.n+ho.size())/(stats_.n+1);
255  stats_.max_hf=std::max(stats_.max_hf,(int)hf.size());
256  stats_.ave_hf=(stats_.ave_hf*stats_.n+hf.size())/(stats_.n+1);
257  stats_.max_tp=std::max(stats_.max_tp,(int)htp.size());
258  stats_.ave_tp=(stats_.ave_tp*stats_.n+htp.size())/(stats_.n+1);
259  stats_.max_tpho=std::max(stats_.max_tpho,(int)hotp.size());
260  stats_.ave_tpho=(stats_.ave_tpho*stats_.n+hotp.size())/(stats_.n+1);
261  stats_.max_calib=std::max(stats_.max_calib,(int)hc.size());
262  stats_.ave_calib=(stats_.ave_calib*stats_.n+hc.size())/(stats_.n+1);
263 
264 
265  stats_.n++;
266 
267  // check HF duplication
268  std::unordered_set<uint32_t> cacheForHFdup;
269  unsigned int cntHFdup = 0;
270  for( auto & hf_digi : hf ){
271  if( ! cacheForHFdup.insert(hf_digi.id().rawId()).second ) cntHFdup++;
272  }
273  if( cntHFdup ) edm::LogError("HcalRawToDigi") << "Duplicated HF digis found for "<<cntHFdup<<" times"<<std::endl;
274 
275  // Check that additional QIE10 and QIE11 collections
276  // do not duplicate the default collections
277  for( const auto & addtl: colls.qie10Addtl ) {
278  if( addtl.second->samples() == colls.qie10->samples() ) {
279  std::string tag = saveQIE10Info_[addtl.second->samples()];
280  edm::LogWarning("HcalRawToDigi") << "QIE10 data requested to be stored in tag "
281  << tag << " is already stored in the default QIE10 collection. "
282  << "To avoid duplicating, remove the tag " << tag
283  << " from the saveQIE10DataTags and the value of "
284  << addtl.second->samples() << " from the saveQIE10DataNSamples "
285  << "configurables to HcalRawToDigi" << std::endl;
286  }
287  }
288  for( const auto & addtl: colls.qie11Addtl ) {
289  if( addtl.second->samples() == colls.qie11->samples() ) {
290  std::string tag = saveQIE11Info_[addtl.second->samples()];
291  edm::LogWarning("HcalRawToDigi") << "QIE11 data requested to be stored in tag "
292  << tag << " is already stored in the default QIE11 collection. "
293  << "To avoid duplicating, remove the tag " << tag
294  << " from the saveQIE11DataTags and the value of "
295  << addtl.second->samples() << " from the saveQIE11DataNSamples "
296  << "configurables to HcalRawToDigi" << std::endl;
297  }
298  }
299 
300  // Step B: encapsulate vectors in actual collections
301  auto hbhe_prod = std::make_unique<HBHEDigiCollection>();
302  auto hf_prod = std::make_unique<HFDigiCollection>();
303  auto ho_prod = std::make_unique<HODigiCollection>();
304  auto htp_prod = std::make_unique<HcalTrigPrimDigiCollection>();
305  auto hotp_prod = std::make_unique<HOTrigPrimDigiCollection>();
306  // make qie10 collection if it wasn't made in theunpacker
307  if (colls.qie10 == nullptr) {
308  colls.qie10 = new QIE10DigiCollection();
309  }
310  std::unique_ptr<QIE10DigiCollection> qie10_prod(colls.qie10);
311 
312  // make qie10ZDC collection if it wasn't made in theunpacker
313  if (colls.qie10ZDC == nullptr) {
314  colls.qie10ZDC = new QIE10DigiCollection();
315  }
316  std::unique_ptr<QIE10DigiCollection> qie10ZDC_prod(colls.qie10ZDC);
317 
318  // make qie10Lasermon collection if it wasn't made in theunpacker
319  if (colls.qie10Lasermon == nullptr) {
320  colls.qie10Lasermon = new QIE10DigiCollection();
321  }
322  std::unique_ptr<QIE10DigiCollection> qie10Lasermon_prod(colls.qie10Lasermon);
323 
324  if (colls.qie11 == nullptr) {
325  colls.qie11 = new QIE11DigiCollection();
326  }
327  std::unique_ptr<QIE11DigiCollection> qie11_prod(colls.qie11);
328 
329 
330  // follow the procedure for other collections. Copy the unpacked
331  // data so that it can be filtered and sorted
332  std::unordered_map<int, std::unique_ptr<QIE10DigiCollection> > qie10_prodAddtl;
333  std::unordered_map<int, std::unique_ptr<QIE11DigiCollection> > qie11_prodAddtl;
334  for( const auto & orig : colls.qie10Addtl ) {
335  qie10_prodAddtl[orig.first] = std::unique_ptr<QIE10DigiCollection>(orig.second);
336  }
337  for( const auto & orig : colls.qie11Addtl ) {
338  qie11_prodAddtl[orig.first] = std::unique_ptr<QIE11DigiCollection>(orig.second);
339  }
340 
341  hbhe_prod->swap_contents(hbhe);
342  if( !cntHFdup ) hf_prod->swap_contents(hf);
343  ho_prod->swap_contents(ho);
344  htp_prod->swap_contents(htp);
345  hotp_prod->swap_contents(hotp);
346 
347  // Step C2: filter FEDs, if required
348  if (filter_.active()) {
349  HBHEDigiCollection filtered_hbhe=filter_.filter(*hbhe_prod,*report);
350  HODigiCollection filtered_ho=filter_.filter(*ho_prod,*report);
351  HFDigiCollection filtered_hf=filter_.filter(*hf_prod,*report);
352  QIE10DigiCollection filtered_qie10=filter_.filter(*qie10_prod,*report);
353  QIE11DigiCollection filtered_qie11=filter_.filter(*qie11_prod,*report);
354 
355  hbhe_prod->swap(filtered_hbhe);
356  ho_prod->swap(filtered_ho);
357  hf_prod->swap(filtered_hf);
358  qie10_prod->swap(filtered_qie10);
359  qie11_prod->swap(filtered_qie11);
360 
361  // apply filter to additional collections
362  for( auto & prod : qie10_prodAddtl ) {
363  QIE10DigiCollection filtered_qie10=filter_.filter(*(prod.second),*report);
364  prod.second->swap(filtered_qie10);
365  }
366 
367  for( auto & prod : qie11_prodAddtl ) {
368  QIE11DigiCollection filtered_qie11=filter_.filter(*(prod.second),*report);
369  prod.second->swap(filtered_qie11);
370  }
371 
372 
373  }
374 
375  // Step D: Put outputs into event
376  // just until the sorting is proven
377  hbhe_prod->sort();
378  ho_prod->sort();
379  hf_prod->sort();
380  htp_prod->sort();
381  hotp_prod->sort();
382  qie10_prod->sort();
383  qie10ZDC_prod->sort();
384  qie10Lasermon_prod->sort();
385  qie11_prod->sort();
386 
387  // sort the additional collections
388  for( auto & prod : qie10_prodAddtl ) {
389  prod.second->sort();
390  }
391  for( auto & prod : qie11_prodAddtl ) {
392  prod.second->sort();
393  }
394 
395  e.put(std::move(hbhe_prod));
396  e.put(std::move(ho_prod));
397  e.put(std::move(hf_prod));
398  e.put(std::move(htp_prod));
399  e.put(std::move(hotp_prod));
400  e.put(std::move(qie10_prod));
401  e.put(std::move(qie10ZDC_prod), "ZDC");
402  e.put(std::move(qie10Lasermon_prod), "LASERMON");
403  e.put(std::move(qie11_prod));
404 
405  // put the qie10 and qie11 collections into the event
406  for( auto & prod : qie10_prodAddtl ) {
407  std::string tag = saveQIE10Info_[prod.first];
408  e.put(std::move(prod.second), tag);
409  }
410 
411  for( auto & prod : qie11_prodAddtl ) {
412  std::string tag = saveQIE11Info_[prod.first];
413  e.put(std::move(prod.second), tag);
414  }
415 
417  if (unpackCalib_) {
418  auto hc_prod = std::make_unique<HcalCalibDigiCollection>();
419  hc_prod->swap_contents(hc);
420 
421  if (filter_.active()) {
422  HcalCalibDigiCollection filtered_calib=filter_.filter(*hc_prod,*report);
423  hc_prod->swap(filtered_calib);
424  }
425 
426  hc_prod->sort();
427  e.put(std::move(hc_prod));
428  }
429 
431  if (unpackZDC_) {
432  auto prod = std::make_unique<ZDCDigiCollection>();
433  prod->swap_contents(zdc);
434 
435  if (filter_.active()) {
436  ZDCDigiCollection filtered_zdc=filter_.filter(*prod,*report);
437  prod->swap(filtered_zdc);
438  }
439 
440  prod->sort();
441  e.put(std::move(prod));
442  }
443 
444  if (unpackTTP_) {
445  auto prod = std::make_unique<HcalTTPDigiCollection>();
446  prod->swap_contents(ttp);
447 
448  prod->sort();
449  e.put(std::move(prod));
450  }
451  e.put(std::move(report));
453  if (unpackUMNio_) {
454  if(colls.umnio != nullptr) {
455  e.put(std::make_unique<HcalUMNioDigi>(umnio));
456  }
457 
458  }
459 }
460 
461 
T getParameter(std::string const &) const
static const TGPicture * info(bool iBackgroundIsBlack)
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:136
HcalDataFrameFilter filter_
Definition: HcalRawToDigi.h:39
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
std::vector< HcalTTPDigi > * ttp
Definition: HcalUnpacker.h:33
const bool unpackTTP_
Definition: HcalRawToDigi.h:42
std::vector< HFDataFrame > * hfCont
Definition: HcalUnpacker.h:28
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
HcalUMNioDigi * umnio
Definition: HcalUnpacker.h:41
std::unordered_map< int, std::string > saveQIE11Info_
Definition: HcalRawToDigi.h:60
void swap(SortedCollection &other)
QIE10DigiCollection * qie10Lasermon
Definition: HcalUnpacker.h:36
std::vector< HBHEDataFrame > * hbheCont
Definition: HcalUnpacker.h:26
char const * what() const override
Definition: Exception.cc:141
std::vector< HOTriggerPrimitiveDigi > * tphoCont
Definition: HcalUnpacker.h:32
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:20
std::vector< std::string > saveQIE10DataTags_
Definition: HcalRawToDigi.h:47
std::unordered_map< int, QIE11DigiCollection * > qie11Addtl
Definition: HcalUnpacker.h:40
~HcalRawToDigi() override
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
void produce(edm::Event &, const edm::EventSetup &) override
HcalDataFrameContainer< QIE10DataFrame > QIE10DigiCollection
U second(std::pair< T, U > const &p)
const int expectedOrbitMessageTime_
Definition: HcalRawToDigi.h:54
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
std::unordered_map< int, QIE10DigiCollection * > qie10Addtl
Definition: HcalUnpacker.h:39
std::vector< int > saveQIE11DataNSamples_
Definition: HcalRawToDigi.h:50
QIE10DigiCollection * qie10ZDC
Definition: HcalUnpacker.h:35
const bool complainEmptyData_
Definition: HcalRawToDigi.h:53
std::string electronicsMapLabel_
Definition: HcalRawToDigi.h:55
std::vector< HcalTriggerPrimitiveDigi > * tpCont
Definition: HcalUnpacker.h:31
struct HcalRawToDigi::Statistics stats_
const bool unpackZDC_
Definition: HcalRawToDigi.h:42
ParameterDescriptionBase * add(U const &iLabel, T const &value)
const bool unpackCalib_
Definition: HcalRawToDigi.h:42
HcalRawToDigi(const edm::ParameterSet &ps)
std::unordered_map< int, std::string > saveQIE10Info_
Definition: HcalRawToDigi.h:59
const bool silent_
Definition: HcalRawToDigi.h:53
void setExpectedOrbitMessageTime(int time)
Definition: HcalUnpacker.h:49
HcalDataFrameContainer< QIE11DataFrame > QIE11DigiCollection
void setMode(int mode)
Definition: HcalUnpacker.h:52
void unpack(const FEDRawData &raw, const HcalElectronicsMap &emap, std::vector< HcalHistogramDigi > &histoDigis)
std::vector< HcalCalibDataFrame > * calibCont
Definition: HcalUnpacker.h:29
std::vector< int > fedUnpackList_
Definition: HcalRawToDigi.h:40
std::vector< int > saveQIE10DataNSamples_
Definition: HcalRawToDigi.h:46
const T & get() const
Definition: EventSetup.h:59
bool active() const
whether any filters are on
std::vector< HODataFrame > * hoCont
Definition: HcalUnpacker.h:27
QIE11DigiCollection * qie11
Definition: HcalUnpacker.h:37
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void setConditions(const HcalDbService *conditions)
get conditions
HBHEDigiCollection filter(const HBHEDigiCollection &incol, HcalUnpackerReport &r)
filter HB/HE data frames
const int unpackerMode_
Definition: HcalRawToDigi.h:54
HcalUnpacker unpacker_
Definition: HcalRawToDigi.h:38
susybsm::HSCParticleCollection hc
Definition: classes.h:25
QIE10DigiCollection * qie10
Definition: HcalUnpacker.h:34
std::vector< ZDCDataFrame > * zdcCont
Definition: HcalUnpacker.h:30
edm::EDGetTokenT< FEDRawDataCollection > tok_data_
Definition: HcalRawToDigi.h:37
T const * product() const
Definition: ESHandle.h:86
std::vector< std::string > saveQIE11DataTags_
Definition: HcalRawToDigi.h:51
def move(src, dest)
Definition: eostools.py:510