CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
edm::ConfigurationDescriptions Class Reference

#include <ConfigurationDescriptions.h>

Classes

class  DescriptionCounter
 

Public Types

typedef std::vector< std::pair
< std::string,
ParameterSetDescription >
>::iterator 
iterator
 

Public Member Functions

void add (std::string const &label, ParameterSetDescription const &psetDescription)
 
void add (char const *label, ParameterSetDescription const &psetDescription)
 
void addDefault (ParameterSetDescription const &psetDescription)
 
iterator begin ()
 
std::string const & comment () const
 
 ConfigurationDescriptions (std::string const &baseType)
 
ParameterSetDescriptiondefaultDescription ()
 Returns 0 if no default has been assigned. More...
 
iterator end ()
 
void print (std::ostream &os, std::string const &moduleLabel, bool brief, bool printOnlyLabels, size_t lineWidth, int indentation, int iPlugin) const
 
void setComment (std::string const &value)
 
void setComment (char const *value)
 
void validate (ParameterSet &pset, std::string const &moduleLabel) const
 
void writeCfis (std::string const &baseType, std::string const &pluginName) const
 
 ~ConfigurationDescriptions ()
 

Private Member Functions

void printForLabel (std::pair< std::string, ParameterSetDescription > const &labelAndDesc, std::ostream &os, std::string const &moduleLabel, bool brief, bool printOnlyLabels, size_t lineWidth, int indentationn, DescriptionCounter &counter) const
 
void printForLabel (std::ostream &os, std::string const &label, ParameterSetDescription const &description, std::string const &moduleLabel, bool brief, bool printOnlyLabels, size_t lineWidth, int indentationn, DescriptionCounter &counter) const
 

Static Private Member Functions

static void writeCfiForLabel (std::pair< std::string, ParameterSetDescription > const &labelAndDesc, std::string const &baseType, std::string const &pluginName)
 

Private Attributes

std::string baseType_
 
std::string comment_
 
ParameterSetDescription defaultDesc_
 
bool defaultDescDefined_
 
std::vector< std::pair
< std::string,
ParameterSetDescription > > 
descriptions_
 

Detailed Description

Definition at line 27 of file ConfigurationDescriptions.h.

Member Typedef Documentation

typedef std::vector<std::pair<std::string, ParameterSetDescription> >::iterator edm::ConfigurationDescriptions::iterator

Definition at line 30 of file ConfigurationDescriptions.h.

Constructor & Destructor Documentation

ConfigurationDescriptions::ConfigurationDescriptions ( std::string const &  baseType)

Definition at line 42 of file ConfigurationDescriptions.cc.

ConfigurationDescriptions::~ConfigurationDescriptions ( )

Definition at line 47 of file ConfigurationDescriptions.cc.

47 {}

Member Function Documentation

void ConfigurationDescriptions::add ( std::string const &  label,
ParameterSetDescription const &  psetDescription 
)

Definition at line 65 of file ConfigurationDescriptions.cc.

References baseType_, defaultDescDefined_, descriptions_, edm::hlt::Exception, k_source, kService, kSource, diffTwoXMLs::label, and edm::errors::LogicError.

Referenced by add(), edm::EmptySource::fillDescriptions(), GEDGsfElectronCoreProducer::fillDescriptions(), HLTPFJetIDProducer::fillDescriptions(), edm::Prescaler::fillDescriptions(), edm::EventAuxiliaryHistoryProducer::fillDescriptions(), HLTJetL1MatchProducer< T >::fillDescriptions(), edm::service::InitRootHandlers::fillDescriptions(), HLTDiMuonGlbTrkFilter::fillDescriptions(), HLTMuonTrackMassFilter::fillDescriptions(), TrackerGeometricDetESModule::fillDescriptions(), TFileAdaptor::fillDescriptions(), UpdaterService::fillDescriptions(), HcalTrigTowerGeometryESProducer::fillDescriptions(), TrackerDigiGeometryESModule::fillDescriptions(), edm::StreamerOutputModule< Consumer >::fillDescriptions(), HLTHcalMETNoiseCleaner::fillDescriptions(), HLTHemiDPhiFilter::fillDescriptions(), HLTDisplacedEgammaFilter::fillDescriptions(), HLTPFTauPairLeadTrackDzMatchFilter::fillDescriptions(), HLTHtMhtFilter::fillDescriptions(), HLTJetCollectionsFilter< jetType >::fillDescriptions(), HLTMhtProducer::fillDescriptions(), HLTRFilter::fillDescriptions(), HLTRHemisphere::fillDescriptions(), edm::AsciiOutputModule::fillDescriptions(), HLTForwardBackwardJetsFilter< T >::fillDescriptions(), HLTHcalTowerNoiseCleaner::fillDescriptions(), HLTJetPairDzMatchFilter< T >::fillDescriptions(), HLTMuonL2PreFilter::fillDescriptions(), edm::service::UnixSignalService::fillDescriptions(), HLTHPDFilter::fillDescriptions(), HLTJetCollectionsVBFFilter< T >::fillDescriptions(), edm::service::CPU::fillDescriptions(), HLTMhtFilter::fillDescriptions(), PFJetsMatchedToFilteredCaloJetsProducer::fillDescriptions(), HLTDoubletDZ< T1, T2 >::fillDescriptions(), HLTAlphaTFilter< T >::fillDescriptions(), HLTDeDxFilter::fillDescriptions(), HLTExclDiJetFilter< T >::fillDescriptions(), HLTHcalLaserFilter::fillDescriptions(), HLTHcalMETNoiseFilter::fillDescriptions(), HLTJetVBFFilter< T >::fillDescriptions(), HLTMhtHtFilter< T >::fillDescriptions(), HLTMonoJetFilter< T >::fillDescriptions(), HLTMuonDimuonL3Filter::fillDescriptions(), HLTMuonTrimuonL3Filter::fillDescriptions(), HLTDiJetAveFilter< T >::fillDescriptions(), HLTHtMhtProducer::fillDescriptions(), FastTimerServiceClient::fillDescriptions(), HLTFatJetMassFilter< jetType >::fillDescriptions(), HLTMuonL3PreFilter::fillDescriptions(), edm::StreamerFileReader::fillDescriptions(), RandomEngineStateProducer::fillDescriptions(), HcalTopologyIdealEP::fillDescriptions(), HLTGlobalSums< T >::fillDescriptions(), HLTSinglet< T >::fillDescriptions(), edm::ProvenanceCheckerOutputModule::fillDescriptions(), TrackerTopologyEP::fillDescriptions(), HLTMuonL1Filter::fillDescriptions(), HLTPFEnergyFractionsFilter::fillDescriptions(), edm::PoolSource::fillDescriptions(), edm::service::Timing::fillDescriptions(), HLTBool::fillDescriptions(), edm::GetProductCheckerOutputModule::fillDescriptions(), edm::rootfix::LockService::fillDescriptions(), edm::service::ResourceEnforcer::fillDescriptions(), HLTJetTag< T >::fillDescriptions(), HLTLevel1Pattern::fillDescriptions(), HLTSmartSinglet< T >::fillDescriptions(), LogErrorFilter::fillDescriptions(), edm::LogErrorHarvester::fillDescriptions(), HLTDoublet< T1, T2 >::fillDescriptions(), edm::service::Tracer::fillDescriptions(), HLTCollectionProducer< T >::fillDescriptions(), EventIDChecker::fillDescriptions(), edm::service::LoadAllDictionaries::fillDescriptions(), AbortOnEventIDAnalyzer::fillDescriptions(), HLTJetSortedVBFFilter< T >::fillDescriptions(), edm::PrintEventSetupDataRetrieval::fillDescriptions(), HLTJetCollectionsForLeptonPlusJets< jetType >::fillDescriptions(), HLTLevel1Activity::fillDescriptions(), HLTJetCollForElePlusJets< T >::fillDescriptions(), HLTJetCollectionsForElePlusJets< T >::fillDescriptions(), pat::PATPhotonProducer::fillDescriptions(), edm::PrintEventSetupContent::fillDescriptions(), edm::service::SiteLocalConfigService::fillDescriptions(), PrintLoadingPlugins::fillDescriptions(), CaloTowerConstituentsMapBuilder::fillDescriptions(), edm::EventSetupRecordDataGetter::fillDescriptions(), HLTElectronPFMTFilter::fillDescriptions(), pat::PATJetProducer::fillDescriptions(), edm::PoolOutputModule::fillDescriptions(), JetCollectionForEleHT::fillDescriptions(), MulticoreRunLumiEventChecker::fillDescriptions(), edm::service::RandomNumberGeneratorService::fillDescriptions(), edm::service::PrescaleService::fillDescriptions(), edm::service::SimpleMemoryCheck::fillDescriptions(), pat::PATElectronProducer::fillDescriptions(), pat::JetCorrFactorsProducer::fillDescriptions(), edm::service::EnableFloatingPointExceptions::fillDescriptions(), FastTimerService::fillDescriptions(), and edm::EventContentAnalyzer::fillDescriptions().

66  {
67 
68  if (0==strcmp(baseType_.c_str(),kSource)) {
69  if (0!=strcmp(label.c_str(),k_source)) {
71  "ConfigurationDescriptions::add, when adding a ParameterSetDescription for a source the label must be \"source\"\n");
72  }
73  if (descriptions_.size() != 0U ||
74  defaultDescDefined_ == true) {
76  "ConfigurationDescriptions::add, for a source only 1 ParameterSetDescription may be added\n");
77  }
78  }
79  else if (0==strcmp(baseType_.c_str(),kService)) {
80  if (descriptions_.size() != 0U ||
81  defaultDescDefined_ == true) {
83  "ConfigurationDescriptions::add, for a service only 1 ParameterSetDescription may be added\n");
84  }
85  }
86 
87  // To minimize the number of copies involved create an empty description first
88  // and push it into the vector. Then perform the copy.
89  std::pair<std::string, ParameterSetDescription> pairWithEmptyDescription;
90  descriptions_.push_back(pairWithEmptyDescription);
91  std::pair<std::string, ParameterSetDescription> & pair = descriptions_.back();
92 
93  pair.first = label;
94  pair.second = psetDescription;
95 
96  }
static const char *const kService
static const char *const kSource
std::vector< std::pair< std::string, ParameterSetDescription > > descriptions_
static const char *const k_source
void ConfigurationDescriptions::add ( char const *  label,
ParameterSetDescription const &  psetDescription 
)

Definition at line 58 of file ConfigurationDescriptions.cc.

References add(), and AlCaHLTBitMon_QueryRunRegistry::string.

59  {
60  std::string labelString(label);
61  add(labelString, psetDescription);
62  }
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void ConfigurationDescriptions::addDefault ( ParameterSetDescription const &  psetDescription)

Definition at line 99 of file ConfigurationDescriptions.cc.

References baseType_, defaultDesc_, defaultDescDefined_, descriptions_, edm::hlt::Exception, kService, kSource, and edm::errors::LogicError.

Referenced by FastTimerFilter::fillDescriptions(), EcalDQMonitorClient::fillDescriptions(), edm::EDAnalyzer::fillDescriptions(), edm::ModelFilter::fillDescriptions(), EcalDQMonitorTask::fillDescriptions(), edm::EDProducer::fillDescriptions(), IsoTrig::fillDescriptions(), dEdxAnalyzer::fillDescriptions(), VertexMonitor::fillDescriptions(), edm::EDFilter::fillDescriptions(), PythonService::fillDescriptions(), PFCand_AssoMap::fillDescriptions(), Mixing2DB::fillDescriptions(), CastorInvalidDataFilter::fillDescriptions(), MuPFIsoEmbedder::fillDescriptions(), PF_PU_FirstVertexTracks::fillDescriptions(), DJpsiFilter::fillDescriptions(), FourLepFilter::fillDescriptions(), PF_PU_AssoMap::fillDescriptions(), HcalLaserEventFilter2012::fillDescriptions(), edm::one::EDProducerBase::fillDescriptions(), BeamProfile2DB::fillDescriptions(), __class__< T >::fillDescriptions(), edm::one::EDFilterBase::fillDescriptions(), TTbar_P4Violation::fillDescriptions(), EmDQMFeeder::fillDescriptions(), edm::EventSetupCacheIdentifierChecker::fillDescriptions(), LHE2HepMCConverter::fillDescriptions(), ExtraFromSeeds::fillDescriptions(), edm::service::JobReportService::fillDescriptions(), PileupJetIdProducer::fillDescriptions(), JetVertexChecker::fillDescriptions(), HcalLaserEventFilter::fillDescriptions(), EGEnergyAnalyzer::fillDescriptions(), GBRWrapperMaker::fillDescriptions(), LogMessageMonitor::fillDescriptions(), HcalLaserHBHEFilter2012::fillDescriptions(), HcalLaserHBHEHFFilter2012::fillDescriptions(), HcalLaserHFFilter2012::fillDescriptions(), PFCand_NoPU_WithAM::fillDescriptions(), TTbar_GenLepAnalyzer::fillDescriptions(), TTbar_GenJetAnalyzer::fillDescriptions(), HcalForwardLibWriter::fillDescriptions(), TTbar_Kinematics::fillDescriptions(), edm::OutputModule::fillDescriptions(), HLTOfflineReproducibility::fillDescriptions(), ExternalLHEProducer::fillDescriptions(), edm::InputSource::fillDescriptions(), DQMRootOutputModule::fillDescriptions(), DQMRootSource::fillDescriptions(), and edm::fillDetails::DoFillAsUnknown< T >::operator()().

99  {
100 
101  if (0==strcmp(baseType_.c_str(),kSource) || 0==strcmp(baseType_.c_str(),kService)) {
102  if (descriptions_.size() != 0U ||
103  defaultDescDefined_ == true) {
105  "ConfigurationDescriptions::addDefault, for a source or service only 1 ParameterSetDescription may be added\n");
106  }
107  }
108 
109  defaultDescDefined_ = true;
110  defaultDesc_ = psetDescription;
111 
112  }
static const char *const kService
static const char *const kSource
std::vector< std::pair< std::string, ParameterSetDescription > > descriptions_
ConfigurationDescriptions::iterator ConfigurationDescriptions::begin ( void  )

Definition at line 123 of file ConfigurationDescriptions.cc.

References descriptions_.

123 { return descriptions_.begin();}
std::vector< std::pair< std::string, ParameterSetDescription > > descriptions_
std::string const& edm::ConfigurationDescriptions::comment ( ) const
inline

Definition at line 44 of file ConfigurationDescriptions.h.

References comment_.

Referenced by print().

ParameterSetDescription * ConfigurationDescriptions::defaultDescription ( )

Returns 0 if no default has been assigned.

Definition at line 115 of file ConfigurationDescriptions.cc.

References defaultDesc_, and defaultDescDefined_.

Referenced by edm::edmodule_mightGet_config(), and edm::eventsetup::DataProxyProvider::prevalidate().

115  {
116  if (defaultDescDefined_) {
117  return &defaultDesc_;
118  }
119  return 0;
120  }
ConfigurationDescriptions::iterator ConfigurationDescriptions::end ( void  )

Definition at line 126 of file ConfigurationDescriptions.cc.

References descriptions_.

Referenced by Types.LuminosityBlockRange::cppID(), and Types.EventRange::cppID().

126 {return descriptions_.end();}
std::vector< std::pair< std::string, ParameterSetDescription > > descriptions_
void ConfigurationDescriptions::print ( std::ostream &  os,
std::string const &  moduleLabel,
bool  brief,
bool  printOnlyLabels,
size_t  lineWidth,
int  indentation,
int  iPlugin 
) const

Definition at line 207 of file ConfigurationDescriptions.cc.

References comment(), defaultDesc_, defaultDescDefined_, descriptions_, relativeConstraints::empty, edm::for_all(), edm::ConfigurationDescriptions::DescriptionCounter::iModule, edm::ConfigurationDescriptions::DescriptionCounter::iPlugin, edm::ConfigurationDescriptions::DescriptionCounter::iSelectedModule, edm::ParameterSetDescription::isUnknown(), edm::DocFormatHelper::offsetModuleLabel(), printForLabel(), AlCaHLTBitMon_QueryRunRegistry::string, and edm::DocFormatHelper::wrapAndPrintText().

213  {
214  if (!brief) {
215  if (!comment().empty()) {
216  DocFormatHelper::wrapAndPrintText(os, comment(), indentation, lineWidth);
217  }
218  os << "\n";
219  }
220 
221  if (descriptions_.empty() && !defaultDescDefined_) {
222  char oldFill = os.fill();
223  indentation += DocFormatHelper::offsetModuleLabel();
224  os << std::setfill(' ') << std::setw(indentation) << "";
225  os << "There are no PSet descriptions defined for this plugin.\n";
226  os << std::setfill(' ') << std::setw(indentation) << "";
227  os << "PSets will not be validated and no cfi files will be generated.\n";
228  os << std::setfill(oldFill);
229  if (!brief) os << "\n";
230  return;
231  }
232 
234  indentation += DocFormatHelper::offsetModuleLabel();
235  char oldFill = os.fill();
236  os << std::setfill(' ') << std::setw(indentation) << "";
237  os << "This plugin has not implemented the function which defines its\n";
238  os << std::setfill(' ') << std::setw(indentation) << "";
239  os << "configuration descriptions yet. No descriptions are available.\n";
240  os << std::setfill(' ') << std::setw(indentation) << "";
241  os << "Its PSets will not be validated, and no cfi files will be generated.\n";
242  os << std::setfill(oldFill);
243  if (!brief) os << "\n";
244  return;
245  }
246 
247  if (!brief) {
248  std::stringstream ss;
249  if (defaultDescDefined_) {
250  if (descriptions_.empty()) {
251  ss << "This plugin has only one PSet description. "
252  << "This description is always used to validate configurations. "
253  << "Because this configuration has no label, no cfi files will be generated.";
254  }
255  else {
256  ss << "This plugin has " << (descriptions_.size() + 1U) << " PSet descriptions. "
257  << "The description used to validate a configuration is selected by "
258  << "matching the module labels. If none match, then the last description, "
259  << "which has no label, is selected. "
260  << "A cfi file will be generated for each configuration with a module label.";
261  }
262  }
263  else {
264  if (descriptions_.size() == 1U) {
265  ss << "This plugin has " << descriptions_.size() << " PSet description. "
266  << "This description is always used to validate configurations. "
267  << "The label below is used when generating the cfi file.";
268  }
269  else {
270  ss << "This plugin has " << descriptions_.size() << " PSet descriptions. "
271  << "The description used to validate a configuration is selected by "
272  << "matching the module labels. If none match the first description below is used. "
273  << "The module labels below are also used when generating the cfi files.";
274  }
275  }
276  DocFormatHelper::wrapAndPrintText(os, ss.str(), indentation, lineWidth);
277  os << "\n";
278  }
279 
280  indentation += DocFormatHelper::offsetModuleLabel();
281 
282  DescriptionCounter counter;
283  counter.iPlugin = iPlugin;
284  counter.iSelectedModule = 0;
285  counter.iModule = 0;
286 
288  this,
289  _1,
290  boost::ref(os),
291  boost::cref(moduleLabel),
292  brief,
293  printOnlyLabels,
294  lineWidth,
295  indentation,
296  boost::ref(counter)));
297 
298  if (defaultDescDefined_) {
299  printForLabel(os,
300  std::string("@default"),
301  defaultDesc_,
302  moduleLabel,
303  brief,
304  printOnlyLabels,
305  lineWidth,
306  indentation,
307  counter);
308  }
309  }
void printForLabel(std::pair< std::string, ParameterSetDescription > const &labelAndDesc, std::ostream &os, std::string const &moduleLabel, bool brief, bool printOnlyLabels, size_t lineWidth, int indentationn, DescriptionCounter &counter) const
static void wrapAndPrintText(std::ostream &os, std::string const &text, size_t indent, size_t suggestedWidth)
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
static int offsetModuleLabel()
std::vector< std::pair< std::string, ParameterSetDescription > > descriptions_
std::string const & comment() const
void ConfigurationDescriptions::printForLabel ( std::pair< std::string, ParameterSetDescription > const &  labelAndDesc,
std::ostream &  os,
std::string const &  moduleLabel,
bool  brief,
bool  printOnlyLabels,
size_t  lineWidth,
int  indentationn,
DescriptionCounter counter 
) const
private

Definition at line 312 of file ConfigurationDescriptions.cc.

Referenced by print().

320  {
321  printForLabel(os,
322  labelAndDesc.first,
323  labelAndDesc.second,
324  moduleLabel,
325  brief,
326  printOnlyLabels,
327  lineWidth,
328  indentation,
329  counter);
330  }
void printForLabel(std::pair< std::string, ParameterSetDescription > const &labelAndDesc, std::ostream &os, std::string const &moduleLabel, bool brief, bool printOnlyLabels, size_t lineWidth, int indentationn, DescriptionCounter &counter) const
void ConfigurationDescriptions::printForLabel ( std::ostream &  os,
std::string const &  label,
ParameterSetDescription const &  description,
std::string const &  moduleLabel,
bool  brief,
bool  printOnlyLabels,
size_t  lineWidth,
int  indentationn,
DescriptionCounter counter 
) const
private

Definition at line 333 of file ConfigurationDescriptions.cc.

References baseType_, edm::ParameterSetDescription::comment(), edm::ConfigurationDescriptions::DescriptionCounter::iModule, edm::ConfigurationDescriptions::DescriptionCounter::iPlugin, edm::ConfigurationDescriptions::DescriptionCounter::iSelectedModule, kService, kSource, edm::DocFormatHelper::offsetTopLevelPSet(), edm::ParameterSetDescription::print(), edm::DocFormatHelper::setBrief(), edm::DocFormatHelper::setIndentation(), edm::DocFormatHelper::setLineWidth(), edm::DocFormatHelper::setParent(), edm::DocFormatHelper::setSection(), AlCaHLTBitMon_QueryRunRegistry::string, edm::DocFormatHelper::TOP, and edm::DocFormatHelper::wrapAndPrintText().

342  {
343  ++counter.iModule;
344  if (!moduleLabel.empty() && label != moduleLabel) return;
345  ++counter.iSelectedModule;
346 
347  std::stringstream ss;
348  ss << counter.iPlugin << "." << counter.iSelectedModule;
349  std::string section = ss.str();
350 
351  char oldFill = os.fill();
352  os << std::setfill(' ') << std::setw(indentation) << "" << std::setfill(oldFill);
353  os << section << " ";
354  if (label == std::string("@default")) {
355  os << "description without a module label\n";
356  }
357  else {
358  if (!brief) {
359  if (0 == strcmp(baseType_.c_str(),kSource) || 0 == strcmp(baseType_.c_str(),kService)) {
360  os << "label: ";
361  }
362  else {
363  os << "module label: ";
364  }
365  }
366  os << label << "\n";
367  }
368 
369  if (!brief) {
370  if (!description.comment().empty()) {
371  DocFormatHelper::wrapAndPrintText(os, description.comment(), indentation, lineWidth - indentation);
372  }
373  os << "\n";
374  }
375  if (printOnlyLabels) return;
376 
377  DocFormatHelper dfh;
378  dfh.setBrief(brief);
379  dfh.setLineWidth(lineWidth);
380  dfh.setIndentation(indentation + DocFormatHelper::offsetTopLevelPSet());
381  dfh.setSection(section);
382  dfh.setParent(DocFormatHelper::TOP);
383 
384  description.print(os, dfh);
385  }
static const char *const kService
static void wrapAndPrintText(std::ostream &os, std::string const &text, size_t indent, size_t suggestedWidth)
static const char *const kSource
tuple description
Definition: idDealer.py:66
static int offsetTopLevelPSet()
void ConfigurationDescriptions::setComment ( std::string const &  value)
void ConfigurationDescriptions::setComment ( char const *  value)
void ConfigurationDescriptions::validate ( ParameterSet pset,
std::string const &  moduleLabel 
) const

Definition at line 130 of file ConfigurationDescriptions.cc.

References defaultDesc_, defaultDescDefined_, descriptions_, edm::for_all(), and edm::ParameterSetDescription::validate().

Referenced by edm::serviceregistry::ServicesManager::createServices(), edm::makeInput(), edm::Maker::makeWorker(), and edm::eventsetup::validateEventSetupParameters().

131  {
132 
133  ParameterSetDescription const* psetDesc = 0;
134  for_all(descriptions_, boost::bind(&matchLabel,
135  _1,
136  boost::cref(moduleLabel),
137  boost::ref(psetDesc)));
138 
139  // If there is a matching label
140  if (psetDesc != 0) {
141  psetDesc->validate(pset);
142  }
143  // Is there an explicit description to be used for a non standard label
144  else if (defaultDescDefined_) {
145  defaultDesc_.validate(pset);
146  }
147  // Otherwise use the first one.
148  else if (descriptions_.size() > 0U) {
149  descriptions_[0].second.validate(pset);
150  }
151  // It is possible for no descriptions to be defined and no validation occurs
152  // for this module ever.
153  }
void validate(ParameterSet &pset) const
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
std::vector< std::pair< std::string, ParameterSetDescription > > descriptions_
void ConfigurationDescriptions::writeCfiForLabel ( std::pair< std::string, ParameterSetDescription > const &  labelAndDesc,
std::string const &  baseType,
std::string const &  pluginName 
)
staticprivate

Definition at line 167 of file ConfigurationDescriptions.cc.

References gather_cfg::cout, edm::hlt::Exception, kService, kSource, edm::errors::LogicError, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by writeCfis().

170  {
171  if (0 == strcmp(baseType.c_str(),kService) && labelAndDesc.first != pluginName) {
173  "ConfigurationDescriptions::writeCfiForLabel\nFor a service the label and the plugin name must be the same.\n")
174  << "This error probably is caused by an incorrect label being passed\nto the ConfigurationDescriptions::add function earlier.\n"
175  << "plugin name = \"" << pluginName << "\" label name = \"" << labelAndDesc.first << "\"\n";
176  }
177 
178  std::string cfi_filename;
179  if (0 == strcmp(baseType.c_str(),kSource)) {
180  cfi_filename = pluginName + "_cfi.py";
181  }
182  else {
183  cfi_filename = labelAndDesc.first + "_cfi.py";
184  }
185  std::ofstream outFile(cfi_filename.c_str());
186 
187 
188  outFile << "import FWCore.ParameterSet.Config as cms\n\n";
189  outFile << labelAndDesc.first << " = cms." << baseType << "('" << pluginName << "'";
190 
191  bool startWithComma = true;
192  int indentation = 2;
193  labelAndDesc.second.writeCfi(outFile, startWithComma, indentation);
194 
195  outFile << ")\n";
196 
197  outFile.close();
198 
199  if (0 == strcmp(baseType.c_str(),kSource)) {
200  std::cout << pluginName << "\n";
201  }
202  else {
203  std::cout << labelAndDesc.first << "\n";
204  }
205  }
static const char *const kService
static const char *const kSource
tuple cout
Definition: gather_cfg.py:121
void ConfigurationDescriptions::writeCfis ( std::string const &  baseType,
std::string const &  pluginName 
) const

Definition at line 156 of file ConfigurationDescriptions.cc.

References descriptions_, edm::for_all(), and writeCfiForLabel().

157  {
158 
160  _1,
161  boost::cref(baseType),
162  boost::cref(pluginName)));
163  }
static void writeCfiForLabel(std::pair< std::string, ParameterSetDescription > const &labelAndDesc, std::string const &baseType, std::string const &pluginName)
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:16
std::vector< std::pair< std::string, ParameterSetDescription > > descriptions_

Member Data Documentation

std::string edm::ConfigurationDescriptions::baseType_
private

Definition at line 109 of file ConfigurationDescriptions.h.

Referenced by add(), addDefault(), and printForLabel().

std::string edm::ConfigurationDescriptions::comment_
private

Definition at line 115 of file ConfigurationDescriptions.h.

Referenced by comment(), and setComment().

ParameterSetDescription edm::ConfigurationDescriptions::defaultDesc_
private

Definition at line 113 of file ConfigurationDescriptions.h.

Referenced by addDefault(), defaultDescription(), print(), and validate().

bool edm::ConfigurationDescriptions::defaultDescDefined_
private

Definition at line 116 of file ConfigurationDescriptions.h.

Referenced by add(), addDefault(), defaultDescription(), print(), and validate().

std::vector<std::pair<std::string, ParameterSetDescription> > edm::ConfigurationDescriptions::descriptions_
private

Definition at line 111 of file ConfigurationDescriptions.h.

Referenced by add(), addDefault(), begin(), end(), print(), validate(), and writeCfis().