12 #include <boost/cstdint.hpp> 48 lbItem() : theMaster(0), theLinkBoardNumInLink(0), theCode(0), nFebs(0) { };
70 int year=atoi(theVersion.substr(6,4).c_str());
71 int month=atoi(theVersion.substr(3,2).c_str());
72 if (year < 2012 || (year==2012 && month<11)) diskOffset=3;
77 for (
unsigned int idcc=0; idcc<theDccs.size(); idcc++) {
79 for (
int itb=lastTB; itb<lastTB+theDccs[idcc].nTBs; itb++) {
81 for (
int ilink=lastLink; ilink<lastLink+theTBs[itb].nLinks; ilink++) {
82 LinkConnSpec lc(theLinks[ilink].theTriggerBoardInputNumber);
83 for (
int ilb=lastLB; ilb<lastLB+theLinks[ilink].nLBs; ilb++) {
84 LinkBoardSpec lb(theLBs[ilb].theMaster,theLBs[ilb].theLinkBoardNumInLink,theLBs[ilb].theCode);
85 for (
int ifeb=lastFeb; ifeb<lastFeb+theLBs[ilb].nFebs; ifeb++) {
86 int sector=(theFebs[ifeb].theChamber)%100;
87 char subsector=((theFebs[ifeb].theChamber)/100)%10-2;
88 char febZRadOrnt=((theFebs[ifeb].theChamber)/1000)%5;
89 char febZOrnt=((theFebs[ifeb].theChamber)/5000)%2;
90 char diskOrWheel=((theFebs[ifeb].theChamber)/10000)%10-diskOffset;
91 char layer=((theFebs[ifeb].theChamber)/100000)%10;
92 char barrelOrEndcap=(theFebs[ifeb].theChamber)/1000000;
94 char cmsEtaPartition=(theFebs[ifeb].thePartition)/1000;
95 char positionInCmsEtaPartition=((theFebs[ifeb].thePartition)%1000)/100;
96 char localEtaPartition=((theFebs[ifeb].thePartition)%100)/10;
97 char positionInLocalEtaPartition=(theFebs[ifeb].thePartition)%10;
98 FebLocationSpec afeb={cmsEtaPartition,positionInCmsEtaPartition,localEtaPartition,positionInLocalEtaPartition};
99 FebConnectorSpec febConnector(theFebs[ifeb].theLinkBoardInputNum,chamber,afeb);
100 febConnector.
addStrips(theFebs[ifeb].theAlgo);
101 lb.
add(febConnector);
105 lastFeb+=theLBs[ilb].nFebs;
108 lastLB+=theLinks[ilink].nLBs;
111 lastLink+=theTBs[itb].nLinks;
114 lastTB+=theDccs[idcc].nTBs;
int theTriggerBoardInputNumber
void add(const FebConnectorSpec &feb)
attach feb
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
#define COND_SERIALIZABLE
std::vector< lbItem > theLBs
RPCEMap(const std::string &version="")
RPCReadOutMapping const * convert() const