5#ifndef ITKPIXELBYTESTREAMCNV_ITKPIXELCSVWAFERIDALG_H
6#define ITKPIXELBYTESTREAMCNV_ITKPIXELCSVWAFERIDALG_H
9#include "GaudiKernel/EventContext.h"
10#include "GaudiKernel/ISvcLocator.h"
11#include "Identifier/Identifier.h"
38 virtual StatusCode
execute(
const EventContext& ctx)
const override;
40 const std::vector<CsvRow>&
rows()
const {
return m_rows; }
43 std::tuple<Identifier,int,std::bitset<32>>
waferId(
const CsvRow& row)
const;
44 std::bitset<32>
onlineId(
const std::vector<std::string>& spchain,
const std::string& mod,
int fe)
const;
47 static std::string
trim(
const std::string& input);
48 static std::vector<std::string>
splitCsvLine(
const std::string& line);
49 static std::vector<std::string>
parseSPChain(
const std::string& spChain);
51 std::bitset<32>
sourceID(
const std::vector<std::string>& spchain,
const std::string& flx,
const unsigned int dma)
const;
57 int barrel_ec(
const std::vector<std::string>& spchain)
const;
58 int layer_disk(
const std::vector<std::string>& spchain)
const;
59 int phi_module(
const std::vector<std::string>& spchain,
const std::string& mod,
int fe)
const;
60 int eta_module(
const std::vector<std::string>& spchain,
const std::string& mod,
int fe)
const;
61 int feID(
const std::vector<std::string>& spchain,
int fe)
const;
65 "AT2-IP-ES-0016_v1.41_INCOMPLETE-ModuleA_slim.csv",
66 "CSV file containing SP chain, Module and FE columns"};
69 "ITkPixelWaferIds.txt",
70 "Output text file for one 32-bit waferID per line"};
75 mutable std::atomic<bool>
m_done{
false};
This is an Identifier helper class for the Pixel subdetector.
An algorithm that can be simultaneously executed in multiple threads.
std::bitset< 32 > subDetID(int barrel_endcap, int layer_disk) const
virtual ~ITkPixelCsvWaferIdAlg()=default
virtual StatusCode initialize() override
virtual StatusCode execute(const EventContext &ctx) const override
static std::string trim(const std::string &input)
std::vector< std::string > splitFLX_card_device(const std::string &s) const
std::bitset< 32 > onlineId(const std::vector< std::string > &spchain, const std::string &mod, int fe) const
std::atomic< bool > m_done
static std::vector< std::string > splitCsvLine(const std::string &line)
const PixelID * m_pixIdHelper
std::vector< int > DmaBuffer() const
std::bitset< 32 > sourceID(const std::vector< std::string > &spchain, const std::string &flx, const unsigned int dma) const
std::vector< CsvRow > m_rows
int phi_module(const std::vector< std::string > &spchain, const std::string &mod, int fe) const
Gaudi::Property< std::string > m_outputFile
static std::vector< std::string > parseSPChain(const std::string &spChain)
int feID(const std::vector< std::string > &spchain, int fe) const
Gaudi::Property< std::string > m_csvFile
int barrel_ec(const std::vector< std::string > &spchain) const
std::tuple< Identifier, int, std::bitset< 32 > > waferId(const CsvRow &row) const
int eta_module(const std::vector< std::string > &spchain, const std::string &mod, int fe) const
ITkPixelCsvWaferIdAlg(const std::string &name, ISvcLocator *pSvcLocator)
int layer_disk(const std::vector< std::string > &spchain) const
const std::vector< CsvRow > & rows() const
This is an Identifier helper class for the Pixel subdetector.
std::string flx_card_device