Skip to content
Snippets Groups Projects
Commit f61a15b9 authored by Norbert Herrmann's avatar Norbert Herrmann Committed by Pierre-Alain Loizeau
Browse files

[mCBM] In CbmMcbm2018TofPar, update for Tof Bucharest counter in 2024 data

parent e6225729
No related branches found
No related tags found
1 merge request!1791Unpack parameter update for Tof Bucharest counter and new BMon detector in 2024 data
...@@ -265,6 +265,7 @@ void CbmMcbm2018TofPar::BuildChannelsUidMap() ...@@ -265,6 +265,7 @@ void CbmMcbm2018TofPar::BuildChannelsUidMap()
for (UInt_t uGbtx = 0; uGbtx < uNrOfGbtx; ++uGbtx) { for (UInt_t uGbtx = 0; uGbtx < uNrOfGbtx; ++uGbtx) {
uint32_t uCh0 = uCh; uint32_t uCh0 = uCh;
uint32_t uGdpb = uCh0 / (fiNrOfFeesPerGdpb * fiNrOfGet4PerFee * fiNrOfChannelsPerGet4); uint32_t uGdpb = uCh0 / (fiNrOfFeesPerGdpb * fiNrOfGet4PerFee * fiNrOfChannelsPerGet4);
LOG(info) << "Map at ch " << uCh << ", Gdpb " << uGdpb << ", Id " << std::hex << fiGdpbIdArray[uGdpb] << std::dec;
switch (fiRpcType[uGbtx]) { switch (fiRpcType[uGbtx]) {
case 2: // intended fall-through case 2: // intended fall-through
case 0: { case 0: {
...@@ -320,6 +321,11 @@ void CbmMcbm2018TofPar::BuildChannelsUidMap() ...@@ -320,6 +321,11 @@ void CbmMcbm2018TofPar::BuildChannelsUidMap()
} }
break; break;
} }
case 66: // Buc box
{
BuildChannelsUidMapBuc(uCh, uGbtx);
break;
}
case 69: { case 69: {
/// 2022 case: 69 is followed by 4 and 9 /// 2022 case: 69 is followed by 4 and 9
BuildChannelsUidMapBuc(uCh, uGbtx); BuildChannelsUidMapBuc(uCh, uGbtx);
...@@ -338,7 +344,7 @@ void CbmMcbm2018TofPar::BuildChannelsUidMap() ...@@ -338,7 +344,7 @@ void CbmMcbm2018TofPar::BuildChannelsUidMap()
LOG(error) << "Invalid Tof Type specifier for GBTx " << std::setw(2) << uGbtx << ": " << fiRpcType[uGbtx]; LOG(error) << "Invalid Tof Type specifier for GBTx " << std::setw(2) << uGbtx << ": " << fiRpcType[uGbtx];
} }
} // switch (fiRpcType[uGbtx]) } // switch (fiRpcType[uGbtx])
if ((int32_t)(uCh - uCh0) != fiNrOfFeesPerGdpb * fiNrOfGet4PerFee * fiNrOfChannelsPerGet4 / nbRobPerComp) { if ((uCh - uCh0) != fiNrOfFeesPerGdpb * fiNrOfGet4PerFee * fiNrOfChannelsPerGet4 / nbRobPerComp) {
LOG(fatal) << "Tof mapping error for Gbtx " << uGbtx << ", diff = " << uCh - uCh0 << ", expected " LOG(fatal) << "Tof mapping error for Gbtx " << uGbtx << ", diff = " << uCh - uCh0 << ", expected "
<< fiNrOfFeesPerGdpb * fiNrOfGet4PerFee * fiNrOfChannelsPerGet4 / nbRobPerComp << fiNrOfFeesPerGdpb * fiNrOfGet4PerFee * fiNrOfChannelsPerGet4 / nbRobPerComp
<< " with nbRobPerFlim = " << nbRobPerComp; << " with nbRobPerFlim = " << nbRobPerComp;
...@@ -554,7 +560,7 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapStar2(UInt_t& uCh, UInt_t uGbtx) ...@@ -554,7 +560,7 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapStar2(UInt_t& uCh, UInt_t uGbtx)
void CbmMcbm2018TofPar::BuildChannelsUidMapStar2A(UInt_t& uCh, UInt_t uGbtx) void CbmMcbm2018TofPar::BuildChannelsUidMapStar2A(UInt_t& uCh, UInt_t uGbtx)
{ {
LOG(info) << " Map Star2A box " << fiModuleId[uGbtx] << " at GBTX " << uGbtx << " - uCh = " << uCh << " for type " LOG(info) << " Map Star2A box " << fiModuleId[uGbtx] << " at GBTX " << uGbtx << " - uCh = " << uCh << " for type "
<< fiRpcType[uGbtx]; << fiRpcType[uGbtx] << ", side " << fiRpcSide[uGbtx];
if (fiRpcSide[uGbtx] < 3) { if (fiRpcSide[uGbtx] < 3) {
Int_t NrFeet = 2; Int_t NrFeet = 2;
if (fiRpcSide[uGbtx] < 2) NrFeet = 1; if (fiRpcSide[uGbtx] < 2) NrFeet = 1;
...@@ -570,14 +576,7 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapStar2A(UInt_t& uCh, UInt_t uGbtx) ...@@ -570,14 +576,7 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapStar2A(UInt_t& uCh, UInt_t uGbtx)
else else
iSideMap = 1; iSideMap = 1;
} }
else {
if (fiRpcSide[uGbtx] == 3) {
if (iFeet == 0)
iSideMap = 1;
else
iSideMap = 0;
}
}
if (fiRpcType[uGbtx] != 6) if (fiRpcType[uGbtx] != 6)
if (iSideMap == 0) iStrMap = 31 - iStr; if (iSideMap == 0) iStrMap = 31 - iStr;
...@@ -637,8 +636,48 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapStar2A(UInt_t& uCh, UInt_t uGbtx) ...@@ -637,8 +636,48 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapStar2A(UInt_t& uCh, UInt_t uGbtx)
} }
} }
} }
else if (fiRpcSide[uGbtx] == 4) {
int iSideMap = -1;
int iStrMap = -1;
int iRpcMap = -1;
const int ConOff[8] = {0, 2, 4, 6, 7, 1, 3, 5}; //Get4 after Gbtx
for (Int_t iFeet = 0; iFeet < 5; iFeet++) {
for (Int_t iStr = 0; iStr < 32; iStr++) {
switch (iFeet) {
case 0: iSideMap = -1; break;
case 1:
iRpcMap = 0;
iStrMap = 3 - iStr % 4 + 4 * ConOff[iStr / 4];
iSideMap = 0;
break;
case 2:
iRpcMap = 0;
iStrMap = 3 - iStr % 4 + 4 * ConOff[iStr / 4];
iSideMap = 1;
break;
case 3:
iRpcMap = 1;
iStrMap = 3 - iStr % 4 + 4 * ConOff[iStr / 4];
iSideMap = 1;
break;
case 4:
iRpcMap = 1;
iStrMap = 3 - iStr % 4 + 4 * ConOff[iStr / 4];
iSideMap = 0;
break;
}
if (iSideMap > -1)
fviRpcChUId[uCh] =
CbmTofAddress::GetUniqueAddress(fiModuleId[uGbtx], iRpcMap, iStrMap, iSideMap, fiRpcType[uGbtx]);
else
fviRpcChUId[uCh] = 0;
uCh++;
}
}
}
} }
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
void CbmMcbm2018TofPar::BuildChannelsUidMapBuc(UInt_t& uCh, UInt_t uGbtx) void CbmMcbm2018TofPar::BuildChannelsUidMapBuc(UInt_t& uCh, UInt_t uGbtx)
{ {
...@@ -662,11 +701,38 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapBuc(UInt_t& uCh, UInt_t uGbtx) ...@@ -662,11 +701,38 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapBuc(UInt_t& uCh, UInt_t uGbtx)
// iStrMap=31-iStr; // iStrMap=31-iStr;
iSideMap = 1 - iSideMap; iSideMap = 1 - iSideMap;
break; break;
case 3: case 3: {
/*
iStrMap = 31 - iStr; iStrMap = 31 - iStr;
iRpcMap = 1 - iRpcMap; iRpcMap = 1 - iRpcMap;
iSideMap = 1 - iSideMap; iSideMap = 1 - iSideMap;
break; */
//const int ConOff[8]={0,5,1,6,2,7,3,4}; //Get44 on connector
const int ConOff[8] = {0, 2, 4, 6, 7, 1, 3, 5}; //Get4 after Gbtx
switch (iFeet) {
case 0: iSideMap = -1; break;
case 1:
iRpcMap = 0;
iStrMap = 3 - iStr % 4 + 4 * ConOff[iStr / 4];
iSideMap = 0;
break;
case 2:
iRpcMap = 0;
iStrMap = 3 - iStr % 4 + 4 * ConOff[iStr / 4];
iSideMap = 1;
break;
case 3:
iRpcMap = 1;
iStrMap = 3 - iStr % 4 + 4 * ConOff[iStr / 4];
iSideMap = 1;
break;
case 4:
iRpcMap = 1;
iStrMap = 3 - iStr % 4 + 4 * ConOff[iStr / 4];
iSideMap = 0;
break;
}
} break;
case 4: // HD cosmic 2019, Buc2018, v18o case 4: // HD cosmic 2019, Buc2018, v18o
iRpcMap = 1 - iRpcMap; iRpcMap = 1 - iRpcMap;
break; break;
...@@ -773,7 +839,8 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapBuc(UInt_t& uCh, UInt_t uGbtx) ...@@ -773,7 +839,8 @@ void CbmMcbm2018TofPar::BuildChannelsUidMapBuc(UInt_t& uCh, UInt_t uGbtx)
} }
} // switch (fiRpcSide[uGbtx]) } // switch (fiRpcSide[uGbtx])
if (iSideMap > -1) if (iSideMap > -1)
fviRpcChUId[uCh] = CbmTofAddress::GetUniqueAddress(iModuleIdMap, iRpcMap, iStrMap, iSideMap, fiRpcType[uGbtx]); fviRpcChUId[uCh] =
CbmTofAddress::GetUniqueAddress(iModuleIdMap, iRpcMap, iStrMap, iSideMap, fiRpcType[uGbtx] % 10);
else else
fviRpcChUId[uCh] = 0; fviRpcChUId[uCh] = 0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment