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

#include <HanConfig.h>

Inheritance diagram for dqi::HanConfig::CompAlgVisitor:
Collaboration diagram for dqi::HanConfig::CompAlgVisitor:

Public Member Functions

 CompAlgVisitor (TFile *outfile_, const MiniConfig &compAlgConfig_)
virtual void Visit (const MiniConfigTreeNode *node)

Protected Attributes

TFile * m_outfile {}
const MiniConfigm_compAlgConfig

Detailed Description

Definition at line 166 of file HanConfig.h.

Constructor & Destructor Documentation

◆ CompAlgVisitor()

dqi::HanConfig::CompAlgVisitor::CompAlgVisitor ( TFile * outfile_,
const MiniConfig & compAlgConfig_ )

Definition at line 1202 of file HanConfig.cxx.

1204 : m_outfile(outfile_)
1205 , m_compAlgConfig(compAlgConfig_)
1206{
1207}
const MiniConfig & m_compAlgConfig
Definition HanConfig.h:172

Member Function Documentation

◆ Visit()

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

Implements dqi::MiniConfigTreeNode::Visitor.

Definition at line 1211 of file HanConfig.cxx.

1213{
1214 m_outfile->cd();
1215 std::map<std::string,MiniConfigTreeNode*> daughters = node->GetDaughters();
1216 std::map<std::string,MiniConfigTreeNode*>::const_iterator nodeiterEnd = daughters.end();
1217 for( std::map<std::string,MiniConfigTreeNode*>::const_iterator iter = daughters.begin(); iter != nodeiterEnd; ++iter ) {
1218 std::string compAlgID = iter->second->GetName();
1219 std::string compAlgKey = iter->first;
1220
1221 HanConfigCompAlg* compAlg = new HanConfigCompAlg();
1222 std::set<std::string> compAlgAtt;
1223 m_compAlgConfig.GetAttributeNames(compAlgID, compAlgAtt);
1224 std::set<std::string>::const_iterator compAlgAttEnd = compAlgAtt.end();
1225 //std::cout << "Configuring composite algorithm: " << compAlgID << std::endl;
1226 compAlg->SetName(compAlgID);
1227 for( std::set<std::string>::const_iterator i = compAlgAtt.begin(); i != compAlgAttEnd; ++i ) {
1228 if( *i == "subalgs" ) {
1229 std::string subAlgs( m_compAlgConfig.GetStringAttribute(compAlgID,"subalgs") );
1230 std::string::size_type pos = subAlgs.find(',');
1231 for(int size=subAlgs.size(), sizeOld=-8;
1232 size != sizeOld;
1233 subAlgs.erase(0, pos+1), pos = subAlgs.find(','),sizeOld=size, size=subAlgs.size()) {
1234 //std::cout << " --> adding component algorithm: " << subAlgs.substr(0,pos) << std::endl;
1235 compAlg->AddAlg( subAlgs.substr(0,pos));
1236 }
1237 }
1238 else if( *i == "libnames" ) {
1239 std::string libs( m_compAlgConfig.GetStringAttribute(compAlgID,"libnames") );
1240 std::string::size_type pos = libs.find(',');
1241 for(int size=libs.size(), sizeOld=-8;
1242 size != sizeOld;
1243 libs.erase(0, pos+1), pos = libs.find(','),sizeOld=size, size=libs.size()) {
1244 //std::cout << " --> using library: " << libs.substr(0,pos) << std::endl;
1245 compAlg->AddLib( libs.substr(0,pos));
1246 }
1247 }
1248 }
1249 compAlg->Write();
1250 }
1251}
size_t size() const
Number of registered mappings.

Member Data Documentation

◆ m_compAlgConfig

const MiniConfig& dqi::HanConfig::CompAlgVisitor::m_compAlgConfig
protected

Definition at line 172 of file HanConfig.h.

◆ m_outfile

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

Definition at line 171 of file HanConfig.h.

171{};

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