CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions
omtf::DtUnpacker Class Reference

#include <OmtfDtUnpacker.h>

Public Member Functions

void unpack (unsigned int fed, unsigned int amc, const DtDataWord64 &raw, std::vector< L1MuDTChambPhDigi > &phi_Container, std::vector< L1MuDTChambThDigi > &the_Container)
 

Detailed Description

Definition at line 14 of file OmtfDtUnpacker.h.

Member Function Documentation

void omtf::DtUnpacker::unpack ( unsigned int  fed,
unsigned int  amc,
const DtDataWord64 raw,
std::vector< L1MuDTChambPhDigi > &  phi_Container,
std::vector< L1MuDTChambThDigi > &  the_Container 
)

Definition at line 9 of file OmtfDtUnpacker.cc.

References omtf::DtDataWord64::bcnt_st(), makePileupJSON::bx, omtf::DtDataWord64::bxNum(), omtf::DtDataWord64::eta(), omtf::DtDataWord64::etaQuality(), omtf::DtDataWord64::fiber(), mps_fire::i, LogTrace, omtf::DtDataWord64::phi(), omtf::DtDataWord64::phiB(), omtf::DtDataWord64::quality(), omtf::DtDataWord64::sector(), omtf::DtDataWord64::station(), and relativeConstraints::station.

Referenced by omtf::OmtfUnpacker::produce().

13  {
14  LogTrace("") << "HERE OMTF->DT " << std::endl;
15  LogTrace("") << data << std::endl;
16  if (data.sector() == 0) {
17  LogTrace("") << "...data skipped, since from oberlaping chambers." << std::endl;
18  return; // skip signal from chamber fiber exchange
19  }
20  int bx = data.bxNum() - 3;
21  int whNum = (fed == 1380) ? -2 : 2;
22  int sector = (amc - 1) * 2 + data.sector();
23  if (sector == 12)
24  sector = 0;
25  int station = data.station() + 1;
26  LogTrace("") << "DT_AMC# " << amc << " RAW_SECTOR: " << data.sector() << " DT_SECTOR: " << sector << std::endl;
27  phi_Container.push_back(L1MuDTChambPhDigi(bx,
28  whNum,
29  sector,
30  station,
31  data.phi(),
32  data.phiB(),
33  data.quality(),
34  data.fiber(), // utag/Ts2Tag
35  data.bcnt_st())); //ucnt/BxCnt
36  int pos[7];
37  int posQual[7];
38  for (unsigned int i = 0; i < 7; i++) {
39  pos[i] = (data.eta() >> i & 1);
40  posQual[i] = (data.etaQuality() >> i & 1);
41  }
42  if (data.eta())
43  LogTrace("") << "HERE DATA DT ETA";
44  if (data.eta())
45  the_Container.push_back(L1MuDTChambThDigi(bx, whNum, sector, station, pos, posQual));
46  }
#define LogTrace(id)
double amc
Definition: hdecay.h:20
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79