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::IOVSyncValue ( )

Definition at line 32 of file IOVSyncValue.cc.

32 : eventID_(), time_(), haveID_(true), haveTime_(true) {}
IOVSyncValue::IOVSyncValue ( const EventID iID)
explicit

Definition at line 34 of file IOVSyncValue.cc.

34 : eventID_(iID), time_(), haveID_(true), haveTime_(false) {}
IOVSyncValue::IOVSyncValue ( const Timestamp iTime)
explicit

Definition at line 36 of file IOVSyncValue.cc.

36 : eventID_(), time_(iTime), haveID_(false), haveTime_(true) {}
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

const IOVSyncValue & IOVSyncValue::beginOfTime ( )
static

Definition at line 88 of file IOVSyncValue.cc.

References edm::Timestamp::beginOfTime().

Referenced by AlignmentProducerBase::applyDB(), comparable(), CTPPSRPAlignmentCorrectionsMethods::iovValueToString(), CTPPSRPAlignmentCorrectionsMethods::loadFromXML(), SiStripApvSimulationParametersESSource::setIntervalFor(), Phase2TrackerCablingCfgESSource::setIntervalFor(), SiPixelFakeCPEGenericErrorParmESSource::setIntervalFor(), SiPixelFakeGenErrorDBObjectESSource::setIntervalFor(), SiPixelFakeTemplateDBObjectESSource::setIntervalFor(), SiStripFedCablingFakeESSource::setIntervalFor(), SiStripPedestalsESSource::setIntervalFor(), CTPPSLHCInfoESSource::setIntervalFor(), SiStripNoiseESSource::setIntervalFor(), XMLIdealGeometryESSource::setIntervalFor(), SiStripGainESSource::setIntervalFor(), RPCPerformanceESSource::setIntervalFor(), PhysicsTools::MVAComputerESSourceImpl< RecordType >::setIntervalFor(), SiStripTemplateEmptyFakeESSource< TObject, TRecord >::setIntervalFor(), CSCFakeNoiseMatrixConditions::setIntervalFor(), SiStripConfObjectFakeESSource::setIntervalFor(), SiStripQualityFakeESSource::setIntervalFor(), HBHEDarkeningEP::setIntervalFor(), CastorHardcodeCalibrations::setIntervalFor(), CSCFakeDBGains::setIntervalFor(), HcalTimeSlewEP::setIntervalFor(), CSCCrosstalkConditions::setIntervalFor(), SiStripApvGainFakeESSource::setIntervalFor(), CSCGainsConditions::setIntervalFor(), CSCNoiseMatrixConditions::setIntervalFor(), CSCNoiseMatrixDBConditions::setIntervalFor(), CSCPedestalsDBConditions::setIntervalFor(), CSCCrosstalkDBConditions::setIntervalFor(), CSCFakeDBCrosstalk::setIntervalFor(), BeamSpotFakeConditions::setIntervalFor(), CSCFakeDBNoiseMatrix::setIntervalFor(), CSCFakeDBPedestals::setIntervalFor(), SiStripThresholdFakeESSource::setIntervalFor(), CSCBadChambersConditions::setIntervalFor(), SiStripBaseDelayFakeESSource::setIntervalFor(), SiStripLatencyFakeESSource::setIntervalFor(), CSCGainsDBConditions::setIntervalFor(), SiStripPedestalsFakeESSource::setIntervalFor(), CSCBadStripsConditions::setIntervalFor(), CSCL1TPParametersConditions::setIntervalFor(), CSCBadWiresConditions::setIntervalFor(), SiStripBackPlaneCorrectionFakeESSource::setIntervalFor(), SiStripBadModuleConfigurableFakeESSource::setIntervalFor(), CSCGasGainCorrectionDBConditions::setIntervalFor(), CSCChamberIndexValues::setIntervalFor(), CSCChamberMapValues::setIntervalFor(), CSCCrateMapValues::setIntervalFor(), CSCDDUMapValues::setIntervalFor(), CSCFakeCrosstalkConditions::setIntervalFor(), HiTrivialConditionRetriever::setIntervalFor(), CSCChipSpeedCorrectionDBConditions::setIntervalFor(), CSCChamberTimeCorrectionsValues::setIntervalFor(), SiStripNoisesFakeESSource::setIntervalFor(), CSCFakePedestalsConditions::setIntervalFor(), CSCFakeGainsConditions::setIntervalFor(), CastorTextCalibrations::setIntervalFor(), DTFakeT0ESProducer::setIntervalFor(), edm::eventsetup::IntersectingIOVRecordIntervalFinder::setIntervalFor(), SiStripLorentzAngleFakeESSource::setIntervalFor(), SiPixelFakeGainOfflineESSource::setIntervalFor(), SiPixelFakeGainForHLTESSource::setIntervalFor(), HepPDTESSource::setIntervalFor(), SiPixelFakeGainESSource::setIntervalFor(), edm::test::EventSetupTestHelper::setIntervalFor(), PPSTimingCalibrationESSource::setIntervalFor(), SiPixelFakeLorentzAngleESSource::setIntervalFor(), SiPixelFakeQualityESSource::setIntervalFor(), edm::ESProducerLooper::setIntervalFor(), DDCompactViewMFESProducer::setIntervalFor(), SiPixelQualityESProducer::setIntervalFor(), edm::eventsetup::DependentRecordIntervalFinder::setIntervalFor(), CaloMiscalibToolsMC::setIntervalFor(), CaloMiscalibTools::setIntervalFor(), ESTrivialConditionRetriever::setIntervalFor(), HcalHardcodeCalibrations::setIntervalFor(), SiStripFedCablingBuilderFromDb::setIntervalFor(), CTPPSBeamParametersESSource::setIntervalFor(), CondDBESSource::setIntervalFor(), JetCorrectionESSource< Corrector >::setIntervalFor(), FakeAlignmentSource::setIntervalFor(), HcalTextCalibrations::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:84
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 beginOfTime(), endOfTime(), haveID_, haveTime_, invalidIOVSyncValue(), and throwInvalidComparison().

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

55  {
56  return (haveID_ == iOther.haveID_) || (haveTime_ == iOther.haveTime_);
57  }
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  }
RunNumber_t run() const
Definition: EventID.h:38
void throwInvalidComparison() const
Definition: IOVSyncValue.cc:69
LuminosityBlockNumber_t luminosityBlockNumber() const
Definition: IOVSyncValue.h:41
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(), comparable(), CTPPSRPAlignmentCorrectionsMethods::iovValueToString(), CTPPSRPAlignmentCorrectionsMethods::loadFromXML(), SiStripApvSimulationParametersESSource::setIntervalFor(), Phase2TrackerCablingCfgESSource::setIntervalFor(), SiPixelFakeCPEGenericErrorParmESSource::setIntervalFor(), edm::EmptyESSource::setIntervalFor(), SiPixelFakeGenErrorDBObjectESSource::setIntervalFor(), SiPixelFakeTemplateDBObjectESSource::setIntervalFor(), SiStripFedCablingFakeESSource::setIntervalFor(), SiStripPedestalsESSource::setIntervalFor(), SiStripGainESSource::setIntervalFor(), SiStripNoiseESSource::setIntervalFor(), XMLIdealGeometryESSource::setIntervalFor(), CTPPSLHCInfoESSource::setIntervalFor(), RPCPerformanceESSource::setIntervalFor(), PhysicsTools::MVAComputerESSourceImpl< RecordType >::setIntervalFor(), SiStripTemplateEmptyFakeESSource< TObject, TRecord >::setIntervalFor(), CSCFakeNoiseMatrixConditions::setIntervalFor(), SiStripConfObjectFakeESSource::setIntervalFor(), SiStripQualityFakeESSource::setIntervalFor(), HBHEDarkeningEP::setIntervalFor(), CastorHardcodeCalibrations::setIntervalFor(), CSCFakeDBGains::setIntervalFor(), HcalTimeSlewEP::setIntervalFor(), CSCCrosstalkConditions::setIntervalFor(), SiStripApvGainFakeESSource::setIntervalFor(), CSCGainsConditions::setIntervalFor(), CSCNoiseMatrixConditions::setIntervalFor(), CSCNoiseMatrixDBConditions::setIntervalFor(), CSCPedestalsDBConditions::setIntervalFor(), CSCCrosstalkDBConditions::setIntervalFor(), CSCFakeDBCrosstalk::setIntervalFor(), CSCFakeDBNoiseMatrix::setIntervalFor(), BeamSpotFakeConditions::setIntervalFor(), CSCFakeDBPedestals::setIntervalFor(), CSCBadChambersConditions::setIntervalFor(), SiStripBaseDelayFakeESSource::setIntervalFor(), CSCBadWiresConditions::setIntervalFor(), CSCGainsDBConditions::setIntervalFor(), SiStripLatencyFakeESSource::setIntervalFor(), SiStripPedestalsFakeESSource::setIntervalFor(), CSCL1TPParametersConditions::setIntervalFor(), CSCBadStripsConditions::setIntervalFor(), SiStripThresholdFakeESSource::setIntervalFor(), CSCGasGainCorrectionDBConditions::setIntervalFor(), SiStripBackPlaneCorrectionFakeESSource::setIntervalFor(), SiStripBadModuleConfigurableFakeESSource::setIntervalFor(), CSCChamberIndexValues::setIntervalFor(), CSCChamberMapValues::setIntervalFor(), CSCCrateMapValues::setIntervalFor(), CSCDDUMapValues::setIntervalFor(), HiTrivialConditionRetriever::setIntervalFor(), CSCChipSpeedCorrectionDBConditions::setIntervalFor(), CSCFakeCrosstalkConditions::setIntervalFor(), CSCChamberTimeCorrectionsValues::setIntervalFor(), SiStripNoisesFakeESSource::setIntervalFor(), CSCFakeGainsConditions::setIntervalFor(), CSCFakePedestalsConditions::setIntervalFor(), CastorTextCalibrations::setIntervalFor(), DTFakeT0ESProducer::setIntervalFor(), edm::eventsetup::IntersectingIOVRecordIntervalFinder::setIntervalFor(), SiStripLorentzAngleFakeESSource::setIntervalFor(), SiPixelFakeGainESSource::setIntervalFor(), HepPDTESSource::setIntervalFor(), SiPixelFakeGainForHLTESSource::setIntervalFor(), SiPixelFakeGainOfflineESSource::setIntervalFor(), edm::test::EventSetupTestHelper::setIntervalFor(), PPSTimingCalibrationESSource::setIntervalFor(), SiPixelFakeLorentzAngleESSource::setIntervalFor(), SiPixelFakeQualityESSource::setIntervalFor(), edm::ESProducerLooper::setIntervalFor(), DDCompactViewMFESProducer::setIntervalFor(), CTPPSRPAlignmentCorrectionsDataESSourceXML::setIntervalFor(), SiPixelQualityESProducer::setIntervalFor(), edm::eventsetup::DependentRecordIntervalFinder::setIntervalFor(), CaloMiscalibTools::setIntervalFor(), CaloMiscalibToolsMC::setIntervalFor(), ESTrivialConditionRetriever::setIntervalFor(), HcalHardcodeCalibrations::setIntervalFor(), SiStripFedCablingBuilderFromDb::setIntervalFor(), CTPPSBeamParametersESSource::setIntervalFor(), JetCorrectionESSource< Corrector >::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:83
static LuminosityBlockNumber_t maxLuminosityBlockNumber()
static EventNumber_t maxEventNumber()
Definition: EventID.h:96
const EventID& edm::IOVSyncValue::eventID ( ) const
inline
const IOVSyncValue & IOVSyncValue::invalidIOVSyncValue ( )
static
LuminosityBlockNumber_t edm::IOVSyncValue::luminosityBlockNumber ( ) const
inline
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
bool edm::IOVSyncValue::operator< ( const IOVSyncValue iRHS) const
inline

Definition at line 47 of file IOVSyncValue.h.

47 { return doOp<std::less>(iRHS); }
bool edm::IOVSyncValue::operator<= ( const IOVSyncValue iRHS) const
inline

Definition at line 48 of file IOVSyncValue.h.

48 { return doOp<std::less_equal>(iRHS); }
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
bool edm::IOVSyncValue::operator> ( const IOVSyncValue iRHS) const
inline

Definition at line 49 of file IOVSyncValue.h.

49 { return doOp<std::greater>(iRHS); }
bool edm::IOVSyncValue::operator>= ( const IOVSyncValue iRHS) const
inline

Definition at line 50 of file IOVSyncValue.h.

50 { return doOp<std::greater_equal>(iRHS); }
void IOVSyncValue::throwInvalidComparison ( ) const
private

Definition at line 69 of file IOVSyncValue.cc.

References Exception.

Referenced by comparable(), and 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  }
const Timestamp& edm::IOVSyncValue::time ( ) const
inline

Member Data Documentation

EventID edm::IOVSyncValue::eventID_
private

Definition at line 100 of file IOVSyncValue.h.

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

bool edm::IOVSyncValue::haveID_
private

Definition at line 102 of file IOVSyncValue.h.

Referenced by comparable(), and doOp().

bool edm::IOVSyncValue::haveTime_
private

Definition at line 103 of file IOVSyncValue.h.

Referenced by comparable(), and doOp().

Timestamp edm::IOVSyncValue::time_
private

Definition at line 101 of file IOVSyncValue.h.

Referenced by doOp(), and time().