Project
Loading...
Searching...
No Matches
Mapper.h File Reference
#include "MCHRawElecMap/DsDetId.h"
#include "MCHRawElecMap/DsElecId.h"
#include "MCHRawElecMap/FeeLinkId.h"
#include <array>
#include <cstdint>
#include <fmt/format.h>
#include <functional>
#include <gsl/span>
#include <optional>
#include <set>
#include <stdexcept>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  o2::mch::raw::ElectronicMapperDummy
 
struct  o2::mch::raw::ElectronicMapperGenerated
 
struct  o2::mch::raw::ElectronicMapperString
 

Namespaces

namespace  o2
 a couple of static helper functions to create timestamp values for CCDB queries or override obsolete objects
 
namespace  o2::mch
 
namespace  o2::mch::raw
 

Functions

template<typename T >
std::set< uint16_t > o2::mch::raw::getSolarUIDs (int deid)
 List of Solar Unique Ids for a given detection element id.
 
template<typename T >
std::set< uint16_t > o2::mch::raw::getSolarUIDs ()
 List of Solar Unique Ids for all MCH.
 
template<typename T >
std::set< uint16_t > o2::mch::raw::getSolarUIDsPerFeeId (uint16_t feeId)
 List of Solar Unique Ids for a given FeeId.
 
template<typename T >
std::set< DsDetIdo2::mch::raw::getDualSampas (uint16_t solarId)
 List of Dual Sampa handled by a given Solar.
 
template<typename T >
std::set< DsDetIdo2::mch::raw::getDualSampasPerFeeId (uint16_t feeId)
 List of Dual Sampa handled by a given FeeId.
 
template<typename T >
std::set< DsElecIdo2::mch::raw::getAllDs ()
 
template<typename T >
std::vector< std::string > o2::mch::raw::solar2FeeLinkConsistencyCheck ()
 
template<typename T >
std::optional< uint16_t > o2::mch::raw::solarIndex2Id (uint16_t solarIndex)
 
template<typename T >
std::optional< uint16_t > o2::mch::raw::solarId2Index (uint16_t solarId)
 

Variables

std::array< int, 2 > o2::mch::raw::deIdsOfCH1R {100, 103}
 
std::array< int, 2 > o2::mch::raw::deIdsOfCH1L {101, 102}
 
std::array< int, 2 > o2::mch::raw::deIdsOfCH2R {200, 203}
 
std::array< int, 2 > o2::mch::raw::deIdsOfCH2L {201, 202}
 
std::array< int, 2 > o2::mch::raw::deIdsOfCH3R {300, 303}
 
std::array< int, 2 > o2::mch::raw::deIdsOfCH3L {301, 302}
 
std::array< int, 2 > o2::mch::raw::deIdsOfCH4R {400, 403}
 
std::array< int, 2 > o2::mch::raw::deIdsOfCH4L {401, 402}
 
std::array< int, 9 > o2::mch::raw::deIdsOfCH5R {504, 503, 502, 501, 500, 517, 516, 515, 514}
 
std::array< int, 9 > o2::mch::raw::deIdsOfCH5L {505, 506, 507, 508, 509, 510, 511, 512, 513}
 
std::array< int, 9 > o2::mch::raw::deIdsOfCH6R {604, 603, 602, 601, 600, 617, 616, 615, 614}
 
std::array< int, 9 > o2::mch::raw::deIdsOfCH6L {605, 606, 607, 608, 609, 610, 611, 612, 613}
 
std::array< int, 13 > o2::mch::raw::deIdsOfCH7R {706, 705, 704, 703, 702, 701, 700, 725, 724, 723, 722, 721, 720}
 
std::array< int, 13 > o2::mch::raw::deIdsOfCH7L {707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719}
 
std::array< int, 13 > o2::mch::raw::deIdsOfCH8R {806, 805, 804, 803, 802, 801, 800, 825, 824, 823, 822, 821, 820}
 
std::array< int, 13 > o2::mch::raw::deIdsOfCH8L {807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819}
 
std::array< int, 13 > o2::mch::raw::deIdsOfCH9R {906, 905, 904, 903, 902, 901, 900, 925, 924, 923, 922, 921, 920}
 
std::array< int, 13 > o2::mch::raw::deIdsOfCH9L {907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919}
 
std::array< int, 13 > o2::mch::raw::deIdsOfCH10R {1006, 1005, 1004, 1003, 1002, 1001, 1000, 1025, 1024, 1023, 1022, 1021, 1020}
 
std::array< int, 13 > o2::mch::raw::deIdsOfCH10L {1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019}
 

Mapper templates.

Those creator functions return functions that can do the mapping to/from DsElecId to DsDetId and to/from FeeLinkId to solarId.

using o2::mch::raw::Elec2DetMapper = std::function< std::optional< DsDetId >(DsElecId)>
 
using o2::mch::raw::Det2ElecMapper = std::function< std::optional< DsElecId >(DsDetId id)>
 From (deId,dsId) to (solarId,groupId,index)
 
using o2::mch::raw::FeeLink2SolarMapper = std::function< std::optional< uint16_t >(FeeLinkId id)>
 From (feeId,linkId) to solarId.
 
using o2::mch::raw::Solar2FeeLinkMapper = std::function< std::optional< FeeLinkId >(uint16_t solarId)>
 From solarId to (feeId,linkId)
 
template<typename T >
Elec2DetMapper o2::mch::raw::createElec2DetMapper (uint64_t timestamp=0)
 
template<typename T >
Det2ElecMapper o2::mch::raw::createDet2ElecMapper ()
 
template<typename T >
FeeLink2SolarMapper o2::mch::raw::createFeeLink2SolarMapper ()
 
template<typename T >
Solar2FeeLinkMapper o2::mch::raw::createSolar2FeeLinkMapper ()