diff --git a/algo/detectors/much/MuchReadoutConfig.cxx b/algo/detectors/much/MuchReadoutConfig.cxx index eb6fa69a5bf26c8cd0074c04c6e73e66ae0159de..ffc66caee8dac594bfafe17d195b0e69cf34c945 100644 --- a/algo/detectors/much/MuchReadoutConfig.cxx +++ b/algo/detectors/much/MuchReadoutConfig.cxx @@ -59,10 +59,10 @@ namespace cbm::algo void MuchReadoutConfig::Init() { // This here refers to the mCBM 2022 setup. - // Taken from CbmMuchUnpackPar in combination with macro/beamtime/mcbm2022/mMuchPar.par + // Taken from CbmMuchUnpackPar in combination with macro/beamtime/mcbm2022/mMuchParUpto26052022.par // Array to hold the unique IDs (equipment ID) for all MUCH DPBs - uint16_t eqId[numComp] = {0x1001, 0x1002, 0x1003, 0x1006, 0x2002, 0x2003}; + uint16_t eqId[numComp] = {0x2001, 0x2002, 0x2003, 0x1006, 0x1001, 0x1002, 0x1003}; // Mapping of eLink to FEB number within CROB. If -1, elink not used. // This mapping is the same for each component. @@ -77,11 +77,12 @@ namespace cbm::algo // FEB IDs connected to GEM Module B fnFebsIdsArrayGemB = { - 6, 16, -1, 14, 5, 8, 9, 4, 15, //Id for the connected FEB Position in DPB 2002 GEM Module B - -1, 3, -1, 17, 10, 11, 12, 7, 13}; //Id for the connected FEB Position in DPB 2003 GEM Module B + 6, 7, -1, -1, 14, 2, -1, -1, 1, //Id for the connected FEB Position in DPB 2001 GEM Module B + 0, 16, -1, -1, 5, 8, 9, 4, 15, //Id for the connected FEB Position in DPB 2002 GEM Module B + -1, 10, -1, 17, 13, 11, 12, -1, 3}; //Id for the connected FEB Position in DPB 2003 GEM Module B // FEB IDs connected to RPC Module - fnFebsIdsArrayRpc = {3, -1, -1, 2, 0, -1, 1, -1, -1}; //Id for the connected FEB Position in GEM Module B + fnFebsIdsArrayRpc = {3, -1, -1, -1, 0, 1, -1, -1, 2}; //Id for the connected FEB Position in GEM Module B // Init arrays which store positions of PADs InitChannelToPadMaps(); @@ -305,34 +306,35 @@ namespace cbm::algo void MuchReadoutConfig::InitChannelToPadMaps() { + // Array which stores the corresponding x position of PAD of RPC module - fChannelsToPadXRpc = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, // - 1, 1, 1, 1, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, // - 3, 2, 3, 3, 3, 3, 3, 3, 0, 3, 2, 3, 4, 4, 4, 1, // - 4, 4, 4, 4, 4, 4, 3, 4, 2, 5, 1, 0, 5, 4, 5, 5, // - 5, 5, 5, 5, 5, 5, 3, 5, 3, 2, 2, 4, 0, 1, -3, -3, // - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 6, 3, 5, 1, 2, // - 7, 0, 7, 7, 7, 7, 4, 7, 7, 5, 7, 7, 7, 7, 5, 6, // - 0, 1, 3, 2, 8, 6, 8, 8, 8, 8, 3, 8, 8, 4, 8, 8, // - // - 8, 8, 5, 0, 6, 1, 7, 7, 9, 9, 9, 0, 4, 2, 9, 9, // - 9, 3, 9, 9, 9, 9, 4, 9, 3, 4, 0, 2, 5, 1, 5, 5, // - 6, 6, 6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 8, 8, 2, 1, // - 4, 3, 6, 5, 0, 7, 8, 1, 9, 9, 9, 2, 3, 8, 5, 4, // - 0, 6, 1, 8, 7, 2, 9, 9, 4, 3, 6, 5, 8, 7, 6, 7, // - 4, 5, 2, 3, 0, 1, 8, 8, 9, 9, 9, 9, 4, 9, 6, 5, // - 8, 7, 9, 9, 8, 9, 2, 3, 7, 1, 6, 4, 9, 5, 8, 0, // - // - 0, 0, 2, 1, 8, 9, 6, 7, 0, 5, 1, 4, 1, 1, 9, 3, // - 2, 7, 5, 6, 2, 3, 2, 3, 0, 1, 8, 4, 9, 4, 7, 8, // - 5, 6, 8, 9, 7, 1, 2, 6, 4, 5, 9, 3, 7, 8, 5, 6, // - 3, 4, 9, 2, 0, 7, 3, 5, 1, -3, 4, -3, 6, -3, 8, -3, // - 9, 2, 3, 8, 5, 4, 7, 6, 8, 9, 6, 7, 4, 5, 1, 3, // - 9, 2, 0, 8, 6, 7, 4, 5, 2, 3, 8, 9, 5, 6, 4, 1, // - 7, 3, 2, 9, -3, 8, -3, 7, -3, 6, -3, 5, -3, 4, -3, 3, // - -3, 1, -3, 2, 8, 9, -3, 7, 1, 6, 0, 0, -3, -3, 0, -3, // - 6, 7, 1, 5, 3, 2, 3, 4, 1, 2, 0, 0, 0, 0, -3, -3, // - // + fChannelsToPadXRpc = {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, // + 1, 1, 1, 1, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, // + 3, 2, 3, 3, 3, 3, 3, 3, 0, 3, 2, 3, 4, 4, 4, 1, // + 4, 4, 4, 4, 4, 4, 3, 4, 2, 5, 1, 0, 5, 4, 5, 5, // + 5, 5, 5, 5, 5, 5, 3, 5, 3, 2, 2, 4, 0, 1, -3, -3, // + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 6, 3, 5, 1, 2, // + 7, 0, 7, 7, 7, 7, 4, 7, 7, 5, 7, 7, 7, 7, 5, 6, // + 0, 1, 3, 2, 8, 6, 8, 8, 8, 8, 3, 8, 8, 4, 8, 8, // + // + 8, 8, 5, 0, 6, 1, 7, 7, 9, 9, 9, 0, 4, 2, 9, 9, // + 9, 3, 9, 9, 9, 9, 4, 9, 3, 4, 0, 2, 5, 1, 5, 5, // + 6, 6, 6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 8, 8, 2, 1, // + 4, 3, 6, 5, 0, 7, 8, 1, 9, 9, 9, 2, 3, 8, 5, 4, // + 0, 6, 1, 8, 7, 2, 9, 9, 4, 3, 6, 5, 8, 7, 6, 7, // + 4, 5, 2, 3, 0, 1, 8, 8, 9, 9, 9, 9, 4, 9, 6, 5, // + 8, 7, 9, 9, 8, 9, 2, 3, 7, 1, 6, 4, 9, 5, 8, 0, // + // + 0, 0, 2, 1, 8, 9, 6, 7, 0, 5, 1, 4, 1, 1, 9, 3, // + 2, 7, 5, 6, 2, 3, 2, 3, 0, 1, 8, 4, 9, 4, 7, 8, // + 5, 6, 8, 9, 7, 1, 2, 6, 4, 5, 9, 3, 7, 8, 5, 6, // + 3, 4, 9, 2, 0, 7, 3, 5, 1, -3, 4, -3, 6, -3, 8, -3, // + 9, 2, 3, 8, 5, 4, 7, 6, 8, 9, 6, 7, 4, 5, 1, 3, // + 9, 2, 0, 8, 6, 7, 4, 5, 2, 3, 8, 9, 5, 6, 4, 1, // + 7, 3, 2, 9, -3, 8, -3, 7, -3, 6, -3, 5, -3, 4, -3, 3, // + -3, 1, -3, 2, 8, 9, -3, 7, 1, 6, 0, 0, -3, -3, 0, -3, // + 6, 7, 1, 5, 3, 2, 3, 4, 1, 2, 0, 0, 0, 0, -3, -3, // + // 0, 0, 1, 0, 3, 2, 5, 4, 8, 9, 7, 0, 5, 6, 4, 1, // 2, 3, 8, 9, 0, 1, 6, 7, 4, 5, 2, 3, 8, 9, 1, 7, // 5, 6, 3, 4, 9, 2, 7, 8, 1, 6, 2, 5, 4, 3, 8, 9, // @@ -343,16 +345,16 @@ namespace cbm::algo -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3}; // Array which stores the corresponding y position of PAD of RPC module - fChannelsToPadYRpc = {1, 0, 3, 2, 5, 4, 7, 6, 0, 8, 2, 1, 3, 9, 5, 4, // - 7, 6, 9, 8, 0, 10, 2, 1, 4, 3, 6, 5, 8, 7, 10, 0, // - 1, 9, 3, 2, 5, 4, 7, 6, 11, 8, 10, 9, 1, 0, 2, 11, // - 4, 3, 6, 5, 8, 7, 10, 9, 11, 0, 12, 12, 1, 10, 3, 2, // - 5, 4, 7, 6, 9, 8, 11, 10, 12, 12, 13, 11, 13, 13, -3, -3, // - 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 12, 10, 13, 11, 14, 14, // - 0, 14, 2, 1, 4, 3, 13, 5, 6, 12, 8, 7, 10, 9, 13, 11, // - 15, 15, 14, 15, 0, 12, 2, 1, 4, 3, 15, 5, 6, 14, 8, 7, // - // - 10, 9, 14, 16, 13, 16, 11, 12, 1, 0, 3, 17, 15, 16, 2, 4, // + fChannelsToPadYRpc = {1, 0, 3, 2, 5, 4, 7, 6, 0, 8, 2, 1, 3, 9, 5, 4, // + 7, 6, 9, 8, 0, 10, 2, 1, 4, 3, 6, 5, 8, 7, 10, 0, // + 1, 9, 3, 2, 5, 4, 7, 6, 11, 8, 10, 9, 1, 0, 2, 11, // + 4, 3, 6, 5, 8, 7, 10, 9, 11, 0, 12, 12, 1, 10, 3, 2, // + 5, 4, 7, 6, 9, 8, 11, 10, 12, 12, 13, 11, 13, 13, -3, -3, // + 1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 12, 10, 13, 11, 14, 14, // + 0, 14, 2, 1, 4, 3, 13, 5, 6, 12, 8, 7, 10, 9, 13, 11, // + 15, 15, 14, 15, 0, 12, 2, 1, 4, 3, 15, 5, 6, 14, 8, 7, // + // + 10, 9, 14, 16, 13, 16, 11, 12, 1, 0, 3, 2, 17, 15, 16, 4, // 5, 16, 7, 6, 9, 8, 16, 10, 17, 17, 18, 17, 15, 17, 17, 16, // 15, 14, 17, 16, 15, 14, 17, 16, 12, 13, 14, 13, 16, 15, 18, 18, // 18, 18, 18, 18, 19, 18, 11, 19, 12, 11, 13, 19, 19, 17, 19, 19, // @@ -360,7 +362,7 @@ namespace cbm::algo 21, 21, 21, 21, 21, 21, 19, 21, 17, 16, 19, 18, 22, 20, 22, 22, // 22, 22, 22, 21, 23, 23, 22, 22, 23, 22, 23, 23, 24, 23, 24, 22, // 24, 24, 23, 24, 23, 23, 24, 24, 24, 24, 23, 24, 26, 25, -3, -3, // - // + // 27, 28, 25, 25, 25, 25, 25, 25, 29, 25, 26, 25, 28, 27, 26, 25, // 26, 26, 26, 26, 27, 26, 28, 27, 30, 29, 26, 26, 27, 27, 27, 27, // 27, 27, 28, 28, 28, 30, 29, 28, 28, 28, 29, 28, 29, 29, 29, 29, // @@ -369,9 +371,9 @@ namespace cbm::algo 33, 32, 32, 33, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 33, // 34, 34, 34, 35, -3, 35, -3, 35, -3, 35, -3, 35, -3, 35, -3, 35, // -3, 34, -3, 35, 36, 36, -3, 36, 35, 36, 35, 34, -3, -3, 33, -3, // - // + // 37, 36, 36, 38, 36, 36, 36, 36, 37, 37, 37, 39, 37, 37, 37, 37, // - 37, 37, 38, 38, 40, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, // + 37, 37, 37, 37, 40, 38, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, // 39, 39, 39, 39, 40, 39, 40, 40, 40, 40, 40, 40, 40, 40, 41, 41, // 41, 41, 41, 41, 41, 41, 42, 41, 42, 42, 42, 42, 42, 42, 43, 42, // 43, 43, 43, 43, 43, 43, 43, 41, 44, 42, 44, 44, 44, 44, 44, 44, // @@ -1031,5 +1033,4 @@ namespace cbm::algo 95, 94, 96, 90, 95, 91, 96, 92, 95, 90, 96, 91, 95, 95, 96, 96, // 95, 96, 95, 93, 96, 92, -1, 91, -1, 90, -1, 90, -1, 91, 79, 92}; } - } /* namespace cbm::algo */ diff --git a/algo/detectors/much/MuchReadoutConfig.h b/algo/detectors/much/MuchReadoutConfig.h index 05eac5b68d0bc1be73e2fd9394da453197f5e62a..9083777146a1c52a389dffc826da3c059d4b87dc 100644 --- a/algo/detectors/much/MuchReadoutConfig.h +++ b/algo/detectors/much/MuchReadoutConfig.h @@ -56,11 +56,11 @@ namespace cbm::algo static const uint16_t numFebsPerCrob = 9; ///< Number of FEBs connected to each CROB for mMuch 2019 static const uint16_t numAsicsPerFeb = 1; ///< Number of ASICs connected in each FEB for MUCH static const uint16_t numChanPerAsic = 128; ///< Number of channels in each ASIC - static const uint16_t numComp = 6; ///< Total number of MUCH DPBs in system + static const uint16_t numComp = 7; ///< Total number of MUCH DPBs in system /// Variables uint16_t numFebsInGemA = 27; ///< Number of FEBs connected in GEM Module A - uint16_t numFebsInGemB = 18; ///< Number of FEBs connected in GEM Module B + uint16_t numFebsInGemB = 27; ///< Number of FEBs connected in GEM Module B uint16_t numFebsInRpc = 9; ///< Number of FEBs connected in RPC Module std::vector<int16_t> fnFebsIdsArrayGemA; ///< Array to hold FEB IDs connected to GEM Module A std::vector<int16_t> fnFebsIdsArrayGemB; ///< Array to hold FEB IDs connected to GEM Module B