ATLAS Offline Software
Loading...
Searching...
No Matches
CoolMdt.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//*************************************************
6// Class for the MDT interface with the COOL DB
7// author Monica Verducci monica.verducci@cern.ch
8//************************************************
9
10#ifndef dqutilsCoolMdt_h
11#define dqutilsCoolMdt_h
12
13// Protect CINT from some system definitions that cause problems
14#ifndef __CINT__
15//COOL API include files (CoolKernel)
16 #include "CoolKernel/pointers.h"
17 #include "CoolKernel/ValidityKey.h"
18#else
19namespace cool {
20 class IDatabasePtr;
21 class IFolderPtr;
22}
23#endif
24
25#include "TObject.h"
26//CORAL API include files
27#include "CoralBase/AttributeList.h"
28
29//COOL API include files (CoolApplication)
30#include "CoolApplication/Application.h"
31// --> limits.h is needed for CoolKernel/types.h
32#include <limits.h>
33#include "CoolKernel/types.h"
34#include "CoolKernel/ChannelId.h"
35#include "CoolKernel/RecordSpecification.h"
36#include "CoolKernel/ChannelSelection.h"
37
38#include <string>
39
40
41namespace coral {
42 class AttributeList;
43}
44
45namespace cool {
46 class RecordSpecification;
47 class ChannelSelection;
48}
49
50
51namespace dqutils {
52 class CoolMdt: public cool::Application, public TObject {
53 private:
54// Protect CINT from some system definitions that cause problems
55// CINT does not need to know about these private variables
56#ifndef __CINT__
57 cool::ValidityKey m_since;
58 cool::ValidityKey m_until;
59 cool::IDatabasePtr m_coolDb;
60 cool::IFolderPtr m_coolFolder;
62#endif
63 public:
64 // Connects to the database. Throws a "DatabaseDoesNotExis" exception if database does not exist.
65 cool::IDatabasePtr coolDbInstance(const std::string& dbStr, bool readOnly);
66
67
68 // Browses the COOL folder. Throws a "FolderNotFound" exception if folder does not exist.
69 cool::IFolderPtr coolFolderInstance(const std::string& folderStr);
70 // Various methods to set and print the intervall of validity.
71
72 void initialize();
73 void coolDbFolder(const std::string& dbStr, const std::string& folderStr);
74 void setSince(cool::Int64 run, cool::Int64 lumi);
75 void setUntil(cool::Int64 run, cool::Int64 lumi);
76 void printIOV();
77 void setIOV(cool::Int64 runS, cool::Int64 lumiS, cool::Int64 runU, cool::Int64 lumiU);
78 void setIOV(cool::Int64 run);
79
80 // Methods needed to come up to COOL framework.
81 cool::RecordSpecification createSpecDataDead();
82 cool::RecordSpecification createSpecDataNoisy();
83 coral::AttributeList createPayloadDataNoisy(const std::string& ChamberName,
84 const std::string& NoisyMultilayer,
85 const std::string& NoisyLayer,
86 const std::string& NoisyMezz,
87 const std::string& NoisyAsd,
88 const std::string& NoisyTube,
89 const cool::RecordSpecification& spec);
90 coral::AttributeList createPayloadDataDead(const std::string& ChamberName,
91 const std::string& DeadMultilayer,
92 const std::string& DeadLayer,
93 const std::string& DeadMezz,
94 const std::string& DeadAsd,
95 const std::string& DeadTube,
96 const cool::RecordSpecification& spec);
97
98 // Constructors and Destructors.
99 void CoolOpen(const std::string& dbStr);
100
101 //CoolMdt();
102 virtual ~CoolMdt ();
103
104
105 void dump(cool::ChannelSelection selection);
106 std::string dumpField(cool::ChannelId channelId, const std::string & field);
107 int dumpCode(const std::string& channelName);
108
109 void dumpall();
110
111 void insertNoisyFlag(cool::Int64 run,
112 cool::ChannelId channelId,
113 const std::string& ChamberName,
114 const std::string& NoisyMultilayer,
115 const std::string& NoisyLayer,
116 const std::string& NoisyMezz,
117 const std::string& NoisyAsd,
118 const std::string& NoisyTube);
119 void insertNoisyFlag_withTag(cool::Int64 run,
120 cool::ChannelId channelId,
121 const std::string& ChamberName,
122 const std::string& NoisyMultilayer,
123 const std::string& NoisyLayer,
124 const std::string& NoisyMezz,
125 const std::string& NoisyAsd,
126 const std::string& NoisyTube,
127 const std::string& cool_tag);
128
129 void insertDeadFlag(cool::Int64 run,
130 cool::ChannelId channelId,
131 const std::string& ChamberName,
132 const std::string& DeadMultilayer,
133 const std::string& DeadLayer,
134 const std::string& DeadMezz,
135 const std::string& DeadAsd,
136 const std::string& DeadTube);
137 void insertDeadFlag_withTag(cool::Int64 run,
138 cool::ChannelId channelId,
139 const std::string& ChamberName,
140 const std::string& DeadMultilayer,
141 const std::string& DeadLayer,
142 const std::string& DeadMezz,
143 const std::string& DeadAsd,
144 const std::string& DeadTube,
145 const std::string& cool_tag);
146
147 cool::IFolderPtr getCoolFolder();
148 cool::IDatabasePtr getCoolDb();
149
150
151 // Needed for the ROOT interface.
152 ClassDef(CoolMdt, 0) // A class for modifying DQ info in the COOL database
153 };
154}
155
156#endif
cool::ValidityKey m_until
Definition CoolMdt.h:58
virtual ~CoolMdt()
cool::IFolderPtr m_coolFolder
Definition CoolMdt.h:60
coral::AttributeList createPayloadDataNoisy(const std::string &ChamberName, const std::string &NoisyMultilayer, const std::string &NoisyLayer, const std::string &NoisyMezz, const std::string &NoisyAsd, const std::string &NoisyTube, const cool::RecordSpecification &spec)
bool m_fist_folder
Definition CoolMdt.h:61
void insertNoisyFlag(cool::Int64 run, cool::ChannelId channelId, const std::string &ChamberName, const std::string &NoisyMultilayer, const std::string &NoisyLayer, const std::string &NoisyMezz, const std::string &NoisyAsd, const std::string &NoisyTube)
void coolDbFolder(const std::string &dbStr, const std::string &folderStr)
void insertDeadFlag(cool::Int64 run, cool::ChannelId channelId, const std::string &ChamberName, const std::string &DeadMultilayer, const std::string &DeadLayer, const std::string &DeadMezz, const std::string &DeadAsd, const std::string &DeadTube)
std::string dumpField(cool::ChannelId channelId, const std::string &field)
void setSince(cool::Int64 run, cool::Int64 lumi)
cool::IDatabasePtr coolDbInstance(const std::string &dbStr, bool readOnly)
void insertDeadFlag_withTag(cool::Int64 run, cool::ChannelId channelId, const std::string &ChamberName, const std::string &DeadMultilayer, const std::string &DeadLayer, const std::string &DeadMezz, const std::string &DeadAsd, const std::string &DeadTube, const std::string &cool_tag)
cool::RecordSpecification createSpecDataNoisy()
int dumpCode(const std::string &channelName)
cool::IDatabasePtr getCoolDb()
void CoolOpen(const std::string &dbStr)
void setIOV(cool::Int64 runS, cool::Int64 lumiS, cool::Int64 runU, cool::Int64 lumiU)
cool::IDatabasePtr m_coolDb
Definition CoolMdt.h:59
cool::IFolderPtr coolFolderInstance(const std::string &folderStr)
void insertNoisyFlag_withTag(cool::Int64 run, cool::ChannelId channelId, const std::string &ChamberName, const std::string &NoisyMultilayer, const std::string &NoisyLayer, const std::string &NoisyMezz, const std::string &NoisyAsd, const std::string &NoisyTube, const std::string &cool_tag)
cool::RecordSpecification createSpecDataDead()
void setIOV(cool::Int64 run)
void setUntil(cool::Int64 run, cool::Int64 lumi)
cool::IFolderPtr getCoolFolder()
coral::AttributeList createPayloadDataDead(const std::string &ChamberName, const std::string &DeadMultilayer, const std::string &DeadLayer, const std::string &DeadMezz, const std::string &DeadAsd, const std::string &DeadTube, const cool::RecordSpecification &spec)
cool::ValidityKey m_since
Definition CoolMdt.h:57
void dump(cool::ChannelSelection selection)
const std::string selection
int run(int argc, char *argv[])