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, CfiOptions &) 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, CfiOptions &, 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(), Phase2ITRecHitHarvester::fillDescriptions(), edmtest::TestDescriptionComments::fillDescriptions(), L1TEnergySumFilterT< T >::fillDescriptions(), HGCalUncalibRecHitProducer::fillDescriptions(), edmtest::PathsAndConsumesOfModulesTestService::fillDescriptions(), edm::CloseByParticleGunProducer::fillDescriptions(), PFRecHitProducer::fillDescriptions(), L1TEGMultiMerger::fillDescriptions(), VertexAssociatorByTracksProducer::fillDescriptions(), ECFAdder::fillDescriptions(), HGCRecHitNavigator< D1, hgcee, D2, hgchef, D3, hgcheb >::fillDescriptions(), L1TJetFilterT< T >::fillDescriptions(), ParticleBasedIsoProducer::fillDescriptions(), PFClusterTimeSelector::fillDescriptions(), PFRecoTauDiscriminationByLeadingObjectPtCut::fillDescriptions(), PixelVertexCollectionTrimmer::fillDescriptions(), TrackerGeometricDetESModule::fillDescriptions(), CTPPSOpticalFunctionsESSource::fillDescriptions(), MTDGeometricTimingDetESModule::fillDescriptions(), HBHEDarkeningEP::fillDescriptions(), HcalTimeSlewEP::fillDescriptions(), PFClusterProducer::fillDescriptions(), L1TPFTauFilter::fillDescriptions(), PPSFilteredProtonProducer::fillDescriptions(), HPSPFTauProducer::fillDescriptions(), PFTauDiscriminatorLogicalAndProducer::fillDescriptions(), SeedCreatorFromRegionHitsEDProducerT< T_SeedCreator >::fillDescriptions(), MVAJetPuIdProducer::fillDescriptions(), EcalRecHitParametersGPUESProducer::fillDescriptions(), L1TTkMuonFilter::fillDescriptions(), Phase2L1TGMTStubProducer::fillDescriptions(), edmtest::ThinningDSVTestAnalyzer::fillDescriptions(), TICLCandidateFromTrackstersProducer::fillDescriptions(), L1THPSPFTauFilter::fillDescriptions(), RPCPointProducer::fillDescriptions(), L1TTkEmFilter::fillDescriptions(), L1TTkEleFilter::fillDescriptions(), PFMultiDepthClusterProducer::fillDescriptions(), PFBlockProducer::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(), ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaStreamSynchronizingProducerToDevice::fillDescriptions(), HLTPPSPerPotTrackFilter::fillDescriptions(), MkFitProducer::fillDescriptions(), MuDTSegmentExtTableProducer::fillDescriptions(), HcalSimpleReconstructor::fillDescriptions(), DiMuonVertexMonitor::fillDescriptions(), CaloTowerFromL1TCreatorForTauHLT::fillDescriptions(), PFRecoTauDiscriminationAgainstMuon::fillDescriptions(), AlCaRecoTriggerBitsRcdUpdate::fillDescriptions(), TrackerDigiGeometryESModule::fillDescriptions(), HLTCaloJetIDProducer::fillDescriptions(), CaloTowerCreatorForTauHLT::fillDescriptions(), magneticfield::DD4hep_VolumeBasedMagneticFieldESProducer::fillDescriptions(), EcalSCDynamicDPhiParametersESProducer::fillDescriptions(), EcalMustacheSCParametersESProducer::fillDescriptions(), MTDDigiGeometryESModule::fillDescriptions(), SiPixelFakeLorentzAngleESSource::fillDescriptions(), SiPixelQualityESProducer::fillDescriptions(), ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaGlobalProducerOffset::fillDescriptions(), BeamSpotOnlineProducer::fillDescriptions(), ElectronSeedProducer::fillDescriptions(), pat::PATMETProducer::fillDescriptions(), edm::service::PrescaleService::fillDescriptions(), HcalRecAlgoESProducer::fillDescriptions(), SiStripLorentzAngleDepESProducer::fillDescriptions(), RunInfoTestESProducer::fillDescriptions(), MeasurementTrackerESProducer::fillDescriptions(), PPSAlignmentConfigurationESSource::fillDescriptions(), PFProducer::fillDescriptions(), TotemRPUVPatternFinder::fillDescriptions(), TopMonitor::fillDescriptions(), citk::PFIsolationSumProducer::fillDescriptions(), CAHitTripletGenerator::fillDescriptions(), pat::PATJetUpdater::fillDescriptions(), SiStripBackPlaneCorrectionDepESProducer::fillDescriptions(), BPHWriteSpecificDecay::fillDescriptions(), V0Monitor::fillDescriptions(), MkFitSiStripHitConverter::fillDescriptions(), CAHitQuadrupletGenerator::fillDescriptions(), GlobalTrackingRegionProducerFromBeamSpot::fillDescriptions(), Phase2OTMonitorTTTrack::fillDescriptions(), L3MuonProducer::fillDescriptions(), TrackTypeMonitor::fillDescriptions(), TauDiscriminantCutMultiplexerT< TauType, TauTypeRef, ParentClass >::fillDescriptions(), Phase2OTValidateTrackingParticles::fillDescriptions(), Phase2ITMonitorCluster::fillDescriptions(), BTagAndProbe::fillDescriptions(), Phase2OTMonitorCluster::fillDescriptions(), Phase1L1TJetCalibrator::fillDescriptions(), AlignPCLThresholdsWriter< T >::fillDescriptions(), TemplatedInclusiveVertexFinder< InputContainer, VTX >::fillDescriptions(), PFTauDecayModeCutMultiplexer::fillDescriptions(), RecoTauPiZeroProducer::fillDescriptions(), DDDetectorESProducer::fillDescriptions(), Phase2OTMonitorVectorHits::fillDescriptions(), EgammaHLTNxNClusterProducer::fillDescriptions(), ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaGlobalProducer::fillDescriptions(), Phase2ITMonitorRecHit::fillDescriptions(), FastjetJetProducer::fillDescriptions(), Phase2OTValidateTTStub::fillDescriptions(), TotemVFATRawToDigi::fillDescriptions(), ZdcHitReconstructor_Run3::fillDescriptions(), TemplatedVertexArbitrator< InputContainer, VTX >::fillDescriptions(), CTPPSCompositeESSource::fillDescriptions(), L2MuonProducer::fillDescriptions(), L1TCorrelatorLayer1Producer::fillDescriptions(), SiStripChannelGainFromDBMiscalibrator::fillDescriptions(), edmtest::PluginUsingProducer::fillDescriptions(), pat::PATPhotonProducer::fillDescriptions(), Phase2OTMonitorTTCluster::fillDescriptions(), RecoTauProducer::fillDescriptions(), SiStripNoisesFromDBMiscalibrator::fillDescriptions(), ConversionTrackCandidateProducer::fillDescriptions(), Phase2OTMonitorTTStub::fillDescriptions(), StandaloneTrackMonitor::fillDescriptions(), Phase2ITValidateCluster::fillDescriptions(), Phase2OTValidateCluster::fillDescriptions(), ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaStreamProducer::fillDescriptions(), Phase2OTMonitorRecHit::fillDescriptions(), NanoAODDQM::fillDescriptions(), BTagProbabilityToDiscriminator::fillDescriptions(), Phase2L1CaloJetEmulator::fillDescriptions(), GlobalTrackingRegionWithVerticesProducer::fillDescriptions(), HLTGenValSource::fillDescriptions(), cms::PFMETProducer::fillDescriptions(), PFECALSuperClusterProducer::fillDescriptions(), HcalHardcodeCalibrations::fillDescriptions(), CorrectedECALPFClusterProducer::fillDescriptions(), pat::PATJetProducer::fillDescriptions(), pat::PATTauProducer::fillDescriptions(), TrackerOfflineValidationSummary::fillDescriptions(), PFRecoTauChargedHadronProducer::fillDescriptions(), Phase2L1CaloEGammaEmulator::fillDescriptions(), LegacyPFClusterProducer::fillDescriptions(), HITrackingRegionForPrimaryVtxProducer::fillDescriptions(), TkAlV0sAnalyzer::fillDescriptions(), PrimaryVertexProducer::fillDescriptions(), AreaSeededTrackingRegionsProducer::fillDescriptions(), DiMuonVertexValidation::fillDescriptions(), L1TrackSelectionProducer::fillDescriptions(), DiElectronVertexValidation::fillDescriptions(), ExternalLHEProducer::fillDescriptions(), EcalSelectiveReadoutProducer::fillDescriptions(), TauRegionalPixelSeedGenerator::fillDescriptions(), DiMuonMassBiasMonitor::fillDescriptions(), PFRecoTauDiscriminationAgainstElectron2::fillDescriptions(), SiPixelStatusProducer::fillDescriptions(), pat::PATElectronProducer::fillDescriptions(), pat::JetCorrFactorsProducer::fillDescriptions(), PrimaryVertexValidation::fillDescriptions(), L1TrackVertexAssociationProducer::fillDescriptions(), MuonIdProducer::fillDescriptions(), TrackerOfflineValidation::fillDescriptions(), EgammaHLTPhase2ExtraProducer::fillDescriptions(), EgammaHLTExtraProducer::fillDescriptions(), TotemDAQMappingESSourceXML::fillDescriptions(), L1NNCaloTauProducer::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(), L1NNCaloTauEmulator::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(), TICLDumper::fillDescriptions(), GenWeightsTableProducer::fillDescriptions(), PrimaryVertexSorter< ParticlesCollection >::fillDescriptionsCommon(), DeepTauIdBase< TritonEDProducer<> >::fillDescriptionsHelper(), PuppiAlgo::fillDescriptionsPuppiAlgo(), TotemTimingLocalTrackFitter< T >::fillDescriptionsShared(), edm::fillOptionsDescription(), TauDiscriminationProducerBase< TauType, TauDiscriminator >::fillProducerDescriptions(), MaxConsecLostHitsTrajectoryFilter::fillPSetDescription(), MaxLostHitsTrajectoryFilter::fillPSetDescription(), VertexTimeAlgorithmFromTracksPID::fillPSetDescription(), MuonCkfTrajectoryBuilder::fillPSetDescription(), SeedExtensionTrajectoryFilter::fillPSetDescription(), MaxHitsTrajectoryFilter::fillPSetDescription(), LostHitsFractionTrajectoryFilter::fillPSetDescription(), MaxCCCLostHitsTrajectoryFilter::fillPSetDescription(), cms::alpakatest::TestHostOnlyHelperClass::fillPSetDescription(), PFMuonAlgo::fillPSetDescription(), ticl::PatternRecognitionbyPassthrough< TILES >::fillPSetDescription(), ALPAKA_ACCELERATOR_NAMESPACE::TestHelperClass::fillPSetDescription(), LooperTrajectoryFilter::fillPSetDescription(), ChargeSignificanceTrajectoryFilter::fillPSetDescription(), ticl::PatternRecognitionbyCLUE3D< TILES >::fillPSetDescription(), ClusterShapeTrajectoryFilter::fillPSetDescription(), ThresholdPtTrajectoryFilter::fillPSetDescription(), GroupedCkfTrajectoryBuilder::fillPSetDescription(), MinHitsTrajectoryFilter::fillPSetDescription(), ticl::PatternRecognitionbyCA< TILES >::fillPSetDescription(), ticl::TracksterLinkingPassthrough::fillPSetDescription(), PFEGammaFilters::fillPSetDescription(), MinPtTrajectoryFilter::fillPSetDescription(), ticl::PatternRecognitionbyFastJet< TILES >::fillPSetDescription(), StripSubClusterShapeFilterBase::fillPSetDescription(), edmtest::ValueMaker::fillPSetDescription(), CkfTrajectoryBuilder::fillPSetDescription(), Phase2ITValidateRecHitBase::fillPSetDescription(), cms::CkfTrackCandidateMakerBase::fillPSetDescription(), PFCandConnector::fillPSetDescription(), ticl::TracksterLinkingbyFastJet::fillPSetDescription(), ticl::TracksterLinkingbySkeletons::fillPSetDescription(), edmtest::AnotherValueMaker::fillPSetDescription(), TritonClient::fillPSetDescription(), Phase2OTValidateRecHitBase::fillPSetDescription(), edmtest::AnotherMakerWithRecursivePlugin::fillPSetDescription(), BaseCkfTrajectoryBuilder::fillPSetDescription(), HGCalImagingAlgo::fillPSetDescription(), HGCalCLUEAlgoT< TILE, STRATEGY >::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 391 of file ParameterSetDescription.h.

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

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

392  {
393  std::unique_ptr<ParameterDescriptionNode> node =
394  std::make_unique<ParameterDescription<T>>(iLabel, value, isTracked);
395  ParameterDescriptionNode* pnode = addNode(std::move(node), isOptional, writeToCfi);
396  return static_cast<ParameterDescriptionBase*>(pnode);
397  }
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 400 of file ParameterSetDescription.h.

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

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

403  {
404  std::unique_ptr<ParameterDescriptionNode> node = std::make_unique<ParameterDescription<T>>(iLabel, isTracked);
405  ParameterDescriptionNode* pnode = addNode(std::move(node), isOptional, writeToCfi);
406  return static_cast<ParameterDescriptionBase*>(pnode);
407  }
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(), PFClusterProducer::fillDescriptions(), TICLSeedingRegionProducer::fillDescriptions(), TrackstersProducer::fillDescriptions(), edmtest::PluginUsingProducer::fillDescriptions(), pat::PATPhotonProducer::fillDescriptions(), TracksterLinksProducer::fillDescriptions(), HGCalLayerClusterProducer::fillDescriptions(), TrackstersMergeProducer::fillDescriptions(), pat::PATTauProducer::fillDescriptions(), TICLCandidateProducer::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:245
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(), citk::PFIsolationSumProducerForPUPPI::fillDescriptions(), PFRecoTauDiscriminationAgainstMuon::fillDescriptions(), SiPixelFakeLorentzAngleESSource::fillDescriptions(), BeamSpotOnlineProducer::fillDescriptions(), pat::PATMETProducer::fillDescriptions(), pat::PATJetUpdater::fillDescriptions(), citk::PFIsolationSumProducer::fillDescriptions(), ALPAKA_ACCELERATOR_NAMESPACE::SiPixelRawToCluster< TrackerTraits >::fillDescriptions(), RecoTauPiZeroProducer::fillDescriptions(), SiPixelRawToClusterCUDAT< TrackerTraits >::fillDescriptions(), pat::PATPhotonProducer::fillDescriptions(), RecoTauProducer::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(), 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

Definition at line 110 of file ParameterSetDescription.h.

References relativeConstraints::value.

Referenced by edm::edmodule_mightGet_config(), ecaldqm::binning::fillAxisDescriptions(), and ecaldqm::fillMESetDescriptions().

110  {
111  return add<T, U>(iLabel, value, false, true, true);
112  }

◆ 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(), SiStripLorentzAngleDepESProducer::fillDescriptions(), SiStripBackPlaneCorrectionDepESProducer::fillDescriptions(), L3MuonProducer::fillDescriptions(), edm::service::CheckTransitions::fillDescriptions(), TotemVFATRawToDigi::fillDescriptions(), L2MuonProducer::fillDescriptions(), AlcaBeamMonitor::fillDescriptions(), L2MuonSeedGeneratorFromL1T::fillDescriptions(), L2MuonSeedGeneratorFromL1TkMu::fillDescriptions(), FastSiPixelFEDChannelContainerFromQuality::fillDescriptions(), MCMisalignmentScaler::fillDescriptions(), ecaldqm::DQWorker::fillDescriptions(), EcalSelectiveReadoutProducer::fillDescriptions(), SiPixelStatusProducer::fillDescriptions(), MuRecObjBaseProducer< DETECTOR_T, RECO_T, GEOM_T >::fillDescriptions(), DTTrigPhase2Prod::fillDescriptions(), TritonService::fillDescriptions(), PeriodicAllocMonitor::fillDescriptions(), L1MuonSeededTrackingRegionsProducer::fillDescriptions(), TopProjector< Top, Bottom, Matcher >::fillDescriptions(), ModuleAllocMonitor::fillDescriptions(), FastTimerService::fillDescriptions(), SimpleTypedExternalFlatTableProducer< T, V >::fillDescriptions(), TrackingNtuple::fillDescriptions(), ecaldqm::fillMESetDescriptions(), edm::fillOptionsDescription(), StripSubClusterShapeFilterBase::fillPSetDescription(), TritonClient::fillPSetDescription(), HGCalImagingAlgo::fillPSetDescription(), HGCalCLUEAlgoT< TILE, STRATEGY >::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 410 of file ParameterSetDescription.h.

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

415  {
416  std::unique_ptr<ParameterDescriptionNode> node =
417  std::make_unique<ParameterDescription<std::vector<ParameterSet>>>(iLabel, validator, isTracked, defaults);
418  ParameterDescriptionNode* pnode = addNode(std::move(node), isOptional, writeToCfi);
419  return static_cast<ParameterDescriptionBase*>(pnode);
420  }
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 423 of file ParameterSetDescription.h.

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

424  {
425  std::unique_ptr<ParameterDescriptionNode> node =
426  std::make_unique<ParameterDescription<std::vector<ParameterSet>>>(iLabel, validator, isTracked);
427  ParameterDescriptionNode* pnode = addNode(std::move(node), isOptional, writeToCfi);
428  return static_cast<ParameterDescriptionBase*>(pnode);
429  }
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 432 of file ParameterSetDescription.h.

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

432  {
433  std::unique_ptr<ParameterDescriptionNode> node =
434  std::make_unique<ParameterWildcard<T>>(pattern, RequireZeroOrMore, isTracked);
435  ParameterDescriptionNode* pnode = addNode(std::move(node), true, true);
436  return static_cast<ParameterWildcardBase*>(pnode);
437  }
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(), validate(), and writeCfi().

◆ 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 344 of file ParameterSetDescription.cc.

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

347  {
348  std::unique_ptr<ParameterDescriptionNode> pdIfExists = std::make_unique<IfExistsDescription>(node1, node2);
349  return addNode(std::move(pdIfExists), optional, writeToCfi);
350  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
optional
Definition: Types.py:245
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 440 of file ParameterSetDescription.h.

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

443  {
444  std::unique_ptr<ParameterDescriptionNode> pdswitch =
445  std::make_unique<ParameterSwitch<T>>(switchParameter, std::move(cases));
446  return addNode(std::move(pdswitch), optional, writeToCfi);
447  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
optional
Definition: Types.py:245
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().

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 450 of file ParameterSetDescription.h.

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

453  {
454  std::unique_ptr<ParameterDescriptionNode> pd = std::make_unique<AllowedLabelsDescription<T>>(iLabel, isTracked);
455  return addNode(std::move(pd), optional, writeToCfi);
456  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
optional
Definition: Types.py:245
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 459 of file ParameterSetDescription.h.

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

460  {
461  std::unique_ptr<ParameterDescriptionNode> pd =
462  std::make_unique<AllowedLabelsDescription<T>>(iLabel, desc, isTracked);
463  return addNode(std::move(pd), optional, writeToCfi);
464  }
ParameterDescriptionNode * addNode(ParameterDescriptionNode const &node)
optional
Definition: Types.py:245
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 164 of file ParameterSetDescription.cc.

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

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

164  {
165  using std::placeholders::_1;
166  if (isUnknown()) {
167  dfh.indent(os);
168  os << "Description is unknown. The configured PSet will not be validated\n";
169  dfh.indent(os);
170  os << "because the plugin has not defined this parameter set description.\n";
171  if (!dfh.brief())
172  os << "\n";
173  }
174 
175  if (anythingAllowed()) {
176  dfh.indent(os);
177  os << "Description allows anything. If the configured PSet contains illegal parameters,\n";
178  dfh.indent(os);
179  os << "then validation will ignore them instead of throwing an exception.\n";
180  if (!dfh.brief())
181  os << "\n";
182  }
183 
184  if (entries_.empty()) {
185  dfh.indent(os);
186  os << "Description is empty\n";
187  if (!dfh.brief())
188  os << "\n";
189  return;
190  }
191 
192  // Zeroth pass is only to calculate column widths in advance of any printing
193  dfh.setPass(0);
194  dfh.setCounter(0);
195  for_all(entries_, std::bind(&ParameterSetDescription::printNode, _1, std::ref(os), std::ref(dfh)));
196 
197  // First pass prints top level parameters and references to structure
198  dfh.setPass(1);
199  dfh.setCounter(0);
200  for_all(entries_, std::bind(&ParameterSetDescription::printNode, _1, std::ref(os), std::ref(dfh)));
201 
202  // Second pass prints substructure that goes into different sections of the
203  // output document
204  dfh.setPass(2);
205  dfh.setCounter(0);
206  for_all(entries_, std::bind(&ParameterSetDescription::printNode, _1, std::ref(os), std::ref(dfh)));
207  }
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 252 of file ParameterSetDescription.cc.

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

Referenced by print().

252  {
253  if (dfh.pass() < 2) {
254  entry.node()->print(os, entry.optional(), entry.writeToCfi(), dfh);
255  } else {
256  entry.node()->printNestedContent(os, entry.optional(), dfh);
257  }
258  }

◆ 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 260 of file ParameterSetDescription.cc.

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

Referenced by addNode().

260  {
261  std::set<std::string> duplicateLabels;
262  std::insert_iterator<std::set<std::string> > insertIter(duplicateLabels, duplicateLabels.begin());
263  std::set_intersection(nodeLabels.begin(), nodeLabels.end(), usedLabels_.begin(), usedLabels_.end(), insertIter);
264  if (duplicateLabels.empty()) {
265  usedLabels_.insert(nodeLabels.begin(), nodeLabels.end());
266  } else {
267  std::stringstream ss;
268  for (std::set<std::string>::const_iterator iter = duplicateLabels.begin(), iEnd = duplicateLabels.end();
269  iter != iEnd;
270  ++iter) {
271  ss << " \"" << *iter << "\"\n";
272  }
273  throw edm::Exception(errors::LogicError) << "Labels used in different nodes of a ParameterSetDescription\n"
274  << "must be unique. The following duplicate labels were detected:\n"
275  << ss.str() << "\n";
276  }
277  }
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 279 of file ParameterSetDescription.cc.

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

Referenced by addNode().

280  {
281  // 1. Check that the new wildcard types do not collide with the existing
282  // parameter types.
283  // 2. Check that the new parameter types do not collide with the existing
284  // wildcard types.
285  // 3. Then insert them.
286  // The order of those steps is important because a wildcard with a default
287  // value could insert a type in both sets and this is OK.
288 
289  // We assume the node already checked for collisions between the new parameter
290  // types and the new wildcard types before passing the sets to this function.
291 
292  if (!nodeWildcardTypes.empty()) {
293  std::set<ParameterTypes> duplicateTypes1;
294  std::insert_iterator<std::set<ParameterTypes> > insertIter1(duplicateTypes1, duplicateTypes1.begin());
297  nodeWildcardTypes.begin(),
298  nodeWildcardTypes.end(),
299  insertIter1);
300 
301  if (!duplicateTypes1.empty()) {
302  std::stringstream ss;
303  for (std::set<ParameterTypes>::const_iterator iter = duplicateTypes1.begin(), iEnd = duplicateTypes1.end();
304  iter != iEnd;
305  ++iter) {
306  ss << " \"" << parameterTypeEnumToString(*iter) << "\"\n";
307  }
309  << "Within a ParameterSetDescription, the type used for a wildcard must\n"
310  << "not be the same as the type used for other parameters. This rule\n"
311  << "is violated for the following types:\n"
312  << ss.str() << "\n";
313  }
314  }
315 
316  if (!typesUsedForWildcards_.empty()) {
317  std::set<ParameterTypes> duplicateTypes2;
318  std::insert_iterator<std::set<ParameterTypes> > insertIter2(duplicateTypes2, duplicateTypes2.begin());
321  nodeParameterTypes.begin(),
322  nodeParameterTypes.end(),
323  insertIter2);
324 
325  if (!duplicateTypes2.empty()) {
326  std::stringstream ss;
327  for (std::set<ParameterTypes>::const_iterator iter = duplicateTypes2.begin(), iEnd = duplicateTypes2.end();
328  iter != iEnd;
329  ++iter) {
330  ss << " \"" << parameterTypeEnumToString(*iter) << "\"\n";
331  }
333  << "Within a ParameterSetDescription, the type used for a wildcard must\n"
334  << "not be the same as the type used for other parameters. This rule is\n"
335  << "violated for the following types :\n"
336  << ss.str() << "\n";
337  }
338  }
339 
340  typesUsedForParameters_.insert(nodeParameterTypes.begin(), nodeParameterTypes.end());
341  typesUsedForWildcards_.insert(nodeWildcardTypes.begin(), nodeWildcardTypes.end());
342  }
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 213 of file ParameterSetDescription.cc.

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

Referenced by validate().

214  {
215  std::set<std::string> parNames(parameterNames.begin(), parameterNames.end());
216 
217  std::set<std::string> diffNames;
218  std::insert_iterator<std::set<std::string> > insertIter(diffNames, diffNames.begin());
219  std::set_difference(parNames.begin(), parNames.end(), validatedLabels.begin(), validatedLabels.end(), insertIter);
220 
221  std::stringstream ss;
222  for (std::set<std::string>::const_iterator iter = diffNames.begin(), iEnd = diffNames.end(); iter != iEnd; ++iter) {
223  ss << " '" << *iter << "'\n";
224  }
225  if (diffNames.size() == 1U) {
227  << "Illegal parameter found in configuration. The parameter is named:\n"
228  << ss.str() << "You could be trying to use a parameter name that is not\n"
229  << "allowed for this plugin or it could be misspelled.\n";
230  } else {
232  << "Illegal parameters found in configuration. The parameters are named:\n"
233  << ss.str() << "You could be trying to use parameter names that are not\n"
234  << "allowed for this plugin or they could be misspelled.\n";
235  }
236  }
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 158 of file ParameterSetDescription.cc.

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

Referenced by validate().

160  {
161  entry.node()->validate(pset, validatedLabels, entry.optional());
162  }

◆ writeCfi()

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

Definition at line 128 of file ParameterSetDescription.cc.

References anythingAllowed(), entries_, mps_splice::entry, printContent_cfi::indentation, or, l1tGTMenu_BTagSeeds_cff::os, edm::cfi::parameterMustBeTyped(), and writeNode().

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

131  {
132  bool wroteSomething = false;
133 
134  bool seenWildcard = false;
135  bool seenMultipleWildcards = false;
136  for (auto const& entry : entries_) {
137  //only add the first seen wildcard to the cfi. This avoids possible ambiguities.
138  if (entry.node()->isWildcard()) {
139  if (seenWildcard == true) {
140  seenMultipleWildcards = true;
141  continue;
142  }
143  seenWildcard = true;
144  }
145  writeNode(entry, os, startWithComma, indentation, options, wroteSomething);
146  }
147 
148  if ((anythingAllowed() or seenMultipleWildcards)) {
150  }
151 
152  if (wroteSomething) {
153  char oldFill = os.fill();
154  os << "\n" << std::setfill(' ') << std::setw(indentation - 2) << "" << std::setfill(oldFill);
155  }
156  }
void parameterMustBeTyped(CfiOptions &iOps) noexcept
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
static void writeNode(SetDescriptionEntry const &entry, std::ostream &os, bool &startWithComma, int indentation, CfiOptions &, bool &wroteSomething)

◆ writeNode()

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

Definition at line 238 of file ParameterSetDescription.cc.

References mps_splice::entry, printContent_cfi::indentation, AlcaSiPixelAliHarvester0T_cff::options, l1tGTMenu_BTagSeeds_cff::os, and edm::cfi::parameterMustBeTyped().

Referenced by writeCfi().

243  {
244  if (entry.writeToCfi()) {
245  entry.node()->writeCfi(os, entry.optional(), startWithComma, indentation, options, wroteSomething);
246  } else {
247  //The simplest way to handle this is to force all items to be full in this PSet
249  }
250  }
void parameterMustBeTyped(CfiOptions &iOps) noexcept

Member Data Documentation

◆ anythingAllowed_

bool edm::ParameterSetDescription::anythingAllowed_
private

Definition at line 372 of file ParameterSetDescription.h.

Referenced by anythingAllowed(), and setAllowAnything().

◆ comment_

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

Definition at line 380 of file ParameterSetDescription.h.

Referenced by comment(), and setComment().

◆ entries_

SetDescriptionEntries edm::ParameterSetDescription::entries_
private

Definition at line 374 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 377 of file ParameterSetDescription.h.

Referenced by throwIfWildcardCollision().

◆ typesUsedForWildcards_

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

Definition at line 378 of file ParameterSetDescription.h.

Referenced by throwIfWildcardCollision().

◆ unknown_

bool edm::ParameterSetDescription::unknown_
private

Definition at line 373 of file ParameterSetDescription.h.

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

◆ usedLabels_

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

Definition at line 376 of file ParameterSetDescription.h.

Referenced by isLabelUnused(), and throwIfLabelsAlreadyUsed().