14#include <fmt/format.h>
24constexpr int firstSolarId{360};
27std::map<uint32_t, uint32_t> buildDsElecId2DsDetIdMap()
29 std::map<uint32_t, uint32_t> e2d;
34 uint16_t solarId{firstSolarId};
40 for (
auto dsId :
dslist(deId)) {
67std::map<uint32_t, uint16_t> buildFeeLinkId2SolarIdMap()
69 std::map<uint32_t, uint16_t> c2s;
72 uint16_t solarId{firstSolarId};
76 std::set<uint16_t> solarIds;
80 for (
auto dsId :
dslist(deId)) {
83 solarIds.insert(solarId);
88 for (
auto solarId : solarIds) {
89 auto feeId = solarId / 12;
90 auto linkId = solarId - feeId * 12;
101std::function<std::optional<DsDetId>(DsElecId)>
104 static std::map<uint32_t, uint32_t> dsElecId2DsDetId = buildDsElecId2DsDetIdMap();
105 return impl::mapperElec2Det<ElectronicMapperDummy>(dsElecId2DsDetId);
109std::function<std::optional<DsElecId>(DsDetId)>
112 static std::map<uint32_t, uint32_t> dsDetId2dsElecId =
impl::inverseMap(buildDsElecId2DsDetIdMap());
113 return impl::mapperDet2Elec<ElectronicMapperDummy>(dsDetId2dsElecId);
117std::function<std::optional<uint16_t>(FeeLinkId)>
120 static auto f2s = buildFeeLinkId2SolarIdMap();
121 return impl::mapperFeeLink2Solar<ElectronicMapperDummy>(f2s);
125std::function<std::optional<FeeLinkId>(uint16_t)>
129 return impl::mapperSolar2FeeLink<ElectronicMapperDummy>(s2f);
135 return impl::getSolarUIDs<ElectronicMapperDummy>(deid);
141 return impl::getSolarUIDs<ElectronicMapperDummy>();
147 return impl::solar2FeeLinkConsistencyCheck<ElectronicMapperDummy>();
153 return impl::getAllDs<ElectronicMapperDummy>();
159 return impl::getSolarUIDsPerFeeId<ElectronicMapperDummy>(feeid);
165 return impl::getDualSampas<ElectronicMapperDummy>(solarId);
171 return impl::getDualSampasPerFeeId<ElectronicMapperDummy>(feeId);
177 return impl::solarIndex2Id<ElectronicMapperDummy>(solarIndex);
183 return impl::solarId2Index<ElectronicMapperDummy>(solarId);
A DsDetId is just a pair (detection element id, dual sampa id)
std::function< std::set< int >(int deId)> createDualSampaMapper()
uint8_t itsSharedClusterMap uint8_t
std::array< int, 156 > deIdsForAllMCH
std::map< VALUE, KEY > inverseMap(const std::map< KEY, VALUE > &src)
std::set< uint16_t > getSolarUIDsPerFeeId< ElectronicMapperDummy >(uint16_t feeid)
std::set< DsDetId > getDualSampas< ElectronicMapperDummy >(uint16_t solarId)
std::function< std::optional< DsElecId >(DsDetId)> createDet2ElecMapper< ElectronicMapperDummy >()
std::set< DsDetId > getDualSampasPerFeeId< ElectronicMapperDummy >(uint16_t feeId)
std::vector< std::string > solar2FeeLinkConsistencyCheck< ElectronicMapperDummy >()
std::optional< uint16_t > solarIndex2Id< ElectronicMapperDummy >(uint16_t solarIndex)
std::set< DsElecId > getAllDs< ElectronicMapperDummy >()
std::function< std::optional< DsDetId >(DsElecId)> createElec2DetMapper< ElectronicMapperDummy >(uint64_t timestamp)
std::optional< uint16_t > solarId2Index< ElectronicMapperDummy >(uint16_t solarId)
std::function< std::optional< uint16_t >(FeeLinkId)> createFeeLink2SolarMapper< ElectronicMapperDummy >()
std::function< std::optional< FeeLinkId >(uint16_t)> createSolar2FeeLinkMapper< ElectronicMapperDummy >()
uint32_t encode(const DsDetId &id)
Create an integer code for the given id.
std::set< uint16_t > getSolarUIDs< ElectronicMapperDummy >()
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
coder encode(vec, triggers, clusters)