12 #ifndef LMD_LMDSENSORALIGNMENT_PNDLMDALIGNMANAGER_H_ 13 #define LMD_LMDSENSORALIGNMENT_PNDLMDALIGNMANAGER_H_ 17 #include <boost/property_tree/ptree.hpp> 18 #include <boost/property_tree/json_parser.hpp> 25 #include <TGeoMatrix.h> 33 typedef std::map<int, PndLmdSensorAligner>::iterator mapIt;
42 std::mutex geometryHelperMutex;
45 unsigned int maxThreads;
47 std::stringstream _info;
49 std::map<int, PndLmdSensorAligner> aligners;
50 std::map<int, bool> alignersFull;
53 std::vector<std::string> fileNames;
54 bool _singleAligner, _inCentimeters, enableHelperMatrix, _zIsTimestamp;
55 std::string outFilename, matrixOutDir, binaryPairFileDirectory;
59 vector<int> overlapIDs;
61 bool allAlignersFull();
73 static std::string makeBinaryPairFileName(
int overlapId = 0,
bool incentimeters =
true);
74 static std::string makeMatrixFileName(
int overlapId = 0,
bool incentimeters =
true);
76 void verbosePrint(std::string input,
int level = 3);
87 bool addFile(std::string filename);
106 void loadBar(
int current,
int total,
int resolution,
int width, std::string message =
"");
122 outFilename = filename;
127 static std::vector<std::vector<double>>
readFromCSVFile(std::string filename);
134 static int searchFiles(std::string curr_directory, std::vector<std::string> &list, std::string extension =
"",
bool includeSubDirs =
true);
140 static int searchDirectories(std::string curr_directory, std::vector<std::string> &list,
bool includeSubDirs =
true);
141 static bool mkdir(std::string path);
142 static bool exists(std::string file);
143 static std::vector<std::string>
findRegex(std::string source, std::string regex);
158 static bool writeConfigFile(boost::property_tree::ptree configTree, std::string filename,
bool replaceExisting =
true);
161 static boost::property_tree::ptree
readConfigFile(std::string filename);
167 _verboseLevel = verbose;
168 for (
auto &a : aligners) {
169 a.second.verboseLevel(_verboseLevel);
175 if (NmaxThreads < 0 || NmaxThreads > 256) {
178 maxThreads = NmaxThreads;
void setMatrixOutDir(std::string directory)
bool addFile(std::string filename)
void setInCentimeters(bool inCentimeters)
static int searchFiles(std::string curr_directory, std::vector< std::string > &list, std::string extension="", bool includeSubDirs=true)
void setOutFilename(const std::string &filename)
bool checkForLmdMatrixFiles()
virtual ~PndLmdAlignManager()
static bool writeMatrix(Matrix &mat, std::string filename)
static std::vector< std::string > findRegex(std::string source, std::string regex)
static bool exists(std::string file)
void setSingleAligner(bool singleAligner)
bool readPairsFromBinaryFilesAndAlign()
static Matrix readMatrix(std::string filename)
static TGeoHMatrix readTGeoHMatrix(std::string filename)
void setZasTimestamp(bool timestamp)
static bool writeConfigFile(boost::property_tree::ptree configTree, std::string filename, bool replaceExisting=true)
bool checkForBinaryFiles()
void loadBar(int current, int total, int resolution, int width, std::string message="")
void setMaxThreads(int NmaxThreads=0)
void verboseLevel(int verbose)
static std::vector< std::vector< double > > readFromCSVFile(std::string filename)
bool writePairsToBinaryFiles()
void setBinaryPairFileDirectory(const std::string &directory)
static int searchDirectories(std::string curr_directory, std::vector< std::string > &list, bool includeSubDirs=true)
static Matrix castTGeoHMatrixToMatrix(const TGeoHMatrix &matrix)
static void clearScreen()
static bool mkdir(std::string path)
int addFilesFromDirectory(std::string directory, int maxFiles=0)
void setMaxPairs(int maxPairs)
static boost::property_tree::ptree readConfigFile(std::string filename)