ATLAS Offline Software
Loading...
Searching...
No Matches
HanOutput.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef dqiHanOutput_h
6#define dqiHanOutput_h
7
8#include <TFile.h>
9#include <TTree.h>
10
11#include <map>
12#include <memory>
13#include <nlohmann/json.hpp>
14#include <set>
15#include <string>
16
17#include "dqm_core/Output.h"
19
20class TDirectory;
21
22namespace dqm_core
23{
24 class Region;
25}
26
27namespace dqi
28{
29
30 // Converts sequense, containing TDirectories and strings to JSON file
34 nlohmann::ordered_json to_JSON(TSeqCollection* tseq);
35
36 class HanConfig;
37
38 class ATLAS_NOT_THREAD_SAFE HanOutput : public dqm_core::Output
39 {
40 public:
41 enum Version { V1 = 1, V2 = 2 };
42
44
45 typedef std::map<std::string, TSeqCollection*> DQOutputMap_t;
46
47 HanOutput(const std::string& rootFileName, DQOutputMap_t* outputMap, TSeqCollection* outputList);
48
49 virtual ~HanOutput();
50
51 virtual void addListener(const std::string& name, dqm_core::OutputListener* listener);
52
53 virtual void addListener(const dqm_core::Parameter& parameter, dqm_core::OutputListener* listener);
54
55 virtual void publishResult(const std::string& name, const dqm_core::Result& result);
56
57 virtual void flushResults();
58
59 virtual void activate();
60
61 virtual void deactivate();
62
63 virtual void setConfig(HanConfig* config);
64
65 virtual void publishMissingDQPars();
66
67 virtual void setInput(TDirectory* input);
68
69 protected:
70 class Result
71 {
72 public:
73 Result(TDirectory* dir);
74 Result(const Result&) = delete;
75 Result& operator=(const Result&) = delete;
76 virtual ~Result();
77 virtual void fill(const dqm_core::Result& result);
78 virtual void write();
79
80 protected:
81 void copyString(char* to, const std::string& from);
82 std::unique_ptr<TTree> m_result;
83 char* m_status;
84 static const int s_charArrSize;
85 };
86
88 {
89 public:
90 bool operator()(const dqm_core::Region* a, const dqm_core::Region* b) const;
91 };
92
93 typedef std::map<std::string, dqm_core::Region*> DQParMap_t;
94 typedef std::multimap<dqm_core::Region*, std::string, RegionNameComp> DQRegMap_t;
95 typedef std::map<dqm_core::Region*, int, RegionNameComp> DQRegCount_t;
96 typedef std::map<std::string, dqm_core::Result*> DQResultMap_t;
97 typedef std::set<std::string> DQParSet_t;
98
99 std::string m_fileName;
100 std::unique_ptr<TFile> m_file;
102
109
110 TSeqCollection* m_outputList;
113 TDirectory* m_input;
114
115 private:
116 HanOutput();
117 };
118
119} // namespace dqi
120
121#endif
ICscStripFitter::Result Result
static Double_t a
Define macros for attributes used to control the static checker.
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
bool operator()(const dqm_core::Region *a, const dqm_core::Region *b) const
virtual void write()
Result & operator=(const Result &)=delete
Result(TDirectory *dir)
void copyString(char *to, const std::string &from)
std::unique_ptr< TTree > m_result
Definition HanOutput.h:82
static const int s_charArrSize
Definition HanOutput.h:84
Result(const Result &)=delete
virtual void publishMissingDQPars()
virtual void setConfig(HanConfig *config)
std::map< std::string, TSeqCollection * > DQOutputMap_t
Definition HanOutput.h:45
virtual void activate()
DQParSet_t m_unpublishedDQPars
Definition HanOutput.h:103
std::unique_ptr< TFile > m_file
Definition HanOutput.h:100
HanConfig * m_config
Definition HanOutput.h:111
std::map< std::string, dqm_core::Result * > DQResultMap_t
Definition HanOutput.h:96
virtual void setInput(TDirectory *input)
std::map< dqm_core::Region *, int, RegionNameComp > DQRegCount_t
Definition HanOutput.h:95
DQResultMap_t m_dqResults
Definition HanOutput.h:107
virtual void deactivate()
std::set< std::string > DQParSet_t
Definition HanOutput.h:97
virtual void publishResult(const std::string &name, const dqm_core::Result &result)
TSeqCollection * m_outputList
Definition HanOutput.h:110
Version HanOutput_FileVersion
Definition HanOutput.h:43
std::multimap< dqm_core::Region *, std::string, RegionNameComp > DQRegMap_t
Definition HanOutput.h:94
virtual void flushResults()
DQParMap_t m_dqPars
Definition HanOutput.h:104
std::map< std::string, dqm_core::Region * > DQParMap_t
Definition HanOutput.h:93
DQRegCount_t m_dqRegCounts
Definition HanOutput.h:106
std::string m_fileName
Definition HanOutput.h:99
TDirectory * m_input
Definition HanOutput.h:113
HanOutput(const std::string &rootFileName, DQOutputMap_t *outputMap, TSeqCollection *outputList)
Definition HanOutput.cxx:95
bool m_retainUnpubData
Definition HanOutput.h:101
DQRegMap_t m_dqRegs
Definition HanOutput.h:105
DQParSet_t m_regexlist
Definition HanOutput.h:112
DQOutputMap_t * m_outputMap
Definition HanOutput.h:108
virtual void addListener(const std::string &name, dqm_core::OutputListener *listener)
nlohmann::ordered_json to_JSON(TSeqCollection *tseq)
Converts sequense, containing TDirectories and strings to JSON file.
void fill(H5::Group &out_file, size_t iterations)