CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
edm::ESProducer Class Reference

#include <ESProducer.h>

Inheritance diagram for edm::ESProducer:
edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider AnalyticalPropagatorESProducer BeamHaloPropagatorESProducer BeamSpotFakeConditions BtagPerformanceESProducer BufferedBoostIOESProducer< DataType, MyRecord > CaloGeometryBuilder CaloGeometryDBEP< T, U > CaloGeometryEP< T, D > CaloMiscalibTools CaloMiscalibToolsMC CaloSimParametersESModule CaloSimulationConstantsESModule CaloTopologyBuilder CaloTowerConstituentsMapBuilder CaloTowerHardcodeGeometryEP CaloTowerTopologyEP CaloTPGTranscoderULUTs CastorDbProducer CastorHardcodeCalibrations CastorHardcodeGeometryEP CastorTextCalibrations Chi2ChargeMeasurementEstimatorESProducer CloseComponentsMergerESProducer< N > ClusterShapeHitFilterESProducer ConvertingESProducerT< Record, Target, Source > ConvertingESProducerWithDependenciesT< CombinedRecord< DepsRecords... >, Target, Dependencies... > CosmicParametersDefinerForTPESProducer CSCBadChambersConditions CSCBadStripsConditions CSCBadWiresConditions CSCChamberIndexValues CSCChamberMapValues CSCChamberTimeCorrectionsValues CSCChannelMapperESProducer CSCChipSpeedCorrectionDBConditions CSCCrateMapValues CSCCrosstalkConditions CSCCrosstalkDBConditions CSCDBL1TPParametersConditions CSCDDUMapValues CSCFakeCrosstalkConditions CSCFakeDBCrosstalk CSCFakeDBCrosstalkPopCon CSCFakeDBGains CSCFakeDBGainsPopCon CSCFakeDBNoiseMatrix CSCFakeDBPedestals CSCFakeGainsConditions CSCFakeNoiseMatrixConditions CSCFakePedestalsConditions CSCGainsConditions CSCGainsDBConditions CSCGasGainCorrectionDBConditions CSCGeometryESModule CSCIndexerESProducer CSCL1TPParametersConditions CSCNoiseMatrixConditions CSCNoiseMatrixDBConditions CSCObjectMapESProducer CSCPedestalsDBConditions CSCTFConfigProducer CTPPSBeamParametersESSource CTPPSBeamParametersFromLHCInfoESSource CTPPSCompositeESSource CTPPSGeometryESModule CTPPSInterpolatedOpticalFunctionsESSource CTPPSLHCInfoESSource CTPPSLHCInfoRandomXangleESSource CTPPSModifiedOpticalFunctionsESSource CTPPSOpticalFunctionsESSource CTPPSPixelDAQMappingESSourceXML CTPPSRPAlignmentCorrectionsDataESSourceXML DDCompactViewESProducer DDCompactViewMFESProducer DDDetectorESProducer DDSpecParRegistryESProducer DDVectorRegistryESProducer DetIdAssociatorESProducer DetLayerGeometryESProducer DIPLumiProducer DistanceBetweenComponentsESProducer< N > DTConfigDBProducer DTConfigTrivialProducer DTFakeT0ESProducer DTGeometryESModule DTGeometryESProducer DTObjectMapESProducer DTTrackFinderConfig EcalBasicClusterLocalContCorrectionsESProducer EcalCATIAGainRatiosESProducer EcalElectronicsMappingBuilder EcalGlobalShowerContainmentCorrectionsVsEtaESProducer EcalLaserCorrectionService EcalLaserCorrectionServiceMC EcalLiteDTUPedestalsESProducer EcalMultifitParametersGPUESProducer EcalMustacheSCParametersESProducer EcalNextToDeadChannelESProducer EcalRecHitParametersGPUESProducer EcalRegionCablingESProducer EcalSCDynamicDPhiParametersESProducer EcalSeverityLevelESProducer EcalShowerContainmentCorrectionsESProducer EcalSimParametersESModule EcalTBGeometryBuilder EcalTBHodoscopeGeometryEP EcalTrigPrimESProducer EcalTrigPrimSpikeESProducer EcalTrigTowerConstituentsMapBuilder EcalTrivialConditionRetriever edm::ESProducerLooper ES_TTClusterAlgorithm_neighbor< T > ES_TTClusterAlgorithm_official< T > ES_TTStubAlgorithm_cbc3< T > ES_TTStubAlgorithm_official< T > ESTrivialConditionRetriever FakeAlignmentProducer FakeAlignmentSource FakeCaloAlignmentEP FastTimeGeometryESProducer FastTimeNumberingInitialization FastTimeParametersESModule FastTimeTopologyBuilder FFTJetCorrectionESProducer< CT > FFTJetLookupTableESProducer< CT > FWRecoGeometryESProducer FWTGeoRecoGeometryESProducer GeantPropagatorESProducer GEMGeometryESModule GlobalDetLayerGeometryESProducer GlobalTrackingGeometryESProducer GsfMaterialEffectsESProducer GsfTrajectoryFitterESProducer GsfTrajectorySmootherESProducer HBHEDarkeningEP HcalAlignmentEP HcalChannelPropertiesEP HcalDbProducer HcalDDDGeometryEP HcalDDDRecConstantsESModule HcalDDDSimConstantsESModule HcalHardcodeCalibrations HcalHardcodeGeometryEP HcalMahiPulseOffsetsGPUESProducer HcalParametersESModule HcalRecAlgoESProducer HcalSimParametersESModule HcalSimulationConstantsESModule HcalTB02ParametersESModule HcalTB06ParametersESModule HcalTextCalibrations HcalTimeSlewEP HcalTopologyIdealEP HcalTPGCoderULUT HcalTrigTowerGeometryESProducer HepPDTESSource HeterogeneousHGCalHEFCellPositionsFiller HGCalGeometryESProducer HGCalNumberingInitialization HGCalParametersESModule HGCalTopologyBuilder HGCalTriggerGeometryESProducer HiTrivialConditionRetriever jet_tag_computer_esproducer_impl::JetTagComputerESProducer< ConcreteJetTagComputer, bool > jet_tag_computer_esproducer_impl::JetTagComputerESProducer< ConcreteJetTagComputer, true > JetCorrectionESChain JetCorrectionESProducer< Corrector > JetCorrectionESSource< Corrector > JetResolutionESProducer JetResolutionScaleFactorESProducer KFFittingSmootherESProducer KFFittingSmootherESProducer KFSwitching1DUpdatorESProducer KFUpdatorESProducer L1CaloGeometryProd L1CaloInputScalesProducer L1ConfigOnlineProdBase< TRcd, TData > L1ConfigOnlineProdBase< L1CaloEcalScaleRcd, L1CaloEcalScale > L1ConfigOnlineProdBase< L1CaloHcalScaleRcd, L1CaloHcalScale > L1ConfigOnlineProdBase< L1EmEtScaleRcd, L1CaloEtScale > L1ConfigOnlineProdBase< L1GctChannelMaskRcd, L1GctChannelMask > L1ConfigOnlineProdBase< L1GctJetFinderParamsRcd, L1GctJetFinderParams > L1ConfigOnlineProdBase< L1GtParametersRcd, L1GtParameters > L1ConfigOnlineProdBase< L1GtPrescaleFactorsAlgoTrigRcd, L1GtPrescaleFactors > L1ConfigOnlineProdBase< L1GtPrescaleFactorsTechTrigRcd, L1GtPrescaleFactors > L1ConfigOnlineProdBase< L1GtPsbSetupRcd, L1GtPsbSetup > L1ConfigOnlineProdBase< L1GtTriggerMaskAlgoTrigRcd, L1GtTriggerMask > L1ConfigOnlineProdBase< L1GtTriggerMaskTechTrigRcd, L1GtTriggerMask > L1ConfigOnlineProdBase< L1GtTriggerMaskVetoTechTrigRcd, L1GtTriggerMask > L1ConfigOnlineProdBase< L1GtTriggerMenuRcd, L1GtTriggerMenu > L1ConfigOnlineProdBase< L1HfRingEtScaleRcd, L1CaloEtScale > L1ConfigOnlineProdBase< L1HtMissScaleRcd, L1CaloEtScale > L1ConfigOnlineProdBase< L1JetEtScaleRcd, L1CaloEtScale > L1ConfigOnlineProdBase< L1MuCSCPtLutRcd, L1MuCSCPtLut > L1ConfigOnlineProdBase< L1MuCSCTFAlignmentRcd, L1MuCSCTFAlignment > L1ConfigOnlineProdBase< L1MuCSCTFConfigurationRcd, L1MuCSCTFConfiguration > L1ConfigOnlineProdBase< L1MuDTEtaPatternLutRcd, L1MuDTEtaPatternLut > L1ConfigOnlineProdBase< L1MuDTExtLutRcd, L1MuDTExtLut > L1ConfigOnlineProdBase< L1MuDTPhiLutRcd, L1MuDTPhiLut > L1ConfigOnlineProdBase< L1MuDTPtaLutRcd, L1MuDTPtaLut > L1ConfigOnlineProdBase< L1MuDTQualPatternLutRcd, L1MuDTQualPatternLut > L1ConfigOnlineProdBase< L1MuDTTFMasksRcd, L1MuDTTFMasks > L1ConfigOnlineProdBase< L1MuDTTFParametersRcd, L1MuDTTFParameters > L1ConfigOnlineProdBase< L1MuGMTChannelMaskRcd, L1MuGMTChannelMask > L1ConfigOnlineProdBase< L1MuGMTParametersRcd, L1MuGMTParameters > L1ConfigOnlineProdBase< L1MuTriggerPtScaleRcd, L1MuTriggerPtScale > L1ConfigOnlineProdBase< L1MuTriggerScalesRcd, L1MuTriggerScales > L1ConfigOnlineProdBase< L1RCTChannelMaskRcd, L1RCTChannelMask > L1ConfigOnlineProdBase< L1RCTParametersRcd, L1RCTParameters > L1ConfigOnlineProdBase< L1RPCBxOrConfigRcd, L1RPCBxOrConfig > L1ConfigOnlineProdBase< L1RPCConeDefinitionRcd, L1RPCConeDefinition > L1ConfigOnlineProdBase< L1RPCConfigRcd, L1RPCConfig > L1ConfigOnlineProdBase< L1RPCHsbConfigRcd, L1RPCHsbConfig > L1ConfigOnlineProdBaseExt< TRcd, TData > L1ConfigOnlineProdBaseExt< L1TCaloParamsO2ORcd, l1t::CaloParams > L1ConfigOnlineProdBaseExt< L1TGlobalPrescalesVetosFractO2ORcd, L1TGlobalPrescalesVetosFract > L1ConfigOnlineProdBaseExt< L1TMuonBarrelParamsO2ORcd, L1TMuonBarrelParams > L1ConfigOnlineProdBaseExt< L1TMuonEndCapForestO2ORcd, L1TMuonEndCapForest > L1ConfigOnlineProdBaseExt< L1TMuonEndCapParamsO2ORcd, L1TMuonEndCapParams > L1ConfigOnlineProdBaseExt< L1TMuonGlobalParamsO2ORcd, L1TMuonGlobalParams > L1ConfigOnlineProdBaseExt< L1TMuonOverlapParamsO2ORcd, L1TMuonOverlapParams > L1ConfigOnlineProdBaseExt< L1TUtmTriggerMenuO2ORcd, L1TUtmTriggerMenu > L1CSCTriggerPrimitivesConfigProducer L1GctConfigProducers L1GtBoardMapsTrivialProducer L1GtParametersTrivialProducer L1GtPrescaleFactorsAlgoTrigTrivialProducer L1GtPrescaleFactorsTechTrigTrivialProducer L1GtPsbSetupTrivialProducer L1GtStableParametersTrivialProducer L1GtTriggerMaskAlgoTrigTrivialProducer L1GtTriggerMaskTechTrigTrivialProducer L1GtTriggerMaskVetoAlgoTrigTrivialProducer L1GtTriggerMaskVetoTechTrigTrivialProducer L1GtTriggerMenuXmlProducer L1MuGMTParametersProducer L1MuGMTScalesProducer L1MuTriggerPtScaleProducer L1MuTriggerScalesProducer L1ObjectKeysOnlineProdBase L1ObjectKeysOnlineProdBaseExt L1RCTOmdsFedVectorProducer L1RPCConeDefinitionProducer L1ScalesTrivialProducer L1SubsystemKeysOnlineProd L1SubsystemKeysOnlineProdExt L1TCaloConfigESProducer L1TCaloParamsESProducer L1TCaloStage2ParamsESProducer L1TGlobalPrescalesVetosESProducer L1TMuonBarrelParamsESProducer L1TMuonEndCapForestESProducer L1TMuonEndCapForestOnlineProxy L1TMuonEndCapParamsESProducer L1TMuonGlobalParamsESProducer L1TMuonOverlapParamsESProducer L1TMuonOverlapParamsOnlineProxy L1TriggerKeyDummyProd L1TriggerKeyDummyProdExt L1TriggerKeyListDummyProd L1TriggerKeyListDummyProdExt L1TriggerKeyOnlineProd L1TriggerKeyOnlineProdExt L1TTwinMuxParamsESProducer L1TUtmTriggerMenuESProducer LumiCorrectionSource LwtnnESProducer magneticfield::AutoParametrizedMagneticFieldProducer magneticfield::DD4hep_VolumeBasedMagneticFieldESProducer magneticfield::DD4hep_VolumeBasedMagneticFieldESProducerFromDB magneticfield::ParametrizedMagneticFieldProducer magneticfield::UniformMagneticFieldESProducer magneticfield::VolumeBasedMagneticFieldESProducer magneticfield::VolumeBasedMagneticFieldESProducerFromDB MagneticFieldMapESProducer ME0GeometryESModule MeasurementTrackerESProducer MisalignedTrackerESProducer MTDCPEESProducer MTDDetLayerGeometryESProducer MTDDigiGeometryESModule MTDGeometricTimingDetESModule MTDParametersESModule MTDTimeCalibESProducer MTDTopologyEP MTDTransientTrackingRecHitBuilderESProducer MultiRecHitCollectorESProducer MuonDetLayerGeometryESProducer MuonGeometryConstantsESModule MuonNumberingESProducer MuonNumberingInitialization MuonOffsetESProducer MuonTransientTrackingRecHitBuilderESProducer NavigationSchoolESProducer OfflineToTransientBeamSpotESProducer OnlineBeamSpotESProducer ParametersDefinerForTPESProducer Phase2StripCPEESProducer Phase2TrackerCablingESProducer PhysicsTools::MVAComputerESSourceBase PixelCPEClusterRepairESProducer PixelCPEFastESProducer PixelCPEGenericESProducer PixelCPETemplateRecoESProducer PixelFEDChannelCollectionProducer PixelToFEDAssociateFromAsciiESProducer PixelToLNKAssociateFromAsciiESProducer PixelTrackCleanerBySharedHitsESProducer PPSAlignmentConfigESSource PPSPixelTopologyESSource PPSTimingCalibrationESSource PropagatorWithMaterialESProducer QGLikelihoodESProducer QGLikelihoodSystematicsESProducer RCTConfigProducers RPCConeBuilder RPCGeometryESModule RPCInverseCPPFLinkMapESProducer RPCInverseLBLinkMapESProducer RPCInverseOMTFLinkMapESProducer RPCInverseTwinMuxLinkMapESProducer RPCPerformanceESSource RPCTriggerBxOrConfig RPCTriggerConfig RPCTriggerHsbConfig RPCTriggerHwConfig RunInfoTestESProducer SiPhase2OuterTrackerFakeLorentzAngleESSource SiPhase2RecHitMatcherESProducer SiPixel2DTemplateDBObjectESProducer SiPixelFakeCPEGenericErrorParmESSource SiPixelFakeGainESSource SiPixelFakeGainForHLTESSource SiPixelFakeGainOfflineESSource SiPixelFakeGenErrorDBObjectESSource SiPixelFakeLorentzAngleESSource SiPixelFakeQualityESSource SiPixelFakeTemplateDBObjectESSource SiPixelGainCalibrationForHLTGPUESProducer SiPixelGenErrorDBObjectESProducer SiPixelQualityESProducer SiPixelROCsStatusAndMappingWrapperESProducer SiPixelTemplateDBObjectESProducer sistrip::MeasureLA SiStripApvGainFakeESSource SiStripApvSimulationParametersESSource SiStripBackPlaneCorrectionDepESProducer SiStripBackPlaneCorrectionFakeESSource SiStripBadModuleConfigurableFakeESSource SiStripBaseDelayFakeESSource SiStripClusterizerConditionsESProducer SiStripConfObjectFakeESSource SiStripConnectivity SiStripDelayESProducer SiStripFedCablingESProducer SiStripGainESProducer SiStripGainESSource SiStripGainSimESProducer SiStripHashedDetIdESModule SiStripHashedDetIdFakeESSource SiStripLatencyFakeESSource SiStripLorentzAngleDepESProducer SiStripLorentzAngleFakeESSource SiStripNoiseESSource SiStripNoisesFakeESSource SiStripPedestalsESSource SiStripPedestalsFakeESSource SiStripQualityESProducer SiStripQualityFakeESSource SiStripRecHitMatcherESProducer SiStripRegionConnectivity SiStripTemplateEmptyFakeESSource< TObject, TRecord > SiStripThresholdFakeESSource SiTrackerMultiRecHitUpdatorESProducer SkippingLayerCosmicNavigationSchoolESProducer SmartPropagatorESProducer StableParametersTrivialProducer SteppingHelixPropagatorESProducer StraightLinePropagatorESProducer StringResolutionProviderESProducer StripCPEESProducer TestCaloAlignmentEP TfGraphDefProducer TGeoMgrFromDdd TkDetMapESProducer TkMSParameterizationBuilder TkTransientTrackingRecHitBuilderESProducer TotemDAQMappingESSourceXML TrackAlgoPriorityOrderESProducer TrackCleanerESProducer TrackerDigiGeometryESModule trackerDTC::ProducerES TrackerGeometricDetESModule TrackerInteractionGeometryESProducer TrackerMTDRecoGeometryESProducer TrackerParametersESModule TrackerRecoGeometryESProducer TrackerTopologyEP TrackingRecHitPropagatorESProducer TrajectoryCleanerESProducer TransientTrackBuilderESProducer TSCBLBuilderNoMaterialESProducer TSCBLBuilderWithPropagatorESProducer XMLIdealGeometryESProducer XMLIdealGeometryESSource XMLIdealMagneticFieldGeometryESProducer ZdcHardcodeGeometryEP

Public Member Functions

 ESProducer ()
 
 ESProducer (const ESProducer &)=delete
 
ESProxyIndex const * getTokenIndices (unsigned int iIndex) const
 
ESRecordIndex const * getTokenRecordIndices (unsigned int iIndex) const
 
bool hasMayConsumes () const noexcept
 
size_t numberOfTokenIndices (unsigned int iIndex) const
 
ESProducer const & operator= (const ESProducer &)=delete
 
SerialTaskQueueChainqueue ()
 
template<typename Record >
std::optional< std::vector< ESProxyIndex > > updateFromMayConsumes (unsigned int iIndex, const Record &iRecord) const
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &) final
 
 ~ESProducer () noexcept(false) override
 
- Public Member Functions inherited from edm::ESProxyFactoryProducer
 ESProxyFactoryProducer ()
 
 ESProxyFactoryProducer (const ESProxyFactoryProducer &)=delete
 
const ESProxyFactoryProduceroperator= (const ESProxyFactoryProducer &)=delete
 
 ~ESProxyFactoryProducer () noexcept(false) override
 
- Public Member Functions inherited from edm::eventsetup::DataProxyProvider
void createKeyedProxies (EventSetupRecordKey const &key, unsigned int nConcurrentIOVs)
 
 DataProxyProvider ()
 
 DataProxyProvider (const DataProxyProvider &)=delete
 
const ComponentDescriptiondescription () const
 
void fillRecordsNotAllowingConcurrentIOVs (std::set< EventSetupRecordKey > &recordsNotAllowingConcurrentIOVs) const
 
virtual void initConcurrentIOVs (EventSetupRecordKey const &key, unsigned int nConcurrentIOVs)
 
bool isUsingRecord (const EventSetupRecordKey &key) const
 
KeyedProxieskeyedProxies (const EventSetupRecordKey &iRecordKey, unsigned int iovIndex=0)
 
const DataProxyProvideroperator= (const DataProxyProvider &)=delete
 
void setAppendToDataLabel (const edm::ParameterSet &)
 
void setDescription (const ComponentDescription &iDescription)
 
std::set< EventSetupRecordKeyusingRecords () const
 
virtual ~DataProxyProvider () noexcept(false)
 

Protected Member Functions

template<typename T >
auto setWhatProduced (T *iThis, const char *iLabel)
 
template<typename T >
auto setWhatProduced (T *iThis, const es::Label &iLabel={})
 
template<typename T >
auto setWhatProduced (T *iThis, const std::string &iLabel)
 
template<typename T , typename TDecorator >
auto setWhatProduced (T *iThis, const TDecorator &iDec, const es::Label &iLabel={})
 
template<typename T , typename TReturn , typename TRecord >
auto setWhatProduced (T *iThis, TReturn(T ::*iMethod)(const TRecord &), const es::Label &iLabel={})
 
template<typename T , typename TReturn , typename TRecord , typename TArg >
ESConsumesCollectorT< TRecord > setWhatProduced (T *iThis, TReturn(T ::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel={})
 
void usesResources (std::vector< std::string > const &)
 
- Protected Member Functions inherited from edm::ESProxyFactoryProducer
template<class TFactory >
void registerFactory (std::unique_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
 
virtual void registerFactoryWithKey (const EventSetupRecordKey &iRecord, std::unique_ptr< eventsetup::ProxyFactoryBase > iFactory, const std::string &iLabel=std::string())
 
KeyedProxiesVector registerProxies (const EventSetupRecordKey &, unsigned int iovIndex) override
 
- Protected Member Functions inherited from edm::eventsetup::DataProxyProvider
template<class T >
void usingRecord ()
 
void usingRecordWithKey (const EventSetupRecordKey &key)
 

Private Member Functions

template<typename CallbackT , typename TProduct , typename TRecord , int IIndex>
void registerProduct (std::shared_ptr< std::pair< unsigned int, std::shared_ptr< CallbackT >>> iCallback, const es::L< TProduct, IIndex > *, const TRecord *, const es::Label &iLabel)
 
template<typename CallbackT , typename TProduct , typename TRecord >
void registerProduct (std::shared_ptr< std::pair< unsigned int, std::shared_ptr< CallbackT >>> iCallback, const TProduct *, const TRecord *, const es::Label &iLabel)
 
template<typename CallbackT , typename TList , typename TRecord >
void registerProducts (std::shared_ptr< std::pair< unsigned int, std::shared_ptr< CallbackT >>> iCallback, const TList *, const TRecord *iRecord, const es::Label &iLabel)
 
template<typename CallbackT , typename TRecord >
void registerProducts (std::shared_ptr< std::pair< unsigned int, std::shared_ptr< CallbackT >>>, const eventsetup::produce::Null *, const TRecord *, const es::Label &)
 

Private Attributes

SharedResourcesAcquirer acquirer_
 
std::vector< std::unique_ptr< ESConsumesInfo > > consumesInfos_
 
bool hasMayConsumes_ = false
 
std::vector< std::vector< ESProxyIndex > > itemsToGetFromRecords_
 
std::vector< std::vector< ESRecordIndex > > recordsUsedDuringGet_
 
std::unique_ptr< std::vector< std::string > > sharedResourceNames_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::eventsetup::DataProxyProvider
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Types inherited from edm::ESProxyFactoryProducer
using EventSetupRecordKey = eventsetup::EventSetupRecordKey
 
- Protected Types inherited from edm::eventsetup::DataProxyProvider
using KeyedProxiesVector = std::vector< std::pair< DataKey, std::shared_ptr< DataProxy > >>
 

Detailed Description

Description: An EventSetup algorithmic Provider that encapsulates the algorithm as a member method

Usage: Inheriting from this class is the simplest way to create an algorithm which gets called when a new data item is needed for the EventSetup. This class is designed to call a member method of inheriting classes each time the algorithm needs to be run. (A more flexible system in which the algorithms can be set at run-time instead of compile time can be obtained by inheriting from ESProxyFactoryProducer instead.)

If only one algorithm is being encapsulated then the user needs to 1) add a method name 'produce' to the class. The 'produce' takes as its argument a const reference to the record that is to hold the data item being produced. If only one data item is being produced, the 'produce' method must return either an 'std::unique_ptr' or 'std::shared_ptr' to the object being produced. (The choice depends on if the EventSetup or the ESProducer is managing the lifetime of the object). If multiple items are being Produced they the 'produce' method must return an ESProducts<> object which holds all of the items. 2) add 'setWhatProduced(this);' to their classes constructor

Example: one algorithm creating only one object

class FooProd : public edm::ESProducer {
std::unique_ptr<Foo> produce(const FooRecord&);
...
};
FooProd::FooProd(const edm::ParameterSet&) {
...
}

Example: one algorithm creating two objects

class FoosProd : public edm::ESProducer {
edm::ESProducts<std::unique_ptr<Foo1>, std::unique_ptr<Foo2>> produce(const FooRecord&);
...
};

If multiple algorithms are being encapsulated then 1) like 1 above except the methods can have any names you want 2) add 'setWhatProduced(this, &<class name>::<method name>);' for each method in the class' constructor NOTE: the algorithms can put data into the same record or into different records

Example: two algorithms each creating only one objects

class FooBarProd : public edm::eventsetup::ESProducer {
std::unique_ptr<Foo> produceFoo(const FooRecord&);
std::unique_ptr<Bar> produceBar(const BarRecord&);
...
};
FooBarProd::FooBarProd(const edm::ParameterSet&) {
setWhatProduced(this,&FooBarProd::produceFoo);
setWhatProduced(this,&FooBarProd::produceBar);
...
}

Definition at line 104 of file ESProducer.h.

Constructor & Destructor Documentation

◆ ESProducer() [1/2]

edm::ESProducer::ESProducer ( )

Definition at line 30 of file ESProducer.cc.

30 : consumesInfos_{}, acquirer_{{{std::make_shared<SerialTaskQueue>()}}} {}

◆ ~ESProducer()

edm::ESProducer::~ESProducer ( )
overridenoexcept

Definition at line 37 of file ESProducer.cc.

37 {}

◆ ESProducer() [2/2]

edm::ESProducer::ESProducer ( const ESProducer )
delete

Member Function Documentation

◆ getTokenIndices()

ESProxyIndex const* edm::ESProducer::getTokenIndices ( unsigned int  iIndex) const
inline

Definition at line 112 of file ESProducer.h.

112  {
113  if (itemsToGetFromRecords_.empty()) {
114  return nullptr;
115  }
116  return (itemsToGetFromRecords_[iIndex].empty()) ? static_cast<ESProxyIndex const*>(nullptr)
117  : &(itemsToGetFromRecords_[iIndex].front());
118  }

References relativeConstraints::empty, and itemsToGetFromRecords_.

◆ getTokenRecordIndices()

ESRecordIndex const* edm::ESProducer::getTokenRecordIndices ( unsigned int  iIndex) const
inline

Definition at line 119 of file ESProducer.h.

119  {
120  if (recordsUsedDuringGet_.empty()) {
121  return nullptr;
122  }
123  return (recordsUsedDuringGet_[iIndex].empty()) ? static_cast<ESRecordIndex const*>(nullptr)
124  : &(recordsUsedDuringGet_[iIndex].front());
125  }

References relativeConstraints::empty, and recordsUsedDuringGet_.

◆ hasMayConsumes()

bool edm::ESProducer::hasMayConsumes ( ) const
inlinenoexcept

Definition at line 133 of file ESProducer.h.

133 { return hasMayConsumes_; }

References hasMayConsumes_.

Referenced by updateFromMayConsumes().

◆ numberOfTokenIndices()

size_t edm::ESProducer::numberOfTokenIndices ( unsigned int  iIndex) const
inline

Definition at line 126 of file ESProducer.h.

126  {
127  if (itemsToGetFromRecords_.empty()) {
128  return 0;
129  }
130  return itemsToGetFromRecords_[iIndex].size();
131  }

References itemsToGetFromRecords_.

◆ operator=()

ESProducer const& edm::ESProducer::operator= ( const ESProducer )
delete

◆ queue()

SerialTaskQueueChain& edm::ESProducer::queue ( )
inline

Definition at line 152 of file ESProducer.h.

152 { return acquirer_.serialQueueChain(); }

References acquirer_, and edm::SharedResourcesAcquirer::serialQueueChain().

◆ registerProduct() [1/2]

template<typename CallbackT , typename TProduct , typename TRecord , int IIndex>
void edm::ESProducer::registerProduct ( std::shared_ptr< std::pair< unsigned int, std::shared_ptr< CallbackT >>>  iCallback,
const es::L< TProduct, IIndex > *  ,
const TRecord *  ,
const es::Label iLabel 
)
inlineprivate

Definition at line 245 of file ESProducer.h.

248  {
249  if (iLabel.labels_.size() <= IIndex || iLabel.labels_[IIndex] == es::Label::def()) {
251  "Unnamed Label\nthe index ",
252  IIndex,
253  " was never assigned a name in the 'setWhatProduced' method");
254  }
255  using ProxyType = eventsetup::CallbackProxy<CallbackT, TRecord, es::L<TProduct, IIndex>>;
256  using FactoryType = eventsetup::ProxyArgumentFactoryTemplate<ProxyType, CallbackT>;
257  registerFactory(std::make_unique<FactoryType>(std::move(iCallback)), iLabel.labels_[IIndex]);
258  }

References edm::errors::Configuration, edm::es::Label::def(), edm::es::Label::labels_, eostools::move(), edm::ESProxyFactoryProducer::registerFactory(), and edm::Exception::throwThis().

◆ registerProduct() [2/2]

template<typename CallbackT , typename TProduct , typename TRecord >
void edm::ESProducer::registerProduct ( std::shared_ptr< std::pair< unsigned int, std::shared_ptr< CallbackT >>>  iCallback,
const TProduct *  ,
const TRecord *  ,
const es::Label iLabel 
)
inlineprivate

Definition at line 235 of file ESProducer.h.

238  {
239  using ProxyType = eventsetup::CallbackProxy<CallbackT, TRecord, TProduct>;
240  using FactoryType = eventsetup::ProxyArgumentFactoryTemplate<ProxyType, CallbackT>;
241  registerFactory(std::make_unique<FactoryType>(std::move(iCallback)), iLabel.default_);
242  }

References edm::es::Label::default_, eostools::move(), and edm::ESProxyFactoryProducer::registerFactory().

Referenced by registerProducts().

◆ registerProducts() [1/2]

template<typename CallbackT , typename TList , typename TRecord >
void edm::ESProducer::registerProducts ( std::shared_ptr< std::pair< unsigned int, std::shared_ptr< CallbackT >>>  iCallback,
const TList *  ,
const TRecord *  iRecord,
const es::Label iLabel 
)
inlineprivate

Definition at line 218 of file ESProducer.h.

221  {
222  registerProduct(iCallback, static_cast<const typename TList::tail_type*>(nullptr), iRecord, iLabel);
223  registerProducts(std::move(iCallback), static_cast<const typename TList::head_type*>(nullptr), iRecord, iLabel);
224  }

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

◆ registerProducts() [2/2]

template<typename CallbackT , typename TRecord >
void edm::ESProducer::registerProducts ( std::shared_ptr< std::pair< unsigned int, std::shared_ptr< CallbackT >>>  ,
const eventsetup::produce::Null ,
const TRecord *  ,
const es::Label  
)
inlineprivate

Definition at line 227 of file ESProducer.h.

230  {
231  //do nothing
232  }

◆ setWhatProduced() [1/6]

template<typename T >
auto edm::ESProducer::setWhatProduced ( T iThis,
const char *  iLabel 
)
inlineprotected

Definition at line 168 of file ESProducer.h.

168  {
169  return setWhatProduced(iThis, es::Label(iLabel));
170  }

References setWhatProduced().

◆ setWhatProduced() [2/6]

template<typename T >
auto edm::ESProducer::setWhatProduced ( T iThis,
const es::Label iLabel = {} 
)
inlineprotected
Parameters
iThisthe 'this' pointer to an inheriting class instance The method determines the Record argument and return value of the 'produce' method in order to do the registration with the EventSetup

Definition at line 163 of file ESProducer.h.

163  {}) {
164  return setWhatProduced(iThis, &T::produce, iLabel);
165  }

Referenced by AnalyticalPropagatorESProducer::AnalyticalPropagatorESProducer(), BeamSpotFakeConditions::BeamSpotFakeConditions(), CaloGeometryBuilder::CaloGeometryBuilder(), CaloGeometryDBEP< T, U >::CaloGeometryDBEP(), CaloGeometryEP< T, D >::CaloGeometryEP(), CaloMiscalibTools::CaloMiscalibTools(), CaloMiscalibToolsMC::CaloMiscalibToolsMC(), CaloSimParametersESModule::CaloSimParametersESModule(), CaloSimulationConstantsESModule::CaloSimulationConstantsESModule(), CaloTopologyBuilder::CaloTopologyBuilder(), CaloTowerConstituentsMapBuilder::CaloTowerConstituentsMapBuilder(), CaloTowerHardcodeGeometryEP::CaloTowerHardcodeGeometryEP(), CaloTowerTopologyEP::CaloTowerTopologyEP(), CaloTPGTranscoderULUTs::CaloTPGTranscoderULUTs(), CastorDbProducer::CastorDbProducer(), CastorHardcodeGeometryEP::CastorHardcodeGeometryEP(), ClusterShapeHitFilterESProducer::ClusterShapeHitFilterESProducer(), ConvertingESProducerT< Record, Target, Source >::ConvertingESProducerT(), CosmicParametersDefinerForTPESProducer::CosmicParametersDefinerForTPESProducer(), CSCBadChambersConditions::CSCBadChambersConditions(), CSCBadStripsConditions::CSCBadStripsConditions(), CSCBadWiresConditions::CSCBadWiresConditions(), CSCChamberIndexValues::CSCChamberIndexValues(), CSCChamberMapValues::CSCChamberMapValues(), CSCChamberTimeCorrectionsValues::CSCChamberTimeCorrectionsValues(), CSCChannelMapperESProducer::CSCChannelMapperESProducer(), CSCChipSpeedCorrectionDBConditions::CSCChipSpeedCorrectionDBConditions(), CSCCrateMapValues::CSCCrateMapValues(), CSCCrosstalkConditions::CSCCrosstalkConditions(), CSCCrosstalkDBConditions::CSCCrosstalkDBConditions(), CSCDDUMapValues::CSCDDUMapValues(), CSCFakeCrosstalkConditions::CSCFakeCrosstalkConditions(), CSCFakeDBCrosstalk::CSCFakeDBCrosstalk(), CSCFakeDBGains::CSCFakeDBGains(), CSCFakeDBNoiseMatrix::CSCFakeDBNoiseMatrix(), CSCFakeDBPedestals::CSCFakeDBPedestals(), CSCFakeGainsConditions::CSCFakeGainsConditions(), CSCFakeNoiseMatrixConditions::CSCFakeNoiseMatrixConditions(), CSCFakePedestalsConditions::CSCFakePedestalsConditions(), CSCGainsConditions::CSCGainsConditions(), CSCGainsDBConditions::CSCGainsDBConditions(), CSCGasGainCorrectionDBConditions::CSCGasGainCorrectionDBConditions(), CSCGeometryESModule::CSCGeometryESModule(), CSCIndexerESProducer::CSCIndexerESProducer(), CSCL1TPParametersConditions::CSCL1TPParametersConditions(), CSCNoiseMatrixConditions::CSCNoiseMatrixConditions(), CSCNoiseMatrixDBConditions::CSCNoiseMatrixDBConditions(), CSCPedestalsDBConditions::CSCPedestalsDBConditions(), CSCTFConfigProducer::CSCTFConfigProducer(), CTPPSBeamParametersESSource::CTPPSBeamParametersESSource(), CTPPSCompositeESSource::CTPPSCompositeESSource(), CTPPSGeometryESModule::CTPPSGeometryESModule(), CTPPSInterpolatedOpticalFunctionsESSource::CTPPSInterpolatedOpticalFunctionsESSource(), CTPPSLHCInfoESSource::CTPPSLHCInfoESSource(), CTPPSLHCInfoRandomXangleESSource::CTPPSLHCInfoRandomXangleESSource(), CTPPSOpticalFunctionsESSource::CTPPSOpticalFunctionsESSource(), CTPPSPixelDAQMappingESSourceXML::CTPPSPixelDAQMappingESSourceXML(), magneticfield::DD4hep_VolumeBasedMagneticFieldESProducerFromDB::DD4hep_VolumeBasedMagneticFieldESProducerFromDB(), DDDetectorESProducer::DDDetectorESProducer(), DIPLumiProducer::DIPLumiProducer(), DTConfigDBProducer::DTConfigDBProducer(), DTConfigTrivialProducer::DTConfigTrivialProducer(), DTGeometryESModule::DTGeometryESModule(), DTGeometryESProducer::DTGeometryESProducer(), EcalBasicClusterLocalContCorrectionsESProducer::EcalBasicClusterLocalContCorrectionsESProducer(), EcalElectronicsMappingBuilder::EcalElectronicsMappingBuilder(), EcalGlobalShowerContainmentCorrectionsVsEtaESProducer::EcalGlobalShowerContainmentCorrectionsVsEtaESProducer(), EcalLaserCorrectionService::EcalLaserCorrectionService(), EcalLaserCorrectionServiceMC::EcalLaserCorrectionServiceMC(), EcalMustacheSCParametersESProducer::EcalMustacheSCParametersESProducer(), EcalRegionCablingESProducer::EcalRegionCablingESProducer(), EcalSCDynamicDPhiParametersESProducer::EcalSCDynamicDPhiParametersESProducer(), EcalShowerContainmentCorrectionsESProducer::EcalShowerContainmentCorrectionsESProducer(), EcalSimParametersESModule::EcalSimParametersESModule(), EcalTBGeometryBuilder::EcalTBGeometryBuilder(), EcalTBHodoscopeGeometryEP::EcalTBHodoscopeGeometryEP(), EcalTrigPrimESProducer::EcalTrigPrimESProducer(), EcalTrigPrimSpikeESProducer::EcalTrigPrimSpikeESProducer(), EcalTrigTowerConstituentsMapBuilder::EcalTrigTowerConstituentsMapBuilder(), ES_TTClusterAlgorithm_neighbor< T >::ES_TTClusterAlgorithm_neighbor(), ES_TTClusterAlgorithm_official< T >::ES_TTClusterAlgorithm_official(), ES_TTStubAlgorithm_cbc3< T >::ES_TTStubAlgorithm_cbc3(), ES_TTStubAlgorithm_official< T >::ES_TTStubAlgorithm_official(), FakeAlignmentProducer::FakeAlignmentProducer(), FakeAlignmentSource::FakeAlignmentSource(), FakeCaloAlignmentEP::FakeCaloAlignmentEP(), FastTimeGeometryESProducer::FastTimeGeometryESProducer(), FastTimeNumberingInitialization::FastTimeNumberingInitialization(), FastTimeParametersESModule::FastTimeParametersESModule(), FastTimeTopologyBuilder::FastTimeTopologyBuilder(), FFTJetCorrectionESProducer< CT >::FFTJetCorrectionESProducer(), FFTJetLookupTableESProducer< CT >::FFTJetLookupTableESProducer(), FWRecoGeometryESProducer::FWRecoGeometryESProducer(), FWTGeoRecoGeometryESProducer::FWTGeoRecoGeometryESProducer(), GsfMaterialEffectsESProducer::GsfMaterialEffectsESProducer(), GsfTrajectoryFitterESProducer::GsfTrajectoryFitterESProducer(), GsfTrajectorySmootherESProducer::GsfTrajectorySmootherESProducer(), HBHEDarkeningEP::HBHEDarkeningEP(), HcalAlignmentEP::HcalAlignmentEP(), HcalChannelPropertiesEP::HcalChannelPropertiesEP(), HcalDbProducer::HcalDbProducer(), HcalDDDGeometryEP::HcalDDDGeometryEP(), HcalDDDRecConstantsESModule::HcalDDDRecConstantsESModule(), HcalDDDSimConstantsESModule::HcalDDDSimConstantsESModule(), HcalHardcodeCalibrations::HcalHardcodeCalibrations(), HcalHardcodeGeometryEP::HcalHardcodeGeometryEP(), HcalParametersESModule::HcalParametersESModule(), HcalRecAlgoESProducer::HcalRecAlgoESProducer(), HcalSimParametersESModule::HcalSimParametersESModule(), HcalSimulationConstantsESModule::HcalSimulationConstantsESModule(), HcalTB02ParametersESModule::HcalTB02ParametersESModule(), HcalTB06ParametersESModule::HcalTB06ParametersESModule(), HcalTimeSlewEP::HcalTimeSlewEP(), HcalTopologyIdealEP::HcalTopologyIdealEP(), HcalTPGCoderULUT::HcalTPGCoderULUT(), HcalTrigTowerGeometryESProducer::HcalTrigTowerGeometryESProducer(), HepPDTESSource::HepPDTESSource(), HeterogeneousHGCalHEFCellPositionsFiller::HeterogeneousHGCalHEFCellPositionsFiller(), HGCalGeometryESProducer::HGCalGeometryESProducer(), HGCalNumberingInitialization::HGCalNumberingInitialization(), HGCalParametersESModule::HGCalParametersESModule(), HGCalTopologyBuilder::HGCalTopologyBuilder(), HGCalTriggerGeometryESProducer::HGCalTriggerGeometryESProducer(), JetCorrectionESChain::JetCorrectionESChain(), JetCorrectionESSource< Corrector >::JetCorrectionESSource(), JetResolutionESProducer::JetResolutionESProducer(), JetResolutionScaleFactorESProducer::JetResolutionScaleFactorESProducer(), jet_tag_computer_esproducer_impl::JetTagComputerESProducer< ConcreteJetTagComputer, true >::JetTagComputerESProducer(), KFSwitching1DUpdatorESProducer::KFSwitching1DUpdatorESProducer(), L1CaloGeometryProd::L1CaloGeometryProd(), L1CaloInputScalesProducer::L1CaloInputScalesProducer(), L1ConfigOnlineProdBase< L1HtMissScaleRcd, L1CaloEtScale >::L1ConfigOnlineProdBase(), L1CSCTriggerPrimitivesConfigProducer::L1CSCTriggerPrimitivesConfigProducer(), L1GctConfigProducers::L1GctConfigProducers(), L1GtBoardMapsTrivialProducer::L1GtBoardMapsTrivialProducer(), L1GtParametersTrivialProducer::L1GtParametersTrivialProducer(), L1GtPrescaleFactorsAlgoTrigTrivialProducer::L1GtPrescaleFactorsAlgoTrigTrivialProducer(), L1GtPrescaleFactorsTechTrigTrivialProducer::L1GtPrescaleFactorsTechTrigTrivialProducer(), L1GtPsbSetupTrivialProducer::L1GtPsbSetupTrivialProducer(), L1GtStableParametersTrivialProducer::L1GtStableParametersTrivialProducer(), L1GtTriggerMaskAlgoTrigTrivialProducer::L1GtTriggerMaskAlgoTrigTrivialProducer(), L1GtTriggerMaskTechTrigTrivialProducer::L1GtTriggerMaskTechTrigTrivialProducer(), L1GtTriggerMaskVetoAlgoTrigTrivialProducer::L1GtTriggerMaskVetoAlgoTrigTrivialProducer(), L1GtTriggerMaskVetoTechTrigTrivialProducer::L1GtTriggerMaskVetoTechTrigTrivialProducer(), L1GtTriggerMenuXmlProducer::L1GtTriggerMenuXmlProducer(), L1MuGMTParametersProducer::L1MuGMTParametersProducer(), L1MuGMTScalesProducer::L1MuGMTScalesProducer(), L1MuTriggerPtScaleProducer::L1MuTriggerPtScaleProducer(), L1MuTriggerScalesProducer::L1MuTriggerScalesProducer(), L1ObjectKeysOnlineProdBase::L1ObjectKeysOnlineProdBase(), L1RCTOmdsFedVectorProducer::L1RCTOmdsFedVectorProducer(), L1RPCConeDefinitionProducer::L1RPCConeDefinitionProducer(), L1ScalesTrivialProducer::L1ScalesTrivialProducer(), L1SubsystemKeysOnlineProd::L1SubsystemKeysOnlineProd(), L1SubsystemKeysOnlineProdExt::L1SubsystemKeysOnlineProdExt(), L1TGlobalPrescalesVetosESProducer::L1TGlobalPrescalesVetosESProducer(), L1TMuonBarrelParamsESProducer::L1TMuonBarrelParamsESProducer(), L1TMuonEndCapParamsESProducer::L1TMuonEndCapParamsESProducer(), L1TMuonGlobalParamsESProducer::L1TMuonGlobalParamsESProducer(), L1TMuonOverlapParamsESProducer::L1TMuonOverlapParamsESProducer(), L1TriggerKeyDummyProd::L1TriggerKeyDummyProd(), L1TriggerKeyDummyProdExt::L1TriggerKeyDummyProdExt(), L1TriggerKeyListDummyProd::L1TriggerKeyListDummyProd(), L1TriggerKeyListDummyProdExt::L1TriggerKeyListDummyProdExt(), L1TriggerKeyOnlineProd::L1TriggerKeyOnlineProd(), L1TriggerKeyOnlineProdExt::L1TriggerKeyOnlineProdExt(), L1TTwinMuxParamsESProducer::L1TTwinMuxParamsESProducer(), LumiCorrectionSource::LumiCorrectionSource(), LwtnnESProducer::LwtnnESProducer(), MagneticFieldMapESProducer::MagneticFieldMapESProducer(), ME0GeometryESModule::ME0GeometryESModule(), sistrip::MeasureLA::MeasureLA(), MisalignedTrackerESProducer::MisalignedTrackerESProducer(), MTDDigiGeometryESModule::MTDDigiGeometryESModule(), MTDGeometricTimingDetESModule::MTDGeometricTimingDetESModule(), MTDParametersESModule::MTDParametersESModule(), MTDTopologyEP::MTDTopologyEP(), MuonGeometryConstantsESModule::MuonGeometryConstantsESModule(), MuonNumberingInitialization::MuonNumberingInitialization(), MuonOffsetESProducer::MuonOffsetESProducer(), PhysicsTools::MVAComputerESSourceImpl< RecordType >::MVAComputerESSourceImpl(), NavigationSchoolESProducer::NavigationSchoolESProducer(), ParametersDefinerForTPESProducer::ParametersDefinerForTPESProducer(), magneticfield::ParametrizedMagneticFieldProducer::ParametrizedMagneticFieldProducer(), Phase2StripCPEESProducer::Phase2StripCPEESProducer(), Phase2TrackerCablingESProducer::Phase2TrackerCablingESProducer(), PixelCPEFastESProducer::PixelCPEFastESProducer(), PixelToFEDAssociateFromAsciiESProducer::PixelToFEDAssociateFromAsciiESProducer(), PixelToLNKAssociateFromAsciiESProducer::PixelToLNKAssociateFromAsciiESProducer(), PixelTrackCleanerBySharedHitsESProducer::PixelTrackCleanerBySharedHitsESProducer(), PPSPixelTopologyESSource::PPSPixelTopologyESSource(), PPSTimingCalibrationESSource::PPSTimingCalibrationESSource(), trackerDTC::ProducerES::ProducerES(), RCTConfigProducers::RCTConfigProducers(), RPCConeBuilder::RPCConeBuilder(), RPCInverseCPPFLinkMapESProducer::RPCInverseCPPFLinkMapESProducer(), RPCInverseLBLinkMapESProducer::RPCInverseLBLinkMapESProducer(), RPCInverseOMTFLinkMapESProducer::RPCInverseOMTFLinkMapESProducer(), RPCInverseTwinMuxLinkMapESProducer::RPCInverseTwinMuxLinkMapESProducer(), RPCTriggerBxOrConfig::RPCTriggerBxOrConfig(), RPCTriggerConfig::RPCTriggerConfig(), RPCTriggerHsbConfig::RPCTriggerHsbConfig(), RPCTriggerHwConfig::RPCTriggerHwConfig(), RunInfoTestESProducer::RunInfoTestESProducer(), HcalDbProducer::setupProduce(), setWhatProduced(), SiPhase2OuterTrackerFakeLorentzAngleESSource::SiPhase2OuterTrackerFakeLorentzAngleESSource(), SiPhase2RecHitMatcherESProducer::SiPhase2RecHitMatcherESProducer(), SiPixelFakeCPEGenericErrorParmESSource::SiPixelFakeCPEGenericErrorParmESSource(), SiPixelFakeGainESSource::SiPixelFakeGainESSource(), SiPixelFakeGainForHLTESSource::SiPixelFakeGainForHLTESSource(), SiPixelFakeGainOfflineESSource::SiPixelFakeGainOfflineESSource(), SiPixelFakeGenErrorDBObjectESSource::SiPixelFakeGenErrorDBObjectESSource(), SiPixelFakeLorentzAngleESSource::SiPixelFakeLorentzAngleESSource(), SiPixelFakeQualityESSource::SiPixelFakeQualityESSource(), SiPixelFakeTemplateDBObjectESSource::SiPixelFakeTemplateDBObjectESSource(), SiPixelGainCalibrationForHLTGPUESProducer::SiPixelGainCalibrationForHLTGPUESProducer(), SiPixelQualityESProducer::SiPixelQualityESProducer(), SiPixelROCsStatusAndMappingWrapperESProducer::SiPixelROCsStatusAndMappingWrapperESProducer(), SiStripApvGainFakeESSource::SiStripApvGainFakeESSource(), SiStripApvSimulationParametersESSource::SiStripApvSimulationParametersESSource(), SiStripBackPlaneCorrectionDepESProducer::SiStripBackPlaneCorrectionDepESProducer(), SiStripBackPlaneCorrectionFakeESSource::SiStripBackPlaneCorrectionFakeESSource(), SiStripBaseDelayFakeESSource::SiStripBaseDelayFakeESSource(), SiStripClusterizerConditionsESProducer::SiStripClusterizerConditionsESProducer(), SiStripConfObjectFakeESSource::SiStripConfObjectFakeESSource(), SiStripDelayESProducer::SiStripDelayESProducer(), SiStripLatencyFakeESSource::SiStripLatencyFakeESSource(), SiStripLorentzAngleDepESProducer::SiStripLorentzAngleDepESProducer(), SiStripLorentzAngleFakeESSource::SiStripLorentzAngleFakeESSource(), SiStripPedestalsFakeESSource::SiStripPedestalsFakeESSource(), SiStripQualityFakeESSource::SiStripQualityFakeESSource(), SiStripRecHitMatcherESProducer::SiStripRecHitMatcherESProducer(), SiStripRegionConnectivity::SiStripRegionConnectivity(), SiStripThresholdFakeESSource::SiStripThresholdFakeESSource(), StableParametersTrivialProducer::StableParametersTrivialProducer(), StringResolutionProviderESProducer::StringResolutionProviderESProducer(), StripCPEESProducer::StripCPEESProducer(), TestCaloAlignmentEP::TestCaloAlignmentEP(), TfGraphDefProducer::TfGraphDefProducer(), TkDetMapESProducer::TkDetMapESProducer(), TkMSParameterizationBuilder::TkMSParameterizationBuilder(), TkTransientTrackingRecHitBuilderESProducer::TkTransientTrackingRecHitBuilderESProducer(), TotemDAQMappingESSourceXML::TotemDAQMappingESSourceXML(), TrackAlgoPriorityOrderESProducer::TrackAlgoPriorityOrderESProducer(), TrackerDigiGeometryESModule::TrackerDigiGeometryESModule(), TrackerGeometricDetESModule::TrackerGeometricDetESModule(), TrackerInteractionGeometryESProducer::TrackerInteractionGeometryESProducer(), TrackerMTDRecoGeometryESProducer::TrackerMTDRecoGeometryESProducer(), TrackerParametersESModule::TrackerParametersESModule(), TrackerRecoGeometryESProducer::TrackerRecoGeometryESProducer(), TrajectoryCleanerESProducer::TrajectoryCleanerESProducer(), TSCBLBuilderNoMaterialESProducer::TSCBLBuilderNoMaterialESProducer(), TSCBLBuilderWithPropagatorESProducer::TSCBLBuilderWithPropagatorESProducer(), magneticfield::UniformMagneticFieldESProducer::UniformMagneticFieldESProducer(), magneticfield::VolumeBasedMagneticFieldESProducerFromDB::VolumeBasedMagneticFieldESProducerFromDB(), XMLIdealGeometryESSource::XMLIdealGeometryESSource(), XMLIdealMagneticFieldGeometryESProducer::XMLIdealMagneticFieldGeometryESProducer(), ZdcHardcodeGeometryEP::ZdcHardcodeGeometryEP(), and ZeeCalibration::ZeeCalibration().

◆ setWhatProduced() [3/6]

template<typename T >
auto edm::ESProducer::setWhatProduced ( T iThis,
const std::string &  iLabel 
)
inlineprotected

Definition at line 172 of file ESProducer.h.

172  {
173  return setWhatProduced(iThis, es::Label(iLabel));
174  }

References setWhatProduced().

◆ setWhatProduced() [4/6]

template<typename T , typename TDecorator >
auto edm::ESProducer::setWhatProduced ( T iThis,
const TDecorator &  iDec,
const es::Label iLabel = {} 
)
inlineprotected

Definition at line 177 of file ESProducer.h.

177  {}) {
178  return setWhatProduced(iThis, &T::produce, iDec, iLabel);
179  }

◆ setWhatProduced() [5/6]

template<typename T , typename TReturn , typename TRecord >
auto edm::ESProducer::setWhatProduced ( T iThis,
TReturn(T ::*)(const TRecord &)  iMethod,
const es::Label iLabel = {} 
)
inlineprotected
Parameters
iThisthe 'this' pointer to an inheriting class instance
iMethoda member method of then inheriting class The method determines the Record argument and return value of the iMethod argument method in order to do the registration with the EventSetup

Definition at line 186 of file ESProducer.h.

186  {}) {
187  return setWhatProduced(iThis, iMethod, eventsetup::CallbackSimpleDecorator<TRecord>(), iLabel);
188  }

◆ setWhatProduced() [6/6]

template<typename T , typename TReturn , typename TRecord , typename TArg >
ESConsumesCollectorT<TRecord> edm::ESProducer::setWhatProduced ( T iThis,
TReturn(T ::*)(const TRecord &)  iMethod,
const TArg &  iDec,
const es::Label iLabel = {} 
)
inlineprotected
Parameters
iThisthe 'this' pointer to an inheriting class instance
iMethoda member method of then inheriting class
iDecoratora class with 'pre'&'post' methods which are placed around the method call The method determines the Record argument and return value of the iMethod argument method in order to do the registration with the EventSetup

Definition at line 196 of file ESProducer.h.

199  {}) {
200  const auto id = consumesInfos_.size();
202  using CallbackType = eventsetup::Callback<T, TReturn, TRecord, DecoratorType>;
203  unsigned int iovIndex = 0; // Start with 0, but later will cycle through all of them
204  auto temp = std::make_shared<CallbackType>(
205  iThis, iMethod, id, createDecoratorFrom(iThis, static_cast<const TRecord*>(nullptr), iDec));
206  auto callback =
207  std::make_shared<std::pair<unsigned int, std::shared_ptr<CallbackType>>>(iovIndex, std::move(temp));
209  static_cast<const typename eventsetup::produce::product_traits<TReturn>::type*>(nullptr),
210  static_cast<const TRecord*>(nullptr),
211  iLabel);
212  consumesInfos_.push_back(std::make_unique<ESConsumesInfo>());
213  return ESConsumesCollectorT<TRecord>(consumesInfos_.back().get(), id);
214  }

◆ updateFromMayConsumes()

template<typename Record >
std::optional<std::vector<ESProxyIndex> > edm::ESProducer::updateFromMayConsumes ( unsigned int  iIndex,
const Record iRecord 
) const
inline

Definition at line 136 of file ESProducer.h.

136  {
137  if (not hasMayConsumes()) {
138  return {};
139  }
140  std::vector<ESProxyIndex> ret = itemsToGetFromRecords_[iIndex];
141  auto const info = consumesInfos_[iIndex].get();
142  for (size_t i = 0; i < info->size(); ++i) {
143  auto chooserBase = (*info)[i].chooser_.get();
144  if (chooserBase) {
145  auto chooser = static_cast<eventsetup::impl::MayConsumeChooserBase<Record>*>(chooserBase);
146  ret[i] = chooser->makeChoice(iRecord);
147  }
148  }
149  return ret;
150  }

References consumesInfos_, hasMayConsumes(), mps_fire::i, info(), itemsToGetFromRecords_, and runTheMatrix::ret.

◆ updateLookup()

void edm::ESProducer::updateLookup ( eventsetup::ESRecordsToProxyIndices const &  iProxyToIndices)
finalvirtual

Reimplemented from edm::eventsetup::DataProxyProvider.

Definition at line 54 of file ESProducer.cc.

54  {
57  acquirer_ = instance->createAcquirer(*sharedResourceNames_);
58  sharedResourceNames_.reset();
59  }
60 
61  itemsToGetFromRecords_.reserve(consumesInfos_.size());
62  recordsUsedDuringGet_.reserve(consumesInfos_.size());
63 
64  if (itemsToGetFromRecords_.size() == consumesInfos_.size()) {
65  return;
66  }
67 
68  for (auto& info : consumesInfos_) {
69  auto& items = itemsToGetFromRecords_.emplace_back();
70  items.reserve(info->size());
71  auto& records = recordsUsedDuringGet_.emplace_back();
72  records.reserve(info->size());
73  for (auto& proxyInfo : *info) {
74  //check for mayConsumes
75  if (auto chooser = proxyInfo.chooser_.get()) {
76  hasMayConsumes_ = true;
77  auto tagGetter = iProxyToIndices.makeTagGetter(chooser->recordKey(), chooser->productType());
78  if (not tagGetter.hasNothingToGet()) {
79  records.push_back(iProxyToIndices.recordIndexFor(chooser->recordKey()));
80  } else {
81  //The record is not actually missing but the proxy is
83  }
84  chooser->setTagGetter(std::move(tagGetter));
86  } else {
87  auto index = iProxyToIndices.indexInRecord(proxyInfo.recordKey_, proxyInfo.productKey_);
89  if (not proxyInfo.moduleLabel_.empty()) {
90  auto component = iProxyToIndices.component(proxyInfo.recordKey_, proxyInfo.productKey_);
91  if (nullptr == component) {
93  } else {
94  if (component->label_.empty()) {
95  if (component->type_ != proxyInfo.moduleLabel_) {
97  }
98  } else if (component->label_ != proxyInfo.moduleLabel_) {
100  }
101  }
102  }
103  }
104  items.push_back(index);
106  records.push_back(iProxyToIndices.recordIndexFor(proxyInfo.recordKey_));
107  } else {
108  //The record is not actually missing but the proxy is
110  }
111  assert(items.size() == records.size());
112  }
113  }
114  }
115  }

References acquirer_, cms::cuda::assert(), edm::eventsetup::ESRecordsToProxyIndices::component(), consumesInfos_, hasMayConsumes_, edm::eventsetup::ESRecordsToProxyIndices::indexInRecord(), info(), edm::SharedResourcesRegistry::instance(), instance, mps_monitormerge::items, itemsToGetFromRecords_, edm::eventsetup::ESRecordsToProxyIndices::makeTagGetter(), edm::eventsetup::ESRecordsToProxyIndices::missingProxyIndex(), edm::eventsetup::ESRecordsToProxyIndices::missingRecordIndex(), eostools::move(), edm::eventsetup::ESRecordsToProxyIndices::recordIndexFor(), recordsUsedDuringGet_, and sharedResourceNames_.

◆ usesResources()

void edm::ESProducer::usesResources ( std::vector< std::string > const &  iResourceNames)
protected

Specify the names of the shared resources used by this ESProducer

Definition at line 117 of file ESProducer.cc.

117  {
119  if (not sharedResourceNames_ and !iResourceNames.empty()) {
120  sharedResourceNames_ = std::make_unique<std::vector<std::string>>(iResourceNames);
121  }
122 
123  for (auto const& r : iResourceNames) {
124  instance->registerSharedResource(r);
125  }
126  //Must defer setting acquirer_ until all resources have been registered
127  // by all modules in the job
128  }

References edm::SharedResourcesRegistry::instance(), instance, alignCSCRings::r, and sharedResourceNames_.

Referenced by magneticfield::DD4hep_VolumeBasedMagneticFieldESProducerFromDB::DD4hep_VolumeBasedMagneticFieldESProducerFromDB(), DDDetectorESProducer::DDDetectorESProducer(), magneticfield::VolumeBasedMagneticFieldESProducerFromDB::VolumeBasedMagneticFieldESProducerFromDB(), XMLIdealGeometryESProducer::XMLIdealGeometryESProducer(), XMLIdealGeometryESSource::XMLIdealGeometryESSource(), and XMLIdealMagneticFieldGeometryESProducer::XMLIdealMagneticFieldGeometryESProducer().

Member Data Documentation

◆ acquirer_

SharedResourcesAcquirer edm::ESProducer::acquirer_
private

Definition at line 266 of file ESProducer.h.

Referenced by queue(), and updateLookup().

◆ consumesInfos_

std::vector<std::unique_ptr<ESConsumesInfo> > edm::ESProducer::consumesInfos_
private

Definition at line 260 of file ESProducer.h.

Referenced by updateFromMayConsumes(), and updateLookup().

◆ hasMayConsumes_

bool edm::ESProducer::hasMayConsumes_ = false
private

Definition at line 268 of file ESProducer.h.

Referenced by hasMayConsumes(), and updateLookup().

◆ itemsToGetFromRecords_

std::vector<std::vector<ESProxyIndex> > edm::ESProducer::itemsToGetFromRecords_
private

◆ recordsUsedDuringGet_

std::vector<std::vector<ESRecordIndex> > edm::ESProducer::recordsUsedDuringGet_
private

Definition at line 264 of file ESProducer.h.

Referenced by getTokenRecordIndices(), and updateLookup().

◆ sharedResourceNames_

std::unique_ptr<std::vector<std::string> > edm::ESProducer::sharedResourceNames_
private

Definition at line 267 of file ESProducer.h.

Referenced by updateLookup(), and usesResources().

runTheMatrix.ret
ret
prodAgent to be discontinued
Definition: runTheMatrix.py:542
edm::SharedResourcesAcquirer::serialQueueChain
SerialTaskQueueChain & serialQueueChain() const
Definition: SharedResourcesAcquirer.h:54
mixOne_cfi.ESProducer
ESProducer
Definition: mixOne_cfi.py:33
edm::eventsetup::produce::product_traits::type
T type
Definition: produce_helpers.h:58
mps_fire.i
i
Definition: mps_fire.py:428
edm::ESProducer::itemsToGetFromRecords_
std::vector< std::vector< ESProxyIndex > > itemsToGetFromRecords_
Definition: ESProducer.h:261
edm::ESProducer::recordsUsedDuringGet_
std::vector< std::vector< ESRecordIndex > > recordsUsedDuringGet_
Definition: ESProducer.h:264
edm::ESProducer::setWhatProduced
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:163
cms::cuda::assert
assert(be >=bs)
edm::ESProducts
Definition: ESProducts.h:105
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition: FWCollectionSummaryWidget.cc:153
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
edm::ESProducer::hasMayConsumes
bool hasMayConsumes() const noexcept
Definition: ESProducer.h:133
mps_monitormerge.items
list items
Definition: mps_monitormerge.py:29
edm::ESProducer::consumesInfos_
std::vector< std::unique_ptr< ESConsumesInfo > > consumesInfos_
Definition: ESProducer.h:260
edm::eventsetup::createDecoratorFrom
const TDecorator & createDecoratorFrom(T *, const TRecord *, const TDecorator &iDec)
Definition: ESProducer.h:99
edm::es::Label::def
static const std::string & def()
Definition: es_Label.h:84
edm::ESProxyFactoryProducer::registerFactory
void registerFactory(std::unique_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
Definition: ESProxyFactoryProducer.h:97
edm::eventsetup::ESRecordsToProxyIndices::missingProxyIndex
static constexpr ESProxyIndex missingProxyIndex() noexcept
Definition: ESRecordsToProxyIndices.h:48
edm::SharedResourcesRegistry::instance
static SharedResourcesRegistry * instance()
Definition: SharedResourcesRegistry.cc:25
edm::ParameterSet
Definition: ParameterSet.h:47
edm::ESProducer::registerProducts
void registerProducts(std::shared_ptr< std::pair< unsigned int, std::shared_ptr< CallbackT >>> iCallback, const TList *, const TRecord *iRecord, const es::Label &iLabel)
Definition: ESProducer.h:218
edm::ESProducer::sharedResourceNames_
std::unique_ptr< std::vector< std::string > > sharedResourceNames_
Definition: ESProducer.h:267
edm::eventsetup::DecoratorFromArg::Decorator_t
TArg Decorator_t
Definition: eventsetup_dependsOn.h:156
edm::ESProducer::hasMayConsumes_
bool hasMayConsumes_
Definition: ESProducer.h:268
edm::ESProducer::registerProduct
void registerProduct(std::shared_ptr< std::pair< unsigned int, std::shared_ptr< CallbackT >>> iCallback, const TProduct *, const TRecord *, const es::Label &iLabel)
Definition: ESProducer.h:235
instance
static PFTauRenderPlugin instance
Definition: PFTauRenderPlugin.cc:70
alignCSCRings.r
r
Definition: alignCSCRings.py:93
edm::ESProducer::acquirer_
SharedResourcesAcquirer acquirer_
Definition: ESProducer.h:266
edmIntegrityCheck.callback
callback
Definition: edmIntegrityCheck.py:75
eostools.move
def move(src, dest)
Definition: eostools.py:511
edm::eventsetup::ESRecordsToProxyIndices::missingRecordIndex
static constexpr ESRecordIndex missingRecordIndex() noexcept
Definition: ESRecordsToProxyIndices.h:49
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
edm::Exception::throwThis
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
Definition: EDMException.cc:83
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
edm::ESProducer
Definition: ESProducer.h:104
DataMixerDataOnData_cff.Label
Label
Definition: DataMixerDataOnData_cff.py:21
edm::errors::Configuration
Definition: EDMException.h:36