00001 #include "FWCore/ParameterSet/interface/PythonParameterSet.h"
00002 #include "FWCore/ParameterSet/interface/FileInPath.h"
00003
00004 PythonParameterSet::PythonParameterSet()
00005 : theParameterSet()
00006 {
00007 }
00008
00009
00010 void PythonParameterSet::addVPSet(bool tracked, std::string const& name,
00011 boost::python::list value)
00012 {
00013 std::vector<PythonParameterSet> v
00014 = edm::toVector<PythonParameterSet>(value);
00015 std::vector<edm::ParameterSet> v2;
00016 v2.reserve(v.size());
00017 for(std::vector<PythonParameterSet>::iterator ppsetItr = v.begin(), ppsetItrEnd = v.end();
00018 ppsetItr != ppsetItrEnd; ++ppsetItr)
00019 {
00020 v2.push_back(ppsetItr->theParameterSet);
00021 }
00022 addParameter(tracked, name, v2);
00023 }
00024
00025
00026 boost::python::list PythonParameterSet::getVPSet(bool tracked, std::string const& name)
00027 {
00028 std::vector<edm::ParameterSet> v;
00029 if(tracked)
00030 {
00031 v = theParameterSet.getParameter<std::vector<edm::ParameterSet> >(name);
00032 }
00033 else
00034 {
00035 v = theParameterSet.getUntrackedParameter<std::vector<edm::ParameterSet> >(name);
00036 }
00037
00038
00039 boost::python::list l;
00040 for(std::vector<edm::ParameterSet>::const_iterator psetItr = v.begin(), psetItrEnd = v.end();
00041 psetItr != psetItrEnd; ++psetItr)
00042 {
00043 l.append(PythonParameterSet(*psetItr));
00044 }
00045
00046 return l;
00047 }
00048
00049
00050 void PythonParameterSet::addNewFileInPath(bool tracked, std::string const & name, std::string const & value)
00051 {
00052 addParameter(tracked, name, edm::FileInPath(value));
00053 }
00054
00055