Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MvtxMonDraw.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file MvtxMonDraw.h
1 #ifndef MVTX_MVTXMONDRAW_H
2 #define MVTX_MVTXMONDRAW_H
3 
4 #include <onlmon/OnlMonDraw.h>
5 
6 #include <string> // for allocator, string
7 #include <TColor.h>
8 
9 class OnlMonDB;
10 class TCanvas;
11 class TGraphErrors;
12 class TPad;
13 class OnlMonClient;
14 class TPaveText;
15 class TH1;
16 class TH2Poly;
17 
18 
19 class MvtxMonDraw : public OnlMonDraw
20 {
21  public:
23 
24  ~MvtxMonDraw() override {}
25 
26  int Init() override;
27  int Draw(const std::string &what = "ALL") override;
28  int MakeHtml(const std::string &what = "ALL") override;
29  int SavePlot(const std::string &what = "ALL", const std::string &type = "png") override;
30 
31  const static int NSTAVE = 48;
32  const static int NCHIP = 9;
33  const static int NLAYERS = 3;
34  static constexpr int NFlags = 3;
35  const int NStaves[NLAYERS] = { 12, 16, 20 };
36  const int StaveBoundary[NLAYERS + 1] = { 0, 12, 28, 48};
37  std::string mLaneStatusFlag[NFlags] = { "WARNING", "ERROR", "FAULT" };
38  int PublishHistogram(TCanvas *c, int pad, TH1 *h, const char* opt = "");
39  int PublishHistogram(TPad *p, TH1 *h, const char* opt = "");
40  //template <typename T>
41  //int PublishHistogram(TPad *p, int pad, T h, const char* opt = "");
42  int PublishHistogram(TPad *p, int pad, TH1 *h, const char* opt = "");
43  void PublishStatistics(TCanvas *c,OnlMonClient *cl );
44  template <typename T>
45  int MergeServers(T *h);
46  void formatPaveText(TPaveText* aPT, float aTextSize, Color_t aTextColor, short aTextAlign, const char* aText);
47  enum Quality {Good, Medium, Bad};
48  std::vector<Quality> analyseForError(TH2Poly* over1, TH2Poly* over2,TH2Poly* over3, TH1* decErr);
49  void DrawPave(std::vector<MvtxMonDraw::Quality> status, int position, const char* what = "");
50 
51  private:
52 static const int NFlx = 6;
53  static constexpr int NCols = 1024;
54  static constexpr int NRows = 512;
55  static constexpr int NPixels = NRows * NCols;
56  const int chipmapoffset[3] = { 0, 12, 28};
57 
58  int MakeCanvas(const std::string &name);
59  int DrawFirst(const std::string &what = "ALL");
60  int DrawSecond(const std::string &what = "ALL");
61  int DrawHitMap(const std::string &what = "ALL");
62  int DrawGeneral(const std::string &what = "ALL");
63  int DrawFEE(const std::string &what = "ALL");
64  int DrawOCC(const std::string &what = "ALL");
65  int DrawFHR(const std::string &what = "ALL");
66  int DrawHistory(const std::string &what = "ALL");
67  time_t getTime();
68  int TimeOffsetTicks = -1;
69  TCanvas *TC[6] = {nullptr};
70  TPad *transparent[1] = {nullptr};
71  TPad *Pad[6] = {nullptr};
72  TGraphErrors *gr[6] = {nullptr};
73  OnlMonDB *dbvars[NFlx] = {nullptr};
74 
75 
76 
77 int maxbadchips = 2;
78 
79 
80 
81 };
82 
83 #endif /* MVTX_MVTXMONDRAW_H */