CMS 3D CMS Logo

OmtfCscPacker.cc
Go to the documentation of this file.
2 
5 
6 namespace omtf {
7 
9 {
11 }
12 
14 {
15  const CSCCorrelatedLCTDigiCollection & cscDigis = *prod;
16  for (const auto & chDigis : cscDigis) {
17  CSCDetId chamberId = CSCDetId(chDigis.first).chamberId();
18  for (auto digi = chDigis.second.first; digi != chDigis.second.second; digi++) {
20  data.hitNum_ = digi->getTrknmb();
21  data.vp_ = digi->isValid();
22  data.bxNum_ = digi->getBX()-3;
23  data.halfStrip_ = digi->getStrip();
24  data.clctPattern_ = digi->getPattern();
25  data.keyWG_ = digi->getKeyWG();
26  data.lr_ = digi->getBend();
27  data.quality_ = digi->getQuality();
28  auto im = theCsc2Omtf.find(chamberId);
29  if (im != theCsc2Omtf.end()) {
30  std::vector<EleIndex> links = {im->second.first, im->second.second};
31  for (const auto & link : links) {
32  unsigned int fed = link.fed();
33  if (fed == 0) continue;
34  data.station_ = chamberId.station()-1;
35  data.linkNum_ = link.link();
36  data.cscID_ = chamberId.chamber()-(link.amc()-1)*6;
37  unsigned int amc = link.amc()*2-1;
38  raws[std::make_pair(fed,amc)].push_back(data.rawData);
39  LogTrace("") <<"ADDED RAW: fed: "<< fed <<" amc: "<<amc <<" CSC DATA: " << data<< std::endl;
40  }
41  }
42  }
43  }
44 
45 }
46 
47 }
int chamber() const
Definition: CSCDetId.h:68
std::map< std::pair< unsigned int, unsigned int >, std::vector< Word64 > > FedAmcRawsMap
MapCscDet2EleIndex mapCscDet2EleIndex()
MapCscDet2EleIndex theCsc2Omtf
Definition: OmtfCscPacker.h:22
CSCDetId chamberId() const
Definition: CSCDetId.h:53
void pack(const CSCCorrelatedLCTDigiCollection *prod, FedAmcRawsMap &raws)
#define LogTrace(id)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
int station() const
Definition: CSCDetId.h:86
Definition: AMCSpec.h:8