CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CSCALCTHeader2006.cc
Go to the documentation of this file.
3 
4 #ifdef LOCAL_UNPACK
5 static int activeFEBsForChamberType[11] = {0,7,7,0xf,7,0x7f, 0xf,0x3f,0xf,0x3f,0xf};
6 static int nTBinsForChamberType[11] = {7,7,7,7,7,7,7,7,7,7,7};
7 #else
8 constexpr int activeFEBsForChamberType[11] = {0,7,7,0xf,7,0x7f, 0xf,0x3f,0xf,0x3f,0xf};
9 constexpr int nTBinsForChamberType[11] = {7,7,7,7,7,7,7,7,7,7,7};
10 #endif
11 
12 
13 
14 CSCALCTHeader2006::CSCALCTHeader2006(int chamberType) { //constructor for digi->raw packing based on header2006
15  // we count from 1 to 10, ME11, ME12, ME13, ME1A, ME21, ME22, ....
16  init();
17  flag_0 = 0xC;
18  flag_1 = 0;
19  reserved_1 = 0;
20  fifoMode = 1;
21  // examiner demands this
22  l1aMatch = 1;
25  nTBins = nTBinsForChamberType[chamberType];
27  //memcpy(theOriginalBuffer, &header2006, header2006.sizeForPacking());
28 
29 }
30 
31 
33 {
34  l1Acc = dmb.l1a();
35  cscID = dmb.dmbID();
36  nTBins = 16;
37  bxnCount = dmb.bxn();
38 }
39 
40 
41 unsigned short CSCALCTHeader2006::nLCTChipRead() const {
42  int count = 0;
43  for(int i=0; i<7; ++i) {
44  if( (lctChipRead>>i) & 1) ++count;
45  }
46  return count;
47 }
48 
49 
50 
51 std::vector<CSCALCTDigi> CSCALCTs2006::ALCTDigis() const
52 {
53  std::vector<CSCALCTDigi> result;
54  result.reserve(2);
55 
62  result.push_back(digi0); result.push_back(digi1);
63  return result;
64 }
65 
66 
67 void CSCALCTs2006::add(const std::vector<CSCALCTDigi> & digis)
68 {
69  //FIXME doesn't do any sorting
70  if(digis.size() > 0) addALCT0(digis[0]);
71  if(digis.size() > 1) addALCT1(digis[1]);
72 }
73 
75 {
76  alct0_valid = digi.isValid();
77  alct0_quality = digi.getQuality();
78  alct0_accel = digi.getAccelerator();
80  alct0_key_wire = digi.getKeyWG();
81  // probably not right
82  alct0_bxn_low = digi.getBX();
83 }
84 
85 
87 {
88  alct1_valid = digi.isValid();
89  alct1_quality = digi.getQuality();
90  alct1_accel = digi.getAccelerator();
92  alct1_key_wire = digi.getKeyWG();
93  // probably not right
94  alct1_bxn_low = digi.getBX();
95 }
96 
unsigned alct0_pattern
int i
Definition: DBlmapReader.cc:9
unsigned bxnCount
full bunch crossing number
unsigned fifoMode
see the FIFO_MODE enum
unsigned l1a() const
Definition: CSCDMBHeader.h:50
unsigned alct0_valid
int activeFEBsForChamberType[11]
unsigned alct1_pattern
bool isValid() const
check ALCT validity (1 - valid ALCT)
Definition: CSCALCTDigi.h:30
unsigned alct1_key_wire
void addALCT0(const CSCALCTDigi &digi)
#define constexpr
void setEventInformation(const CSCDMBHeader &)
unsigned alct1_bxn_high
tuple result
Definition: mps_fire.py:95
unsigned alct1_accel
unsigned alct1_valid
2nd LCT lower 15 bits
unsigned flag_1
DDU+LCT special word flags.
void addALCT1(const CSCALCTDigi &digi)
unsigned nTBins
of 25 ns time bins in the raw dump
int getBX() const
return BX - five low bits of BXN counter tagged by the ALCT
Definition: CSCALCTDigi.h:48
unsigned alct0_key_wire
unsigned bxn() const
Definition: CSCDMBHeader.h:48
unsigned reserved_1
reserved, set to 0
unsigned alct0_bxn_high
int getQuality() const
return quality of a pattern
Definition: CSCALCTDigi.h:33
int getAccelerator() const
Definition: CSCALCTDigi.h:37
std::vector< CSCALCTDigi > ALCTDigis() const
unsigned alct0_quality
void add(const std::vector< CSCALCTDigi > &digis)
should try to sort, but doesn&#39;t for now
unsigned l1Acc
l1 accept counter
int nTBinsForChamberType[11]
unsigned dmbID() const
Definition: CSCDMBHeader.h:47
unsigned alct1_quality
unsigned lctChipRead
LCT chips read out in raw hit dump.
unsigned activeFEBs
LCT chips with ADB hits.
unsigned alct0_accel
unsigned cscID
chamber ID number
unsigned alct1_bxn_low
unsigned l1aMatch
exteran L1A arrived in L1A window
unsigned alct0_bxn_low
int getKeyWG() const
return key wire group
Definition: CSCALCTDigi.h:45
int getCollisionB() const
Definition: CSCALCTDigi.h:42
unsigned flag_0
should be &#39;01100&#39;, so it&#39;ll be a 6xxx in the ASCII dump
unsigned short nLCTChipRead() const
CSCALCTHeader2006()
this struct contains all 2006 ALCT Header words except ALCTs