ATLAS Offline Software
Classes | Namespaces | Typedefs | Variables
NSWPadTriggerL1a.h File Reference
#include <cstdint>
#include <vector>
#include <array>
#include <bitset>
#include <numeric>
#include <algorithm>
#include "eformat/eformat.h"
#include "MuonNSWCommonDecode/MapperSTG.h"
#include "MuonNSWCommonDecode/NSWTriggerElink.h"
Include dependency graph for NSWPadTriggerL1a.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Muon::nsw::NSWPadTriggerL1a
 
struct  Muon::nsw::NSWPadTriggerL1a::OneBCOfData
 
struct  Muon::nsw::NSWPadTriggerL1a::DecodedData
 

Namespaces

 Muon
 This class provides conversion from CSC RDO data to CSC Digits.
 
 Muon::nsw
 
 Muon::nsw::Constants
 

Typedefs

using Muon::nsw::Constants::ArrayOfPfebChannels = std::array< std::array< uint8_t, NPADS >, NPFEBS >
 
using Muon::nsw::Constants::ArrayOfPfebs = std::array< size_t, NPFEBS >
 

Variables

constexpr bool Muon::nsw::Constants::DEBUG = false
 
constexpr uint32_t Muon::nsw::Constants::N_BYTES_IN_WORD32 = 4
 
constexpr uint32_t Muon::nsw::Constants::N_BITS_IN_BYTE = 8
 
constexpr uint32_t Muon::nsw::Constants::N_BITS_IN_WORD16 = 16
 
constexpr uint32_t Muon::nsw::Constants::MASK_BYTE = 0xff
 
constexpr uint32_t Muon::nsw::Constants::NULL_SIZE = 0
 
constexpr uint32_t Muon::nsw::Constants::NPFEBS = 24
 
constexpr uint32_t Muon::nsw::Constants::NPADS = 104
 
constexpr uint32_t Muon::nsw::Constants::NLAYERS = 8
 
constexpr uint32_t Muon::nsw::Constants::NLAYERS_PER_QUAD = 4
 
constexpr uint32_t Muon::nsw::Constants::N_BITS_IN_PHIID = 6
 
constexpr uint32_t Muon::nsw::Constants::N_BITS_IN_BANDID = 8
 
constexpr uint32_t Muon::nsw::Constants::N_SEGMENTS_IN_BC = 4
 
constexpr uint32_t Muon::nsw::Constants::BITMASK_PHIID = (1 << N_BITS_IN_PHIID) - 1
 
constexpr uint32_t Muon::nsw::Constants::BITMASK_BANDID = (1 << N_BITS_IN_BANDID) - 1
 
constexpr uint32_t Muon::nsw::Constants::N_CHAN_PER_VMM = 64
 
constexpr uint32_t Muon::nsw::Constants::SIZE_SWROD = 64
 
constexpr uint32_t Muon::nsw::Constants::SIZE_FLAGS = 7
 
constexpr uint32_t Muon::nsw::Constants::SIZE_EC = 1
 
constexpr uint32_t Muon::nsw::Constants::SIZE_SECID = 4
 
constexpr uint32_t Muon::nsw::Constants::SIZE_FRAGID = 4
 
constexpr uint32_t Muon::nsw::Constants::SIZE_SPARE = 2
 
constexpr uint32_t Muon::nsw::Constants::SIZE_ORBIT = 2
 
constexpr uint32_t Muon::nsw::Constants::SIZE_BCID = 12
 
constexpr uint32_t Muon::nsw::Constants::SIZE_L1ID_31_16 = 16
 
constexpr uint32_t Muon::nsw::Constants::SIZE_L1ID_15_00 = 16
 
constexpr uint32_t Muon::nsw::Constants::SIZE_ORBITID = 12
 
constexpr uint32_t Muon::nsw::Constants::SIZE_ORBIT1 = 4
 
constexpr size_t Muon::nsw::Constants::HEADER_N = 12
 
constexpr std::array< uint32_t, HEADER_N > Muon::nsw::Constants::HEADER_SIZES
 
constexpr uint32_t Muon::nsw::Constants::ZERO {0}
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_SWROD = std::accumulate(HEADER_SIZES.cbegin(), HEADER_SIZES.cbegin() + 0, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_FLAGS = std::accumulate(HEADER_SIZES.cbegin(), HEADER_SIZES.cbegin() + 1, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_EC = std::accumulate(HEADER_SIZES.cbegin(), HEADER_SIZES.cbegin() + 2, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_SECID = std::accumulate(HEADER_SIZES.cbegin(), HEADER_SIZES.cbegin() + 3, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_FRAGID = std::accumulate(HEADER_SIZES.cbegin(), HEADER_SIZES.cbegin() + 4, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_SPARE = std::accumulate(HEADER_SIZES.cbegin(), HEADER_SIZES.cbegin() + 5, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_ORBIT = std::accumulate(HEADER_SIZES.cbegin(), HEADER_SIZES.cbegin() + 6, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_BCID = std::accumulate(HEADER_SIZES.cbegin(), HEADER_SIZES.cbegin() + 7, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_L1ID_31_16 = std::accumulate(HEADER_SIZES.cbegin(), HEADER_SIZES.cbegin() + 8, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_L1ID_15_00 = std::accumulate(HEADER_SIZES.cbegin(), HEADER_SIZES.cbegin() + 9, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_ORBITID = std::accumulate(HEADER_SIZES.cbegin(), HEADER_SIZES.cbegin() + 10, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_ORBIT1 = std::accumulate(HEADER_SIZES.cbegin(), HEADER_SIZES.cbegin() + 11, ZERO)
 
const uint32_t Muon::nsw::Constants::SIZE_HEADER = std::accumulate(HEADER_SIZES.cbegin(), HEADER_SIZES.cend(), ZERO)
 
const uint32_t Muon::nsw::Constants::SIZE_HEADER_BYTES = SIZE_HEADER / N_BITS_IN_BYTE
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_COMPRESSION = SIZE_HEADER
 
constexpr uint32_t Muon::nsw::Constants::SIZE_MULT = 12
 
constexpr uint32_t Muon::nsw::Constants::SIZE_MULT0 = 4
 
constexpr uint32_t Muon::nsw::Constants::SIZE_PHIID_23_16 = 8
 
constexpr uint32_t Muon::nsw::Constants::SIZE_PHIID0 = 8
 
constexpr uint32_t Muon::nsw::Constants::SIZE_PHIID_15_00 = 16
 
constexpr uint32_t Muon::nsw::Constants::SIZE_BANDID_31_16 = 16
 
constexpr uint32_t Muon::nsw::Constants::SIZE_BANDID_15_00 = 16
 
constexpr uint32_t Muon::nsw::Constants::SIZE_L0SIZE = 8
 
constexpr uint32_t Muon::nsw::Constants::SIZE_L1SIZE = 8
 
constexpr uint32_t Muon::nsw::Constants::SIZE_L2_31_16 = 16
 
constexpr uint32_t Muon::nsw::Constants::SIZE_L2_15_00 = 16
 
constexpr uint32_t Muon::nsw::Constants::SIZE_L2 = SIZE_L2_31_16 + SIZE_L2_15_00
 
constexpr uint32_t Muon::nsw::Constants::SIZE_STATUS = 16
 
constexpr size_t Muon::nsw::Constants::DECOMP_N = 11
 
constexpr std::array< uint32_t, DECOMP_N > Muon::nsw::Constants::DECOMP_SIZES
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_MULT = std::accumulate(DECOMP_SIZES.cbegin(), DECOMP_SIZES.cbegin() + 0, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_MULT0 = std::accumulate(DECOMP_SIZES.cbegin(), DECOMP_SIZES.cbegin() + 1, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_PHIID_23_16 = std::accumulate(DECOMP_SIZES.cbegin(), DECOMP_SIZES.cbegin() + 2, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_PHIID0 = std::accumulate(DECOMP_SIZES.cbegin(), DECOMP_SIZES.cbegin() + 3, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_PHIID_15_00 = std::accumulate(DECOMP_SIZES.cbegin(), DECOMP_SIZES.cbegin() + 4, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_BANDID_31_16 = std::accumulate(DECOMP_SIZES.cbegin(), DECOMP_SIZES.cbegin() + 5, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_BANDID_15_00 = std::accumulate(DECOMP_SIZES.cbegin(), DECOMP_SIZES.cbegin() + 6, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_L0SIZE = std::accumulate(DECOMP_SIZES.cbegin(), DECOMP_SIZES.cbegin() + 7, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_L1SIZE = std::accumulate(DECOMP_SIZES.cbegin(), DECOMP_SIZES.cbegin() + 8, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_L2_31_16 = std::accumulate(DECOMP_SIZES.cbegin(), DECOMP_SIZES.cbegin() + 9, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_L2_15_00 = std::accumulate(DECOMP_SIZES.cbegin(), DECOMP_SIZES.cbegin() + 10, ZERO)
 
const uint32_t Muon::nsw::Constants::FIRSTBIT_L1 = std::accumulate(DECOMP_SIZES.cbegin(), DECOMP_SIZES.cend(), ZERO)
 
constexpr uint32_t Muon::nsw::Constants::SIZE_TRAILER = 0 * N_BITS_IN_BYTE
 
constexpr uint32_t Muon::nsw::Constants::CELL_SIZE = 8
 
constexpr uint32_t Muon::nsw::Constants::PAD_TO_WORD32 = 2