TotemAnalysisMask

TotemVFATAnalysisMask

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
/****************************************************************************
*
* This is a part of TOTEM offline software.
* Authors: 
*   Maciej Wróbel (wroblisko@gmail.com)
*   Jan Kašpar (jan.kaspar@cern.ch)
*
****************************************************************************/

#ifndef CondFormats_PPSObjects_TotemAnalysisMask
#define CondFormats_PPSObjects_TotemAnalysisMask

#include "CondFormats/PPSObjects/interface/TotemSymbId.h"
#include "CondFormats/Serialization/interface/Serializable.h"
#include <map>
#include <set>

//----------------------------------------------------------------------------------------------------

/**
 *\brief Contains data on masked channels of a VFAT.
 */
class TotemVFATAnalysisMask {
public:
  TotemVFATAnalysisMask() : fullMask(false) {}

  /// whether all channels of the VFAT shall be masked
  bool fullMask;

  /// list of channels to be masked
  std::set<unsigned char> maskedChannels;

  COND_SERIALIZABLE;
};

//----------------------------------------------------------------------------------------------------

/**
 *\brief Channel-mask mapping.
 **/
class TotemAnalysisMask {
public:
  std::map<TotemSymbID, TotemVFATAnalysisMask> analysisMask;

  void insert(const TotemSymbID& sid, const TotemVFATAnalysisMask& vam);
  void print(std::ostream& os) const;

  COND_SERIALIZABLE;
};

std::ostream& operator<<(std::ostream& os, TotemAnalysisMask mask);

#endif