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 
22 class PndTrackingQAAna : public TObject {
23  public:
25  PndTrackingQAAna(std::string fileName) : fQAFileName(fileName){};
26  PndTrackingQAAna(TFile *file) : fFile(file){};
27 
28  void SetQAFileName(TString fileName) { fQAFileName = fileName; }
29 
30  void SetSaveHistosAsPictures(bool val) { fSaveHistosAsPictures = val; }
31  void SetPicturePrefix(TString prefix) { fPicturePrefix = prefix; };
32  void SetPictureFormat(TString format) { fPictureFormat = format; }
33  void SetWorkdir(TString workdir) { fWorkdir = workdir; }
34 
35  PndTrackingQASummary *GetTrackingQASummary() const { return fSummary; }
36  std::map<std::string, double> GetResults() const { return fResults; }
37  std::vector<std::string> GetPngFilenames() const { return fPngFiles; }
38  void FillResults();
39 
40  virtual ~PndTrackingQAAna();
41 
42  void Init();
43  void AnalyseQAData();
44 
45  protected:
46  void InitHistograms();
47  void LabelQualityHistogram(TH1 *h);
48  void FillQualityHisto();
49  void FillIdealHistos();
50  void FillMomHistos();
51  void FillEfficiencyHistos();
52  virtual void SetQualityHisto(TH1 *histo, Bool_t relative, Int_t base = 1);
53  void SaveHistoVectorAsPicture(std::vector<TH1 *>, TString identifier, int col, int row, TString options = "");
54  void SaveHistosAsPicture();
55  void SetEfficiencyVsHisto(TH1D *h1, TString selector, TCut cut = "", Double_t hitEfficiency = 0.7);
56  std::array<Double_t, 6> DoubleGaussFit(TH1 *hisDiff);
57  double FitMomHistos(std::string histoName);
58 
59  private:
60  std::map<std::string, TH1 *> fHistos;
61  std::map<std::string, double> fResults;
62  std::vector<std::string> fPngFiles;
63  std::string fQAFileName;
64  TFile *fFile = nullptr;
65  TFile *fOutputFile = nullptr;
66  TTree *fTree = nullptr;
67  PndTrackingQASummary *fSummary = nullptr;
68 
69  TString fPicturePrefix = "test";
70  TString fPictureFormat = "gif";
71 // bool fCDashOutput = true;
72  bool fSaveHistosAsPictures = true;
73  TString fWorkdir = "."; // directory to tell cdash where to find png output files
74  bool fPngOutputSuccessful = true;
75 
76  ClassDef(PndTrackingQAAna, 1);
77 };
double FitMomHistos(std::string histoName)
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()