ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
EfexCSVTables Class Reference

#include <EfexCSVTables.h>

Inheritance diagram for EfexCSVTables:
Collaboration diagram for EfexCSVTables:

Public Member Functions

std::shared_ptr< CSVWrapperGetTable (int table_num)
 

Static Public Member Functions

static EfexCSVTablesgetInstance ()
 

Private Member Functions

 EfexCSVTables (EfexCSVTables const &)=delete
 
void operator= (EfexCSVTables const &)=delete
 
 EfexCSVTables ()
 

Private Attributes

std::array< std::shared_ptr< CSVWrapper >, 6 > m_tables
 
std::array< bool, 6 > m_table_opens
 
std::string m_subsystem
 

Detailed Description

Definition at line 6 of file EfexCSVTables.h.

Constructor & Destructor Documentation

◆ EfexCSVTables() [1/2]

EfexCSVTables::EfexCSVTables ( EfexCSVTables const )
privatedelete

◆ EfexCSVTables() [2/2]

EfexCSVTables::EfexCSVTables ( )
private

Definition at line 3 of file EfexCSVTables.cxx.

3 : CSVTablesBase("eFex") {}

Member Function Documentation

◆ getInstance()

EfexCSVTables & EfexCSVTables::getInstance ( )
static

Definition at line 5 of file EfexCSVTables.cxx.

5  {
6  static thread_local EfexCSVTables instance; // Guaranteed to be destroyed.
7  // Instantiated on first use.
8  return instance;
9 }

◆ GetTable()

std::shared_ptr< CSVWrapper > CSVTablesBase::GetTable ( int  table_num)
inherited

Definition at line 23 of file CSVTablesBase.cxx.

23  {
24  //Check if table not open, the construct table
25  std::string suffixName = m_subsystem + "Map"
26  + std::to_string(table_num)
27  + ".csv";
28  if( not (m_table_opens.at(table_num-1) )){
29 #ifdef OFFLINE_DECODER
30  auto mappingfilename = PathResolver::find_file("L1CaloFEXByteStream/2022-07-22/" + suffixName,"CALIBPATH");
31  auto file = std::ifstream(mappingfilename, std::ifstream::in);
32  if (!mappingfilename.empty() && file.good()) {
33  m_tables.at(table_num-1) = std::make_shared<CSVWrapper> (file);
34  m_table_opens.at(table_num-1) = true;
35  return m_tables.at(table_num-1);
36  } else {
37  throw std::runtime_error(std::string("Cannot find file ") + suffixName);
38  }
39 #else
40  const char* l1caloRootEnv = std::getenv("L1CALO_ROOT");
41  if (!l1caloRootEnv) {
42  throw l1calo::EnvUndefined(ERS_HERE,"L1CALO_ROOT");
43  }
44  // To be able to use updated mappings while building the release
45  // check for files in the source area then the installed area.
46  std::string l1caloRoot(l1caloRootEnv);
47  auto baseDir = l1caloRoot.substr(0,l1caloRoot.find_last_of("/"));
48  std::vector<std::string> mapDirs = {
49  baseDir + "/channelMappings/data/",
50  baseDir + "/installed/share/data/channelMappings/",
51  };
52  for (auto& basePath: mapDirs) {
53  auto mappingfilename = basePath + suffixName;
54  auto file = std::ifstream(mappingfilename, std::ifstream::in);
55  if (file.good()) {
56  m_tables.at(table_num-1) = std::make_shared<CSVWrapper> (file);
57  m_table_opens.at(table_num-1) = true;
58  return m_tables.at(table_num-1);
59  }
60  }
61  std::string suffixPath = suffixName + " (under " + baseDir + ")";
62  throw l1calo::FileError(ERS_HERE,"open",suffixPath);
63 #endif
64  }
65  return m_tables.at(table_num-1);
66 }

◆ operator=()

void EfexCSVTables::operator= ( EfexCSVTables const )
privatedelete

Member Data Documentation

◆ m_subsystem

std::string CSVTablesBase::m_subsystem
privateinherited

Definition at line 17 of file CSVTablesBase.h.

◆ m_table_opens

std::array<bool, 6> CSVTablesBase::m_table_opens
privateinherited

Definition at line 16 of file CSVTablesBase.h.

◆ m_tables

std::array<std::shared_ptr<CSVWrapper>, 6> CSVTablesBase::m_tables
privateinherited

Definition at line 15 of file CSVTablesBase.h.


The documentation for this class was generated from the following files:
PathResolver::find_file
static std::string find_file(const std::string &logical_file_name, const std::string &search_path, SearchType search_type=LocalSearch)
Definition: PathResolver.cxx:251
CSVTablesBase::m_table_opens
std::array< bool, 6 > m_table_opens
Definition: CSVTablesBase.h:16
instance
std::map< std::string, double > instance
Definition: Run_To_Get_Tags.h:8
CSVTablesBase::m_subsystem
std::string m_subsystem
Definition: CSVTablesBase.h:17
file
TFile * file
Definition: tile_monitor.h:29
CSVTablesBase::CSVTablesBase
CSVTablesBase(std::string subsystem)
Definition: CSVTablesBase.cxx:17
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
SCT_ConditionsAlgorithms::CoveritySafe::getenv
std::string getenv(const std::string &variableName)
get an environment variable
Definition: SCT_ConditionsUtilities.cxx:17
CSVTablesBase::m_tables
std::array< std::shared_ptr< CSVWrapper >, 6 > m_tables
Definition: CSVTablesBase.h:15
EfexCSVTables
Definition: EfexCSVTables.h:6