CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
edm::IOVSyncValue Class Reference

#include <IOVSyncValue.h>

Public Member Functions

bool comparable (const IOVSyncValue &iOther) const
 
const EventIDeventID () const
 
 IOVSyncValue ()
 
 IOVSyncValue (const EventID &iID)
 
 IOVSyncValue (const Timestamp &iTime)
 
 IOVSyncValue (const EventID &iID, const Timestamp &iTime)
 
LuminosityBlockNumber_t luminosityBlockNumber () const
 
bool operator!= (const IOVSyncValue &iRHS) const
 
bool operator< (const IOVSyncValue &iRHS) const
 
bool operator<= (const IOVSyncValue &iRHS) const
 
bool operator== (const IOVSyncValue &iRHS) const
 
bool operator> (const IOVSyncValue &iRHS) const
 
bool operator>= (const IOVSyncValue &iRHS) const
 
const Timestamptime () const
 

Static Public Member Functions

static const IOVSyncValuebeginOfTime ()
 
static const IOVSyncValueendOfTime ()
 
static const IOVSyncValueinvalidIOVSyncValue ()
 

Private Member Functions

template<template< typename > class Op>
bool doOp (const IOVSyncValue &iRHS) const
 
void throwInvalidComparison () const
 

Private Attributes

EventID eventID_
 
bool haveID_
 
bool haveTime_
 
Timestamp time_
 

Detailed Description

Definition at line 31 of file IOVSyncValue.h.

Constructor & Destructor Documentation

◆ IOVSyncValue() [1/4]

IOVSyncValue::IOVSyncValue ( )

Definition at line 32 of file IOVSyncValue.cc.

32 : eventID_(), time_(), haveID_(true), haveTime_(true) {}

◆ IOVSyncValue() [2/4]

IOVSyncValue::IOVSyncValue ( const EventID iID)
explicit

Definition at line 34 of file IOVSyncValue.cc.

34 : eventID_(iID), time_(), haveID_(true), haveTime_(false) {}

◆ IOVSyncValue() [3/4]

IOVSyncValue::IOVSyncValue ( const Timestamp iTime)
explicit

Definition at line 36 of file IOVSyncValue.cc.

36 : eventID_(), time_(iTime), haveID_(false), haveTime_(true) {}

◆ IOVSyncValue() [4/4]

IOVSyncValue::IOVSyncValue ( const EventID iID,
const Timestamp iTime 
)

Definition at line 38 of file IOVSyncValue.cc.

39  : eventID_(iID), time_(iTime), haveID_(true), haveTime_(true) {}

Member Function Documentation

◆ beginOfTime()

const IOVSyncValue & IOVSyncValue::beginOfTime ( )
static

Definition at line 88 of file IOVSyncValue.cc.

References edm::Timestamp::beginOfTime().

Referenced by AlignmentProducerBase::applyDB(), SiStripDB2Tree::getRecordInfo(), CTPPSRPAlignmentCorrectionsMethods::iovValueToString(), CTPPSRPAlignmentCorrectionsMethods::loadFromXML(), SiStripApvSimulationParametersESSource::setIntervalFor(), Phase2TrackerCablingCfgESSource::setIntervalFor(), SiPixelFakeGenErrorDBObjectESSource::setIntervalFor(), SiPixelFakeTemplateDBObjectESSource::setIntervalFor(), SiStripFedCablingFakeESSource::setIntervalFor(), CTPPSLHCInfoESSource::setIntervalFor(), RPCPerformanceESSource::setIntervalFor(), SiStripGainESSource::setIntervalFor(), SiStripNoiseESSource::setIntervalFor(), SiStripPedestalsESSource::setIntervalFor(), XMLIdealGeometryESSource::setIntervalFor(), PhysicsTools::MVAComputerESSourceImpl< RecordType >::setIntervalFor(), EcalMultifitParametersGPUESProducer::setIntervalFor(), HcalMahiPulseOffsetsGPUESProducer::setIntervalFor(), SiStripTemplateEmptyFakeESSource< TObject, TRecord >::setIntervalFor(), HBHEDarkeningEP::setIntervalFor(), HcalTimeSlewEP::setIntervalFor(), CSCFakeNoiseMatrixConditions::setIntervalFor(), SiStripConfObjectFakeESSource::setIntervalFor(), CSCFakeDBGains::setIntervalFor(), EcalRecHitParametersGPUESProducer::setIntervalFor(), SiStripQualityFakeESSource::setIntervalFor(), CSCNoiseMatrixConditions::setIntervalFor(), CSCCrosstalkConditions::setIntervalFor(), CSCGainsConditions::setIntervalFor(), SiStripApvGainFakeESSource::setIntervalFor(), CSCNoiseMatrixDBConditions::setIntervalFor(), SiStripThresholdFakeESSource::setIntervalFor(), CSCPedestalsDBConditions::setIntervalFor(), SiStripPedestalsFakeESSource::setIntervalFor(), CSCFakeDBPedestals::setIntervalFor(), CSCCrosstalkDBConditions::setIntervalFor(), SiStripLatencyFakeESSource::setIntervalFor(), CSCFakeDBCrosstalk::setIntervalFor(), CSCFakeDBNoiseMatrix::setIntervalFor(), BeamSpotFakeConditions::setIntervalFor(), CSCBadChambersConditions::setIntervalFor(), SiStripBackPlaneCorrectionFakeESSource::setIntervalFor(), SiStripBaseDelayFakeESSource::setIntervalFor(), CSCBadStripsConditions::setIntervalFor(), CSCGainsDBConditions::setIntervalFor(), CSCBadWiresConditions::setIntervalFor(), CSCL1TPLookupTableEP::setIntervalFor(), CSCL1TPParametersConditions::setIntervalFor(), CSCGasGainCorrectionDBConditions::setIntervalFor(), SiStripBadModuleConfigurableFakeESSource::setIntervalFor(), CSCDDUMapValues::setIntervalFor(), CSCChamberIndexValues::setIntervalFor(), CSCChamberMapValues::setIntervalFor(), CSCCrateMapValues::setIntervalFor(), SiStripNoisesFakeESSource::setIntervalFor(), CSCChipSpeedCorrectionDBConditions::setIntervalFor(), CSCFakeCrosstalkConditions::setIntervalFor(), CSCChamberTimeCorrectionsValues::setIntervalFor(), HiTrivialConditionRetriever::setIntervalFor(), CSCFakeGainsConditions::setIntervalFor(), CSCFakePedestalsConditions::setIntervalFor(), PPSTimingCalibrationLUTESSource::setIntervalFor(), HepPDTESSource::setIntervalFor(), edm::eventsetup::IntersectingIOVRecordIntervalFinder::setIntervalFor(), SiStripLorentzAngleFakeESSource::setIntervalFor(), CastorTextCalibrations::setIntervalFor(), SiPixelFakeGainForHLTESSource::setIntervalFor(), SiPixelFakeGainESSource::setIntervalFor(), SiPixelFakeGainOfflineESSource::setIntervalFor(), SiPixelFakeLorentzAngleESSource::setIntervalFor(), PPSTimingCalibrationESSource::setIntervalFor(), edm::test::EventSetupTestHelper::setIntervalFor(), SiPixelFakeQualityESSource::setIntervalFor(), DDCompactViewMFESProducer::setIntervalFor(), CastorHardcodeCalibrations::setIntervalFor(), SiPhase2OuterTrackerFakeLorentzAngleESSource::setIntervalFor(), DTFakeT0ESProducer::setIntervalFor(), SiPhase2BadStripConfigurableFakeESSource::setIntervalFor(), edm::ESProducerLooper::setIntervalFor(), PPSAlignmentConfigurationESSource::setIntervalFor(), edm::eventsetup::DependentRecordIntervalFinder::setIntervalFor(), SiPixelQualityESProducer::setIntervalFor(), CaloMiscalibTools::setIntervalFor(), CaloMiscalibToolsMC::setIntervalFor(), HcalHardcodeCalibrations::setIntervalFor(), ESTrivialConditionRetriever::setIntervalFor(), PPSPixelTopologyESSource::setIntervalFor(), SiStripFedCablingBuilderFromDb::setIntervalFor(), CTPPSBeamParametersESSource::setIntervalFor(), FakeAlignmentSource::setIntervalFor(), HcalTextCalibrations::setIntervalFor(), CondDBESSource::setIntervalFor(), EcalTrivialConditionRetriever::setIntervalFor(), CTPPSRPAlignmentCorrectionsMethods::stringToIOVValue(), and CTPPSRPAlignmentCorrectionsMethods::writeToXML().

88  {
89  static const IOVSyncValue s_beginOfTime(EventID(1, 0, 0), Timestamp::beginOfTime());
90  return s_beginOfTime;
91  }
static Timestamp beginOfTime()
Definition: Timestamp.h:77

◆ comparable()

bool edm::IOVSyncValue::comparable ( const IOVSyncValue iOther) const
inline

returns true if comparison operations are possible. Comparisons only fail if a time only value is compared to a run/lumi/event only value.

Definition at line 55 of file IOVSyncValue.h.

References haveID_, and haveTime_.

Referenced by operator!=(), operator==(), and edm::eventsetup::DependentRecordIntervalFinder::setIntervalFor().

55  {
56  return (haveID_ == iOther.haveID_) || (haveTime_ == iOther.haveTime_);
57  }

◆ doOp()

template<template< typename > class Op>
bool edm::IOVSyncValue::doOp ( const IOVSyncValue iRHS) const
inlineprivate

Definition at line 72 of file IOVSyncValue.h.

References eventID_, haveID_, haveTime_, luminosityBlockNumber(), edm::EventID::run(), throwInvalidComparison(), and time_.

72  {
73  bool returnValue = false;
74  if (haveID_ && iRHS.haveID_) {
75  if (luminosityBlockNumber() == 0 || iRHS.luminosityBlockNumber() == 0 ||
76  luminosityBlockNumber() == iRHS.luminosityBlockNumber()) {
77  Op<EventID> op;
78  returnValue = op(eventID_, iRHS.eventID_);
79  } else {
80  if (iRHS.eventID_.run() == eventID_.run()) {
81  Op<LuminosityBlockNumber_t> op;
82  returnValue = op(luminosityBlockNumber(), iRHS.luminosityBlockNumber());
83  } else {
84  Op<RunNumber_t> op;
85  returnValue = op(eventID_.run(), iRHS.eventID_.run());
86  }
87  }
88 
89  } else if (haveTime_ && iRHS.haveTime_) {
90  Op<Timestamp> op;
91  returnValue = op(time_, iRHS.time_);
92  } else {
93  //error
95  }
96  return returnValue;
97  }
LuminosityBlockNumber_t luminosityBlockNumber() const
Definition: IOVSyncValue.h:41
void throwInvalidComparison() const
Definition: IOVSyncValue.cc:69
RunNumber_t run() const
Definition: EventID.h:38

◆ endOfTime()

const IOVSyncValue & IOVSyncValue::endOfTime ( )
static

Definition at line 82 of file IOVSyncValue.cc.

References edm::Timestamp::endOfTime(), edm::EventID::maxEventNumber(), and edm::LuminosityBlockID::maxLuminosityBlockNumber().

Referenced by EcalTestDevDB::analyze(), AlignmentProducerBase::applyDB(), SiStripDB2Tree::getRecordInfo(), CTPPSRPAlignmentCorrectionsMethods::iovValueToString(), CTPPSRPAlignmentCorrectionsMethods::loadFromXML(), SiStripApvSimulationParametersESSource::setIntervalFor(), Phase2TrackerCablingCfgESSource::setIntervalFor(), edm::EmptyESSource::setIntervalFor(), SiPixelFakeGenErrorDBObjectESSource::setIntervalFor(), SiPixelFakeTemplateDBObjectESSource::setIntervalFor(), SiStripFedCablingFakeESSource::setIntervalFor(), CTPPSLHCInfoESSource::setIntervalFor(), RPCPerformanceESSource::setIntervalFor(), SiStripGainESSource::setIntervalFor(), SiStripNoiseESSource::setIntervalFor(), SiStripPedestalsESSource::setIntervalFor(), XMLIdealGeometryESSource::setIntervalFor(), PhysicsTools::MVAComputerESSourceImpl< RecordType >::setIntervalFor(), EcalMultifitParametersGPUESProducer::setIntervalFor(), HcalMahiPulseOffsetsGPUESProducer::setIntervalFor(), SiStripTemplateEmptyFakeESSource< TObject, TRecord >::setIntervalFor(), HBHEDarkeningEP::setIntervalFor(), CSCFakeNoiseMatrixConditions::setIntervalFor(), HcalTimeSlewEP::setIntervalFor(), SiStripConfObjectFakeESSource::setIntervalFor(), EcalRecHitParametersGPUESProducer::setIntervalFor(), CSCFakeDBGains::setIntervalFor(), CSCNoiseMatrixConditions::setIntervalFor(), SiStripQualityFakeESSource::setIntervalFor(), CSCCrosstalkConditions::setIntervalFor(), CSCGainsConditions::setIntervalFor(), SiStripApvGainFakeESSource::setIntervalFor(), CSCNoiseMatrixDBConditions::setIntervalFor(), SiStripPedestalsFakeESSource::setIntervalFor(), SiStripThresholdFakeESSource::setIntervalFor(), CSCPedestalsDBConditions::setIntervalFor(), CSCCrosstalkDBConditions::setIntervalFor(), CSCFakeDBCrosstalk::setIntervalFor(), CSCFakeDBNoiseMatrix::setIntervalFor(), CSCFakeDBPedestals::setIntervalFor(), CSCBadChambersConditions::setIntervalFor(), SiStripLatencyFakeESSource::setIntervalFor(), BeamSpotFakeConditions::setIntervalFor(), CSCBadStripsConditions::setIntervalFor(), SiStripBackPlaneCorrectionFakeESSource::setIntervalFor(), CSCGainsDBConditions::setIntervalFor(), SiStripBaseDelayFakeESSource::setIntervalFor(), CSCBadWiresConditions::setIntervalFor(), CSCL1TPLookupTableEP::setIntervalFor(), CSCL1TPParametersConditions::setIntervalFor(), SiStripBadModuleConfigurableFakeESSource::setIntervalFor(), CSCGasGainCorrectionDBConditions::setIntervalFor(), CSCChamberIndexValues::setIntervalFor(), CSCChamberMapValues::setIntervalFor(), CSCCrateMapValues::setIntervalFor(), CSCDDUMapValues::setIntervalFor(), CSCChipSpeedCorrectionDBConditions::setIntervalFor(), CSCChamberTimeCorrectionsValues::setIntervalFor(), CSCFakeCrosstalkConditions::setIntervalFor(), HiTrivialConditionRetriever::setIntervalFor(), SiStripNoisesFakeESSource::setIntervalFor(), CSCFakeGainsConditions::setIntervalFor(), CSCFakePedestalsConditions::setIntervalFor(), HepPDTESSource::setIntervalFor(), edm::eventsetup::IntersectingIOVRecordIntervalFinder::setIntervalFor(), PPSTimingCalibrationLUTESSource::setIntervalFor(), SiStripLorentzAngleFakeESSource::setIntervalFor(), CastorTextCalibrations::setIntervalFor(), SiPixelFakeLorentzAngleESSource::setIntervalFor(), SiPixelFakeGainOfflineESSource::setIntervalFor(), SiPixelFakeGainESSource::setIntervalFor(), SiPixelFakeGainForHLTESSource::setIntervalFor(), edmtest::ConcurrentIOVESSource::setIntervalFor(), edm::test::EventSetupTestHelper::setIntervalFor(), PPSTimingCalibrationESSource::setIntervalFor(), SiPixelFakeQualityESSource::setIntervalFor(), SiPhase2OuterTrackerFakeLorentzAngleESSource::setIntervalFor(), CastorHardcodeCalibrations::setIntervalFor(), DDCompactViewMFESProducer::setIntervalFor(), SiPhase2BadStripConfigurableFakeESSource::setIntervalFor(), DTFakeT0ESProducer::setIntervalFor(), edm::ESProducerLooper::setIntervalFor(), PPSAlignmentConfigurationESSource::setIntervalFor(), CTPPSRPAlignmentCorrectionsDataESSourceXML::setIntervalFor(), edm::eventsetup::DependentRecordIntervalFinder::setIntervalFor(), SiPixelQualityESProducer::setIntervalFor(), CaloMiscalibToolsMC::setIntervalFor(), CaloMiscalibTools::setIntervalFor(), HcalHardcodeCalibrations::setIntervalFor(), ESTrivialConditionRetriever::setIntervalFor(), PPSPixelTopologyESSource::setIntervalFor(), SiStripFedCablingBuilderFromDb::setIntervalFor(), CTPPSBeamParametersESSource::setIntervalFor(), edmtest::TestESSource::setIntervalFor(), edmtest::TestESConcurrentSource::setIntervalFor(), FakeAlignmentSource::setIntervalFor(), HcalTextCalibrations::setIntervalFor(), FWLiteESSource::setIntervalFor(), EcalTrivialConditionRetriever::setIntervalFor(), CTPPSRPAlignmentCorrectionsMethods::stringToIOVValue(), and CTPPSRPAlignmentCorrectionsMethods::writeToXML().

82  {
83  static const IOVSyncValue s_endOfTime(
86  return s_endOfTime;
87  }
static Timestamp endOfTime()
Definition: Timestamp.h:76
static LuminosityBlockNumber_t maxLuminosityBlockNumber()
static EventNumber_t maxEventNumber()
Definition: EventID.h:96

◆ eventID()

const EventID& edm::IOVSyncValue::eventID ( ) const
inline

◆ invalidIOVSyncValue()

const IOVSyncValue & IOVSyncValue::invalidIOVSyncValue ( )
static

◆ luminosityBlockNumber()

LuminosityBlockNumber_t edm::IOVSyncValue::luminosityBlockNumber ( ) const
inline

◆ operator!=()

bool edm::IOVSyncValue::operator!= ( const IOVSyncValue iRHS) const
inline

Definition at line 45 of file IOVSyncValue.h.

References comparable().

45 { return (!comparable(iRHS)) || doOp<std::not_equal_to>(iRHS); }
bool comparable(const IOVSyncValue &iOther) const
Definition: IOVSyncValue.h:55

◆ operator<()

bool edm::IOVSyncValue::operator< ( const IOVSyncValue iRHS) const
inline

Definition at line 47 of file IOVSyncValue.h.

47 { return doOp<std::less>(iRHS); }

◆ operator<=()

bool edm::IOVSyncValue::operator<= ( const IOVSyncValue iRHS) const
inline

Definition at line 48 of file IOVSyncValue.h.

48 { return doOp<std::less_equal>(iRHS); }

◆ operator==()

bool edm::IOVSyncValue::operator== ( const IOVSyncValue iRHS) const
inline

Definition at line 44 of file IOVSyncValue.h.

References comparable().

44 { return comparable(iRHS) && doOp<std::equal_to>(iRHS); }
bool comparable(const IOVSyncValue &iOther) const
Definition: IOVSyncValue.h:55

◆ operator>()

bool edm::IOVSyncValue::operator> ( const IOVSyncValue iRHS) const
inline

Definition at line 49 of file IOVSyncValue.h.

49 { return doOp<std::greater>(iRHS); }

◆ operator>=()

bool edm::IOVSyncValue::operator>= ( const IOVSyncValue iRHS) const
inline

Definition at line 50 of file IOVSyncValue.h.

50 { return doOp<std::greater_equal>(iRHS); }

◆ throwInvalidComparison()

void IOVSyncValue::throwInvalidComparison ( ) const
private

Definition at line 69 of file IOVSyncValue.cc.

References Exception.

Referenced by doOp().

69  {
70  throw cms::Exception("InvalidIOVSyncValueComparison")
71  << "Attempted to compare a time-only and a run/lumi/event-only IOVSyncValue. Please report this error to the "
72  "framework experts.";
73  }

◆ time()

const Timestamp& edm::IOVSyncValue::time ( ) const
inline

Member Data Documentation

◆ eventID_

EventID edm::IOVSyncValue::eventID_
private

Definition at line 100 of file IOVSyncValue.h.

Referenced by doOp(), eventID(), and luminosityBlockNumber().

◆ haveID_

bool edm::IOVSyncValue::haveID_
private

Definition at line 102 of file IOVSyncValue.h.

Referenced by comparable(), and doOp().

◆ haveTime_

bool edm::IOVSyncValue::haveTime_
private

Definition at line 103 of file IOVSyncValue.h.

Referenced by comparable(), and doOp().

◆ time_

Timestamp edm::IOVSyncValue::time_
private

Definition at line 101 of file IOVSyncValue.h.

Referenced by doOp(), and time().