CMS 3D CMS Logo

GEMRawToDigi.cc
Go to the documentation of this file.
1 
6 using namespace gem;
7 
8 std::unique_ptr<AMC13Event> GEMRawToDigi::convertWordToAMC13Event(const uint64_t* word) {
9  vfatError_ = false;
10  amcError_ = false;
11 
12  auto amc13Event = std::make_unique<AMC13Event>();
13 
14  amc13Event->setCDFHeader(*word);
15  amc13Event->setAMC13Header(*(++word));
16 
17  // Readout out AMC headers
18  for (uint8_t i = 0; i < amc13Event->nAMC(); ++i)
19  amc13Event->addAMCheader(*(++word));
20 
21  // Readout out AMC payloads
22  for (uint8_t i = 0; i < amc13Event->nAMC(); ++i) {
23  auto amcData = AMCdata();
24  amcData.setAMCheader1(*(++word));
25  amcData.setAMCheader2(*(++word));
26  amcData.setGEMeventHeader(*(++word));
27 
28  // Fill GEB
29  for (uint8_t j = 0; j < amcData.davCnt(); ++j) {
30  auto gebData = GEBdata();
31  gebData.setChamberHeader(*(++word));
32 
33  // Fill vfat
34  for (uint16_t k = 0; k < gebData.vfatWordCnt() / 3; k++) {
35  auto vfatData = VFATdata();
36  vfatData.read_fw(*(++word));
37  vfatData.read_sw(*(++word));
38  vfatData.read_tw(*(++word));
39  gebData.addVFAT(vfatData);
40 
41  } // end of vfat loop
42 
43  gebData.setChamberTrailer(*(++word));
44  if (gebData.vfatWordCnt() != gebData.vfatWordCntT()) {
45  vfatError_ = true;
46  }
47  amcData.addGEB(gebData);
48 
49  } // end of geb loop
50 
51  amcData.setGEMeventTrailer(*(++word));
52  amcData.setAMCTrailer(*(++word));
53  if (amc13Event->getAMCsize(i) != amcData.dataLength()) {
54  amcError_ = true;
55  }
56  amc13Event->addAMCpayload(amcData);
57 
58  } // end of amc loop
59 
60  amc13Event->setAMC13Trailer(*(++word));
61  amc13Event->setCDFTrailer(*(++word));
62 
63  return amc13Event;
64 }
mps_fire.i
i
Definition: mps_fire.py:428
MessageLogger.h
gem::GEBdata
Definition: GEBdata.h:45
GEMRawToDigi::convertWordToAMC13Event
std::unique_ptr< gem::AMC13Event > convertWordToAMC13Event(const uint64_t *word)
Definition: GEMRawToDigi.cc:8
word
uint64_t word
Definition: CTPPSTotemDataFormatter.cc:29
dqmdumpme.k
k
Definition: dqmdumpme.py:60
gem::AMCdata
Definition: AMCdata.h:66
GEMRawToDigi.h
gem::VFATdata
Definition: VFATdata.h:48
gem
Definition: AMC13Event.h:6
cond::uint64_t
unsigned long long uint64_t
Definition: Time.h:13
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66