ATLAS Offline Software
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 
20 class TDirectory;
21 
22 namespace dqm_core
23 {
24  class Region;
25 }
26 
27 namespace 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 
39  {
40  public:
41  enum Version { V1 = 1, V2 = 2 };
42 
43  Version HanOutput_FileVersion = V2;
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
dqi::HanOutput::m_file
std::unique_ptr< TFile > m_file
Definition: HanOutput.h:100
dqi::HanOutput::DQResultMap_t
std::map< std::string, dqm_core::Result * > DQResultMap_t
Definition: HanOutput.h:96
get_generator_info.result
result
Definition: get_generator_info.py:21
dqi::HanOutput::DQParSet_t
std::set< std::string > DQParSet_t
Definition: HanOutput.h:97
ATLAS_NOT_THREAD_SAFE
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Definition: checker_macros.h:212
dqi::HanOutput::DQRegMap_t
std::multimap< dqm_core::Region *, std::string, RegionNameComp > DQRegMap_t
Definition: HanOutput.h:94
dqi::HanOutput::m_dqResults
DQResultMap_t m_dqResults
Definition: HanOutput.h:107
dqi::HanOutput
Definition: HanOutput.h:39
config
Definition: PhysicsAnalysis/AnalysisCommon/AssociationUtils/python/config.py:1
dqi::HanOutput::m_outputMap
DQOutputMap_t * m_outputMap
Definition: HanOutput.h:108
dqm_core
Definition: HanConfig.h:31
dqi::HanOutput::RegionNameComp
Definition: HanOutput.h:88
dqi::HanOutput::m_unpublishedDQPars
DQParSet_t m_unpublishedDQPars
Definition: HanOutput.h:103
dqi::HanOutput::Result::Result
Result(const Result &)=delete
dqi::HanOutput::Result::m_status
char * m_status
Definition: HanOutput.h:83
Result
ICscStripFitter::Result Result
Definition: CalibCscStripFitter.cxx:13
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
python.ByteStreamConfig.write
def write
Definition: Event/ByteStreamCnvSvc/python/ByteStreamConfig.py:248
Region
Region
Definition: TrigL2HitResidual.h:14
dqi::HanOutput::m_fileName
std::string m_fileName
Definition: HanOutput.h:99
beamspotman.dir
string dir
Definition: beamspotman.py:623
dqi::HanOutput::m_dqPars
DQParMap_t m_dqPars
Definition: HanOutput.h:104
dqi::HanOutput::Result
Definition: HanOutput.h:71
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
dqi::HanOutput::Result::s_charArrSize
static const int s_charArrSize
Definition: HanOutput.h:84
CxxUtils::to
CONT to(RANGE &&r)
Definition: ranges.h:32
dqi::HanOutput::m_dqRegs
DQRegMap_t m_dqRegs
Definition: HanOutput.h:105
dqi::HanOutput::Version
Version
Definition: HanOutput.h:41
a
TList * a
Definition: liststreamerinfos.cxx:10
lumiFormat.fill
fill
Definition: lumiFormat.py:111
dqi::HanConfig
Definition: HanConfig.h:45
skel.Output
Output
Definition: skel.ABtoEVGEN.py:112
dqi::HanOutput::m_retainUnpubData
bool m_retainUnpubData
Definition: HanOutput.h:101
dqi::to_JSON
nlohmann::ordered_json to_JSON(TSeqCollection *tseq)
Converts sequense, containing TDirectories and strings to JSON file.
Definition: HanOutput.cxx:535
dqi::HanOutput::m_input
TDirectory * m_input
Definition: HanOutput.h:113
dqi::HanOutput::Result::m_result
std::unique_ptr< TTree > m_result
Definition: HanOutput.h:82
dqi::HanOutput::m_config
HanConfig * m_config
Definition: HanOutput.h:111
dqi::HanOutput::DQOutputMap_t
std::map< std::string, TSeqCollection * > DQOutputMap_t
Definition: HanOutput.h:45
dqi::HanOutput::DQParMap_t
std::map< std::string, dqm_core::Region * > DQParMap_t
Definition: HanOutput.h:93
checker_macros.h
Define macros for attributes used to control the static checker.
dqi
Definition: CompositeAlgorithm.h:16
dqi::HanOutput::m_dqRegCounts
DQRegCount_t m_dqRegCounts
Definition: HanOutput.h:106
dqi::HanOutput::m_outputList
TSeqCollection * m_outputList
Definition: HanOutput.h:110
dqi::HanOutput::m_regexlist
DQParSet_t m_regexlist
Definition: HanOutput.h:112
dqi::HanOutput::DQRegCount_t
std::map< dqm_core::Region *, int, RegionNameComp > DQRegCount_t
Definition: HanOutput.h:95
dqi::HanOutput::Result::operator=
Result & operator=(const Result &)=delete