guts
gutilities.h
Go to the documentation of this file.
1 #pragma once
2 
3 // c++
4 #include <vector>
5 #include <string>
6 #include <map>
7 #include <string_view>
8 
9 // geant4
10 #include "G4Colour.hh"
11 
12 namespace gutilities {
13 
14 using std::string;
15 using std::vector;
16 using std::map;
17 
27 std::string removeLeadingAndTrailingSpacesFromString(const std::string& input);
28 
37 std::string removeAllSpacesFromString(const std::string& str);
38 
47 std::string getFileFromPath(const std::string& path);
48 
57 std::string getDirFromPath(const std::string& path);
58 
67 // TODO this function doesn't work
68 std::string getFullPathFromPath(const char* arg0);
69 
79 std::vector<std::string> getStringVectorFromString(const std::string& input);
80 
92 std::string replaceCharInStringWithChars(const std::string& input, const std::string& toReplace,
93  const std::string& replacement);
94 
95 
107 string replaceAllStringsWithString(const string& source, const string& from, const string& to);
108 
120 string fillDigits(const string& word, const string& c, int ndigits);
121 
132 double getG4Number(const string& v, bool warnIfNotUnit = false);
133 
143 double getG4Number(double input, const string& unit);
144 
154 vector<double> getG4NumbersFromStringVector(const vector<string>& vstring, bool warnIfNotUnit = false);
155 
165 vector<double> getG4NumbersFromString(const string& vstring, bool warnIfNotUnit = false);
166 
177 string parseFileAndRemoveComments(const string& filename, const string& commentChars = "#", int verbosity = 0);
178 
179 
190 string retrieveStringBetweenChars(const string& input, const string& firstDelimiter, const string& secondDelimiter);
191 
192 
202 vector<string> getStringVectorFromStringWithDelimiter(const string& input, const string& x);
203 
212 bool directoryExists(const std::string& path);
213 
214 
224 string searchForDirInLocations(const string& dirName, const vector<string>& possibleLocations);
225 
226 
236 bool hasExtension(const string& filename, const vector<string>& extensions);
237 
247 vector<string> getListOfFilesInDirectory(const string& dirName, const vector<string>& extensions);
248 
257 string convertToLowercase(const string& str);
258 
269 template <class KEY, class VALUE>
270 vector<KEY> getKeys(const map<KEY, VALUE>& map);
271 
279  sphere
280 };
281 
292 randomModel stringToRandomModel(const std::string& str);
293 
294 inline constexpr const char* to_string(randomModel m) noexcept {
295  switch (m) {
296  case uniform: return "uniform";
297  case gaussian: return "gaussian";
298  case cosine: return "cosine";
299  case sphere: return "sphere";
300  }
301  return "<unknown>";
302 }
303 
313 G4Colour makeColour(std::string_view code);
314 
315 };
string replaceAllStringsWithString(const string &source, const string &from, const string &to)
Replaces all occurrences of a substring with another string.
Definition: gutilities.cc:121
double getG4Number(const string &v, bool warnIfNotUnit)
Converts a string representation of a number with optional units to a double.
Definition: gutilities.cc:158
bool hasExtension(const std::string &filename, const std::vector< std::string > &extensions)
Checks if a filename has one of the specified extensions.
Definition: gutilities.cc:350
vector< double > getG4NumbersFromString(const string &vstring, bool warnIfNotUnit)
Converts a comma-separated string of numbers with units to a vector of doubles.
Definition: gutilities.cc:238
string removeAllSpacesFromString(const std::string &str)
Removes all spaces from a string.
Definition: gutilities.cc:32
vector< string > getStringVectorFromStringWithDelimiter(const string &input, const string &x)
Splits a string into a vector of substrings using a specified delimiter.
Definition: gutilities.cc:277
randomModel stringToRandomModel(const std::string &str)
Converts a string to a corresponding randomModel enum value.
Definition: gutilities.cc:395
constexpr const char * to_string(randomModel m) noexcept
Definition: gutilities.h:294
vector< string > getListOfFilesInDirectory(const string &dirName, const vector< string > &extensions)
Retrieves a list of files with specific extensions from a directory.
Definition: gutilities.cc:358
vector< double > getG4NumbersFromStringVector(const vector< string > &vstring, bool warnIfNotUnit)
Converts a vector of strings representing numbers with units to a vector of doubles.
Definition: gutilities.cc:229
string retrieveStringBetweenChars(const string &input, const string &firstDelimiter, const string &secondDelimiter)
Retrieves a substring between two specified delimiters in a string.
Definition: gutilities.cc:269
string replaceCharInStringWithChars(const std::string &input, const std::string &toReplace, const std::string &replacement)
Replaces all occurrences of specified characters in a string with another string.
Definition: gutilities.cc:111
string fillDigits(const string &word, const string &c, int ndigits)
Pads a string with a specified character until it reaches a desired length.
Definition: gutilities.cc:143
randomModel
Enumeration of random models.
Definition: gutilities.h:275
@ gaussian
Gaussian distribution.
Definition: gutilities.h:277
@ uniform
Uniform distribution.
Definition: gutilities.h:276
@ sphere
Sphere distribution.
Definition: gutilities.h:279
@ cosine
Cosine distribution.
Definition: gutilities.h:278
string getDirFromPath(const std::string &path)
Extracts the directory path from a given file path.
Definition: gutilities.cc:47
string convertToLowercase(const string &str)
Converts a string to lowercase.
Definition: gutilities.cc:378
bool directoryExists(const std::string &path)
Checks if a directory exists at the given path.
Definition: gutilities.cc:333
G4Colour makeColour(std::string_view code)
Convert a hex colour string to G4Colour.
Definition: gutilities.cc:409
vector< KEY > getKeys(const map< KEY, VALUE > &map)
Retrieves all keys from a map.
Definition: gutilities.cc:386
string removeLeadingAndTrailingSpacesFromString(const std::string &input)
Removes leading and trailing spaces and tabs from a string.
Definition: gutilities.cc:21
string getFullPathFromPath(const std::string &path)
Definition: gutilities.cc:67
string searchForDirInLocations(const string &dirName, const vector< string > &possibleLocations)
Searches for a directory within a list of possible locations.
Definition: gutilities.cc:341
string parseFileAndRemoveComments(const string &filename, const string &commentChars, int verbosity)
Parses a file and removes all lines containing specified comment characters.
Definition: gutilities.cc:243
string getFileFromPath(const std::string &path)
Extracts the filename from a given file path.
Definition: gutilities.cc:38
vector< std::string > getStringVectorFromString(const std::string &input)
Splits a string into a vector of strings using spaces as delimiters.
Definition: gutilities.cc:99