L1MuGMTReadoutCollection

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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
//---------------------------------------------
//
//   \class L1MuGMTReadoutCollection
//
//   Description:
//
//
//
//   Author :
//   Hannes Sakulin                  HEPHY Vienna
//   Ivan Mikulec                    HEPHY Vienna
//
//--------------------------------------------------
#ifndef DataFormatsL1GlobalMuonTrigger_L1MuGMTReadoutCollection_h
#define DataFormatsL1GlobalMuonTrigger_L1MuGMTReadoutCollection_h

//---------------
// C++ Headers --
//---------------

#include <vector>
#include <map>
#include <iostream>

//----------------------
// Base Class Headers --
//----------------------

//------------------------------------
// Collaborating Class Declarations --
//------------------------------------

#include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutRecord.h"

//---------------------
//-- Class Interface --
//---------------------

class L1MuGMTReadoutCollection {
public:
  L1MuGMTReadoutCollection() {}
  L1MuGMTReadoutCollection(int nbx) { m_Records.reserve(nbx); }

  virtual ~L1MuGMTReadoutCollection() {}

  void reset() {
    for (unsigned int i = 0; i < m_Records.size(); i++)
      m_Records[i].reset();
  };

  // get record vector
  std::vector<L1MuGMTReadoutRecord> const& getRecords() const { return m_Records; };

  // get record for a given bx
  L1MuGMTReadoutRecord const& getRecord(int bx = 0) const {
    std::vector<L1MuGMTReadoutRecord>::const_iterator iter;
    for (iter = m_Records.begin(); iter != m_Records.end(); iter++) {
      if ((*iter).getBxCounter() == bx)
        return (*iter);
    }
    return getDefaultFor(bx);
  };

  // add record
  void addRecord(L1MuGMTReadoutRecord const& rec) { m_Records.push_back(rec); };

private:
  static L1MuGMTReadoutRecord const& getDefaultFor(int bx);

  std::vector<L1MuGMTReadoutRecord> m_Records;
};

#endif  // DataFormatsL1GlobalMuonTrigger_L1MuGMTReadoutCollection_h