File indexing completed on 2024-04-06 12:10:54
0001 #include "EventFilter/L1TRawToDigi/interface/OmtfDtUnpacker.h"
0002
0003 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0004
0005 #include "EventFilter/L1TRawToDigi/interface/OmtfDtDataWord64.h"
0006
0007 namespace omtf {
0008
0009 void DtUnpacker::unpack(unsigned int fed,
0010 unsigned int amc,
0011 const DtDataWord64 &data,
0012 std::vector<L1MuDTChambPhDigi> &phi_Container,
0013 std::vector<L1MuDTChambThDigi> &the_Container) {
0014 LogTrace("") << "HERE OMTF->DT " << std::endl;
0015 LogTrace("") << data << std::endl;
0016 if (data.sector() == 0) {
0017 LogTrace("") << "...data skipped, since from oberlaping chambers." << std::endl;
0018 return;
0019 }
0020 int bx = data.bxNum() - 3;
0021 int whNum = (fed == 1380) ? -2 : 2;
0022 int sector = (amc - 1) * 2 + data.sector();
0023 if (sector == 12)
0024 sector = 0;
0025 int station = data.station() + 1;
0026 LogTrace("") << "DT_AMC# " << amc << " RAW_SECTOR: " << data.sector() << " DT_SECTOR: " << sector << std::endl;
0027 phi_Container.push_back(L1MuDTChambPhDigi(bx,
0028 whNum,
0029 sector,
0030 station,
0031 data.phi(),
0032 data.phiB(),
0033 data.quality(),
0034 data.fiber(),
0035 data.bcnt_st()));
0036 int pos[7];
0037 int posQual[7];
0038 for (unsigned int i = 0; i < 7; i++) {
0039 pos[i] = (data.eta() >> i & 1);
0040 posQual[i] = (data.etaQuality() >> i & 1);
0041 }
0042 if (data.eta())
0043 LogTrace("") << "HERE DATA DT ETA";
0044 if (data.eta())
0045 the_Container.push_back(L1MuDTChambThDigi(bx, whNum, sector, station, pos, posQual));
0046 }
0047
0048 }