ATLAS Offline Software
Database
CoolConvUtilities
src
CoolTagInfo.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
// CoolTagInfo.cxx - implementation of AtlCoolCopy helper class
6
// Richard Hawkings, 29/2/08
7
8
#include "
CoolTagInfo.h
"
9
#include "CoolKernel/IFolder.h"
10
#include "CoolKernel/IFolderSet.h"
11
#include <iostream>
12
13
CoolTagInfo::CoolTagInfo
(
const
cool::IDatabasePtr&
db
,
const
std::string&
folder
,
14
const
std::string& destfolder,
15
const
std::string& sourcetag,
const
std::string& desttag,
16
const
std::string& taglabel)
17
: m_folder (destfolder),
18
m_tag (desttag)
19
{
20
if
(
db
->existsFolder(
folder
)) {
21
cool::IFolderPtr
fptr
=
db
->getFolder(
folder
);
22
m_desc
=
fptr
->tagDescription(sourcetag);
23
m_status
=
fptr
->tagLockStatus(sourcetag);
24
}
else
if
(
db
->existsFolderSet(
folder
)) {
25
cool::IFolderSetPtr
fptr
=
db
->getFolderSet(
folder
);
26
m_desc
=
fptr
->tagDescription(sourcetag);
27
m_status
=
fptr
->tagLockStatus(sourcetag);
28
}
else
{
29
m_desc
=
""
;
30
m_status
=cool::HvsTagLock::UNLOCKED;
31
std::cout <<
"Could not access tag information for folder "
<<
folder
<<
32
" tag "
<< sourcetag << std::endl;
33
}
34
// override description with input label if set
35
if
(!taglabel.empty())
m_desc
=taglabel;
36
}
37
38
bool
CoolTagInfo::write
(
const
cool::IDatabasePtr&
db
,
bool
copylock)
const
{
39
try
{
40
if
(
db
->existsFolder(
m_folder
)) {
41
cool::IFolderPtr
fptr
=
db
->getFolder(
m_folder
);
42
if
(!
m_desc
.empty())
fptr
->setTagDescription(
m_tag
,
m_desc
);
43
if
(copylock)
fptr
->setTagLockStatus(
m_tag
,
m_status
);
44
}
else
if
(
db
->existsFolderSet(
m_folder
)) {
45
cool::IFolderSetPtr
fptr
=
db
->getFolderSet(
m_folder
);
46
if
(!
m_desc
.empty())
fptr
->setTagDescription(
m_tag
,
m_desc
);
47
if
(copylock)
fptr
->setTagLockStatus(
m_tag
,
m_status
);
48
}
else
{
49
std::cout <<
"Cannot access tag "
<<
m_tag
<<
" in folder "
<<
m_folder
50
<<
" to write tag info"
<< std::endl;
51
return
false
;
52
}
53
}
54
catch
(cool::Exception&
e
) {
55
std::cout <<
"Exception writing tag info for tag "
<<
m_tag
<<
56
" in folder "
<<
m_folder
<< std::endl;
57
return
false
;
58
}
59
return
true
;
60
}
CoolTagInfo::m_tag
std::string m_tag
Definition:
CoolTagInfo.h:28
CoolTagInfo::CoolTagInfo
CoolTagInfo(const cool::IDatabasePtr &db, const std::string &folder, const std::string &destfolder, const std::string &sourcetag, const std::string &desttag, const std::string &taglabel="")
Definition:
CoolTagInfo.cxx:13
CaloCondBlobAlgs_fillNoiseFromASCII.db
db
Definition:
CaloCondBlobAlgs_fillNoiseFromASCII.py:43
CoolTagInfo::m_desc
std::string m_desc
Definition:
CoolTagInfo.h:29
CoolTagInfo::m_folder
std::string m_folder
Definition:
CoolTagInfo.h:27
fptr
std::vector< TFile * > fptr
Definition:
hcg.cxx:48
CoolTagInfo::write
bool write(const cool::IDatabasePtr &db, const bool copylock) const
Definition:
CoolTagInfo.cxx:38
DiTauMassTools::MaxHistStrategyV2::e
e
Definition:
PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
CaloCondBlobAlgs_fillNoiseFromASCII.folder
folder
Definition:
CaloCondBlobAlgs_fillNoiseFromASCII.py:56
CoolTagInfo.h
CoolTagInfo::m_status
cool::HvsTagLock::Status m_status
Definition:
CoolTagInfo.h:30
Generated on Tue Jul 2 2024 21:12:47 for ATLAS Offline Software by
1.8.18