CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
edm::ParameterSetDescription Class Reference

#include <ParameterSetDescription.h>

Classes

class  SetDescriptionEntry
 

Public Types

typedef SetDescriptionEntries::const_iterator const_iterator
 
typedef std::vector< SetDescriptionEntrySetDescriptionEntries
 

Public Member Functions

template<typename T , typename U >
ParameterDescriptionBaseadd (U const &iLabel, T const &value)
 
template<typename T , typename U >
ParameterDescriptionBaseadd (U const &iLabel)
 
ParameterDescriptionNodeaddNode (ParameterDescriptionNode const &node)
 
ParameterDescriptionNodeaddNode (std::unique_ptr< ParameterDescriptionNode > node)
 
template<typename T , typename U >
ParameterDescriptionBaseaddOptional (U const &iLabel, T const &value)
 
template<typename T , typename U >
ParameterDescriptionBaseaddOptional (U const &iLabel)
 
ParameterDescriptionNodeaddOptionalNode (ParameterDescriptionNode const &node, bool writeToCfi)
 
ParameterDescriptionNodeaddOptionalNode (std::unique_ptr< ParameterDescriptionNode > node, bool writeToCfi)
 
template<typename T , typename U >
ParameterDescriptionBaseaddOptionalUntracked (U const &iLabel, T const &value)
 
template<typename T , typename U >
ParameterDescriptionBaseaddOptionalUntracked (U const &iLabel)
 
template<typename T , typename U >
ParameterDescriptionBaseaddUntracked (U const &iLabel, T const &value)
 
template<typename T , typename U >
ParameterDescriptionBaseaddUntracked (U const &iLabel)
 
template<typename U >
ParameterDescriptionBaseaddVPSet (U const &iLabel, ParameterSetDescription const &validator, std::vector< ParameterSet > const &defaults)
 
template<typename U >
ParameterDescriptionBaseaddVPSet (U const &iLabel, ParameterSetDescription const &validator)
 
template<typename U >
ParameterDescriptionBaseaddVPSetOptional (U const &iLabel, ParameterSetDescription const &validator, std::vector< ParameterSet > const &defaults)
 
template<typename U >
ParameterDescriptionBaseaddVPSetOptional (U const &iLabel, ParameterSetDescription const &validator)
 
template<typename U >
ParameterDescriptionBaseaddVPSetOptionalUntracked (U const &iLabel, ParameterSetDescription const &validator, std::vector< ParameterSet > const &defaults)
 
template<typename U >
ParameterDescriptionBaseaddVPSetOptionalUntracked (U const &iLabel, ParameterSetDescription const &validator)
 
template<typename U >
ParameterDescriptionBaseaddVPSetUntracked (U const &iLabel, ParameterSetDescription const &validator, std::vector< ParameterSet > const &defaults)
 
template<typename U >
ParameterDescriptionBaseaddVPSetUntracked (U const &iLabel, ParameterSetDescription const &validator)
 
template<typename T , typename U >
ParameterWildcardBaseaddWildcard (U const &pattern)
 
template<typename T , typename U >
ParameterWildcardBaseaddWildcardUntracked (U const &pattern)
 
bool anythingAllowed () const
 
const_iterator begin () const
 
std::string const & comment () const
 
const_iterator end () const
 
ParameterDescriptionNodeifExists (ParameterDescriptionNode const &node1, ParameterDescriptionNode const &node2)
 
ParameterDescriptionNodeifExistsOptional (ParameterDescriptionNode const &node1, ParameterDescriptionNode const &node2, bool writeToCfi)
 
template<typename T >
ParameterDescriptionNodeifValue (ParameterDescription< T > const &switchParameter, std::unique_ptr< ParameterDescriptionCases< T >> cases)
 
template<typename T >
ParameterDescriptionNodeifValueOptional (ParameterDescription< T > const &switchParameter, std::unique_ptr< ParameterDescriptionCases< T >> cases, bool writeToCfi)
 
bool isLabelUnused (std::string const &label) const
 
bool isUnknown () const
 
template<typename T , typename U >
ParameterDescriptionNodelabelsFrom (U const &iLabel)
 
template<typename T , typename U , typename V >
ParameterDescriptionNodelabelsFrom (U const &iLabel, V const &desc)
 
template<typename T , typename U >
ParameterDescriptionNodelabelsFromOptional (U const &iLabel, bool writeToCfi)
 
template<typename T , typename U , typename V >
ParameterDescriptionNodelabelsFromOptional (U const &iLabel, bool writeToCfi, V const &desc)
 
template<typename T , typename U >
ParameterDescriptionNodelabelsFromOptionalUntracked (U const &iLabel, bool writeToCfi)
 
template<typename T , typename U , typename V >
ParameterDescriptionNodelabelsFromOptionalUntracked (U const &iLabel, bool writeToCfi, V const &desc)
 
template<typename T , typename U >
ParameterDescriptionNodelabelsFromUntracked (U const &iLabel)
 
template<typename T , typename U , typename V >
ParameterDescriptionNodelabelsFromUntracked (U const &iLabel, V const &desc)
 
 ParameterSetDescription ()
 
void print (std::ostream &os, DocFormatHelper &dfh) const
 
void reserve (SetDescriptionEntries::size_type n)
 
void setAllowAnything ()
 allow any parameter label/value pairs More...
 
void setComment (std::string const &value)
 
void setComment (char const *value)
 
void setUnknown ()
 
void validate (ParameterSet &pset) const
 
void writeCfi (std::ostream &os, bool startWithComma, int indentation) const
 
virtual ~ParameterSetDescription ()
 

Private Member Functions

template<typename T , typename U >
ParameterDescriptionBaseadd (U const &iLabel, T const &value, bool isTracked, bool isOptional, bool writeToCfi)
 
template<typename T , typename U >
ParameterDescriptionBaseadd (U const &iLabel, bool isTracked, bool isOptional, bool writeToCfi)
 
ParameterDescriptionNodeaddNode (std::unique_ptr< ParameterDescriptionNode > node, bool optional, bool writeToCfi)
 
template<typename U >
ParameterDescriptionBaseaddVPSet (U const &iLabel, ParameterSetDescription const &validator, std::vector< ParameterSet > const &defaults, bool isTracked, bool isOptional, bool writeToCfi)
 
template<typename U >
ParameterDescriptionBaseaddVPSet (U const &iLabel, ParameterSetDescription const &validator, bool isTracked, bool isOptional, bool writeToCfi)
 
template<typename T , typename U >
ParameterWildcardBaseaddWildcard (U const &pattern, bool isTracked)
 
ParameterDescriptionNodeifExists (ParameterDescriptionNode const &node1, ParameterDescriptionNode const &node2, bool optional, bool writeToCfi)
 
template<typename T >
ParameterDescriptionNodeifValue (ParameterDescription< T > const &switchParameter, std::unique_ptr< ParameterDescriptionCases< T >> cases, bool optional, bool writeToCfi)
 
template<typename T , typename U >
ParameterDescriptionNodelabelsFrom (U const &iLabel, bool isTracked, bool optional, bool writeToCfi)
 
template<typename T , typename U , typename V >
ParameterDescriptionNodelabelsFrom (U const &iLabel, bool isTracked, bool optional, bool writeToCfi, V const &desc)
 
void throwIfLabelsAlreadyUsed (std::set< std::string > const &nodeLabels)
 
void throwIfWildcardCollision (std::set< ParameterTypes > const &nodeParameterTypes, std::set< ParameterTypes > const &nodeWildcardTypes)
 

Static Private Member Functions

static void printNode (SetDescriptionEntry const &entry, std::ostream &os, DocFormatHelper &dfh)
 
static void throwIllegalParameters (std::vector< std::string > const &parameterNames, std::set< std::string > const &validatedNames)
 
static void validateNode (SetDescriptionEntry const &entry, ParameterSet &pset, std::set< std::string > &validatedNames)
 
static void writeNode (SetDescriptionEntry const &entry, std::ostream &os, bool &startWithComma, int indentation, bool &wroteSomething)
 

Private Attributes

bool anythingAllowed_
 
std::string comment_
 
SetDescriptionEntries entries_
 
std::set< ParameterTypestypesUsedForParameters_
 
std::set< ParameterTypestypesUsedForWildcards_
 
bool unknown_
 
std::set< std::string > usedLabels_
 

Detailed Description

Definition at line 52 of file ParameterSetDescription.h.

Member Typedef Documentation

◆ const_iterator

typedef SetDescriptionEntries::const_iterator edm::ParameterSetDescription::const_iterator

Definition at line 73 of file ParameterSetDescription.h.

◆ SetDescriptionEntries

Definition at line 72 of file ParameterSetDescription.h.

Constructor & Destructor Documentation

◆ ParameterSetDescription()

ParameterSetDescription::ParameterSetDescription ( )

◆ ~ParameterSetDescription()

ParameterSetDescription::~ParameterSetDescription ( )
virtual

Definition at line 31 of file ParameterSetDescription.cc.

31 {}

Member Function Documentation

◆ add() [1/4]

template<typename T , typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::add ( U const &  iLabel,
T const &  value 
)
inline

Definition at line 95 of file ParameterSetDescription.h.

References relativeConstraints::value.

Referenced by JetCorrectorImplMakerBase::addToDescription(), SimpleFlatTableProducer< T >::baseDescriptions(), L1TCorrelatorLayer1PatternFileWriter::describeGCT(), hgcal::HGCalFrameGenerator::description(), pat::helper::KinResolutionsLoader::fillDescription(), GEMSegmentBuilder::fillDescription(), BeamFitter::fillDescription(), PVFitter::fillDescription(), pat::PATUserDataHelper< pat::MET >::fillDescription(), SiStripQualityWithFromFedErrorsHelper::fillDescription(), pat::PATUserDataMerger< pat::Jet, pat::helper::AddUserInt >::fillDescription(), PFTauSelector::fillDescriptions(), SeedGeneratorFromProtoTracksEDProducer::fillDescriptions(), edmtest::TestDescriptionComments::fillDescriptions(), Phase2ITRecHitHarvester::fillDescriptions(), L1TEnergySumFilterT< T >::fillDescriptions(), edmtest::PathsAndConsumesOfModulesTestService::fillDescriptions(), edm::CloseByParticleGunProducer::fillDescriptions(), L1TEGMultiMerger::fillDescriptions(), VertexAssociatorByTracksProducer::fillDescriptions(), ECFAdder::fillDescriptions(), L1TJetFilterT< T >::fillDescriptions(), HGCRecHitNavigator< D1, hgcee, D2, hgchef, D3, hgcheb >::fillDescriptions(), ParticleBasedIsoProducer::fillDescriptions(), PFRecoTauDiscriminationByLeadingObjectPtCut::fillDescriptions(), PixelVertexCollectionTrimmer::fillDescriptions(), CTPPSOpticalFunctionsESSource::fillDescriptions(), TrackerGeometricDetESModule::fillDescriptions(), MTDGeometricTimingDetESModule::fillDescriptions(), HBHEDarkeningEP::fillDescriptions(), HcalTimeSlewEP::fillDescriptions(), L1TPFTauFilter::fillDescriptions(), PPSFilteredProtonProducer::fillDescriptions(), PFTauDiscriminatorLogicalAndProducer::fillDescriptions(), HPSPFTauProducer::fillDescriptions(), SeedCreatorFromRegionHitsEDProducerT< T_SeedCreator >::fillDescriptions(), MVAJetPuIdProducer::fillDescriptions(), EcalRecHitParametersGPUESProducer::fillDescriptions(), L1TTkMuonFilter::fillDescriptions(), Phase2L1TGMTStubProducer::fillDescriptions(), edmtest::ThinningDSVTestAnalyzer::fillDescriptions(), TICLCandidateFromTrackstersProducer::fillDescriptions(), RPCPointProducer::fillDescriptions(), L1THPSPFTauFilter::fillDescriptions(), L1TTkEleFilter::fillDescriptions(), L1TTkEmFilter::fillDescriptions(), PFRecoTauDiscriminationByHPSSelection::fillDescriptions(), GlobalTrackingRegionProducer::fillDescriptions(), OnlineBeamSpotESProducer::fillDescriptions(), cms::CSJetProducer::fillDescriptions(), L1CTJetFileWriter::fillDescriptions(), edmtest::ProducerWithPSetDesc::fillDescriptions(), L2MuonIsolationProducer::fillDescriptions(), PFRecoTauDiscriminationByNProngs::fillDescriptions(), BeamSpotAnalyzer::fillDescriptions(), CTPPSDiamondLocalTrackFitter::fillDescriptions(), TrackingRegionsFromBeamSpotAndL2Tau::fillDescriptions(), DTUnpackingModule::fillDescriptions(), EcalRecHitProducer::fillDescriptions(), EcalBarrelClusterFastTimer::fillDescriptions(), CaloTowerFromL1TSeededCreatorForTauHLT::fillDescriptions(), PixelTripletHLTGenerator::fillDescriptions(), citk::PFIsolationSumProducerForPUPPI::fillDescriptions(), GEMCSCSegmentProducer::fillDescriptions(), GlobalTrackQualityProducer::fillDescriptions(), L3MuonCombinedRelativeIsolationProducer::fillDescriptions(), TauHadronDecayFilter::fillDescriptions(), AlcaPCCEventProducer::fillDescriptions(), TrackerDigiGeometryESModule::fillDescriptions(), ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaStreamSynchronizingProducerToDevice::fillDescriptions(), HLTPPSPerPotTrackFilter::fillDescriptions(), MkFitProducer::fillDescriptions(), MuDTSegmentExtTableProducer::fillDescriptions(), HcalSimpleReconstructor::fillDescriptions(), DiMuonVertexMonitor::fillDescriptions(), CaloTowerFromL1TCreatorForTauHLT::fillDescriptions(), PFRecoTauDiscriminationAgainstMuon::fillDescriptions(), AlCaRecoTriggerBitsRcdUpdate::fillDescriptions(), HLTCaloJetIDProducer::fillDescriptions(), CaloTowerCreatorForTauHLT::fillDescriptions(), magneticfield::DD4hep_VolumeBasedMagneticFieldESProducer::fillDescriptions(), BeamSpotOnlineProducer::fillDescriptions(), MTDDigiGeometryESModule::fillDescriptions(), EcalMustacheSCParametersESProducer::fillDescriptions(), EcalSCDynamicDPhiParametersESProducer::fillDescriptions(), SiPixelQualityESProducer::fillDescriptions(), ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaGlobalProducerOffset::fillDescriptions(), SiPixelFakeLorentzAngleESSource::fillDescriptions(), ElectronSeedProducer::fillDescriptions(), pat::PATMETProducer::fillDescriptions(), HcalRecAlgoESProducer::fillDescriptions(), SiStripLorentzAngleDepESProducer::fillDescriptions(), PPSAlignmentConfigurationESSource::fillDescriptions(), MeasurementTrackerESProducer::fillDescriptions(), RunInfoTestESProducer::fillDescriptions(), edm::service::PrescaleService::fillDescriptions(), PFProducer::fillDescriptions(), TotemRPUVPatternFinder::fillDescriptions(), TopMonitor::fillDescriptions(), citk::PFIsolationSumProducer::fillDescriptions(), CAHitTripletGenerator::fillDescriptions(), pat::PATJetUpdater::fillDescriptions(), BPHWriteSpecificDecay::fillDescriptions(), SiStripBackPlaneCorrectionDepESProducer::fillDescriptions(), MkFitSiStripHitConverter::fillDescriptions(), CAHitQuadrupletGenerator::fillDescriptions(), GlobalTrackingRegionProducerFromBeamSpot::fillDescriptions(), L3MuonProducer::fillDescriptions(), TrackTypeMonitor::fillDescriptions(), TauDiscriminantCutMultiplexerT< TauType, TauTypeRef, ParentClass >::fillDescriptions(), Phase2ITMonitorCluster::fillDescriptions(), BTagAndProbe::fillDescriptions(), Phase2OTMonitorCluster::fillDescriptions(), Phase1L1TJetCalibrator::fillDescriptions(), AlignPCLThresholdsWriter< T >::fillDescriptions(), TemplatedInclusiveVertexFinder< InputContainer, VTX >::fillDescriptions(), PFTauDecayModeCutMultiplexer::fillDescriptions(), RecoTauPiZeroProducer::fillDescriptions(), Phase2OTMonitorVectorHits::fillDescriptions(), DDDetectorESProducer::fillDescriptions(), EgammaHLTNxNClusterProducer::fillDescriptions(), ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaGlobalProducer::fillDescriptions(), FastjetJetProducer::fillDescriptions(), Phase2ITMonitorRecHit::fillDescriptions(), TotemVFATRawToDigi::fillDescriptions(), NanoAODDQM::fillDescriptions(), CTPPSCompositeESSource::fillDescriptions(), TemplatedVertexArbitrator< InputContainer, VTX >::fillDescriptions(), L2MuonProducer::fillDescriptions(), L1TCorrelatorLayer1Producer::fillDescriptions(), edmtest::PluginUsingProducer::fillDescriptions(), SiStripChannelGainFromDBMiscalibrator::fillDescriptions(), RecoTauProducer::fillDescriptions(), pat::PATPhotonProducer::fillDescriptions(), SiStripNoisesFromDBMiscalibrator::fillDescriptions(), ConversionTrackCandidateProducer::fillDescriptions(), StandaloneTrackMonitor::fillDescriptions(), Phase2ITValidateCluster::fillDescriptions(), ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaStreamProducer::fillDescriptions(), Phase2OTMonitorRecHit::fillDescriptions(), BTagProbabilityToDiscriminator::fillDescriptions(), Phase2OTValidateCluster::fillDescriptions(), Phase2L1CaloJetEmulator::fillDescriptions(), GlobalTrackingRegionWithVerticesProducer::fillDescriptions(), cms::PFMETProducer::fillDescriptions(), HLTGenValSource::fillDescriptions(), PFECALSuperClusterProducer::fillDescriptions(), HcalHardcodeCalibrations::fillDescriptions(), CorrectedECALPFClusterProducer::fillDescriptions(), pat::PATJetProducer::fillDescriptions(), pat::PATTauProducer::fillDescriptions(), TrackerOfflineValidationSummary::fillDescriptions(), PFRecoTauChargedHadronProducer::fillDescriptions(), LegacyPFClusterProducer::fillDescriptions(), Phase2L1CaloEGammaEmulator::fillDescriptions(), HITrackingRegionForPrimaryVtxProducer::fillDescriptions(), AreaSeededTrackingRegionsProducer::fillDescriptions(), PrimaryVertexProducer::fillDescriptions(), DiMuonVertexValidation::fillDescriptions(), L1TrackSelectionProducer::fillDescriptions(), DiElectronVertexValidation::fillDescriptions(), TauRegionalPixelSeedGenerator::fillDescriptions(), EcalSelectiveReadoutProducer::fillDescriptions(), ExternalLHEProducer::fillDescriptions(), PFRecoTauDiscriminationAgainstElectron2::fillDescriptions(), DiMuonMassBiasMonitor::fillDescriptions(), SiPixelStatusProducer::fillDescriptions(), pat::PATElectronProducer::fillDescriptions(), L1TrackVertexAssociationProducer::fillDescriptions(), pat::JetCorrFactorsProducer::fillDescriptions(), PrimaryVertexValidation::fillDescriptions(), MuonIdProducer::fillDescriptions(), TrackerOfflineValidation::fillDescriptions(), EgammaHLTPhase2ExtraProducer::fillDescriptions(), EgammaHLTExtraProducer::fillDescriptions(), TotemDAQMappingESSourceXML::fillDescriptions(), pat::PATMuonProducer::fillDescriptions(), reco::tau::RecoTauQualityCuts::fillDescriptions(), TrackingRegionsFromSuperClustersProducer::fillDescriptions(), EgammaHLTFilteredObjProducer< OutCollType >::fillDescriptions(), SiStripCondVisualizer::fillDescriptions(), SiPixelGainCalibScaler::fillDescriptions(), MuRecObjBaseProducer< DETECTOR_T, RECO_T, GEOM_T >::fillDescriptions(), HLTCaloObjInRegionsProducer< CaloObjType, CaloObjCollType >::fillDescriptions(), CandidateSeededTrackingRegionsProducer::fillDescriptions(), HLTRecHitInAllL1RegionsProducer< RecHitType >::fillDescriptions(), DTTrigPhase2Prod::fillDescriptions(), GsfElectronProducer::fillDescriptions(), IsolatedTracksCone::fillDescriptions(), PointSeededTrackingRegionsProducer::fillDescriptions(), L1MuonSeededTrackingRegionsProducer::fillDescriptions(), ALPAKA_ACCELERATOR_NAMESPACE::PFClusterParamsESProducer::fillDescriptions(), CandidatePointSeededTrackingRegionsProducer::fillDescriptions(), TopProjector< Top, Bottom, Matcher >::fillDescriptions(), L2TauNNProducerAlpaka::fillDescriptions(), L2TauNNProducer::fillDescriptions(), PFRecoTauDiscriminationByIsolation::fillDescriptions(), pat::PATJetSelector::fillDescriptions(), PFRecoTauDiscriminationByIsolationContainer::fillDescriptions(), RecoTauCleanerImpl< Prod >::fillDescriptions(), L1GTAlgoBlockProducer::fillDescriptions(), SimpleTypedExternalFlatTableProducer< T, V >::fillDescriptions(), GenWeightsTableProducer::fillDescriptions(), PrimaryVertexSorter< ParticlesCollection >::fillDescriptionsCommon(), DeepTauIdBase< TritonEDProducer<> >::fillDescriptionsHelper(), PuppiAlgo::fillDescriptionsPuppiAlgo(), TotemTimingLocalTrackFitter< T >::fillDescriptionsShared(), edm::fillOptionsDescription(), TauDiscriminationProducerBase< TauType, TauDiscriminator >::fillProducerDescriptions(), MaxLostHitsTrajectoryFilter::fillPSetDescription(), MaxConsecLostHitsTrajectoryFilter::fillPSetDescription(), VertexTimeAlgorithmFromTracksPID::fillPSetDescription(), MuonCkfTrajectoryBuilder::fillPSetDescription(), SeedExtensionTrajectoryFilter::fillPSetDescription(), MaxHitsTrajectoryFilter::fillPSetDescription(), LostHitsFractionTrajectoryFilter::fillPSetDescription(), MaxCCCLostHitsTrajectoryFilter::fillPSetDescription(), cms::alpakatest::TestHostOnlyHelperClass::fillPSetDescription(), PFMuonAlgo::fillPSetDescription(), LooperTrajectoryFilter::fillPSetDescription(), ALPAKA_ACCELERATOR_NAMESPACE::TestHelperClass::fillPSetDescription(), ChargeSignificanceTrajectoryFilter::fillPSetDescription(), ticl::PatternRecognitionbyCLUE3D< TILES >::fillPSetDescription(), ClusterShapeTrajectoryFilter::fillPSetDescription(), ThresholdPtTrajectoryFilter::fillPSetDescription(), ticl::PatternRecognitionbyCA< TILES >::fillPSetDescription(), GroupedCkfTrajectoryBuilder::fillPSetDescription(), MinHitsTrajectoryFilter::fillPSetDescription(), PFEGammaFilters::fillPSetDescription(), ticl::PatternRecognitionbyFastJet< TILES >::fillPSetDescription(), MinPtTrajectoryFilter::fillPSetDescription(), StripSubClusterShapeFilterBase::fillPSetDescription(), edmtest::ValueMaker::fillPSetDescription(), CkfTrajectoryBuilder::fillPSetDescription(), cms::CkfTrackCandidateMakerBase::fillPSetDescription(), Phase2ITValidateRecHitBase::fillPSetDescription(), TritonClient::fillPSetDescription(), edmtest::AnotherValueMaker::fillPSetDescription(), Phase2OTValidateRecHitBase::fillPSetDescription(), edmtest::AnotherMakerWithRecursivePlugin::fillPSetDescription(), BaseCkfTrajectoryBuilder::fillPSetDescription(), HGCalCLUEAlgoT< TILE, STRATEGY >::fillPSetDescription(), PFCandConnector::fillPSetDescription(), HGCalImagingAlgo::fillPSetDescription(), PFTauPrimaryVertexProducerBase::getDescriptionsBase(), HLTDQMTagAndProbeEff< TagType, TagCollType, ProbeType, ProbeCollType >::makePSetDescription(), edm::eventsetup::ESProductResolverProvider::prevalidate(), counter.Counter::register(), SequenceTypes._TaskBase::remove(), and SequenceTypes._TaskBase::replace().

95  {
96  return add<T, U>(iLabel, value, true, false, true);
97  }

◆ add() [2/4]

template<typename T , typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::add ( U const &  iLabel)
inline

Definition at line 118 of file ParameterSetDescription.h.

Referenced by counter.Counter::register(), SequenceTypes._TaskBase::remove(), and SequenceTypes._TaskBase::replace().

118  {
119  return add<T, U>(iLabel, true, false, true);
120  }

◆ add() [3/4]

template<typename T , typename U >
ParameterDescriptionBase * ParameterSetDescription::add ( U const &  iLabel,
T const &  value,
bool  isTracked,
bool  isOptional,
bool  writeToCfi 
)
private

Definition at line 390 of file ParameterSetDescription.h.

References addNode(), eostools::move(), and relativeConstraints::value.

Referenced by counter.Counter::register(), SequenceTypes._TaskBase::remove(), and SequenceTypes._TaskBase::replace().

391  {
392  std::unique_ptr<ParameterDescriptionNode> node =
393  std::make_unique<ParameterDescription<T>>(iLabel, value, isTracked);
394  ParameterDescriptionNode* pnode = addNode(std::move(node), isOptional, writeToCfi);
395  return static_cast<ParameterDescriptionBase*>(pnode);
396  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
def move(src, dest)
Definition: eostools.py:511

◆ add() [4/4]

template<typename T , typename U >
ParameterDescriptionBase * ParameterSetDescription::add ( U const &  iLabel,
bool  isTracked,
bool  isOptional,
bool  writeToCfi 
)
private

Definition at line 399 of file ParameterSetDescription.h.

References addNode(), and eostools::move().

Referenced by counter.Counter::register(), SequenceTypes._TaskBase::remove(), and SequenceTypes._TaskBase::replace().

402  {
403  std::unique_ptr<ParameterDescriptionNode> node = std::make_unique<ParameterDescription<T>>(iLabel, isTracked);
404  ParameterDescriptionNode* pnode = addNode(std::move(node), isOptional, writeToCfi);
405  return static_cast<ParameterDescriptionBase*>(pnode);
406  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
def move(src, dest)
Definition: eostools.py:511

◆ addNode() [1/3]

ParameterDescriptionNode * ParameterSetDescription::addNode ( ParameterDescriptionNode const &  node)

Definition at line 41 of file ParameterSetDescription.cc.

References edm::ParameterDescriptionNode::clone(), and eostools::move().

Referenced by add(), addNode(), addOptionalNode(), addVPSet(), addWildcard(), L1TCorrelatorLayer1PatternFileWriter::describeSectors(), L1TCorrelatorLayer1PatternFileWriter::describeTimeSlices(), EcalDQMonitorClient::fillDescriptions(), EcalDQMonitorTask::fillDescriptions(), TICLSeedingRegionProducer::fillDescriptions(), edmtest::ProducerWithPSetDesc::fillDescriptions(), TrackstersProducer::fillDescriptions(), HGCalLayerClusterProducer::fillDescriptions(), edmtest::PluginUsingProducer::fillDescriptions(), pat::PATPhotonProducer::fillDescriptions(), TrackstersMergeProducer::fillDescriptions(), pat::PATTauProducer::fillDescriptions(), pat::PATElectronProducer::fillDescriptions(), pat::PATMuonProducer::fillDescriptions(), MuRecObjBaseProducer< DETECTOR_T, RECO_T, GEOM_T >::fillDescriptions(), GroupedCkfTrajectoryBuilder::fillPSetDescription(), CompositeTrajectoryFilter::fillPSetDescription(), CkfTrajectoryBuilder::fillPSetDescription(), cms::CkfTrackCandidateMakerBase::fillPSetDescription(), edmtest::AnotherMakerWithRecursivePlugin::fillPSetDescription(), EcalUncalibRecHitWorkerRatio::getAlgoDescription(), EcalUncalibRecHitWorkerFixedAlphaBetaFit::getAlgoDescription(), EcalUncalibRecHitWorkerGlobal::getAlgoDescription(), EcalUncalibRecHitWorkerMultiFit::getAlgoDescription(), ifExists(), ifValue(), and labelsFrom().

41  {
42  std::unique_ptr<ParameterDescriptionNode> clonedNode(node.clone());
43  return addNode(std::move(clonedNode), false, true);
44  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
def move(src, dest)
Definition: eostools.py:511

◆ addNode() [2/3]

ParameterDescriptionNode * ParameterSetDescription::addNode ( std::unique_ptr< ParameterDescriptionNode node)

Definition at line 46 of file ParameterSetDescription.cc.

References addNode(), and eostools::move().

46  {
47  return addNode(std::move(node), false, true);
48  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
def move(src, dest)
Definition: eostools.py:511

◆ addNode() [3/3]

ParameterDescriptionNode * ParameterSetDescription::addNode ( std::unique_ptr< ParameterDescriptionNode node,
bool  optional,
bool  writeToCfi 
)
private

Definition at line 61 of file ParameterSetDescription.cc.

References edm::ParameterDescriptionNode::checkAndGetLabelsAndTypes(), entries_, mps_splice::entry, eostools::move(), Types::optional, throwIfLabelsAlreadyUsed(), and throwIfWildcardCollision().

63  {
64  std::set<std::string> nodeLabels;
65  std::set<ParameterTypes> nodeParameterTypes;
66  std::set<ParameterTypes> nodeWildcardTypes;
67  node->checkAndGetLabelsAndTypes(nodeLabels, nodeParameterTypes, nodeWildcardTypes);
68  throwIfLabelsAlreadyUsed(nodeLabels);
69  throwIfWildcardCollision(nodeParameterTypes, nodeWildcardTypes);
70 
71  SetDescriptionEntry entry;
72  entry.setOptional(optional);
73  entry.setWriteToCfi(writeToCfi);
74  entries_.push_back(entry);
75  return entries_.back().setNode(std::move(node));
76  }
void throwIfWildcardCollision(std::set< ParameterTypes > const &nodeParameterTypes, std::set< ParameterTypes > const &nodeWildcardTypes)
void throwIfLabelsAlreadyUsed(std::set< std::string > const &nodeLabels)
optional
Definition: Types.py:239
def move(src, dest)
Definition: eostools.py:511

◆ addOptional() [1/2]

template<typename T , typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addOptional ( U const &  iLabel,
T const &  value 
)
inline

Definition at line 105 of file ParameterSetDescription.h.

References relativeConstraints::value.

Referenced by pat::helper::KinResolutionsLoader::fillDescription(), pat::PATUserDataMerger< pat::Jet, pat::helper::AddUserInt >::fillDescription(), L1CTJetFileWriter::fillDescriptions(), edmtest::ProducerWithPSetDesc::fillDescriptions(), citk::PFIsolationSumProducerForPUPPI::fillDescriptions(), PFRecoTauDiscriminationAgainstMuon::fillDescriptions(), BeamSpotOnlineProducer::fillDescriptions(), SiPixelFakeLorentzAngleESSource::fillDescriptions(), pat::PATMETProducer::fillDescriptions(), pat::PATJetUpdater::fillDescriptions(), citk::PFIsolationSumProducer::fillDescriptions(), ALPAKA_ACCELERATOR_NAMESPACE::SiPixelRawToCluster< TrackerTraits >::fillDescriptions(), RecoTauPiZeroProducer::fillDescriptions(), SiPixelRawToClusterCUDAT< TrackerTraits >::fillDescriptions(), RecoTauProducer::fillDescriptions(), pat::PATPhotonProducer::fillDescriptions(), SiPixelRawToDigi::fillDescriptions(), pat::PATJetProducer::fillDescriptions(), pat::PATTauProducer::fillDescriptions(), PFRecoTauChargedHadronProducer::fillDescriptions(), EcalSelectiveReadoutProducer::fillDescriptions(), PFRecoTauDiscriminationAgainstElectron2::fillDescriptions(), pat::PATElectronProducer::fillDescriptions(), pat::PATMuonProducer::fillDescriptions(), reco::tau::RecoTauQualityCuts::fillDescriptions(), PFRecoTauDiscriminationByIsolation::fillDescriptions(), PFRecoTauDiscriminationByIsolationContainer::fillDescriptions(), RecoTauCleanerImpl< Prod >::fillDescriptions(), DeepTauIdBase< TritonEDProducer<> >::fillDescriptionsHelper(), and TauDiscriminationProducerBase< TauType, TauDiscriminator >::fillProducerDescriptions().

105  {
106  return add<T, U>(iLabel, value, true, true, true);
107  }

◆ addOptional() [2/2]

template<typename T , typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addOptional ( U const &  iLabel)
inline

Definition at line 128 of file ParameterSetDescription.h.

128  {
129  return add<T, U>(iLabel, true, true, true);
130  }

◆ addOptionalNode() [1/2]

ParameterDescriptionNode * ParameterSetDescription::addOptionalNode ( ParameterDescriptionNode const &  node,
bool  writeToCfi 
)

Definition at line 50 of file ParameterSetDescription.cc.

References addNode(), edm::ParameterDescriptionNode::clone(), and eostools::move().

Referenced by SimpleFlatTableProducer< T >::baseDescriptions(), ecaldqm::binning::fillAxisDescriptions(), edmtest::ProducerWithPSetDesc::fillDescriptions(), and SimpleTypedExternalFlatTableProducer< T, V >::fillDescriptions().

51  {
52  std::unique_ptr<ParameterDescriptionNode> clonedNode(node.clone());
53  return addNode(std::move(clonedNode), true, writeToCfi);
54  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
def move(src, dest)
Definition: eostools.py:511

◆ addOptionalNode() [2/2]

ParameterDescriptionNode * ParameterSetDescription::addOptionalNode ( std::unique_ptr< ParameterDescriptionNode node,
bool  writeToCfi 
)

Definition at line 56 of file ParameterSetDescription.cc.

References addNode(), and eostools::move().

57  {
58  return addNode(std::move(node), true, writeToCfi);
59  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
def move(src, dest)
Definition: eostools.py:511

◆ addOptionalUntracked() [1/2]

template<typename T , typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addOptionalUntracked ( U const &  iLabel,
T const &  value 
)
inline

◆ addOptionalUntracked() [2/2]

template<typename T , typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addOptionalUntracked ( U const &  iLabel)
inline

Definition at line 133 of file ParameterSetDescription.h.

133  {
134  return add<T, U>(iLabel, false, true, true);
135  }

◆ addUntracked() [1/2]

template<typename T , typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addUntracked ( U const &  iLabel,
T const &  value 
)
inline

Definition at line 100 of file ParameterSetDescription.h.

References relativeConstraints::value.

Referenced by ecaldqm::binning::fillAxisDescriptions(), GEMSegmentBuilder::fillDescription(), BeamFitter::fillDescription(), PVFitter::fillDescription(), edm::PoolOutputModule::fillDescription(), edm::TestSource::fillDescriptions(), BranchIDListsModifierProducer::fillDescriptions(), ecaldqm::DQWorkerClient::fillDescriptions(), edmtest::ProducerWithPSetDesc::fillDescriptions(), ecaldqm::EcalDQMonitor::fillDescriptions(), BeamSpotAnalyzer::fillDescriptions(), SiStripDetVOffPrinter::fillDescriptions(), DTUnpackingModule::fillDescriptions(), CaloTowerFromL1TSeededCreatorForTauHLT::fillDescriptions(), GEMCSCSegmentProducer::fillDescriptions(), AlcaPCCEventProducer::fillDescriptions(), CUDAService::fillDescriptions(), CaloTowerFromL1TCreatorForTauHLT::fillDescriptions(), OnlineBeamMonitor::fillDescriptions(), BeamSpotRcdPrinter::fillDescriptions(), CaloTowerCreatorForTauHLT::fillDescriptions(), BeamSpotOnlineProducer::fillDescriptions(), AlcaBeamMonitor::fillDescriptions(), SiStripLorentzAngleDepESProducer::fillDescriptions(), SiStripBackPlaneCorrectionDepESProducer::fillDescriptions(), L3MuonProducer::fillDescriptions(), edm::service::CheckTransitions::fillDescriptions(), TotemVFATRawToDigi::fillDescriptions(), L2MuonProducer::fillDescriptions(), L2MuonSeedGeneratorFromL1T::fillDescriptions(), L2MuonSeedGeneratorFromL1TkMu::fillDescriptions(), FastSiPixelFEDChannelContainerFromQuality::fillDescriptions(), MCMisalignmentScaler::fillDescriptions(), ecaldqm::DQWorker::fillDescriptions(), EcalSelectiveReadoutProducer::fillDescriptions(), SiPixelStatusProducer::fillDescriptions(), MuRecObjBaseProducer< DETECTOR_T, RECO_T, GEOM_T >::fillDescriptions(), TritonService::fillDescriptions(), DTTrigPhase2Prod::fillDescriptions(), PeriodicAllocMonitor::fillDescriptions(), L1MuonSeededTrackingRegionsProducer::fillDescriptions(), TopProjector< Top, Bottom, Matcher >::fillDescriptions(), FastTimerService::fillDescriptions(), SimpleTypedExternalFlatTableProducer< T, V >::fillDescriptions(), TrackingNtuple::fillDescriptions(), ecaldqm::fillMESetDescriptions(), edm::fillOptionsDescription(), StripSubClusterShapeFilterBase::fillPSetDescription(), TritonClient::fillPSetDescription(), HGCalCLUEAlgoT< TILE, STRATEGY >::fillPSetDescription(), HGCalImagingAlgo::fillPSetDescription(), and cms::alpakatools::module_backend_config().

100  {
101  return add<T, U>(iLabel, value, false, false, true);
102  }

◆ addUntracked() [2/2]

template<typename T , typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addUntracked ( U const &  iLabel)
inline

Definition at line 123 of file ParameterSetDescription.h.

123  {
124  return add<T, U>(iLabel, false, false, true);
125  }

◆ addVPSet() [1/4]

template<typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addVPSet ( U const &  iLabel,
ParameterSetDescription const &  validator,
std::vector< ParameterSet > const &  defaults 
)
inline

◆ addVPSet() [2/4]

template<typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addVPSet ( U const &  iLabel,
ParameterSetDescription const &  validator 
)
inline

Definition at line 177 of file ParameterSetDescription.h.

177  {
178  return addVPSet<U>(iLabel, validator, true, false, true);
179  }

◆ addVPSet() [3/4]

template<typename U >
ParameterDescriptionBase * ParameterSetDescription::addVPSet ( U const &  iLabel,
ParameterSetDescription const &  validator,
std::vector< ParameterSet > const &  defaults,
bool  isTracked,
bool  isOptional,
bool  writeToCfi 
)
private

Definition at line 409 of file ParameterSetDescription.h.

References addNode(), common_cff::defaults, and eostools::move().

414  {
415  std::unique_ptr<ParameterDescriptionNode> node =
416  std::make_unique<ParameterDescription<std::vector<ParameterSet>>>(iLabel, validator, isTracked, defaults);
417  ParameterDescriptionNode* pnode = addNode(std::move(node), isOptional, writeToCfi);
418  return static_cast<ParameterDescriptionBase*>(pnode);
419  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
def move(src, dest)
Definition: eostools.py:511

◆ addVPSet() [4/4]

template<typename U >
ParameterDescriptionBase * ParameterSetDescription::addVPSet ( U const &  iLabel,
ParameterSetDescription const &  validator,
bool  isTracked,
bool  isOptional,
bool  writeToCfi 
)
private

Definition at line 422 of file ParameterSetDescription.h.

References addNode(), and eostools::move().

423  {
424  std::unique_ptr<ParameterDescriptionNode> node =
425  std::make_unique<ParameterDescription<std::vector<ParameterSet>>>(iLabel, validator, isTracked);
426  ParameterDescriptionNode* pnode = addNode(std::move(node), isOptional, writeToCfi);
427  return static_cast<ParameterDescriptionBase*>(pnode);
428  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
def move(src, dest)
Definition: eostools.py:511

◆ addVPSetOptional() [1/2]

template<typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addVPSetOptional ( U const &  iLabel,
ParameterSetDescription const &  validator,
std::vector< ParameterSet > const &  defaults 
)
inline

Definition at line 163 of file ParameterSetDescription.h.

References common_cff::defaults.

Referenced by RecoTauProducer::fillDescriptions().

165  {
166  return addVPSet<U>(iLabel, validator, defaults, true, true, true);
167  }

◆ addVPSetOptional() [2/2]

template<typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addVPSetOptional ( U const &  iLabel,
ParameterSetDescription const &  validator 
)
inline

Definition at line 187 of file ParameterSetDescription.h.

187  {
188  return addVPSet<U>(iLabel, validator, true, true, true);
189  }

◆ addVPSetOptionalUntracked() [1/2]

template<typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addVPSetOptionalUntracked ( U const &  iLabel,
ParameterSetDescription const &  validator,
std::vector< ParameterSet > const &  defaults 
)
inline

Definition at line 170 of file ParameterSetDescription.h.

References common_cff::defaults.

172  {
173  return addVPSet<U>(iLabel, validator, defaults, false, true, true);
174  }

◆ addVPSetOptionalUntracked() [2/2]

template<typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addVPSetOptionalUntracked ( U const &  iLabel,
ParameterSetDescription const &  validator 
)
inline

Definition at line 192 of file ParameterSetDescription.h.

192  {
193  return addVPSet<U>(iLabel, validator, false, true, true);
194  }

◆ addVPSetUntracked() [1/2]

template<typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addVPSetUntracked ( U const &  iLabel,
ParameterSetDescription const &  validator,
std::vector< ParameterSet > const &  defaults 
)
inline

Definition at line 156 of file ParameterSetDescription.h.

References common_cff::defaults.

158  {
159  return addVPSet<U>(iLabel, validator, defaults, false, false, true);
160  }

◆ addVPSetUntracked() [2/2]

template<typename U >
ParameterDescriptionBase* edm::ParameterSetDescription::addVPSetUntracked ( U const &  iLabel,
ParameterSetDescription const &  validator 
)
inline

Definition at line 182 of file ParameterSetDescription.h.

182  {
183  return addVPSet<U>(iLabel, validator, false, false, true);
184  }

◆ addWildcard() [1/2]

template<typename T , typename U >
ParameterWildcardBase* edm::ParameterSetDescription::addWildcard ( U const &  pattern)
inline

Definition at line 199 of file ParameterSetDescription.h.

References topSingleLeptonDQM_PU_cfi::pattern.

Referenced by pat::PATObjectUserDataEmbedder< T, ParentType >::fillDescriptions().

199  {
200  return addWildcard<T, U>(pattern, true);
201  }

◆ addWildcard() [2/2]

template<typename T , typename U >
ParameterWildcardBase * ParameterSetDescription::addWildcard ( U const &  pattern,
bool  isTracked 
)
private

Definition at line 431 of file ParameterSetDescription.h.

References addNode(), eostools::move(), topSingleLeptonDQM_PU_cfi::pattern, and edm::RequireZeroOrMore.

431  {
432  std::unique_ptr<ParameterDescriptionNode> node =
433  std::make_unique<ParameterWildcard<T>>(pattern, RequireZeroOrMore, isTracked);
434  ParameterDescriptionNode* pnode = addNode(std::move(node), true, false);
435  return static_cast<ParameterWildcardBase*>(pnode);
436  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
def move(src, dest)
Definition: eostools.py:511

◆ addWildcardUntracked()

template<typename T , typename U >
ParameterWildcardBase* edm::ParameterSetDescription::addWildcardUntracked ( U const &  pattern)
inline

◆ anythingAllowed()

bool edm::ParameterSetDescription::anythingAllowed ( ) const
inline

Definition at line 292 of file ParameterSetDescription.h.

References anythingAllowed_.

Referenced by print(), and validate().

◆ begin()

const_iterator edm::ParameterSetDescription::begin ( void  ) const
inline

Definition at line 295 of file ParameterSetDescription.h.

References entries_.

295 { return entries_.begin(); }

◆ comment()

std::string const& edm::ParameterSetDescription::comment ( ) const
inline

Definition at line 78 of file ParameterSetDescription.h.

References comment_.

78 { return comment_; }

◆ end()

const_iterator edm::ParameterSetDescription::end ( void  ) const
inline

Definition at line 297 of file ParameterSetDescription.h.

References entries_.

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

297 { return entries_.end(); }

◆ ifExists() [1/2]

ParameterDescriptionNode* edm::ParameterSetDescription::ifExists ( ParameterDescriptionNode const &  node1,
ParameterDescriptionNode const &  node2 
)
inline

Definition at line 233 of file ParameterSetDescription.h.

Referenced by ifExistsOptional().

233  {
234  return ifExists(node1, node2, false, true);
235  }
ParameterDescriptionNode * ifExists(ParameterDescriptionNode const &node1, ParameterDescriptionNode const &node2)

◆ ifExists() [2/2]

ParameterDescriptionNode * ParameterSetDescription::ifExists ( ParameterDescriptionNode const &  node1,
ParameterDescriptionNode const &  node2,
bool  optional,
bool  writeToCfi 
)
private

Definition at line 325 of file ParameterSetDescription.cc.

References addNode(), eostools::move(), and Types::optional.

328  {
329  std::unique_ptr<ParameterDescriptionNode> pdIfExists = std::make_unique<IfExistsDescription>(node1, node2);
330  return addNode(std::move(pdIfExists), optional, writeToCfi);
331  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
optional
Definition: Types.py:239
def move(src, dest)
Definition: eostools.py:511

◆ ifExistsOptional()

ParameterDescriptionNode* edm::ParameterSetDescription::ifExistsOptional ( ParameterDescriptionNode const &  node1,
ParameterDescriptionNode const &  node2,
bool  writeToCfi 
)
inline

Definition at line 237 of file ParameterSetDescription.h.

References ifExists().

239  {
240  return ifExists(node1, node2, true, writeToCfi);
241  }
ParameterDescriptionNode * ifExists(ParameterDescriptionNode const &node1, ParameterDescriptionNode const &node2)

◆ ifValue() [1/2]

template<typename T >
ParameterDescriptionNode* edm::ParameterSetDescription::ifValue ( ParameterDescription< T > const &  switchParameter,
std::unique_ptr< ParameterDescriptionCases< T >>  cases 
)
inline

◆ ifValue() [2/2]

template<typename T >
ParameterDescriptionNode * ParameterSetDescription::ifValue ( ParameterDescription< T > const &  switchParameter,
std::unique_ptr< ParameterDescriptionCases< T >>  cases,
bool  optional,
bool  writeToCfi 
)
private

Definition at line 439 of file ParameterSetDescription.h.

References addNode(), eostools::move(), and Types::optional.

442  {
443  std::unique_ptr<ParameterDescriptionNode> pdswitch =
444  std::make_unique<ParameterSwitch<T>>(switchParameter, std::move(cases));
445  return addNode(std::move(pdswitch), optional, writeToCfi);
446  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
optional
Definition: Types.py:239
def move(src, dest)
Definition: eostools.py:511

◆ ifValueOptional()

template<typename T >
ParameterDescriptionNode* edm::ParameterSetDescription::ifValueOptional ( ParameterDescription< T > const &  switchParameter,
std::unique_ptr< ParameterDescriptionCases< T >>  cases,
bool  writeToCfi 
)
inline

Definition at line 226 of file ParameterSetDescription.h.

References eostools::move().

Referenced by edmtest::ProducerWithPSetDesc::fillDescriptions().

228  {
229  return ifValue<T>(switchParameter, std::move(cases), true, writeToCfi);
230  }
def move(src, dest)
Definition: eostools.py:511

◆ isLabelUnused()

bool ParameterSetDescription::isLabelUnused ( std::string const &  label) const

◆ isUnknown()

bool edm::ParameterSetDescription::isUnknown ( ) const
inline

Definition at line 293 of file ParameterSetDescription.h.

References unknown_.

Referenced by edm::ConfigurationDescriptions::print(), and print().

◆ labelsFrom() [1/4]

template<typename T , typename U >
ParameterDescriptionNode* edm::ParameterSetDescription::labelsFrom ( U const &  iLabel)
inline

Definition at line 245 of file ParameterSetDescription.h.

245  {
246  return labelsFrom<T, U>(iLabel, true, false, true);
247  }

◆ labelsFrom() [2/4]

template<typename T , typename U , typename V >
ParameterDescriptionNode* edm::ParameterSetDescription::labelsFrom ( U const &  iLabel,
V const &  desc 
)
inline

Definition at line 273 of file ParameterSetDescription.h.

References submitPVResolutionJobs::desc.

273  {
274  return labelsFrom<T, U, V>(iLabel, true, false, true, desc);
275  }

◆ labelsFrom() [3/4]

template<typename T , typename U >
ParameterDescriptionNode * ParameterSetDescription::labelsFrom ( U const &  iLabel,
bool  isTracked,
bool  optional,
bool  writeToCfi 
)
private

Definition at line 449 of file ParameterSetDescription.h.

References addNode(), eostools::move(), and Types::optional.

452  {
453  std::unique_ptr<ParameterDescriptionNode> pd = std::make_unique<AllowedLabelsDescription<T>>(iLabel, isTracked);
454  return addNode(std::move(pd), optional, writeToCfi);
455  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
optional
Definition: Types.py:239
def move(src, dest)
Definition: eostools.py:511

◆ labelsFrom() [4/4]

template<typename T , typename U , typename V >
ParameterDescriptionNode * ParameterSetDescription::labelsFrom ( U const &  iLabel,
bool  isTracked,
bool  optional,
bool  writeToCfi,
V const &  desc 
)
private

Definition at line 458 of file ParameterSetDescription.h.

References addNode(), submitPVResolutionJobs::desc, eostools::move(), and Types::optional.

459  {
460  std::unique_ptr<ParameterDescriptionNode> pd =
461  std::make_unique<AllowedLabelsDescription<T>>(iLabel, desc, isTracked);
462  return addNode(std::move(pd), optional, writeToCfi);
463  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
optional
Definition: Types.py:239
def move(src, dest)
Definition: eostools.py:511

◆ labelsFromOptional() [1/2]

template<typename T , typename U >
ParameterDescriptionNode* edm::ParameterSetDescription::labelsFromOptional ( U const &  iLabel,
bool  writeToCfi 
)
inline

Definition at line 255 of file ParameterSetDescription.h.

255  {
256  return labelsFrom<T, U>(iLabel, true, true, writeToCfi);
257  }

◆ labelsFromOptional() [2/2]

template<typename T , typename U , typename V >
ParameterDescriptionNode* edm::ParameterSetDescription::labelsFromOptional ( U const &  iLabel,
bool  writeToCfi,
V const &  desc 
)
inline

Definition at line 283 of file ParameterSetDescription.h.

References submitPVResolutionJobs::desc.

283  {
284  return labelsFrom<T, U, V>(iLabel, true, true, writeToCfi, desc);
285  }

◆ labelsFromOptionalUntracked() [1/2]

template<typename T , typename U >
ParameterDescriptionNode* edm::ParameterSetDescription::labelsFromOptionalUntracked ( U const &  iLabel,
bool  writeToCfi 
)
inline

Definition at line 260 of file ParameterSetDescription.h.

260  {
261  return labelsFrom<T, U>(iLabel, false, true, writeToCfi);
262  }

◆ labelsFromOptionalUntracked() [2/2]

template<typename T , typename U , typename V >
ParameterDescriptionNode* edm::ParameterSetDescription::labelsFromOptionalUntracked ( U const &  iLabel,
bool  writeToCfi,
V const &  desc 
)
inline

Definition at line 288 of file ParameterSetDescription.h.

References submitPVResolutionJobs::desc.

288  {
289  return labelsFrom<T, U, V>(iLabel, false, true, writeToCfi, desc);
290  }

◆ labelsFromUntracked() [1/2]

template<typename T , typename U >
ParameterDescriptionNode* edm::ParameterSetDescription::labelsFromUntracked ( U const &  iLabel)
inline

Definition at line 250 of file ParameterSetDescription.h.

250  {
251  return labelsFrom<T, U>(iLabel, false, false, true);
252  }

◆ labelsFromUntracked() [2/2]

template<typename T , typename U , typename V >
ParameterDescriptionNode* edm::ParameterSetDescription::labelsFromUntracked ( U const &  iLabel,
V const &  desc 
)
inline

Definition at line 278 of file ParameterSetDescription.h.

References submitPVResolutionJobs::desc.

278  {
279  return labelsFrom<T, U, V>(iLabel, false, false, true, desc);
280  }

◆ print()

void ParameterSetDescription::print ( std::ostream &  os,
DocFormatHelper dfh 
) const

Definition at line 152 of file ParameterSetDescription.cc.

References anythingAllowed(), edm::DocFormatHelper::brief(), entries_, edm::for_all(), edm::DocFormatHelper::indent(), isUnknown(), printNode(), edm::DocFormatHelper::setCounter(), and edm::DocFormatHelper::setPass().

Referenced by edm::ParameterWildcardWithSpecifics::printNestedContent_(), edm::PluginDescription< T >::printNestedContent_(), and edm::ParameterDescription< std::vector< ParameterSet > >::printNestedContent_().

152  {
153  using std::placeholders::_1;
154  if (isUnknown()) {
155  dfh.indent(os);
156  os << "Description is unknown. The configured PSet will not be validated\n";
157  dfh.indent(os);
158  os << "because the plugin has not defined this parameter set description.\n";
159  if (!dfh.brief())
160  os << "\n";
161  }
162 
163  if (anythingAllowed()) {
164  dfh.indent(os);
165  os << "Description allows anything. If the configured PSet contains illegal parameters,\n";
166  dfh.indent(os);
167  os << "then validation will ignore them instead of throwing an exception.\n";
168  if (!dfh.brief())
169  os << "\n";
170  }
171 
172  if (entries_.empty()) {
173  dfh.indent(os);
174  os << "Description is empty\n";
175  if (!dfh.brief())
176  os << "\n";
177  return;
178  }
179 
180  // Zeroth pass is only to calculate column widths in advance of any printing
181  dfh.setPass(0);
182  dfh.setCounter(0);
183  for_all(entries_, std::bind(&ParameterSetDescription::printNode, _1, std::ref(os), std::ref(dfh)));
184 
185  // First pass prints top level parameters and references to structure
186  dfh.setPass(1);
187  dfh.setCounter(0);
188  for_all(entries_, std::bind(&ParameterSetDescription::printNode, _1, std::ref(os), std::ref(dfh)));
189 
190  // Second pass prints substructure that goes into different sections of the
191  // output document
192  dfh.setPass(2);
193  dfh.setCounter(0);
194  for_all(entries_, std::bind(&ParameterSetDescription::printNode, _1, std::ref(os), std::ref(dfh)));
195  }
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:14
static void printNode(SetDescriptionEntry const &entry, std::ostream &os, DocFormatHelper &dfh)

◆ printNode()

void ParameterSetDescription::printNode ( SetDescriptionEntry const &  entry,
std::ostream &  os,
DocFormatHelper dfh 
)
staticprivate

Definition at line 233 of file ParameterSetDescription.cc.

References mps_splice::entry, and edm::DocFormatHelper::pass().

Referenced by print().

233  {
234  if (dfh.pass() < 2) {
235  entry.node()->print(os, entry.optional(), entry.writeToCfi(), dfh);
236  } else {
237  entry.node()->printNestedContent(os, entry.optional(), dfh);
238  }
239  }

◆ reserve()

void edm::ParameterSetDescription::reserve ( SetDescriptionEntries::size_type  n)
inline

◆ setAllowAnything()

void ParameterSetDescription::setAllowAnything ( )

◆ setComment() [1/2]

void ParameterSetDescription::setComment ( std::string const &  value)

◆ setComment() [2/2]

void ParameterSetDescription::setComment ( char const *  value)

◆ setUnknown()

void ParameterSetDescription::setUnknown ( )

◆ throwIfLabelsAlreadyUsed()

void ParameterSetDescription::throwIfLabelsAlreadyUsed ( std::set< std::string > const &  nodeLabels)
private

Definition at line 241 of file ParameterSetDescription.cc.

References Exception, edm::errors::LogicError, DBoxMetadataHelper::set_intersection(), contentValuesCheck::ss, and usedLabels_.

Referenced by addNode().

241  {
242  std::set<std::string> duplicateLabels;
243  std::insert_iterator<std::set<std::string> > insertIter(duplicateLabels, duplicateLabels.begin());
244  std::set_intersection(nodeLabels.begin(), nodeLabels.end(), usedLabels_.begin(), usedLabels_.end(), insertIter);
245  if (duplicateLabels.empty()) {
246  usedLabels_.insert(nodeLabels.begin(), nodeLabels.end());
247  } else {
248  std::stringstream ss;
249  for (std::set<std::string>::const_iterator iter = duplicateLabels.begin(), iEnd = duplicateLabels.end();
250  iter != iEnd;
251  ++iter) {
252  ss << " \"" << *iter << "\"\n";
253  }
254  throw edm::Exception(errors::LogicError) << "Labels used in different nodes of a ParameterSetDescription\n"
255  << "must be unique. The following duplicate labels were detected:\n"
256  << ss.str() << "\n";
257  }
258  }
std::set< std::string > usedLabels_
std::vector< std::string > set_intersection(std::vector< std::string > const &v1, std::vector< std::string > const &v2)

◆ throwIfWildcardCollision()

void ParameterSetDescription::throwIfWildcardCollision ( std::set< ParameterTypes > const &  nodeParameterTypes,
std::set< ParameterTypes > const &  nodeWildcardTypes 
)
private

Definition at line 260 of file ParameterSetDescription.cc.

References Exception, edm::errors::LogicError, edm::parameterTypeEnumToString(), DBoxMetadataHelper::set_intersection(), contentValuesCheck::ss, typesUsedForParameters_, and typesUsedForWildcards_.

Referenced by addNode().

261  {
262  // 1. Check that the new wildcard types do not collide with the existing
263  // parameter types.
264  // 2. Check that the new parameter types do not collide with the existing
265  // wildcard types.
266  // 3. Then insert them.
267  // The order of those steps is important because a wildcard with a default
268  // value could insert a type in both sets and this is OK.
269 
270  // We assume the node already checked for collisions between the new parameter
271  // types and the new wildcard types before passing the sets to this function.
272 
273  if (!nodeWildcardTypes.empty()) {
274  std::set<ParameterTypes> duplicateTypes1;
275  std::insert_iterator<std::set<ParameterTypes> > insertIter1(duplicateTypes1, duplicateTypes1.begin());
278  nodeWildcardTypes.begin(),
279  nodeWildcardTypes.end(),
280  insertIter1);
281 
282  if (!duplicateTypes1.empty()) {
283  std::stringstream ss;
284  for (std::set<ParameterTypes>::const_iterator iter = duplicateTypes1.begin(), iEnd = duplicateTypes1.end();
285  iter != iEnd;
286  ++iter) {
287  ss << " \"" << parameterTypeEnumToString(*iter) << "\"\n";
288  }
290  << "Within a ParameterSetDescription, the type used for a wildcard must\n"
291  << "not be the same as the type used for other parameters. This rule\n"
292  << "is violated for the following types:\n"
293  << ss.str() << "\n";
294  }
295  }
296 
297  if (!typesUsedForWildcards_.empty()) {
298  std::set<ParameterTypes> duplicateTypes2;
299  std::insert_iterator<std::set<ParameterTypes> > insertIter2(duplicateTypes2, duplicateTypes2.begin());
302  nodeParameterTypes.begin(),
303  nodeParameterTypes.end(),
304  insertIter2);
305 
306  if (!duplicateTypes2.empty()) {
307  std::stringstream ss;
308  for (std::set<ParameterTypes>::const_iterator iter = duplicateTypes2.begin(), iEnd = duplicateTypes2.end();
309  iter != iEnd;
310  ++iter) {
311  ss << " \"" << parameterTypeEnumToString(*iter) << "\"\n";
312  }
314  << "Within a ParameterSetDescription, the type used for a wildcard must\n"
315  << "not be the same as the type used for other parameters. This rule is\n"
316  << "violated for the following types :\n"
317  << ss.str() << "\n";
318  }
319  }
320 
321  typesUsedForParameters_.insert(nodeParameterTypes.begin(), nodeParameterTypes.end());
322  typesUsedForWildcards_.insert(nodeWildcardTypes.begin(), nodeWildcardTypes.end());
323  }
std::string parameterTypeEnumToString(ParameterTypes iType)
std::set< ParameterTypes > typesUsedForParameters_
std::set< ParameterTypes > typesUsedForWildcards_
std::vector< std::string > set_intersection(std::vector< std::string > const &v1, std::vector< std::string > const &v2)

◆ throwIllegalParameters()

void ParameterSetDescription::throwIllegalParameters ( std::vector< std::string > const &  parameterNames,
std::set< std::string > const &  validatedNames 
)
staticprivate

Definition at line 201 of file ParameterSetDescription.cc.

References edm::errors::Configuration, Exception, HcalResponse_cfi::parNames, DBoxMetadataHelper::set_difference(), contentValuesCheck::ss, and mitigatedMETSequence_cff::U.

Referenced by validate().

202  {
203  std::set<std::string> parNames(parameterNames.begin(), parameterNames.end());
204 
205  std::set<std::string> diffNames;
206  std::insert_iterator<std::set<std::string> > insertIter(diffNames, diffNames.begin());
207  std::set_difference(parNames.begin(), parNames.end(), validatedLabels.begin(), validatedLabels.end(), insertIter);
208 
209  std::stringstream ss;
210  for (std::set<std::string>::const_iterator iter = diffNames.begin(), iEnd = diffNames.end(); iter != iEnd; ++iter) {
211  ss << " '" << *iter << "'\n";
212  }
213  if (diffNames.size() == 1U) {
215  << "Illegal parameter found in configuration. The parameter is named:\n"
216  << ss.str() << "You could be trying to use a parameter name that is not\n"
217  << "allowed for this plugin or it could be misspelled.\n";
218  } else {
220  << "Illegal parameters found in configuration. The parameters are named:\n"
221  << ss.str() << "You could be trying to use parameter names that are not\n"
222  << "allowed for this plugin or they could be misspelled.\n";
223  }
224  }
std::vector< std::string > set_difference(std::vector< std::string > const &v1, std::vector< std::string > const &v2)

◆ validate()

void ParameterSetDescription::validate ( ParameterSet pset) const

Definition at line 78 of file ParameterSetDescription.cc.

References anythingAllowed(), entries_, edm::for_all(), muonDTDigis_cfi::pset, AlCaHLTBitMon_QueryRunRegistry::string, edm::IllegalParameters::throwAnException(), throwIllegalParameters(), unknown_, and validateNode().

Referenced by edm::ConfigurationDescriptions::validate(), edm::PluginDescription< T >::validate_(), and edm::ParameterWildcardWithSpecifics::validateDescription().

78  {
79  using std::placeholders::_1;
80  if (unknown_)
81  return;
82 
83  std::set<std::string> validatedLabels;
84  for_all(entries_, std::bind(&ParameterSetDescription::validateNode, _1, std::ref(pset), std::ref(validatedLabels)));
85 
86  std::vector<std::string> parameterNames = pset.getParameterNames();
87  if (validatedLabels.size() != parameterNames.size()) {
88  // These labels will be magically inserted into the top level
89  // of a module ParameterSet even though they are not in the
90  // python configuration files. If these are present, then
91  // assume they are OK and count them as validated.
92 
93  std::string module_label("@module_label");
94  if (pset.exists(module_label)) {
95  validatedLabels.insert(module_label);
96  }
97 
98  std::string module_type("@module_type");
99  if (pset.exists(module_type)) {
100  validatedLabels.insert(module_type);
101  }
102 
103  std::string module_edm_type("@module_edm_type");
104  if (pset.exists(module_edm_type)) {
105  validatedLabels.insert(module_edm_type);
106  }
107 
108  std::string service_type("@service_type");
109  if (pset.exists(service_type)) {
110  validatedLabels.insert(service_type);
111  }
112 
113  {
114  std::string tryToContinue("@shouldTryToContinue");
115  if (pset.exists(tryToContinue)) {
116  validatedLabels.insert(tryToContinue);
117  }
118  }
119  // Try again
120  if (validatedLabels.size() != parameterNames.size()) {
122  throwIllegalParameters(parameterNames, validatedLabels);
123  }
124  }
125  }
126  }
static void throwIllegalParameters(std::vector< std::string > const &parameterNames, std::set< std::string > const &validatedNames)
static bool throwAnException()
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:14
static void validateNode(SetDescriptionEntry const &entry, ParameterSet &pset, std::set< std::string > &validatedNames)

◆ validateNode()

void ParameterSetDescription::validateNode ( SetDescriptionEntry const &  entry,
ParameterSet pset,
std::set< std::string > &  validatedNames 
)
staticprivate

Definition at line 146 of file ParameterSetDescription.cc.

References mps_splice::entry, and muonDTDigis_cfi::pset.

Referenced by validate().

148  {
149  entry.node()->validate(pset, validatedLabels, entry.optional());
150  }

◆ writeCfi()

void ParameterSetDescription::writeCfi ( std::ostream &  os,
bool  startWithComma,
int  indentation 
) const

Definition at line 128 of file ParameterSetDescription.cc.

References entries_, edm::for_all(), printContent_cfi::indentation, and writeNode().

Referenced by edm::PluginDescription< T >::writeCfi_(), and edm::ParameterDescription< std::vector< ParameterSet > >::writeOneElementToCfi().

128  {
129  using std::placeholders::_1;
130  bool wroteSomething = false;
131 
134  _1,
135  std::ref(os),
136  std::ref(startWithComma),
137  indentation,
138  std::ref(wroteSomething)));
139 
140  if (wroteSomething) {
141  char oldFill = os.fill();
142  os << "\n" << std::setfill(' ') << std::setw(indentation - 2) << "" << std::setfill(oldFill);
143  }
144  }
static void writeNode(SetDescriptionEntry const &entry, std::ostream &os, bool &startWithComma, int indentation, bool &wroteSomething)
Func for_all(ForwardSequence &s, Func f)
wrapper for std::for_each
Definition: Algorithms.h:14

◆ writeNode()

void ParameterSetDescription::writeNode ( SetDescriptionEntry const &  entry,
std::ostream &  os,
bool &  startWithComma,
int  indentation,
bool &  wroteSomething 
)
staticprivate

Definition at line 226 of file ParameterSetDescription.cc.

References mps_splice::entry, and printContent_cfi::indentation.

Referenced by writeCfi().

227  {
228  if (entry.writeToCfi()) {
229  entry.node()->writeCfi(os, entry.optional(), startWithComma, indentation, wroteSomething);
230  }
231  }

Member Data Documentation

◆ anythingAllowed_

bool edm::ParameterSetDescription::anythingAllowed_
private

Definition at line 371 of file ParameterSetDescription.h.

Referenced by anythingAllowed(), and setAllowAnything().

◆ comment_

std::string edm::ParameterSetDescription::comment_
private

Definition at line 379 of file ParameterSetDescription.h.

Referenced by comment(), and setComment().

◆ entries_

SetDescriptionEntries edm::ParameterSetDescription::entries_
private

Definition at line 373 of file ParameterSetDescription.h.

Referenced by addNode(), begin(), end(), print(), reserve(), validate(), and writeCfi().

◆ typesUsedForParameters_

std::set<ParameterTypes> edm::ParameterSetDescription::typesUsedForParameters_
private

Definition at line 376 of file ParameterSetDescription.h.

Referenced by throwIfWildcardCollision().

◆ typesUsedForWildcards_

std::set<ParameterTypes> edm::ParameterSetDescription::typesUsedForWildcards_
private

Definition at line 377 of file ParameterSetDescription.h.

Referenced by throwIfWildcardCollision().

◆ unknown_

bool edm::ParameterSetDescription::unknown_
private

Definition at line 372 of file ParameterSetDescription.h.

Referenced by isUnknown(), setUnknown(), and validate().

◆ usedLabels_

std::set<std::string> edm::ParameterSetDescription::usedLabels_
private

Definition at line 375 of file ParameterSetDescription.h.

Referenced by isLabelUnused(), and throwIfLabelsAlreadyUsed().