CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes | Friends
CSCDCCHeader Class Reference

#include <CSCDCCHeader.h>

Public Member Functions

bool check () const
 
 CSCDCCHeader (int bx, int l1a, int sourceId, int version=0)
 
 CSCDCCHeader ()
 
 CSCDCCHeader (const CSCDCCStatusDigi &digi)
 
unsigned short * data ()
 
int getCDFBunchCounter () const
 
int getCDFEventNumber () const
 
int getCDFEventType () const
 
int getCDFFOV () const
 
int getCDFSourceId () const
 
void setDAV (int dduSlot)
 
void setFromBuffer (uint16_t const *buf)
 

Static Public Member Functions

static unsigned sizeInWords ()
 

Private Attributes

unsigned long long word [2]
 

Friends

class CSCDDUEventData
 

Detailed Description

Definition at line 13 of file CSCDCCHeader.h.

Constructor & Destructor Documentation

◆ CSCDCCHeader() [1/3]

CSCDCCHeader::CSCDCCHeader ( int  bx,
int  l1a,
int  sourceId,
int  version = 0 
)

=VB= Should pass true as last parameter for FEDHeader::set() method to construct correct data

Definition at line 7 of file CSCDCCHeader.cc.

References nano_mu_digi_cff::bx, data(), L1DTConfigBti_cff::LL, FEDHeader::set(), objects.autophobj::sourceId, and relval_steps::version.

7  {
8  word[0] = 0x5100000000000008LL;
9  word[1] = 0xD900000000000000LL;
11  FEDHeader::set(reinterpret_cast<unsigned char *>(data()), 1, l1a, bx, sourceId, version, true);
12 }
uint64_t word
static void set(unsigned char *header, uint8_t triggerType, uint32_t lvl1ID, uint16_t bxID, uint16_t sourceID, uint8_t version=0, bool moreHeaders=false)
Set all fields in the header.
Definition: FEDHeader.cc:25
unsigned short * data()
Definition: CSCDCCHeader.h:28

◆ CSCDCCHeader() [2/3]

CSCDCCHeader::CSCDCCHeader ( )

Definition at line 14 of file CSCDCCHeader.cc.

References L1DTConfigBti_cff::LL.

14  {
15  word[0] = 0x5100000000000008LL;
16  word[1] = 0xD900000000000000LL;
17 }
uint64_t word

◆ CSCDCCHeader() [3/3]

CSCDCCHeader::CSCDCCHeader ( const CSCDCCStatusDigi digi)

Definition at line 19 of file CSCDCCHeader.cc.

References CSCDCCStatusDigi::header(), and sizeInWords().

19 { memcpy(this, digi.header(), sizeInWords() * 2); }
const uint16_t * header() const
data accessors
static unsigned sizeInWords()
Definition: CSCDCCHeader.h:29

Member Function Documentation

◆ check()

bool CSCDCCHeader::check ( ) const
inline

Definition at line 27 of file CSCDCCHeader.h.

Referenced by CSCDCCEventData::check(), and CSCChamberDataItr::CSCChamberDataItr().

27 { return true /*dcc_code1==0xD9 && dcc_code2==0x97*/; }

◆ data()

unsigned short* CSCDCCHeader::data ( )
inline

Definition at line 28 of file CSCDCCHeader.h.

References word.

Referenced by CSCDCCHeader(), and CSCDCCEventData::pack().

28 { return (short unsigned*)word; }
unsigned long long word[2]
Definition: CSCDCCHeader.h:35

◆ getCDFBunchCounter()

int CSCDCCHeader::getCDFBunchCounter ( ) const

Definition at line 23 of file CSCDCCHeader.cc.

23 { return ((word[0] >> 20) & 0xFFF); }
uint64_t word

◆ getCDFEventNumber()

int CSCDCCHeader::getCDFEventNumber ( ) const

Definition at line 21 of file CSCDCCHeader.cc.

21 { return ((word[0] >> 32) & 0x00FFFFFF); }
uint64_t word

◆ getCDFEventType()

int CSCDCCHeader::getCDFEventType ( ) const

Definition at line 26 of file CSCDCCHeader.cc.

26 { return ((word[0] >> 56) & 0xF); }
uint64_t word

◆ getCDFFOV()

int CSCDCCHeader::getCDFFOV ( ) const

Definition at line 25 of file CSCDCCHeader.cc.

25 { return ((word[0] >> 4) & 0xF); }
uint64_t word

◆ getCDFSourceId()

int CSCDCCHeader::getCDFSourceId ( ) const

Definition at line 24 of file CSCDCCHeader.cc.

24 { return ((word[0] >> 8) & 0xFFF); }
uint64_t word

◆ setDAV()

void CSCDCCHeader::setDAV ( int  dduSlot)

Definition at line 28 of file CSCDCCHeader.cc.

References cms::cuda::assert(), triggerObjects_cff::bit, and FCDTask_cfi::slot.

Referenced by CSCDCCEventData::addChamber().

28  {
29  /* Bits 7,6,5,4,2 to indicate available DDU.
30  For slink0, the DDU slots are 5, 12, 4, 13, 3 (same as Fifo_in_use[4:0]);
31  for slink1, the DDU slots are 9, 7, 10, 6, 11
32  */
33  assert(slot >= 3 && slot <= 13);
34  int bit[] = {0, 0, 0, 2, 5, 7, 4, 6, 0, 7, 5, 2, 6, 4};
35  word[0] |= 1 << bit[slot];
36 }
assert(be >=bs)
uint64_t word

◆ setFromBuffer()

void CSCDCCHeader::setFromBuffer ( uint16_t const *  buf)
inline

Definition at line 19 of file CSCDCCHeader.h.

References visDQMUpload::buf, and sizeInWords().

Referenced by CSCDCCEventData::unpack_data().

19 { memcpy(this, buf, sizeInWords() * 2); }
static unsigned sizeInWords()
Definition: CSCDCCHeader.h:29

◆ sizeInWords()

static unsigned CSCDCCHeader::sizeInWords ( )
inlinestatic

Definition at line 29 of file CSCDCCHeader.h.

Referenced by CSCDCCHeader(), CSCDCCEventData::pack(), setFromBuffer(), and CSCDCCEventData::unpack_data().

29 { return 8; }

Friends And Related Function Documentation

◆ CSCDDUEventData

friend class CSCDDUEventData
friend

Definition at line 32 of file CSCDCCHeader.h.

Member Data Documentation

◆ word

unsigned long long CSCDCCHeader::word[2]
private

Definition at line 35 of file CSCDCCHeader.h.

Referenced by data().