CMS 3D CMS Logo

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

#include <CSCSPRecord.h>

Public Member Functions

unsigned int AFs (void) const throw ()
 
unsigned int BXs (void) const throw ()
 
bool check (void) const throw ()
 
 CSCSPRecord (void)
 
std::vector< CSCSP_MEblockLCT (unsigned int mpc, unsigned int link) const throw ()
 
std::vector< CSCSP_MEblockLCTs (void) const throw ()
 
std::vector< CSCSP_MEblockLCTs (unsigned int mpc) const throw ()
 
std::vector< CSCSP_MBblockmbStubs (void) const throw ()
 
unsigned int ptSpy (void) const throw ()
 
unsigned int ptSpyTrack (void) const throw ()
 
unsigned int SEs (void) const throw ()
 
unsigned int SMs (void) const throw ()
 
std::vector< CSCSP_SPblocktracks (void) const throw ()
 
bool unpack (const unsigned short *&buf, unsigned int nonmasked_data_blocks, bool empty_blocks_suppressed, unsigned int tbin) throw ()
 
unsigned int VPs (void) const throw ()
 

Private Attributes

unsigned af_barrel_1: 1
 
unsigned af_barrel_2: 1
 
unsigned af_bits: 15
 
unsigned bx_barrel_1: 1
 
unsigned bx_barrel_2: 1
 
unsigned bx_bits: 15
 
CSCSP_MBblock mb [2]
 
bool mbFilled [2]
 
CSCSP_MEblock me [5][3]
 
bool meFilled [5][3]
 
unsigned mode1: 4
 
unsigned mode2: 4
 
unsigned mode3: 4
 
unsigned pt_high: 8
 
unsigned pt_low: 8
 
unsigned pt_spy_point: 2
 
unsigned se_bits: 15
 
unsigned sm_bits: 15
 
CSCSP_SPblock sp [3]
 
unsigned spare_1: 1
 
unsigned spare_2: 1
 
unsigned spare_3: 1
 
unsigned spare_4: 1
 
unsigned spare_8: 1
 
unsigned spare_9: 1
 
bool spFilled [3]
 
unsigned time_bin: 3
 
unsigned vp_bits: 15
 
unsigned vq_a: 1
 
unsigned vq_b: 1
 
unsigned zero_1: 1
 
unsigned zero_2: 1
 
unsigned zero_3: 1
 
unsigned zero_4: 1
 
unsigned zero_5: 1
 
unsigned zero_6: 1
 
unsigned zero_7: 1
 
unsigned zero_8: 1
 

Friends

class CSCSPEvent
 
class CSCTFPacker
 

Detailed Description

Definition at line 9 of file CSCSPRecord.h.

Constructor & Destructor Documentation

◆ CSCSPRecord()

CSCSPRecord::CSCSPRecord ( void  )
inline

Definition at line 97 of file CSCSPRecord.h.

97 {}

Member Function Documentation

◆ AFs()

unsigned int CSCSPRecord::AFs ( void  ) const
throw (
)
inline

Definition at line 86 of file CSCSPRecord.h.

References af_barrel_1, af_barrel_2, and af_bits.

Referenced by CSCTFUnpacker::produce().

86 { return af_bits | (af_barrel_1 << 15) | (af_barrel_2 << 16); }
unsigned af_barrel_1
Definition: CSCSPRecord.h:41
unsigned af_bits
Definition: CSCSPRecord.h:31
unsigned af_barrel_2
Definition: CSCSPRecord.h:42

◆ BXs()

unsigned int CSCSPRecord::BXs ( void  ) const
throw (
)
inline

Definition at line 87 of file CSCSPRecord.h.

References bx_barrel_1, bx_barrel_2, and bx_bits.

Referenced by CSCTFUnpacker::produce().

87 { return bx_bits | (bx_barrel_1 << 15) | (bx_barrel_2 << 16); }
unsigned bx_bits
Definition: CSCSPRecord.h:34
unsigned bx_barrel_1
Definition: CSCSPRecord.h:54
unsigned bx_barrel_2
Definition: CSCSPRecord.h:55

◆ check()

bool CSCSPRecord::check ( void  ) const
throw (
)
inline

Definition at line 70 of file CSCSPRecord.h.

References spare_2, spare_3, spare_4, spare_8, spare_9, zero_1, zero_2, zero_3, zero_4, zero_5, zero_6, zero_7, and zero_8.

70  {
71  return zero_1 != 0 || zero_2 != 0 || zero_3 != 0 || zero_4 != 0 || zero_5 != 0 || zero_6 != 0 || zero_7 != 0 ||
72  zero_8 != 0 // || spare_1!=0
73  || spare_2 != 0 || spare_3 != 0 || spare_4 != 0 || spare_8 != 0 || spare_9 != 0;
74  }
unsigned zero_5
Definition: CSCSPRecord.h:32
unsigned zero_6
Definition: CSCSPRecord.h:35
unsigned zero_7
Definition: CSCSPRecord.h:44
unsigned spare_9
Definition: CSCSPRecord.h:56
unsigned zero_3
Definition: CSCSPRecord.h:25
unsigned spare_2
Definition: CSCSPRecord.h:39
unsigned zero_2
Definition: CSCSPRecord.h:22
unsigned zero_1
Definition: CSCSPRecord.h:14
unsigned spare_4
Definition: CSCSPRecord.h:43
unsigned spare_8
Definition: CSCSPRecord.h:53
unsigned zero_4
Definition: CSCSPRecord.h:29
unsigned spare_3
Definition: CSCSPRecord.h:40
unsigned zero_8
Definition: CSCSPRecord.h:57

◆ LCT()

std::vector< CSCSP_MEblock > CSCSPRecord::LCT ( unsigned int  mpc,
unsigned int  link 
) const
throw (
)

Definition at line 96 of file CSCSPRecord.cc.

References hlt_dqm_clientPB-live_cfg::me, and mps_fire::result.

Referenced by CSCTFUnpacker::produce().

96  {
97  std::vector<CSCSP_MEblock> result;
98  if (mpc < 5 && link < 3)
99  if (meFilled[mpc][link])
100  result.push_back(me[mpc][link]);
101  return result;
102 }
bool meFilled[5][3]
Definition: CSCSPRecord.h:64
CSCSP_MEblock me[5][3]
Definition: CSCSPRecord.h:60

◆ LCTs() [1/2]

std::vector< CSCSP_MEblock > CSCSPRecord::LCTs ( void  ) const
throw (
)

Definition at line 78 of file CSCSPRecord.cc.

References hlt_dqm_clientPB-live_cfg::me, and mps_fire::result.

78  {
79  std::vector<CSCSP_MEblock> result;
80  for (int mpc = 0; mpc < 5; mpc++)
81  for (int link = 0; link < 3; link++)
82  if (meFilled[mpc][link])
83  result.push_back(me[mpc][link]);
84  return result;
85 }
bool meFilled[5][3]
Definition: CSCSPRecord.h:64
CSCSP_MEblock me[5][3]
Definition: CSCSPRecord.h:60

◆ LCTs() [2/2]

std::vector< CSCSP_MEblock > CSCSPRecord::LCTs ( unsigned int  mpc) const
throw (
)

Definition at line 87 of file CSCSPRecord.cc.

References hlt_dqm_clientPB-live_cfg::me, and mps_fire::result.

87  {
88  std::vector<CSCSP_MEblock> result;
89  if (mpc < 5)
90  for (int link = 0; link < 3; link++)
91  if (meFilled[mpc][link])
92  result.push_back(me[mpc][link]);
93  return result;
94 }
bool meFilled[5][3]
Definition: CSCSPRecord.h:64
CSCSP_MEblock me[5][3]
Definition: CSCSPRecord.h:60

◆ mbStubs()

std::vector< CSCSP_MBblock > CSCSPRecord::mbStubs ( void  ) const
throw (
)

Definition at line 115 of file CSCSPRecord.cc.

References mps_fire::result.

Referenced by CSCTFUnpacker::produce().

115  {
116  std::vector<CSCSP_MBblock> result;
117  if (mbFilled[0])
118  result.push_back(mb[0]);
119  if (mbFilled[1])
120  result.push_back(mb[1]);
121  return result;
122 }
bool mbFilled[2]
Definition: CSCSPRecord.h:64
CSCSP_MBblock mb[2]
Definition: CSCSPRecord.h:61

◆ ptSpy()

unsigned int CSCSPRecord::ptSpy ( void  ) const
throw (
)
inline

Definition at line 89 of file CSCSPRecord.h.

References pt_high, and pt_low.

Referenced by CSCTFUnpacker::produce().

89 { return (pt_high << 8) | pt_low; }
unsigned pt_low
Definition: CSCSPRecord.h:37
unsigned pt_high
Definition: CSCSPRecord.h:46

◆ ptSpyTrack()

unsigned int CSCSPRecord::ptSpyTrack ( void  ) const
throw (
)
inline

Definition at line 90 of file CSCSPRecord.h.

References pt_spy_point.

90 { return pt_spy_point; }
unsigned pt_spy_point
Definition: CSCSPRecord.h:38

◆ SEs()

unsigned int CSCSPRecord::SEs ( void  ) const
throw (
)
inline

Definition at line 84 of file CSCSPRecord.h.

References se_bits.

Referenced by CSCTFUnpacker::produce().

84 { return se_bits; }
unsigned se_bits
Definition: CSCSPRecord.h:24

◆ SMs()

unsigned int CSCSPRecord::SMs ( void  ) const
throw (
)
inline

Definition at line 85 of file CSCSPRecord.h.

References sm_bits.

Referenced by CSCTFUnpacker::produce().

85 { return sm_bits; }
unsigned sm_bits
Definition: CSCSPRecord.h:28

◆ tracks()

std::vector< CSCSP_SPblock > CSCSPRecord::tracks ( void  ) const
throw (
)

Definition at line 104 of file CSCSPRecord.cc.

References mps_fire::result.

Referenced by CSCTFUnpacker::produce().

104  {
105  std::vector<CSCSP_SPblock> result;
106  if (spFilled[0])
107  result.push_back(sp[0]);
108  if (spFilled[1])
109  result.push_back(sp[1]);
110  if (spFilled[2])
111  result.push_back(sp[2]);
112  return result;
113 }
CSCSP_SPblock sp[3]
Definition: CSCSPRecord.h:62
bool spFilled[3]
Definition: CSCSPRecord.h:64

◆ unpack()

bool CSCSPRecord::unpack ( const unsigned short *&  buf,
unsigned int  nonmasked_data_blocks,
bool  empty_blocks_suppressed,
unsigned int  tbin 
)
throw (
)

Definition at line 5 of file CSCSPRecord.cc.

References groupFilesInBlocks::block, visDQMUpload::buf, RPCNoise_example::check, CSCSPHeader::DT, CSCSPHeader::F1, CSCSPHeader::F2, CSCSPHeader::F3, CSCSPHeader::F4, CSCSPHeader::F5, hlt_dqm_clientPB-live_cfg::me, and CSCSPHeader::SP.

8  {
9  memcpy((void*)this, buf, 8 * sizeof(short));
10  buf += 8;
11 
12  bool unpackError = check();
13 
14  bzero(me, 15 * sizeof(CSCSP_MEblock));
15  bzero(mb, 2 * sizeof(CSCSP_MBblock));
16  bzero(me, 3 * sizeof(CSCSP_SPblock));
17 
18  bzero(meFilled, sizeof(meFilled));
19  bzero(mbFilled, sizeof(mbFilled));
20  bzero(spFilled, sizeof(spFilled));
21 
37 
38  // 15 ME data blocks
39  for (unsigned int block = 0; block < 15; block++)
40  if (nonmasked_data_blocks & id[block] && (!empty_blocks_suppressed || vp_bits & (1 << block))) {
41  unsigned int mpc = block / 3, link = block % 3;
42  unpackError |= me[mpc][link].unpack(buf);
43  me[mpc][link].tbin_ = tbin;
44  me[mpc][link].valid_pattern = vp_bits & (1 << block);
45  me[mpc][link].sync_error = se_bits & (1 << block);
46  me[mpc][link].sync_modified = sm_bits & (1 << block);
47  me[mpc][link].alignment_fifo = af_bits & (1 << block);
48  me[mpc][link].bxBit = bx_bits & (1 << block);
49  me[mpc][link].spInput_ = block + 1;
50  meFilled[mpc][link] = true;
51  }
52  // 2 MB data blocks
53  for (unsigned int block = 0; block < 2; block++)
54  if (nonmasked_data_blocks & CSCSPHeader::DT && (!empty_blocks_suppressed || (block ? vq_b : vq_a))) {
55  unpackError |= mb[block].unpack(buf);
56  mb[block].tbin_ = tbin;
60  mb[block].id_ = block + 1;
61  mbFilled[block] = true;
62  }
63 
64  // 3 SP data blocks
65  for (unsigned int block = 0; block < 3; block++)
66  if (nonmasked_data_blocks & CSCSPHeader::SP &&
67  (!empty_blocks_suppressed || (block == 0 ? mode1 : (block == 1 ? mode2 : mode3)))) {
68  unpackError |= sp[block].unpack(buf);
69  sp[block].tbin_ = tbin;
70  sp[block].mode_ = (block == 0 ? mode1 : (block == 1 ? mode2 : mode3));
71  sp[block].id_ = block + 1;
72  spFilled[block] = true;
73  }
74 
75  return unpackError;
76 }
unsigned bx_bits
Definition: CSCSPRecord.h:34
unsigned int bxBit
Definition: CSCSP_MBblock.h:38
unsigned int bxBit
Definition: CSCSP_MEblock.h:56
bool meFilled[5][3]
Definition: CSCSPRecord.h:64
unsigned af_barrel_1
Definition: CSCSPRecord.h:41
unsigned int sync_modified
Definition: CSCSP_MEblock.h:54
unsigned int alignment_fifo
Definition: CSCSP_MBblock.h:37
unsigned bx_barrel_1
Definition: CSCSPRecord.h:54
CSCSP_SPblock sp[3]
Definition: CSCSPRecord.h:62
unsigned int tbin_
Definition: CSCSP_SPblock.h:55
unsigned af_bits
Definition: CSCSPRecord.h:31
unsigned mode2
Definition: CSCSPRecord.h:17
unsigned int spInput_
Definition: CSCSP_MEblock.h:57
bool spFilled[3]
Definition: CSCSPRecord.h:64
CSCSP_MEblock me[5][3]
Definition: CSCSPRecord.h:60
unsigned int sync_error
Definition: CSCSP_MEblock.h:53
unsigned int id_
Definition: CSCSP_MBblock.h:39
unsigned int tbin_
Definition: CSCSP_MBblock.h:35
unsigned int id_
Definition: CSCSP_SPblock.h:57
unsigned int alignment_fifo
Definition: CSCSP_MEblock.h:55
bool unpack(const unsigned short *&buf)
Definition: CSCSP_MBblock.h:63
bool mbFilled[2]
Definition: CSCSPRecord.h:64
unsigned mode3
Definition: CSCSPRecord.h:18
unsigned int tbin_
Definition: CSCSP_MEblock.h:51
unsigned int valid_quality
Definition: CSCSP_MBblock.h:36
bool unpack(const unsigned short *&buf)
unsigned mode1
Definition: CSCSPRecord.h:16
bool unpack(const unsigned short *&buf)
Definition: CSCSP_MEblock.h:93
unsigned vq_a
Definition: CSCSPRecord.h:19
bool check(void) const
Definition: CSCSPRecord.h:70
unsigned int mode_
Definition: CSCSP_SPblock.h:56
unsigned se_bits
Definition: CSCSPRecord.h:24
unsigned vq_b
Definition: CSCSPRecord.h:20
unsigned af_barrel_2
Definition: CSCSPRecord.h:42
unsigned int valid_pattern
Definition: CSCSP_MEblock.h:52
unsigned bx_barrel_2
Definition: CSCSPRecord.h:55
unsigned sm_bits
Definition: CSCSPRecord.h:28
CSCSP_MBblock mb[2]
Definition: CSCSPRecord.h:61
unsigned vp_bits
Definition: CSCSPRecord.h:13

◆ VPs()

unsigned int CSCSPRecord::VPs ( void  ) const
throw (
)
inline

Definition at line 83 of file CSCSPRecord.h.

References vp_bits, vq_a, and vq_b.

Referenced by CSCTFUnpacker::produce().

83 { return vp_bits | (vq_a << 15) | (vq_b << 16); }
unsigned vq_a
Definition: CSCSPRecord.h:19
unsigned vq_b
Definition: CSCSPRecord.h:20
unsigned vp_bits
Definition: CSCSPRecord.h:13

Friends And Related Function Documentation

◆ CSCSPEvent

friend class CSCSPEvent
friend

Definition at line 66 of file CSCSPRecord.h.

◆ CSCTFPacker

friend class CSCTFPacker
friend

Definition at line 67 of file CSCSPRecord.h.

Member Data Documentation

◆ af_barrel_1

unsigned CSCSPRecord::af_barrel_1
private

Definition at line 41 of file CSCSPRecord.h.

Referenced by AFs().

◆ af_barrel_2

unsigned CSCSPRecord::af_barrel_2
private

Definition at line 42 of file CSCSPRecord.h.

Referenced by AFs().

◆ af_bits

unsigned CSCSPRecord::af_bits
private

Definition at line 31 of file CSCSPRecord.h.

Referenced by AFs(), and CSCTFPacker::produce().

◆ bx_barrel_1

unsigned CSCSPRecord::bx_barrel_1
private

Definition at line 54 of file CSCSPRecord.h.

Referenced by BXs().

◆ bx_barrel_2

unsigned CSCSPRecord::bx_barrel_2
private

Definition at line 55 of file CSCSPRecord.h.

Referenced by BXs().

◆ bx_bits

unsigned CSCSPRecord::bx_bits
private

Definition at line 34 of file CSCSPRecord.h.

Referenced by BXs(), and CSCTFPacker::produce().

◆ mb

CSCSP_MBblock CSCSPRecord::mb[2]
private

Definition at line 61 of file CSCSPRecord.h.

◆ mbFilled

bool CSCSPRecord::mbFilled[2]
private

Definition at line 64 of file CSCSPRecord.h.

◆ me

CSCSP_MEblock CSCSPRecord::me[5][3]
private

Definition at line 60 of file CSCSPRecord.h.

◆ meFilled

bool CSCSPRecord::meFilled[5][3]
private

Definition at line 64 of file CSCSPRecord.h.

◆ mode1

unsigned CSCSPRecord::mode1
private

Definition at line 16 of file CSCSPRecord.h.

Referenced by CSCTFPacker::produce().

◆ mode2

unsigned CSCSPRecord::mode2
private

Definition at line 17 of file CSCSPRecord.h.

Referenced by CSCTFPacker::produce().

◆ mode3

unsigned CSCSPRecord::mode3
private

Definition at line 18 of file CSCSPRecord.h.

Referenced by CSCTFPacker::produce().

◆ pt_high

unsigned CSCSPRecord::pt_high
private

Definition at line 46 of file CSCSPRecord.h.

Referenced by ptSpy().

◆ pt_low

unsigned CSCSPRecord::pt_low
private

Definition at line 37 of file CSCSPRecord.h.

Referenced by ptSpy().

◆ pt_spy_point

unsigned CSCSPRecord::pt_spy_point
private

Definition at line 38 of file CSCSPRecord.h.

Referenced by ptSpyTrack().

◆ se_bits

unsigned CSCSPRecord::se_bits
private

Definition at line 24 of file CSCSPRecord.h.

Referenced by CSCTFPacker::produce(), and SEs().

◆ sm_bits

unsigned CSCSPRecord::sm_bits
private

Definition at line 28 of file CSCSPRecord.h.

Referenced by CSCTFPacker::produce(), and SMs().

◆ sp

CSCSP_SPblock CSCSPRecord::sp[3]
private

Definition at line 62 of file CSCSPRecord.h.

◆ spare_1

unsigned CSCSPRecord::spare_1
private

Definition at line 21 of file CSCSPRecord.h.

Referenced by CSCTFPacker::produce().

◆ spare_2

unsigned CSCSPRecord::spare_2
private

Definition at line 39 of file CSCSPRecord.h.

Referenced by check().

◆ spare_3

unsigned CSCSPRecord::spare_3
private

Definition at line 40 of file CSCSPRecord.h.

Referenced by check().

◆ spare_4

unsigned CSCSPRecord::spare_4
private

Definition at line 43 of file CSCSPRecord.h.

Referenced by check().

◆ spare_8

unsigned CSCSPRecord::spare_8
private

Definition at line 53 of file CSCSPRecord.h.

Referenced by check().

◆ spare_9

unsigned CSCSPRecord::spare_9
private

Definition at line 56 of file CSCSPRecord.h.

Referenced by check().

◆ spFilled

bool CSCSPRecord::spFilled[3]
private

Definition at line 64 of file CSCSPRecord.h.

◆ time_bin

unsigned CSCSPRecord::time_bin
private

Definition at line 47 of file CSCSPRecord.h.

◆ vp_bits

unsigned CSCSPRecord::vp_bits
private

Definition at line 13 of file CSCSPRecord.h.

Referenced by CSCTFPacker::produce(), and VPs().

◆ vq_a

unsigned CSCSPRecord::vq_a
private

Definition at line 19 of file CSCSPRecord.h.

Referenced by CSCTFPacker::produce(), and VPs().

◆ vq_b

unsigned CSCSPRecord::vq_b
private

Definition at line 20 of file CSCSPRecord.h.

Referenced by CSCTFPacker::produce(), and VPs().

◆ zero_1

unsigned CSCSPRecord::zero_1
private

Definition at line 14 of file CSCSPRecord.h.

Referenced by check().

◆ zero_2

unsigned CSCSPRecord::zero_2
private

Definition at line 22 of file CSCSPRecord.h.

Referenced by check().

◆ zero_3

unsigned CSCSPRecord::zero_3
private

Definition at line 25 of file CSCSPRecord.h.

Referenced by check().

◆ zero_4

unsigned CSCSPRecord::zero_4
private

Definition at line 29 of file CSCSPRecord.h.

Referenced by check().

◆ zero_5

unsigned CSCSPRecord::zero_5
private

Definition at line 32 of file CSCSPRecord.h.

Referenced by check().

◆ zero_6

unsigned CSCSPRecord::zero_6
private

Definition at line 35 of file CSCSPRecord.h.

Referenced by check().

◆ zero_7

unsigned CSCSPRecord::zero_7
private

Definition at line 44 of file CSCSPRecord.h.

Referenced by check().

◆ zero_8

unsigned CSCSPRecord::zero_8
private

Definition at line 57 of file CSCSPRecord.h.

Referenced by check().