SDSRawDataCollection

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
#ifndef L1ScoutingRawData_SDSRawDataCollection_h
#define L1ScoutingRawData_SDSRawDataCollection_h

#include "DataFormats/FEDRawData/interface/FEDRawData.h"
#include "DataFormats/Common/interface/traits.h"

/** 
  *
  * This collection holds the raw data for all the 
  * scouting data sources. It is a collection of FEDRawData
  *
  */

class SDSRawDataCollection : public edm::DoNotRecordParents {
public:
  SDSRawDataCollection();
  SDSRawDataCollection(const SDSRawDataCollection&) = default;
  SDSRawDataCollection(SDSRawDataCollection&&) noexcept = default;
  SDSRawDataCollection& operator=(const SDSRawDataCollection&) = default;
  SDSRawDataCollection& operator=(SDSRawDataCollection&&) noexcept = default;

  // retrive data for the scouting source at sourceId
  const FEDRawData& FEDData(int sourceId) const;

  // retrive data for the scouting source at sourceId
  FEDRawData& FEDData(int sourceId);

  void swap(SDSRawDataCollection& other) { data_.swap(other.data_); }

private:
  std::vector<FEDRawData> data_;  // vector of raw data
};

inline void swap(SDSRawDataCollection& a, SDSRawDataCollection& b) { a.swap(b); }

#endif  // L1ScoutingRawData_SDSRawDataCollection_h