LinkConnSpec

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
#ifndef CondFormatsRPCObjectsLinkConnSpec_H
#define CondFormatsRPCObjectsLinkConnSpec_H

#include "CondFormats/Serialization/interface/Serializable.h"

#include "CondFormats/RPCObjects/interface/LinkBoardSpec.h"
#include <vector>
#include <string>

/** \class LinkConnSpec
 * RPC LinkConnection Specification for readout decoding
 */

class LinkConnSpec {
public:
  /// ctor with ID only
  LinkConnSpec(int num = -1) : theTriggerBoardInputNumber(num) {}

  /// this link input number in TriggerBoard
  int triggerBoardInputNumber() const { return theTriggerBoardInputNumber; }

  /// LB served by this link, identified by its position in link
  const LinkBoardSpec* linkBoard(int linkBoardNumInLink) const;

  const std::vector<LinkBoardSpec>& linkBoards() const { return theLBs; }

  /// attach LinkBoard to this link
  void add(const LinkBoardSpec& lb);

  ///  debud printaout, call its components with depth dectreased by one
  std::string print(int depth = 0) const;

private:
  int theTriggerBoardInputNumber;
  std::vector<LinkBoardSpec> theLBs;

  COND_SERIALIZABLE;
};
#endif