CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
omtf::CscPacker Class Reference

#include <OmtfCscPacker.h>

Public Member Functions

void init ()
 
void pack (const CSCCorrelatedLCTDigiCollection *prod, FedAmcRawsMap &raws)
 

Private Attributes

MapCscDet2EleIndex theCsc2Omtf
 

Detailed Description

Definition at line 16 of file OmtfCscPacker.h.

Member Function Documentation

◆ init()

void omtf::CscPacker::init ( void  )

Definition at line 9 of file OmtfCscPacker.cc.

References omtf::mapCscDet2EleIndex(), and theCsc2Omtf.

Referenced by omtf::OmtfPacker::beginRun().

MapCscDet2EleIndex mapCscDet2EleIndex()
MapCscDet2EleIndex theCsc2Omtf
Definition: OmtfCscPacker.h:22

◆ pack()

void omtf::CscPacker::pack ( const CSCCorrelatedLCTDigiCollection prod,
FedAmcRawsMap raws 
)

Definition at line 11 of file OmtfCscPacker.cc.

References CSCDetId::chamber(), CSCDetId::chamberId(), data, CSCConstants::LCT_CENTRAL_BX, electronStore::links, LogTrace, dumpMFGeometry_cfg::prod, CSCDetId::station(), and theCsc2Omtf.

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

11  {
12  const CSCCorrelatedLCTDigiCollection& cscDigis = *prod;
13  for (const auto& chDigis : cscDigis) {
14  CSCDetId chamberId = CSCDetId(chDigis.first).chamberId();
15  for (auto digi = chDigis.second.first; digi != chDigis.second.second; digi++) {
16  CscDataWord64 data;
17  data.hitNum_ = digi->getTrknmb();
18  data.vp_ = digi->isValid();
19  data.bxNum_ = digi->getBX() - (CSCConstants::LCT_CENTRAL_BX - 3);
20  data.halfStrip_ = digi->getStrip();
21  data.clctPattern_ = digi->getPattern();
22  data.keyWG_ = digi->getKeyWG();
23  data.lr_ = digi->getBend();
24  data.quality_ = digi->getQuality();
25  auto im = theCsc2Omtf.find(chamberId);
26  if (im != theCsc2Omtf.end()) {
27  std::vector<EleIndex> links = {im->second.first, im->second.second};
28  for (const auto& link : links) {
29  unsigned int fed = link.fed();
30  if (fed == 0)
31  continue;
32  data.station_ = chamberId.station() - 1;
33  data.linkNum_ = link.link();
34  data.cscID_ = chamberId.chamber() - (link.amc() - 1) * 6;
35  unsigned int amc = link.amc() * 2 - 1;
36  raws[std::make_pair(fed, amc)].push_back(data.rawData);
37  LogTrace("") << "ADDED RAW: fed: " << fed << " amc: " << amc << " CSC DATA: " << data << std::endl;
38  }
39  }
40  }
41  }
42  }
#define LogTrace(id)
MapCscDet2EleIndex theCsc2Omtf
Definition: OmtfCscPacker.h:22
int chamber() const
Definition: CSCDetId.h:62
int station() const
Definition: CSCDetId.h:79
CSCDetId chamberId() const
Definition: CSCDetId.h:47
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
Definition: AMCSpec.h:8

Member Data Documentation

◆ theCsc2Omtf

MapCscDet2EleIndex omtf::CscPacker::theCsc2Omtf
private

Definition at line 22 of file OmtfCscPacker.h.

Referenced by init(), and pack().