CMS 3D CMS Logo

Public Types | Public Member Functions | Private Member Functions

edm::eventsetup::DependentRecordImplementation< RecordT, ListT > Class Template Reference

#include <DependentRecordImplementation.h>

Inheritance diagram for edm::eventsetup::DependentRecordImplementation< RecordT, ListT >:
edm::eventsetup::EventSetupRecordImplementation< RecordT > edm::eventsetup::DependentRecordTag edm::eventsetup::EventSetupRecord

List of all members.

Public Types

typedef ListT list_type

Public Member Functions

 DependentRecordImplementation ()
template<class DepRecordT >
const DepRecordT & getRecord () const

Private Member Functions

 DependentRecordImplementation (const DependentRecordImplementation &)
const
DependentRecordImplementation
operator= (const DependentRecordImplementation &)

Detailed Description

template<class RecordT, class ListT>
class edm::eventsetup::DependentRecordImplementation< RecordT, ListT >

Definition at line 36 of file DependentRecordImplementation.h.


Member Typedef Documentation

template<class RecordT, class ListT>
typedef ListT edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::list_type

Definition at line 41 of file DependentRecordImplementation.h.


Constructor & Destructor Documentation

template<class RecordT, class ListT>
edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::DependentRecordImplementation ( ) [inline]

Definition at line 40 of file DependentRecordImplementation.h.

{}
template<class RecordT, class ListT>
edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::DependentRecordImplementation ( const DependentRecordImplementation< RecordT, ListT > &  ) [private]

Member Function Documentation

template<class RecordT, class ListT>
template<class DepRecordT >
const DepRecordT& edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::getRecord ( ) const [inline]

Definition at line 46 of file DependentRecordImplementation.h.

Referenced by SiStripGainESProducerTemplate< TDependentRecord, TInputRecord >::fillApvGain(), DTGeometryESModule::geometryCallback_(), CSCGeometryESModule::geometryCallback_(), SiStripHashedDetIdESModule::make(), DTFakeT0ESProducer::parseDDD(), PixelCPETemplateRecoESProducer::produce(), TrackerRecoGeometryESProducer::produce(), KFTrajectoryFitterESProducer::produce(), TGeoMgrFromDdd::produce(), RingMakerESProducer::produce(), RoadMapESSource::produce(), MultiTrackFilterCollectorESProducer::produce(), magneticfield::AutoMagneticFieldESProducer::produce(), GroupedCkfTrajectoryBuilderESProducer::produce(), SiStripHashedDetIdESProducer::produce(), SiPixelTemplateDBObjectESProducer::produce(), GsfTrajectorySmootherESProducer::produce(), BeamHaloPropagatorESProducer::produce(), KFTrajectorySmootherESProducer::produce(), TransientTrackBuilderESProducer::produce(), GeantPropagatorESProducer::produce(), TrackerGeometricDetExtraESModule::produce(), PropagatorWithMaterialESProducer::produce(), AnalyticalPropagatorESProducer::produce(), StraightLinePropagatorESProducer::produce(), CfgNavigationSchoolESProducer::produce(), TrackerInteractionGeometryESProducer::produce(), SiStripDelayESProducer::produce(), MuonDetLayerGeometryESProducer::produce(), MuonRoadTrajectoryBuilderESProducer::produce(), CkfTrajectoryBuilderESProducer::produce(), RoadMapMakerESProducer::produce(), TkTransientTrackingRecHitBuilderESProducer::produce(), SteppingHelixPropagatorESProducer::produce(), ClusterShapeHitFilterESProducer::produce(), CkfDebugTrajectoryBuilderESProducer::produce(), GlobalTrackingGeometryESProducer::produce(), TrackerDigiGeometryESModule::produce(), BtagPerformanceESProducer::produce(), PixelCPEGenericESProducer::produce(), CSCGeometryESModule::produce(), StripCPEESProducer::produce(), SiTrackerMultiRecHitUpdatorESProducer::produce(), NavigationSchoolESProducer::produce(), SkippingLayerCosmicNavigationSchoolESProducer::produce(), FWRecoGeometryESProducer::produce(), SiStripQualityESProducer::produce(), RPCGeometryESModule::produce(), EcalRegionCablingESProducer::produce(), DTGeometryESModule::produce(), MuonTransientTrackingRecHitBuilderESProducer::produce(), GsfTrajectoryFitterESProducer::produce(), GlobalDetLayerGeometryESProducer::produce(), MisalignedMuonESProducer::produce(), MisalignedTrackerESProducer::produce(), SiTrackerMultiRecHitUpdatorMTFESProducer::produce(), SmartPropagatorESProducer::produce(), MagneticFieldMapESProducer::produce(), MeasurementTrackerESProducer::produce(), XMLIdealGeometryESProducer::produce(), TrackingRecHitPropagatorESProducer::produce(), MuonCkfTrajectoryBuilderESProducer::produce(), MultiRecHitCollectorESProducer::produce(), CaloGeometryBuilder::produceAligned(), HcalHardcodeGeometryEP::produceAligned(), CaloTopologyBuilder::produceCalo(), SiStripConnectivity::produceDetCabling(), SiStripConnectivity::produceFecCabling(), L1GtTriggerMenuXmlProducer::produceGtTriggerMenu(), HcalAlignmentEP::produceHcalAli(), L1GctConfigProducers::produceJfParams(), SiStripRegionConnectivity::produceRegionCabling(), DTConfigDBProducer::readDBPedestalsConfig(), DTConfigDBProducer::readDTCCBConfig(), ElectronLikelihoodESSource::readPdfFromDB(), MuonDetIdAssociator::setConditions(), CaloDetIdAssociator::setGeometry(), MuonDetIdAssociator::setGeometry(), EcalUnpackerWorker::setHandles(), and SiStripGainESProducerTemplate< TDependentRecord, TInputRecord >::SiStripGainNormalizationFunction().

                                          {
         //Make sure that DepRecordT is a type in ListT
         typedef typename boost::mpl::end< ListT >::type EndItrT;
         typedef typename boost::mpl::find< ListT, DepRecordT>::type FoundItrT; 
         BOOST_STATIC_ASSERT((! boost::is_same<FoundItrT, EndItrT>::value));
         EventSetup const& eventSetupT = this->eventSetup();
         //can't do the following because of a compiler error in gcc 3.*
         // return eventSetupT.get<DepRecordT>();
         const DepRecordT* temp = 0;
         try { 
            eventSetupT.getAvoidCompilerBug(temp);
         } catch(NoRecordException<DepRecordT>&) {
            //rethrow but this time with dependent information.
            throw NoRecordException<DepRecordT>(this->key());
         } catch(cms::Exception& e) {  
            e<<"Exception occurred while getting dependent record from record \""<<
               this->key().type().name()<<"\""<<std::endl;
            throw;
         }
         
         return *temp;
      }
template<class RecordT, class ListT>
const DependentRecordImplementation& edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::operator= ( const DependentRecordImplementation< RecordT, ListT > &  ) [private]