FairRoot/PandaRoot
PndLmdAlignQA.h
Go to the documentation of this file.
1 /*
2  * PndLmdAlignQA.h
3  *
4  * Created on: Jul 6, 2015
5  * Author: Roman Klasen, roklasen@uni-mainz.de or klasen@kph.uni-mainz.de
6  *
7  * helper class that plots stuff, use one instance for desired plot, then delete and create new.
8  */
9 
10 #ifndef LMD_LMDSENSORALIGNMENT_PNDLMDALIGNQA_H_
11 #define LMD_LMDSENSORALIGNMENT_PNDLMDALIGNQA_H_
12 
13 #include <sstream>
14 #include <string>
15 #include <vector>
16 
17 #include <PndLmdAlignManager.h>
18 #include <PndLmdGeometryHelper.h>
19 
20 #include <matrix.h>
21 
22 struct histParams{
24  double scaleFactor=1.0;
25  std::string fileName, title, xtitle, ytitle, path;
26  int bins=30;
27  double xMin=-1;
28  double xMax=-1;
29  int vectorIndex=0;
30 };
31 
33 
34 private:
35 
36  std::vector<std::string> _inputFiles;
38  double infoMomentum;
44 
45  //contains number of pairs on overlap area
46  std::map<int, int> matrixInfo;
47 
48  void createHist(std::vector<std::vector<double> > &vec, histParams &parameters);
49 
50  void histPixelDistances(int sen1, int sen2, bool aligned=true);
51  double calculateOverlappingArea(int id1, int id2, bool aligned=true);
52 
53  int noOfPairs(int overlapID);
54 
55 public:
56 
57  PndLmdAlignQA();
58  virtual ~PndLmdAlignQA();
59  void init();
60 
61  // ========== QA functions
62  //TODO: reimplement these with new geometry
63  void checkCyclicMatrices(bool inCentimeters=true);
64  void checkCombinedMatrices(bool inCentimeters=true);
65  void plotCMvsPXmatrices();
66  void plotMatrixresiduals(bool inCentimeters=true);
69 
70  // ========== end of QA
71 
72 
73  // ========== helper functions
74 
76  void readMatrixInfo();
77  void checkIOpaths();
78  bool checkForMatrixFiles();
80 
81  // ========== end of helper functions
82 
83 
84 
85  // ========== settings for this QA task
86 
87  void setInCentimeters(bool inCentimeters) { this->_inCentimeters = inCentimeters; }
88  void setLmdMatPath(const std::string& path) { LMDMatPath = path; }
89  void setBinaryMatPath(const std::string& path) { binaryMatPath = path; }
90  void setPdfOutPath(const std::string& path) { pdfOutPath = path; }
91  void setAlignedGeometry(bool aligned) { alignOptionBool = aligned; }
92  void setPairsRequired(int number) { pairsRequired = number; }
93  void setOutputPath(std::string path){ outputPath = path; }
94  void setInfoAbsolute(bool info) { infoAbsolute = info; }
95  void setInfoMomentum(double info) { infoMomentum = info; }
96  void setInfoRelative(bool info) { infoRelative = info; }
97 
98  // ========== end of settings
99 };
100 
101 #endif /* LMD_LMDSENSORALIGNMENT_PNDLMDALIGNQA_H_ */
double infoMomentum
Definition: PndLmdAlignQA.h:38
void plotCMvsPXmatrices()
std::vector< std::string > _inputFiles
Definition: PndLmdAlignQA.h:36
void setPdfOutPath(const std::string &path)
Definition: PndLmdAlignQA.h:90
void setInfoRelative(bool info)
Definition: PndLmdAlignQA.h:96
std::string title
Definition: PndLmdAlignQA.h:25
void setInfoMomentum(double info)
Definition: PndLmdAlignQA.h:95
virtual ~PndLmdAlignQA()
void setInfoAbsolute(bool info)
Definition: PndLmdAlignQA.h:94
bool checkForMatrixFiles()
PndLmdAlignManager manager
Definition: PndLmdAlignQA.h:42
void calculateOverlapingAreas()
double calculateOverlappingArea(int id1, int id2, bool aligned=true)
std::string LMDMatPath
Definition: PndLmdAlignQA.h:37
double scaleFactor
Definition: PndLmdAlignQA.h:24
int noOfPairs(int overlapID)
std::map< int, int > matrixInfo
Definition: PndLmdAlignQA.h:46
void plotPXvsCMmatricesResiduals()
double xMin
Definition: PndLmdAlignQA.h:27
void calculatePixelDistancesFrontToBack()
void setLmdMatPath(const std::string &path)
Definition: PndLmdAlignQA.h:88
std::string pdfOutPath
Definition: PndLmdAlignQA.h:37
void checkCyclicMatrices(bool inCentimeters=true)
void setInCentimeters(bool inCentimeters)
Definition: PndLmdAlignQA.h:87
void setOutputPath(std::string path)
Definition: PndLmdAlignQA.h:93
double xMax
Definition: PndLmdAlignQA.h:28
void histPixelDistances(int sen1, int sen2, bool aligned=true)
std::string ytitle
Definition: PndLmdAlignQA.h:25
PndLmdGeometryHelper * helper
Definition: PndLmdAlignQA.h:43
void setPairsRequired(int number)
Definition: PndLmdAlignQA.h:92
void checkIOpaths()
void setBinaryMatPath(const std::string &path)
Definition: PndLmdAlignQA.h:89
std::string path
Definition: PndLmdAlignQA.h:25
bool alignOptionBool
Definition: PndLmdAlignQA.h:40
std::string outputPath
Definition: PndLmdAlignQA.h:37
std::string xtitle
Definition: PndLmdAlignQA.h:25
void checkCombinedMatrices(bool inCentimeters=true)
void createHist(std::vector< std::vector< double > > &vec, histParams &parameters)
std::string binaryMatPath
Definition: PndLmdAlignQA.h:37
void plotMatrixresiduals(bool inCentimeters=true)
void histogramPairDistances()
bool printCMPXinPathName
Definition: PndLmdAlignQA.h:23
dble_vec_t vec[12]
Definition: ranlxd.cxx:380
void setAlignedGeometry(bool aligned)
Definition: PndLmdAlignQA.h:91
std::string fileName
Definition: PndLmdAlignQA.h:25