PandaRoot
PndTrackingQAAna.h
Go to the documentation of this file.
1 
8 #pragma once
9 
10 #include "PndTrackingQASummary.h"
11 
12 #include <TH1D.h>
13 #include <TFile.h>
14 #include <TTree.h>
15 #include <TString.h>
16 #include <TCut.h>
17 
18 #include <map>
19 #include <string>
20 
21 class PndTrackingQAAna : public TObject {
22  public:
24  PndTrackingQAAna(std::string fileName) : fQAFileName(fileName){};
25  PndTrackingQAAna(TFile *file) : fFile(file){};
26 
27  void SetQAFileName(TString fileName) { fQAFileName = fileName; }
28 
29  void SetSaveHistosAsPictures(bool val) { fSaveHistosAsPictures = val; }
30  void SetPicturePrefix(TString prefix) { fPicturePrefix = prefix; };
31  void SetPictureFormat(TString format) { fPictureFormat = format; }
32  void SetWorkdir(TString workdir) { fWorkdir = workdir; }
33 
34  PndTrackingQASummary *GetTrackingQASummary() const { return fSummary; }
35  std::map<std::string, double> GetResults() const { return fResults; }
36  std::vector<std::string> GetPngFilenames() const { return fPngFiles; }
37  void FillResults();
38 
39  virtual ~PndTrackingQAAna();
40 
41  void Init();
42  void AnalyseQAData();
43 
44  protected:
45  void InitHistograms();
46  void LabelQualityHistogram(TH1 *h);
47  void FillQualityHisto();
48  void FillIdealHistos();
49  void FillMomHistos();
50  void FillEfficiencyHistos();
51  virtual void SetQualityHisto(TH1 *histo, Bool_t relative, Int_t base = 1);
52  void SaveHistoVectorAsPicture(std::vector<TH1 *>, TString identifier, int col, int row, TString options = "");
53  void SaveHistosAsPicture();
54  void SetEfficiencyVsHisto(TH1D *h1, TString selector, TCut cut = "", Double_t hitEfficiency = 0.7);
55  std::array<Double_t, 6> DoubleGaussFit(TH1 *hisDiff);
56 
57  private:
58  std::map<std::string, TH1 *> fHistos;
59  std::map<std::string, double> fResults;
60  std::vector<std::string> fPngFiles;
61  std::string fQAFileName;
62  TFile *fFile = nullptr;
63  TFile *fOutputFile = nullptr;
64  TTree *fTree = nullptr;
65  PndTrackingQASummary *fSummary = nullptr;
66 
67  TString fPicturePrefix = "test";
68  TString fPictureFormat = "gif";
69 // bool fCDashOutput = true;
70  bool fSaveHistosAsPictures = true;
71  TString fWorkdir = "."; // directory to tell cdash where to find png output files
72  bool fPngOutputSuccessful = true;
73 
74  ClassDef(PndTrackingQAAna, 1);
75 };
void SetSaveHistosAsPictures(bool val)
void SetPictureFormat(TString format)
PndTrackingQASummary * GetTrackingQASummary() const
void SetPicturePrefix(TString prefix)
void SetWorkdir(TString workdir)
std::vector< std::string > GetPngFilenames() const
void FillIdealHistos()
void SaveHistosAsPicture()
void SetEfficiencyVsHisto(TH1D *h1, TString selector, TCut cut="", Double_t hitEfficiency=0.7)
Generates track efficiency histo vs. a selected parameter.
void FillEfficiencyHistos()
virtual ~PndTrackingQAAna()
std::array< Double_t, 6 > DoubleGaussFit(TH1 *hisDiff)
std::map< std::string, double > GetResults() const
virtual void SetQualityHisto(TH1 *histo, Bool_t relative, Int_t base=1)
void LabelQualityHistogram(TH1 *h)
PndTrackingQAAna(std::string fileName)
void SaveHistoVectorAsPicture(std::vector< TH1 *>, TString identifier, int col, int row, TString options="")
PndTrackingQAAna(TFile *file)
void SetQAFileName(TString fileName)
void FillQualityHisto()