/* * PndLmdAlignQA.h * * Created on: Jul 6, 2015 * Author: Roman Klasen, roklasen@uni-mainz.de or klasen@kph.uni-mainz.de * * helper class that plots stuff, use one instance for desired plot, then delete and create new. */ #ifndef LMD_LMDSENSORALIGNMENT_PNDLMDALIGNQA_H_ #define LMD_LMDSENSORALIGNMENT_PNDLMDALIGNQA_H_ #include #include #include #include #include enum runParameter{kNormal, kPlotByOverlapID, kPlotByModule, kPlotCMMatrixResiduals, kPlotPXMatrixResiduals, kPlotCMvsPX, kPlotPXvsCMResiduals}; struct histParams{ double scaleFactor=1.0; std::string fileName; std::string title; std::string xtitle; std::string ytitle; std::string path; int bins=50; double xMin=-1; double xMax=-1; int vectorIndex=0; runParameter runParam = kNormal; }; class PndLmdAlignQA { private: std::vector > shitIds; std::vector _inputFiles; std::string _outputPath, _matrixDir; double infoMomentum; bool infoAbsolute, infoRelative, byPlane, _inCentimeters, _enableHelperMatrix; int curPlane; PndLmdAlignManager manager; //contains number of pairs on overlap area std::map matrixInfo; void histDeltaCorrection(int id1, int id2, std::vector > &vec); void createThreeHistsVeryDirty(int id1, int id2, int module, std::vector > &vec, runParameter param); void createHist(std::vector > &vec, histParams ¶meters); int noOfPairs(int id1, int id2); //get matrix residuals for matrix id1->id2 from icp and target matrix Matrix getMatrixResiduals(int id1, int id2); int _signerrors; PndLmdDim *dimension; public: void readMatrixInfo(); PndLmdAlignQA(); virtual ~PndLmdAlignQA(); void init(); void setOutputPath(std::string path){ _outputPath = path; } void setInfoAbsolute(bool info) { infoAbsolute = info; } void setInfoMomentum(double info) { infoMomentum = info; } void setInfoRelative(bool info) { infoRelative = info; } void checkIOpaths(); bool checkForMatrixFiles(); void compareMatrices(runParameter param=kNormal); void compareCombinedMatrices(); void setInCentimeters(bool inCentimeters) { this->_inCentimeters = inCentimeters; } void setCorrection(bool correction) { _enableHelperMatrix = correction; } void setMatrixDir(const std::string& matrixDir) { _matrixDir = matrixDir; } }; #endif /* LMD_LMDSENSORALIGNMENT_PNDLMDALIGNQA_H_ */