gsystem
Loading...
Searching...
No Matches
loadMaterials.cc
Go to the documentation of this file.
1
8// gsystem
9#include "systemTextFactory.h"
10
11void GSystemTextFactory::loadMaterials(GSystem* system) {
12 // Materials file is optional; if missing, IN is nullptr and we simply skip.
13 auto IN = gSystemTextFileStream(system, GTEXTMATSTYPE);
14
15 if (IN != nullptr) {
16 log->info(1, "Loading materials for system ", system->getName(),
17 " using factory ", system->getFactoryName());
18
19 // Each non-empty line is a serialized parameter row separated by '|'.
20 while (!IN->eof()) {
21 std::string dbline;
22 getline(*IN, dbline);
23
24 if (dbline.empty()) { continue; }
25
26 // Extract gmaterial parameters.
27 std::vector<std::string> gmaterialsPars =
29 system->addGMaterial(gmaterialsPars);
30 }
31
32 IN->close();
33 }
34}
std::shared_ptr< GLogger > log
void info(int level, Args &&... args) const
Represents a single detector system (e.g., calorimeter, tracker).
Definition gsystem.h:32
void addGMaterial(std::vector< std::string > pars)
Build and add a material from a serialized parameter list.
Definition gsystem.cc:161
std::string getFactoryName() const
Definition gsystem.h:109
std::string getName() const
Definition gsystem.h:108
vector< string > getStringVectorFromStringWithDelimiter(const string &input, const string &x)
#define GTEXTMATSTYPE