HGCal Test Beam  03a93d6239a951948e06fb3ef8dae4cbdebfad30
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
HGCalTBDataFrameContainers.h
Go to the documentation of this file.
1 #ifndef HGCalTBDataFrameContainers_h_included
2 #define HGCalTBDataFrameContainers_h_included 1
3 
4 #include "DataFormats/Common/interface/DataFrameContainer.h"
5 #include "HGCal/DataFormats/interface/SKIROC2DataFrame.h"
6 #include "HGCal/DataFormats/interface/SKIROCParameters.h"
7 
8 template <class Digi>
9 class HGCalDataFrameContainer : public edm::DataFrameContainer
10 {
11 public:
12  typedef edm::DataFrameContainer::size_type size_type;
13 
14  HGCalDataFrameContainer(int nsamples_per_digi = SKIROC::MAXSAMPLES, int isubdet = 0) :
15  edm::DataFrameContainer(nsamples_per_digi * Digi::WORDS_PER_SAMPLE + Digi::HEADER_WORDS + Digi::FLAG_WORDS, isubdet) { }
16  void swap(DataFrameContainer& other)
17  {
18  this->DataFrameContainer::swap(other);
19  }
20 
21  //helpful accessors
22  using edm::DataFrameContainer::push_back;
24  {
25  return Digi(this->back());
26  }
27  int samples() const
28  {
29  return int((stride() - Digi::HEADER_WORDS - Digi::FLAG_WORDS) / Digi::WORDS_PER_SAMPLE);
30  }
31  void addDataFrame(DetId detid, const uint16_t* data)
32  {
33  push_back(detid.rawId(), data);
34  }
35  void addDataFrame(DetId detid)
36  {
37  std::vector<uint16_t> dummy_data(stride(), 0);
38  push_back(detid.rawId(), &(dummy_data[0]));
39  }
40  void push_back(const Digi& digi)
41  {
42  push_back(digi.id(), digi.begin());
43  }
44 };
45 
47 
48 
49 #endif // HGCalTBDataFrameContainers_h_included
void swap(DataFrameContainer &other)
void addDataFrame(DetId detid, const uint16_t *data)
void push_back(const Digi &digi)
HGCalDataFrameContainer(int nsamples_per_digi=SKIROC::MAXSAMPLES, int isubdet=0)
edm::DataFrameContainer::size_type size_type
HGCalDataFrameContainer< SKIROC2DataFrame > SKIROC2DigiCollection