FWCore
ParameterSet
src
ProcessDesc.cc
Go to the documentation of this file.
1
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
2
#include "
FWCore/ParameterSet/interface/ProcessDesc.h
"
3
#include "
FWCore/Utilities/interface/EDMException.h
"
4
5
namespace
edm
{
6
7
ProcessDesc::ProcessDesc
(std::shared_ptr<ParameterSet>
pset
)
8
: pset_(
pset
), services_(pset_->popVParameterSet(
std
::
string
(
"services"
))) {}
9
10
ProcessDesc::ProcessDesc
(std::unique_ptr<ParameterSet>
pset
)
11
: pset_(
std
::
move
(
pset
)), services_(pset_->popVParameterSet(
std
::
string
(
"services"
))) {}
12
13
ProcessDesc::ProcessDesc
(
std::string
const
&) : pset_(new
ParameterSet
), services_{} {
14
throw
Exception
(
errors::Configuration
,
"Old config strings no longer accepted"
);
15
}
16
17
ProcessDesc::~ProcessDesc
() {}
18
19
void
ProcessDesc::addService
(
ParameterSet
&
pset
) {
20
// The standard services should be initialized first.
21
services_
.insert(
services_
.begin(),
pset
);
22
}
23
24
void
ProcessDesc::addService
(
std::string
const
&
service
) {
25
ParameterSet
newpset;
26
newpset.
addParameter
<
std::string
>(
"@service_type"
,
service
);
27
addService
(newpset);
28
}
29
30
void
ProcessDesc::addDefaultService
(
std::string
const
&
service
) {
31
for
(
auto
it =
services_
.begin(), itEnd =
services_
.end(); it != itEnd; ++it) {
32
std::string
name
= it->getParameter<
std::string
>(
"@service_type"
);
33
if
(
name
==
service
) {
34
// Use the configured service. Don't add a default.
35
// However, the service needs to be moved to the front because it is a standard service.
36
ParameterSet
pset
= *it;
37
services_
.erase(it);
38
addService
(
pset
);
39
return
;
40
}
41
}
42
addService
(
service
);
43
}
44
45
void
ProcessDesc::addForcedService
(
std::string
const
&
service
) {
46
for
(
auto
it =
services_
.begin(), itEnd =
services_
.end(); it != itEnd; ++it) {
47
std::string
name
= it->getParameter<
std::string
>(
"@service_type"
);
48
if
(
name
==
service
) {
49
// Remove the configured service before adding the default.
50
services_
.erase(it);
51
break
;
52
}
53
}
54
addService
(
service
);
55
}
56
57
void
ProcessDesc::addServices
(std::vector<std::string>
const
& defaultServices,
58
std::vector<std::string>
const
& forcedServices) {
59
// Add the default services to services_.
60
for
(
auto
const
&
service
: defaultServices) {
61
addDefaultService
(
service
);
62
}
63
// Add the forced services to services_.
64
for
(
auto
const
&
service
: forcedServices) {
65
addForcedService
(
service
);
66
}
67
}
68
69
std::string
ProcessDesc::dump
()
const
{
70
std::string
out
=
pset_
->dump();
71
for
(
auto
const
&
service
:
services_
) {
72
out
+=
service
.dump();
73
}
74
return
out
;
75
}
76
}
// namespace edm
service
Definition:
service.py:1
edm
HLT enums.
Definition:
AlignableModifier.h:19
edm::ProcessDesc::addServices
void addServices(std::vector< std::string > const &defaultServices, std::vector< std::string > const &forcedServices=std::vector< std::string >())
add some default services and forced services
Definition:
ProcessDesc.cc:57
edm::ProcessDesc::services_
std::vector< ParameterSet > services_
Definition:
ProcessDesc.h:47
EDMException.h
ProcessDesc.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ParameterSet
Definition:
ParameterSet.h:47
edm::ParameterSet::addParameter
void addParameter(std::string const &name, T const &value)
Definition:
ParameterSet.h:135
edm::ProcessDesc::addForcedService
void addForcedService(std::string const &service)
add a service and replace it if it's already there
Definition:
ProcessDesc.cc:45
eostools.move
def move(src, dest)
Definition:
eostools.py:511
std
Definition:
JetResolutionObject.h:76
Exception
Definition:
hltDiff.cc:246
edm::ProcessDesc::~ProcessDesc
~ProcessDesc()
Definition:
ProcessDesc.cc:17
edm::ProcessDesc::addService
void addService(ParameterSet &pset)
Definition:
ProcessDesc.cc:19
Skims_PA_cff.name
name
Definition:
Skims_PA_cff.py:17
edm::ProcessDesc::dump
std::string dump() const
Definition:
ProcessDesc.cc:69
MillePedeFileConverter_cfg.out
out
Definition:
MillePedeFileConverter_cfg.py:31
ParameterSet.h
edm::ProcessDesc::addDefaultService
void addDefaultService(std::string const &service)
add a service if it's not already there
Definition:
ProcessDesc.cc:30
edm::ProcessDesc::pset_
edm::propagate_const< std::shared_ptr< ParameterSet > > pset_
Definition:
ProcessDesc.h:46
edm::errors::Configuration
Definition:
EDMException.h:36
edm::ProcessDesc::ProcessDesc
ProcessDesc(std::shared_ptr< ParameterSet > pset)
Definition:
ProcessDesc.cc:7
muonDTDigis_cfi.pset
pset
Definition:
muonDTDigis_cfi.py:27
Generated for CMSSW Reference Manual by
1.8.16