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 ALPAKA_ACCELERATOR_NAMESPACE::ESProducer 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 cms::alpakatest::TestESProducerT< TProduct, TRecord > ConvertingESProducerT< Record, Target, Source > ConvertingESProducerWithDependenciesT< CombinedRecord< DepsRecords... >, Target, Dependencies... > CSCBadChambersConditions CSCBadStripsConditions CSCBadWiresConditions CSCChamberIndexValues CSCChamberMapValues CSCChamberTimeCorrectionsValues CSCChannelMapperESProducer CSCChipSpeedCorrectionDBConditions CSCCrateMapValues CSCCrosstalkConditions CSCCrosstalkDBConditions CSCDBL1TPParametersConditions CSCDDUMapValues CSCFakeCrosstalkConditions CSCFakeDBCrosstalk CSCFakeDBGains CSCFakeDBNoiseMatrix CSCFakeDBPedestals CSCFakeGainsConditions CSCFakeNoiseMatrixConditions CSCFakePedestalsConditions CSCGainsConditions CSCGainsDBConditions CSCGasGainCorrectionDBConditions CSCGeometryESModule CSCIndexerESProducer CSCL1TPLookupTableEP 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 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 hph::ProducerHPH jet_tag_computer_esproducer_impl::JetTagComputerESProducer< ConcreteJetTagComputer, bool > jet_tag_computer_esproducer_impl::JetTagComputerESProducer< ConcreteJetTagComputer, true > JetCorrectionESChain JetCorrectionESProducer< Corrector > JetCorrectionESSource< Corrector > JetResolutionESProducer JetResolutionScaleFactorESProducer 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< L1TMuonOverlapFwVersionO2ORcd, L1TMuonOverlapFwVersion > 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 L1TGlobalPrescalesVetosFractESProducer L1TMuonBarrelKalmanParamsESProducer L1TMuonBarrelParamsESProducer L1TMuonEndCapForestESProducer L1TMuonEndCapForestOnlineProxy L1TMuonEndCapParamsESProducer L1TMuonGlobalParamsESProducer L1TMuonOverlapFwVersionESProducer L1TMuonOverlapParamsESProducer L1TMuonOverlapParamsOnlineProxy L1TMuonOverlapPhase1ParamsESProducer 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 MkFitGeometryESProducer MkFitIterationConfigESProducer MTDCPEESProducer MTDDetLayerGeometryESProducer MTDDigiGeometryESModule MTDGeometricTimingDetESModule MTDParametersESModule MTDTimeCalibESProducer MTDTopologyEP MTDTransientTrackingRecHitBuilderESProducer MultipleScatteringParametrisationMakerESProducer MultiRecHitCollectorESProducer MuonDetLayerGeometryESProducer MuonGeometryConstantsESModule MuonNumberingESProducer MuonNumberingInitialization MuonOffsetESProducer MuonTransientTrackingRecHitBuilderESProducer NavigationSchoolESProducer OfflineToTransientBeamSpotESProducer OnlineBeamSpotESProducer Phase2StripCPEESProducer Phase2TrackerCablingESProducer PhysicsTools::MVAComputerESSourceBase PixelCPEClusterRepairESProducer PixelCPEFastESProducer PixelCPEGenericESProducer PixelCPETemplateRecoESProducer PixelFEDChannelCollectionProducer PixelToFEDAssociateFromAsciiESProducer PixelToLNKAssociateFromAsciiESProducer PixelTrackCleanerBySharedHitsESProducer PPSAlignmentConfigurationESSource PPSAssociationCutsESSource PPSPixelTopologyESSource PPSTimingCalibrationESSource PPSTimingCalibrationLUTESSource PropagatorWithMaterialESProducer QGLikelihoodESProducer QGLikelihoodSystematicsESProducer RCTConfigProducers RPCConeBuilder RPCGeometryESModule RPCInverseCPPFLinkMapESProducer RPCInverseLBLinkMapESProducer RPCInverseOMTFLinkMapESProducer RPCInverseTwinMuxLinkMapESProducer RPCPerformanceESSource RPCTriggerBxOrConfig RPCTriggerConfig RPCTriggerHsbConfig RPCTriggerHwConfig RunInfoTestESProducer SiPhase2BadStripConfigurableFakeESSource SiPhase2OuterTrackerFakeLorentzAngleESSource SiPhase2RecHitMatcherESProducer SiPixel2DTemplateDBObjectESProducer 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 TotemGeometryESModule TrackAlgoPriorityOrderESProducer TrackCleanerESProducer TrackerAdditionalParametersPerDetESModule TrackerDigiGeometryESModule trackerDTC::ProducerLayerEncoding TrackerGeometricDetESModule TrackerInteractionGeometryESProducer TrackerMTDRecoGeometryESProducer TrackerParametersESModule TrackerRecoGeometryESProducer trackerTFP::ProducerDemonstrator trackerTFP::ProducerES trackerTFP::ProducerFormatsKF trackerTFP::ProducerLayerEncoding TrackerTopologyEP TrackingRecHitPropagatorESProducer TrajectoryCleanerESProducer TransientTrackBuilderESProducer trklet::ProducerChannelAssignment TSCBLBuilderNoMaterialESProducer TSCBLBuilderWithPropagatorESProducer tt::ProducerSetup 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 es::Label &iLabel={})
 
template<typename T >
auto setWhatProduced (T *iThis, const char *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 >
auto setWhatProduced (T *iThis, TReturn(T ::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel={})
 
template<typename TFunc >
auto setWhatProduced (TFunc &&func, const es::Label &iLabel={})
 
template<typename TReturn , typename TRecord , typename TFunc , typename TDecorator >
ESConsumesCollectorT< TRecord > setWhatProduced (TFunc &&func, TDecorator &&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 >
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 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 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>()}}} {}
std::vector< std::unique_ptr< ESConsumesInfo > > consumesInfos_
Definition: ESProducer.h:289
SharedResourcesAcquirer acquirer_
Definition: ESProducer.h:295

◆ ~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.

References relativeConstraints::empty, and itemsToGetFromRecords_.

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

◆ getTokenRecordIndices()

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

Definition at line 119 of file ESProducer.h.

References relativeConstraints::empty, and recordsUsedDuringGet_.

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

◆ hasMayConsumes()

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

Definition at line 133 of file ESProducer.h.

References hasMayConsumes_.

Referenced by updateFromMayConsumes().

133 { return hasMayConsumes_; }
bool hasMayConsumes_
Definition: ESProducer.h:297

◆ numberOfTokenIndices()

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

Definition at line 126 of file ESProducer.h.

References itemsToGetFromRecords_.

126  {
127  if (itemsToGetFromRecords_.empty()) {
128  return 0;
129  }
130  return itemsToGetFromRecords_[iIndex].size();
131  }
std::vector< std::vector< ESProxyIndex > > itemsToGetFromRecords_
Definition: ESProducer.h:290

◆ operator=()

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

◆ queue()

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

Definition at line 152 of file ESProducer.h.

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

152 { return acquirer_.serialQueueChain(); }
SerialTaskQueueChain & serialQueueChain() const
SharedResourcesAcquirer acquirer_
Definition: ESProducer.h:295

◆ registerProduct() [1/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 264 of file ESProducer.h.

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

Referenced by registerProducts().

267  {
268  using ProxyType = eventsetup::CallbackProxy<CallbackT, TRecord, TProduct>;
269  using FactoryType = eventsetup::ProxyArgumentFactoryTemplate<ProxyType, CallbackT>;
270  registerFactory(std::make_unique<FactoryType>(std::move(iCallback)), iLabel.default_);
271  }
void registerFactory(std::unique_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
def move(src, dest)
Definition: eostools.py:511

◆ registerProduct() [2/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 274 of file ESProducer.h.

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

277  {
278  if (iLabel.labels_.size() <= IIndex || iLabel.labels_[IIndex] == es::Label::def()) {
280  "Unnamed Label\nthe index ",
281  IIndex,
282  " was never assigned a name in the 'setWhatProduced' method");
283  }
284  using ProxyType = eventsetup::CallbackProxy<CallbackT, TRecord, es::L<TProduct, IIndex>>;
285  using FactoryType = eventsetup::ProxyArgumentFactoryTemplate<ProxyType, CallbackT>;
286  registerFactory(std::make_unique<FactoryType>(std::move(iCallback)), iLabel.labels_[IIndex]);
287  }
static const std::string & def()
Definition: es_Label.h:84
static void throwThis(Code category, char const *message0="", char const *message1="", char const *message2="", char const *message3="", char const *message4="")
Definition: EDMException.cc:84
void registerFactory(std::unique_ptr< TFactory > iFactory, const std::string &iLabel=std::string())
def move(src, dest)
Definition: eostools.py:511

◆ 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 247 of file ESProducer.h.

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

250  {
251  registerProduct(iCallback, static_cast<const typename TList::tail_type*>(nullptr), iRecord, iLabel);
252  registerProducts(std::move(iCallback), static_cast<const typename TList::head_type*>(nullptr), iRecord, iLabel);
253  }
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:264
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:247
def move(src, dest)
Definition: eostools.py:511

◆ 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 256 of file ESProducer.h.

259  {
260  //do nothing
261  }

◆ setWhatProduced() [1/8]

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.

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(), 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(), CSCL1TPLookupTableEP::CSCL1TPLookupTableEP(), 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(), DistanceBetweenComponentsESProducer< N >::DistanceBetweenComponentsESProducer(), 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(), 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(), L1TGlobalPrescalesVetosFractESProducer::L1TGlobalPrescalesVetosFractESProducer(), L1TMuonBarrelKalmanParamsESProducer::L1TMuonBarrelKalmanParamsESProducer(), L1TMuonBarrelParamsESProducer::L1TMuonBarrelParamsESProducer(), L1TMuonEndCapParamsESProducer::L1TMuonEndCapParamsESProducer(), L1TMuonGlobalParamsESProducer::L1TMuonGlobalParamsESProducer(), L1TMuonOverlapFwVersionESProducer::L1TMuonOverlapFwVersionESProducer(), L1TMuonOverlapParamsESProducer::L1TMuonOverlapParamsESProducer(), L1TMuonOverlapPhase1ParamsESProducer::L1TMuonOverlapPhase1ParamsESProducer(), 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(), MkFitGeometryESProducer::MkFitGeometryESProducer(), MkFitIterationConfigESProducer::MkFitIterationConfigESProducer(), MTDDigiGeometryESModule::MTDDigiGeometryESModule(), MTDGeometricTimingDetESModule::MTDGeometricTimingDetESModule(), MTDParametersESModule::MTDParametersESModule(), MTDTopologyEP::MTDTopologyEP(), MultipleScatteringParametrisationMakerESProducer::MultipleScatteringParametrisationMakerESProducer(), MultiRecHitCollectorESProducer::MultiRecHitCollectorESProducer(), MuonGeometryConstantsESModule::MuonGeometryConstantsESModule(), MuonNumberingInitialization::MuonNumberingInitialization(), MuonOffsetESProducer::MuonOffsetESProducer(), PhysicsTools::MVAComputerESSourceImpl< RecordType >::MVAComputerESSourceImpl(), NavigationSchoolESProducer::NavigationSchoolESProducer(), OnlineBeamSpotESProducer::OnlineBeamSpotESProducer(), magneticfield::ParametrizedMagneticFieldProducer::ParametrizedMagneticFieldProducer(), Phase2StripCPEESProducer::Phase2StripCPEESProducer(), Phase2TrackerCablingESProducer::Phase2TrackerCablingESProducer(), PixelCPEFastESProducer::PixelCPEFastESProducer(), PixelToFEDAssociateFromAsciiESProducer::PixelToFEDAssociateFromAsciiESProducer(), PixelToLNKAssociateFromAsciiESProducer::PixelToLNKAssociateFromAsciiESProducer(), PixelTrackCleanerBySharedHitsESProducer::PixelTrackCleanerBySharedHitsESProducer(), PPSAlignmentConfigurationESSource::PPSAlignmentConfigurationESSource(), PPSPixelTopologyESSource::PPSPixelTopologyESSource(), PPSTimingCalibrationESSource::PPSTimingCalibrationESSource(), PPSTimingCalibrationLUTESSource::PPSTimingCalibrationLUTESSource(), trklet::ProducerChannelAssignment::ProducerChannelAssignment(), trackerTFP::ProducerDemonstrator::ProducerDemonstrator(), trackerTFP::ProducerES::ProducerES(), trackerTFP::ProducerFormatsKF::ProducerFormatsKF(), hph::ProducerHPH::ProducerHPH(), trackerTFP::ProducerLayerEncoding::ProducerLayerEncoding(), trackerDTC::ProducerLayerEncoding::ProducerLayerEncoding(), tt::ProducerSetup::ProducerSetup(), 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(), SiPhase2BadStripConfigurableFakeESSource::SiPhase2BadStripConfigurableFakeESSource(), SiPhase2OuterTrackerFakeLorentzAngleESSource::SiPhase2OuterTrackerFakeLorentzAngleESSource(), SiPhase2RecHitMatcherESProducer::SiPhase2RecHitMatcherESProducer(), 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(), SiTrackerMultiRecHitUpdatorESProducer::SiTrackerMultiRecHitUpdatorESProducer(), StableParametersTrivialProducer::StableParametersTrivialProducer(), StringResolutionProviderESProducer::StringResolutionProviderESProducer(), StripCPEESProducer::StripCPEESProducer(), TestCaloAlignmentEP::TestCaloAlignmentEP(), cms::alpakatest::TestESProducerT< TProduct, TRecord >::TestESProducerT(), TfGraphDefProducer::TfGraphDefProducer(), TkDetMapESProducer::TkDetMapESProducer(), TkMSParameterizationBuilder::TkMSParameterizationBuilder(), TkTransientTrackingRecHitBuilderESProducer::TkTransientTrackingRecHitBuilderESProducer(), TotemDAQMappingESSourceXML::TotemDAQMappingESSourceXML(), TotemGeometryESModule::TotemGeometryESModule(), TrackAlgoPriorityOrderESProducer::TrackAlgoPriorityOrderESProducer(), TrackerAdditionalParametersPerDetESModule::TrackerAdditionalParametersPerDetESModule(), 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().

163  {}) {
164  return setWhatProduced(iThis, &T::produce, iLabel);
165  }
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:163

◆ setWhatProduced() [2/8]

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

Definition at line 168 of file ESProducer.h.

References setWhatProduced().

168  {
169  return setWhatProduced(iThis, es::Label(iLabel));
170  }
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:163

◆ setWhatProduced() [3/8]

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

Definition at line 172 of file ESProducer.h.

References setWhatProduced().

172  {
173  return setWhatProduced(iThis, es::Label(iLabel));
174  }
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:163

◆ setWhatProduced() [4/8]

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  }
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:163

◆ setWhatProduced() [5/8]

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  }
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
Definition: ESProducer.h:163

◆ setWhatProduced() [6/8]

template<typename T , typename TReturn , typename TRecord , typename TArg >
auto 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  return setWhatProduced<TReturn, TRecord>(
201  [iThis, iMethod](TRecord const& iRecord) { return (iThis->*iMethod)(iRecord); },
202  createDecoratorFrom(iThis, static_cast<const TRecord*>(nullptr), iDec),
203  iLabel);
204  }
const TDecorator & createDecoratorFrom(T *, const TRecord *, const TDecorator &iDec)
Definition: ESProducer.h:99

◆ setWhatProduced() [7/8]

template<typename TFunc >
auto edm::ESProducer::setWhatProduced ( TFunc &&  func,
const es::Label iLabel = {} 
)
inlineprotected

This overload allows lambdas (functors) to be used as the production function. As of now it is not intended for wide use (we are thinking for a better API for users)

The decorator functionality is not implemented yet. In principle the lambda provides the ability for pre(Record const&) and post(Record const&) functions (in addition to much more). The main use case of dependsOn() also in practice became unused with the concurrent IOVs, so it is not clear if the decorator functionality would really be needed. In principle it should be straightforward to add.

Definition at line 220 of file ESProducer.h.

220  {}) {
221  using Types = eventsetup::impl::ReturnArgumentTypes<TFunc>;
222  using TReturn = typename Types::return_type;
223  using TRecord = typename Types::argument_type;
224  using DecoratorType = eventsetup::CallbackSimpleDecorator<TRecord>;
225  return setWhatProduced<TReturn, TRecord>(std::forward<TFunc>(func), DecoratorType(), iLabel);
226  }
Definition: Types.py:1

◆ setWhatProduced() [8/8]

template<typename TReturn , typename TRecord , typename TFunc , typename TDecorator >
ESConsumesCollectorT<TRecord> edm::ESProducer::setWhatProduced ( TFunc &&  func,
TDecorator &&  iDec,
const es::Label iLabel = {} 
)
inlineprotected

Definition at line 229 of file ESProducer.h.

229  {}) {
230  const auto id = consumesInfos_.size();
231  using DecoratorType = std::decay_t<TDecorator>;
232  using CallbackType = eventsetup::Callback<ESProducer, TFunc, TReturn, TRecord, DecoratorType>;
233  unsigned int iovIndex = 0; // Start with 0, but later will cycle through all of them
234  auto temp = std::make_shared<CallbackType>(this, std::forward<TFunc>(func), id, std::forward<TDecorator>(iDec));
235  auto callback =
236  std::make_shared<std::pair<unsigned int, std::shared_ptr<CallbackType>>>(iovIndex, std::move(temp));
238  static_cast<const typename eventsetup::produce::product_traits<TReturn>::type*>(nullptr),
239  static_cast<const TRecord*>(nullptr),
240  iLabel);
241  consumesInfos_.push_back(std::make_unique<ESConsumesInfo>());
242  return ESConsumesCollectorT<TRecord>(consumesInfos_.back().get(), id);
243  }
std::vector< std::unique_ptr< ESConsumesInfo > > consumesInfos_
Definition: ESProducer.h:289
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:247
def move(src, dest)
Definition: eostools.py:511

◆ 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.

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

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  }
static const TGPicture * info(bool iBackgroundIsBlack)
ret
prodAgent to be discontinued
std::vector< std::unique_ptr< ESConsumesInfo > > consumesInfos_
Definition: ESProducer.h:289
bool hasMayConsumes() const noexcept
Definition: ESProducer.h:133
std::vector< std::vector< ESProxyIndex > > itemsToGetFromRecords_
Definition: ESProducer.h:290

◆ updateLookup()

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

Reimplemented from edm::eventsetup::DataProxyProvider.

Definition at line 54 of file ESProducer.cc.

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_.

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  }
static const TGPicture * info(bool iBackgroundIsBlack)
std::vector< std::vector< ESRecordIndex > > recordsUsedDuringGet_
Definition: ESProducer.h:293
static PFTauRenderPlugin instance
std::vector< std::unique_ptr< ESConsumesInfo > > consumesInfos_
Definition: ESProducer.h:289
assert(be >=bs)
static SharedResourcesRegistry * instance()
std::unique_ptr< std::vector< std::string > > sharedResourceNames_
Definition: ESProducer.h:296
static constexpr ESProxyIndex missingProxyIndex() noexcept
bool hasMayConsumes_
Definition: ESProducer.h:297
SharedResourcesAcquirer acquirer_
Definition: ESProducer.h:295
std::vector< std::vector< ESProxyIndex > > itemsToGetFromRecords_
Definition: ESProducer.h:290
def move(src, dest)
Definition: eostools.py:511
static constexpr ESRecordIndex missingRecordIndex() noexcept

◆ 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.

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

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

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  }
static PFTauRenderPlugin instance
static SharedResourcesRegistry * instance()
std::unique_ptr< std::vector< std::string > > sharedResourceNames_
Definition: ESProducer.h:296

Member Data Documentation

◆ acquirer_

SharedResourcesAcquirer edm::ESProducer::acquirer_
private

Definition at line 295 of file ESProducer.h.

Referenced by queue(), and updateLookup().

◆ consumesInfos_

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

Definition at line 289 of file ESProducer.h.

Referenced by updateFromMayConsumes(), and updateLookup().

◆ hasMayConsumes_

bool edm::ESProducer::hasMayConsumes_ = false
private

Definition at line 297 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 293 of file ESProducer.h.

Referenced by getTokenRecordIndices(), and updateLookup().

◆ sharedResourceNames_

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

Definition at line 296 of file ESProducer.h.

Referenced by updateLookup(), and usesResources().