14#include <fmt/format.h>
24constexpr int firstSolarId{360};
27std::map<uint32_t, uint32_t> buildDsElecId2DsDetIdMap()
29 std::map<uint32_t, uint32_t> e2d;
40 for (
auto dsId :
dslist(deId)) {
67std::map<uint32_t, uint16_t> buildFeeLinkId2SolarIdMap()
69 std::map<uint32_t, uint16_t> c2s;
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);
unsigned short int uint16_t
Timeframe settings Average distance in cm of events merged into Randomize distance around average distance of merged events Simulate correct bunch interactions instead of placing only the average number of events A value[n] sets TFlen for[n] collisions in Number of bunches per trainsort Number of bunch trains Instantaneous interaction rate Do not simulate border Total number of collisions to be placed in the interior of all time Do not select random but walk over array of events in stride steps h Event generator settings h configStandalone Use CPU for GPU Force usage of the specified GPU device no CPU fallback Continue processing after an error First event to Number of events to Number of iterations to Number of iterations to Number of initial iterations excluded from const char Directory with events to Events directory is and not inside events Show standalone event Run event generator maximum time bin of continuous for triggered for automatic continuous for automatic continuous triggered uint64_t
A DsDetId is just a pair (detection element id, dual sampa id)
std::function< std::set< int >(int deId)> createDualSampaMapper()
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)