10 #include <boost/cstdint.hpp>
59 for (
unsigned int idcc=0; idcc<
theDccs.size(); idcc++) {
61 for (
int itb=lastTB; itb<lastTB+
theDccs[idcc].nTBs; itb++) {
63 for (
int ilink=lastLink; ilink<lastLink+
theTBs[itb].nLinks; ilink++) {
65 for (
int ilb=lastLB; ilb<lastLB+
theLinks[ilink].nLBs; ilb++) {
67 for (
int ifeb=lastFeb; ifeb<lastFeb+
theLBs[ilb].nFebs; ifeb++) {
68 int sector=(
theFebs[ifeb].theChamber)%100;
69 char subsector=((
theFebs[ifeb].theChamber)/100)%10-2;
70 char febZRadOrnt=((
theFebs[ifeb].theChamber)/1000)%5;
71 char febZOrnt=((
theFebs[ifeb].theChamber)/5000)%2;
72 char diskOrWheel=((
theFebs[ifeb].theChamber)/10000)%10-3;
73 char layer=((
theFebs[ifeb].theChamber)/100000)%10;
74 char barrelOrEndcap=(
theFebs[ifeb].theChamber)/1000000;
75 ChamberLocationSpec chamber={diskOrWheel,layer,sector,subsector,febZOrnt,febZRadOrnt,barrelOrEndcap};
76 char cmsEtaPartition=(
theFebs[ifeb].thePartition)/1000;
77 char positionInCmsEtaPartition=((
theFebs[ifeb].thePartition)%1000)/100;
78 char localEtaPartition=((
theFebs[ifeb].thePartition)%100)/10;
79 char positionInLocalEtaPartition=(
theFebs[ifeb].thePartition)%10;
80 FebLocationSpec afeb={cmsEtaPartition,positionInCmsEtaPartition,localEtaPartition,positionInLocalEtaPartition};
87 lastFeb+=
theLBs[ilb].nFebs;
93 lastLink+=
theTBs[itb].nLinks;
int theTriggerBoardInputNumber
void add(const FebConnectorSpec &feb)
attach feb
RPCReadOutMapping * convert() const
std::vector< tbItem > theTBs
void addStrips(int algo)
add strip info
void add(const LinkBoardSpec &lb)
attach LinkBoard to this link
void add(const LinkConnSpec &lc)
attach connection to TB
int theLinkBoardNumInLink
std::vector< dccItem > theDccs
std::vector< febItem > theFebs
void add(const DccSpec &dcc)
attach FED to map
void add(const TriggerBoardSpec &tb)
attach TB to DCC. The channel is defined by TB
std::vector< linkItem > theLinks
std::vector< lbItem > theLBs
RPCEMap(const std::string &version="")