24 ->setComment(
"If zero, let TBB use its default which is normally the number of CPUs on the machine");
25 description.
addUntracked<
unsigned int>(
"numberOfStreams", 0)
27 "If zero, then set the number of streams to be the same as the number of "
28 "Threads (except always 1 if there is a looper)");
29 description.
addUntracked<
unsigned int>(
"numberOfConcurrentLuminosityBlocks", 0)
31 "If zero, use Framework default (currently 2 when the number of streams >= 2, otherwise 1). "
32 "In all cases, the number of concurrent luminosity blocks will be reset to "
33 "be the same as the number of streams if it is greater than the "
34 "numbers of streams.");
35 description.
addUntracked<
unsigned int>(
"numberOfConcurrentRuns", 1);
38 eventSetupDescription.
addUntracked<
unsigned int>(
"numberOfConcurrentIOVs", 0)
40 "If zero, use the Framework default which currently means the same as the "
41 "number of concurrent luminosity blocks. Can be overridden by a hard coded "
42 "static in a record C++ definition or by forceNumberOfConcurrentIOVs. "
43 "In all cases, the number of concurrent IOVs will be reset to be the "
44 "same as the number of concurrent luminosity blocks if greater than the "
45 "number of concurrent luminosity blocks.");
48 "Parameter names should be record names and the values are the number of concurrent IOVS for each record."
49 " Overrides all other methods of setting number of concurrent IOVs.");
54 ->setComment(
"Set true to print a report on the trigger decisions and timing of modules");
56 ->setComment(
"Legal values are 'NOMERGE' and 'FULLMERGE'");
57 description.
addUntracked<
bool>(
"forceEventSetupCacheClearOnNewRun",
false);
58 description.
addUntracked<
bool>(
"throwIfIllegalParameter",
true)
59 ->setComment(
"Set false to disable exception throws when configuration validation detects illegal parameters");
60 description.
addUntracked<
bool>(
"printDependencies",
false)->setComment(
"Print data dependencies between modules");
61 description.
addUntracked<
bool>(
"deleteNonConsumedUnscheduledModules",
true)
63 "Delete modules that are unscheduled, i.e. only in Tasks, whose products are not consumed by any other "
64 "otherwise-running module");
71 std::vector<std::string> emptyVector;
73 description.
addUntracked<std::vector<std::string>>(
"Rethrow", emptyVector);
74 description.
addUntracked<std::vector<std::string>>(
"SkipEvent", emptyVector);
75 description.
addUntracked<std::vector<std::string>>(
"FailPath", emptyVector);
76 description.
addUntracked<std::vector<std::string>>(
"IgnoreCompletely", emptyVector);
78 description.
addUntracked<std::vector<std::string>>(
"canDeleteEarly", emptyVector)
79 ->setComment(
"Branch names of products that the Framework can try to delete before the end of the Event");
83 "Print values of selected Framework parameters. The Framework might modify the values "
84 "in the options parameter set and this prints the values after that modification.");
88 "Obsolete. Has no effect. Allowed only for backward compatibility for old Python configuration files.");
91 "Obsolete. Has no effect. Allowed only for backward compatibility for old Python configuration files.");
94 "Obsolete. Has no effect. Allowed only for backward compatibility for old Python configuration files.");
98 description.
addUntracked<
int>(
"input", -1)->setComment(
"Default of -1 implies no limit.");
108 description.
addUntracked<
int>(
"input", -1)->setComment(
"Default of -1 implies no limit.");
112 description.
addUntracked<
int>(
"input", -1)->setComment(
"Default of -1 implies no limit.");
118 std::vector<std::string> psetNames{
"options",
"maxEvents",
"maxLuminosityBlocks",
"maxSecondsUntilRampdown"};
120 for (
auto const& psetName : psetNames) {
121 bool isTracked{
false};
123 if (pset ==
nullptr) {
130 << psetName <<
"\' in process \'" << processName <<
"\' is tracked.\n"
131 <<
"It must be untracked";
135 if (psetName ==
"options") {
137 }
else if (psetName ==
"maxEvents") {
139 }
else if (psetName ==
"maxLuminosityBlocks") {
141 }
else if (psetName ==
"maxSecondsUntilRampdown") {
148 std::ostringstream ost;
149 ost <<
"Validating top level \'" << psetName <<
"\' ParameterSet for process \'" << processName <<
"\'";
157 unsigned int nStreams,
158 unsigned int nConcurrentLumis,
159 unsigned int nConcurrentRuns) {
160 LogAbsolute(
"Options") <<
"Number of Threads = " << nThreads <<
"\nNumber of Streams = " << nStreams
161 <<
"\nNumber of Concurrent Lumis = " << nConcurrentLumis
162 <<
"\nNumber of Concurrent Runs = " << nConcurrentRuns;
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
void validate(ParameterSet &pset) const
ParameterWildcardBase * addWildcardUntracked(U const &pattern)
void validateTopLevelParameterSets(ParameterSet *processParameterSet)
void fillOptionsDescription(ParameterSetDescription &description)
void fillMaxEventsDescription(ParameterSetDescription &description)
ParameterDescriptionNode * addOptionalNode(ParameterDescriptionNode const &node, bool writeToCfi)
constexpr unsigned int s_defaultNumberOfThreads
void fillMaxLuminosityBlocksDescription(ParameterSetDescription &description)
void addUntrackedParameter(std::string const &name, T const &value)
T getParameter(std::string const &) const
void addContext(std::string const &context)
void fillMaxSecondsUntilRampdownDescription(ParameterSetDescription &description)
Log< level::System, true > LogAbsolute
ParameterDescriptionBase * addOptionalUntracked(U const &iLabel, T const &value)
void dumpOptionsToLogFile(unsigned int nThreads, unsigned int nStreams, unsigned int nConcurrentLumis, unsigned int nConcurrentRuns)
ParameterSet * getPSetForUpdate(std::string const &name, bool &isTracked)