ATLAS Offline Software
Loading...
Searching...
No Matches
TRootCompare.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGVALTOOLS_TROOTCOMPARE_H
6#define TRIGVALTOOLS_TROOTCOMPARE_H
7
14
15#include "TFileLooper.h"
16#include "Rtypes.h"
17#include "TString.h"
18#include <vector>
19#include <string>
20
21class TFile;
22class TCanvas;
23class TKey;
24class TDirectory;
25
34class TRootCompare : public TFileLooper {
35 public:
36 enum ALG {BIN, CHI2, AXIS};
37
38 public:
39 TRootCompare() = default;
40 virtual ~TRootCompare();
41
42 virtual void processKey(TDirectory& dir, TKey& key);
43 virtual void beginJob();
44 virtual void endJob();
45
46 Bool_t setReferenceFile(const char* filename, const char* baseDir = 0);
47 Bool_t setOutputFile(const char* filename);
48 Bool_t setPsFile(const char* filename);
49 void setAlg(TRootCompare::ALG alg, Double_t threshold) {
51 }
52 void drawNormalized(Bool_t norm = kTRUE) { m_drawNormalized = norm; }
53 void drawDiff(Bool_t diff = kTRUE) { m_drawDiff = diff; }
54 void sortLabels(Bool_t sort = kTRUE) { m_sortLabels = sort; }
55
56 Int_t matchingHist() const { return m_histMatch; }
57 Int_t totalHist() const { return m_histTotal; }
58 Int_t missingHist() const { return m_histMissing; }
59
60 private:
61 Bool_t compareHist(const TH1& h, const TH1& href);
62 void sortAndDeflate(TH1& h);
63 void createDirectory(TFile* f, const char* dirpath);
64 void printCanvas(const char* filename);
65
66 private:
67 TFile* m_refFile{};
68 TFile* m_outFile{};
69 TString m_refRootDir{};
70 TString m_psFile{};
71 TCanvas* m_can{};
72
74 Double_t m_threshold{1e-6};
75 Int_t m_histMatch{};
76 Int_t m_histTotal{};
78 Bool_t m_drawNormalized{kFALSE};
79 Bool_t m_drawDiff{kTRUE};
80 Bool_t m_sortLabels{kTRUE};
81
82 std::vector<std::string> m_noMatch;
83
84};
85
86#endif
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
void diff(const Jet &rJet1, const Jet &rJet2, std::map< std::string, double > varDiff)
Difference between jets - Non-Class function required by trigger.
Definition Jet.cxx:631
TFileLooper class.
Header file for AthHistogramAlgorithm.
TFileLooper()=default
std::vector< std::string > m_noMatch
void drawNormalized(Bool_t norm=kTRUE)
TString m_refRootDir
void createDirectory(TFile *f, const char *dirpath)
TRootCompare()=default
void printCanvas(const char *filename)
virtual void processKey(TDirectory &dir, TKey &key)
Method called for every key.
void drawDiff(Bool_t diff=kTRUE)
Int_t missingHist() const
TFile * m_outFile
void setAlg(TRootCompare::ALG alg, Double_t threshold)
Bool_t compareHist(const TH1 &h, const TH1 &href)
Int_t m_histTotal
void sortAndDeflate(TH1 &h)
TFile * m_refFile
void sortLabels(Bool_t sort=kTRUE)
virtual void beginJob()
Int_t totalHist() const
Bool_t m_sortLabels
TCanvas * m_can
Int_t matchingHist() const
Double_t m_threshold
Bool_t m_drawNormalized
Bool_t setPsFile(const char *filename)
Int_t m_histMatch
virtual void endJob()
virtual ~TRootCompare()
Bool_t setReferenceFile(const char *filename, const char *baseDir=0)
Bool_t setOutputFile(const char *filename)
Bool_t m_drawDiff
TString m_psFile
Int_t m_histMissing