ATLAS Offline Software
Loading...
Searching...
No Matches
dqi::HanConfig::MetadataVisitor Class Reference

#include <HanConfig.h>

Inheritance diagram for dqi::HanConfig::MetadataVisitor:
Collaboration diagram for dqi::HanConfig::MetadataVisitor:

Public Member Functions

 MetadataVisitor (TFile *outfile_, const MiniConfig &metadataConfig_)
virtual void Visit (const MiniConfigTreeNode *node)

Protected Attributes

TFile * m_outfile {}
const MiniConfigm_metadataConfig

Detailed Description

Definition at line 175 of file HanConfig.h.

Constructor & Destructor Documentation

◆ MetadataVisitor()

dqi::HanConfig::MetadataVisitor::MetadataVisitor ( TFile * outfile_,
const MiniConfig & metadataConfig_ )

Definition at line 1253 of file HanConfig.cxx.

1255 : m_outfile(outfile_)
1256 , m_metadataConfig(metadataConfig_)
1257{
1258}
const MiniConfig & m_metadataConfig
Definition HanConfig.h:181

Member Function Documentation

◆ Visit()

void dqi::HanConfig::MetadataVisitor::Visit ( const MiniConfigTreeNode * node)
virtual

Implements dqi::MiniConfigTreeNode::Visitor.

Definition at line 1262 of file HanConfig.cxx.

1264{
1265 // maybe already existing?
1266 if (m_outfile->Get("HanMetadata")) {
1267 m_outfile->cd("HanMetadata");
1268 } else {
1269 // try to make it
1270 TDirectory* mdir = m_outfile->mkdir("HanMetadata");
1271 if (mdir) {
1272 mdir->cd();
1273 } else {
1274 // all fail
1275 m_outfile->cd();
1276 }
1277 }
1278
1279 std::map<std::string,MiniConfigTreeNode*> daughters = node->GetDaughters();
1280 std::map<std::string,MiniConfigTreeNode*>::const_iterator nodeiterEnd = daughters.end();
1281 for( std::map<std::string,MiniConfigTreeNode*>::const_iterator iter = daughters.begin(); iter != nodeiterEnd; ++iter ) {
1282 std::string metadataID = iter->second->GetName();
1283
1284 std::set<std::string> metadataAtt;
1285 m_metadataConfig.GetAttributeNames(metadataID, metadataAtt);
1286 HanConfigMetadata* metadata = new HanConfigMetadata();
1287 metadata->SetName(metadataID);
1288 for (std::set<std::string>::const_iterator i = metadataAtt.begin(); i != metadataAtt.end(); ++i ) {
1289 HanConfigParMap parMap;
1290 parMap.SetName(*i); parMap.SetValue(m_metadataConfig.GetStringAttribute(metadataID, *i));
1291 metadata->AddKeyVal(parMap);
1292 }
1293 metadata->Write();
1294 delete metadata;
1295 }
1296}

Member Data Documentation

◆ m_metadataConfig

const MiniConfig& dqi::HanConfig::MetadataVisitor::m_metadataConfig
protected

Definition at line 181 of file HanConfig.h.

◆ m_outfile

TFile* dqi::HanConfig::MetadataVisitor::m_outfile {}
protected

Definition at line 180 of file HanConfig.h.

180{};

The documentation for this class was generated from the following files: