22 #ifndef L1MUDT_TRACK_ASSEMBLER_H
23 #define L1MUDT_TRACK_ASSEMBLER_H
111 static unsigned long subBitset68(
const std::bitset<68>&
input,
int pos,
int length);
114 static unsigned long subBitset56(
const std::bitset<56>&
input,
int pos,
int length);
static unsigned int addressEncoder12(const std::bitset< 12 > &input)
12 bit address encoder
uint16_t *__restrict__ id
static unsigned int addressEncoder12s(const std::bitset< 12 > &input)
special 12 bit address encoder
void runAddressAssignment1(int global, int group)
run the first Address Assignment Sub-Unit
void print() const
print result of Track Assembler
L1MuDTAddressArray m_theAddresses[2]
static unsigned int priorityEncoder12(const std::bitset< 12 > &input)
12 bit priority encoder
L1MuDTAddressArray address(int id) const
get address-array of selected track candidate
unsigned int m_theLastAddress[68]
static std::string const input
static unsigned int priorityEncoder22(const std::bitset< 22 > &input)
22 bit priority encoder
L1MuDTTrackAssembler(const L1MuDTSectorProcessor &)
constructor
const L1MuDTSectorProcessor & m_sp
void runEncoderSubUnit2(unsigned &global, unsigned &group, unsigned &priority)
run the second Priority Encoder Sub-Unit
void run()
run Track Assembler
const std::bitset< 4 > & trackBitMap(int id) const
return bitmap of found track
void reset()
reset Track Assembler
~L1MuDTTrackAssembler()
destructor
std::bitset< 4 > m_theBitMaps[2]
static std::bitset< 56 > getCancelationTable(unsigned int)
cancel Out Table
static unsigned int priorityEncoder21(const std::bitset< 21 > &input)
21 bit priority encoder
std::bitset< 68 > m_thePriorityTable1
unsigned int m_theLastAddressI[12]
static unsigned int priorityEncoder4(const std::bitset< 4 > &input)
4 bit priority encoder
void runAddressAssignment2(int global, int group)
run the second Address Assignment Sub-Unit
static unsigned long subBitset56(const std::bitset< 56 > &input, int pos, int length)
get sub-bitmap of a 56-bit word
void runEncoderSubUnit1(unsigned &global, unsigned &group, unsigned &priority)
run the first Priority Encoder Sub-Unit
bool isEmpty(int id) const
is it a valid Track Class?
std::bitset< 56 > m_thePriorityTable2
TrackClass trackClass(int id) const
return Track Class of found track
static unsigned long subBitset68(const std::bitset< 68 > &input, int pos, int length)
get sub-bitmap of a 68-bit word
int address(int id, int stat) const
get address of a single station of selected track candidate
unsigned short station(int stat) const
get address of a given station [1-4]