Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Static Private Attributes | List of all members
LVL1BS::L1CaloSrcIdMap Class Reference

This class provides conversion between Lower level Source ID to higher level source ID for L1Calo ByteStream fragments. More...

#include <L1CaloSrcIdMap.h>

Collaboration diagram for LVL1BS::L1CaloSrcIdMap:

Public Member Functions

 L1CaloSrcIdMap ()
 
uint32_t getRodID (int crate, int slink, int daqOrRoi, eformat::SubDetector subdet) const
 Make a ROD Source ID. More...
 
uint32_t getRobID (uint32_t rod_id) const
 Make a ROB Source ID from a ROD source ID. More...
 
uint32_t getRosID (uint32_t rob_id) const
 Make a ROS Source ID from a ROB source ID. More...
 
uint32_t getDetID (uint32_t ros_id) const
 Make a SubDetector ID from ROS source ID. More...
 
int crate (uint32_t code) const
 Return crate from unpacked moduleID. More...
 
int daqOrRoi (uint32_t code) const
 Return daqOrRoi from unpacked moduleID. More...
 
int slink (uint32_t code) const
 Return slink from unpacked moduleID. More...
 
int maxSlinks () const
 Return the maximum possible number of slinks. More...
 
eformat::SubDetector subDet (uint32_t code) const
 Return sub-detector for given ID. More...
 
uint16_t minorVersion () const
 Return ROD header minor version to use when writing BS. More...
 
uint16_t minorVersionPreLS1 () const
 Return last ROD header minor version for pre-LS1 data. More...
 

Static Public Member Functions

static void useSWROD (bool in)
 Flag to decide if SWROD readout should be used instead of legacy. More...
 

Static Private Attributes

static std::atomic< bool > s_useSWROD ATLAS_THREAD_SAFE
 

Detailed Description

This class provides conversion between Lower level Source ID to higher level source ID for L1Calo ByteStream fragments.

This is to be used in assembling the fragments from ROD fragments

Author
Peter Faulkner

Definition at line 24 of file L1CaloSrcIdMap.h.

Constructor & Destructor Documentation

◆ L1CaloSrcIdMap()

LVL1BS::L1CaloSrcIdMap::L1CaloSrcIdMap ( )

Definition at line 12 of file L1CaloSrcIdMap.cxx.

13 {
14 }

Member Function Documentation

◆ crate()

int LVL1BS::L1CaloSrcIdMap::crate ( uint32_t  code) const

Return crate from unpacked moduleID.

Definition at line 57 of file L1CaloSrcIdMap.cxx.

58 {
59  eformat::helper::SourceIdentifier id(code);
60  return id.module_id() & 0xf;
61 }

◆ daqOrRoi()

int LVL1BS::L1CaloSrcIdMap::daqOrRoi ( uint32_t  code) const

Return daqOrRoi from unpacked moduleID.

Definition at line 65 of file L1CaloSrcIdMap.cxx.

66 {
67  eformat::helper::SourceIdentifier id(code);
68  return (id.module_id() >> 7) & 0x1;
69 }

◆ getDetID()

uint32_t LVL1BS::L1CaloSrcIdMap::getDetID ( uint32_t  ros_id) const

Make a SubDetector ID from ROS source ID.

Definition at line 48 of file L1CaloSrcIdMap.cxx.

49 {
50  eformat::helper::SourceIdentifier id(ros_id);
51  eformat::helper::SourceIdentifier id2(id.subdetector_id(), 0);
52  return id2.code();
53 }

◆ getRobID()

uint32_t LVL1BS::L1CaloSrcIdMap::getRobID ( uint32_t  rod_id) const

Make a ROB Source ID from a ROD source ID.

Definition at line 32 of file L1CaloSrcIdMap.cxx.

33 {
34  return rod_id;
35 }

◆ getRodID()

uint32_t LVL1BS::L1CaloSrcIdMap::getRodID ( int  crate,
int  slink,
int  daqOrRoi,
eformat::SubDetector  subdet 
) const

Make a ROD Source ID.

Definition at line 18 of file L1CaloSrcIdMap.cxx.

20 {
21  // module ID = r0sscccc (ROD-spec-version1_06d, P33)
22  uint16_t moduleId = (daqOrRoi << 7) | (slink << 4) | crate;
23  if(s_useSWROD && (crate == 6 || crate == 7)) {
24  moduleId |= (0x1<<12);
25  }
26  eformat::helper::SourceIdentifier helpID(subdet, moduleId);
27  return helpID.code();
28 }

◆ getRosID()

uint32_t LVL1BS::L1CaloSrcIdMap::getRosID ( uint32_t  rob_id) const

Make a ROS Source ID from a ROB source ID.

Definition at line 39 of file L1CaloSrcIdMap.cxx.

40 {
41  eformat::helper::SourceIdentifier id(rob_id);
42  eformat::helper::SourceIdentifier id2(id.subdetector_id(), 0);
43  return id2.code();
44 }

◆ maxSlinks()

int LVL1BS::L1CaloSrcIdMap::maxSlinks ( ) const

Return the maximum possible number of slinks.

Definition at line 82 of file L1CaloSrcIdMap.cxx.

83 {
84  return 4;
85 }

◆ minorVersion()

uint16_t LVL1BS::L1CaloSrcIdMap::minorVersion ( ) const
inline

Return ROD header minor version to use when writing BS.

Definition at line 61 of file L1CaloSrcIdMap.h.

61 {return 0x1004;} // Or may go up to 0x2000, CHECK

◆ minorVersionPreLS1()

uint16_t LVL1BS::L1CaloSrcIdMap::minorVersionPreLS1 ( ) const
inline

Return last ROD header minor version for pre-LS1 data.

Definition at line 64 of file L1CaloSrcIdMap.h.

64 {return 0x1003;}

◆ slink()

int LVL1BS::L1CaloSrcIdMap::slink ( uint32_t  code) const

Return slink from unpacked moduleID.

Definition at line 73 of file L1CaloSrcIdMap.cxx.

74 {
75  eformat::helper::SourceIdentifier id(code);
76  return (id.module_id() >> 4) & 0x3;
77 }

◆ subDet()

eformat::SubDetector LVL1BS::L1CaloSrcIdMap::subDet ( uint32_t  code) const

Return sub-detector for given ID.

Definition at line 89 of file L1CaloSrcIdMap.cxx.

89  {
90  eformat::helper::SourceIdentifier id(code);
91  return id.subdetector_id();
92 }

◆ useSWROD()

static void LVL1BS::L1CaloSrcIdMap::useSWROD ( bool  in)
inlinestatic

Flag to decide if SWROD readout should be used instead of legacy.

Definition at line 30 of file L1CaloSrcIdMap.h.

30 { s_useSWROD = in; }

Member Data Documentation

◆ ATLAS_THREAD_SAFE

std::atomic<bool> s_useSWROD LVL1BS::L1CaloSrcIdMap::ATLAS_THREAD_SAFE
staticprivate

Definition at line 67 of file L1CaloSrcIdMap.h.


The documentation for this class was generated from the following files:
LVL1BS::L1CaloSrcIdMap::slink
int slink(uint32_t code) const
Return slink from unpacked moduleID.
Definition: L1CaloSrcIdMap.cxx:73
histSizes.code
code
Definition: histSizes.py:129
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
id2
HWIdentifier id2
Definition: LArRodBlockPhysicsV0.cxx:562
LVL1BS::L1CaloSrcIdMap::crate
int crate(uint32_t code) const
Return crate from unpacked moduleID.
Definition: L1CaloSrcIdMap.cxx:57
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:239
LVL1BS::L1CaloSrcIdMap::daqOrRoi
int daqOrRoi(uint32_t code) const
Return daqOrRoi from unpacked moduleID.
Definition: L1CaloSrcIdMap.cxx:65