File indexing completed on 2023-03-17 10:38:59
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 #include <memory>
0024 #include <string>
0025
0026
0027 #include "FWCore/Framework/interface/SourceFactory.h"
0028 #include "FWCore/Framework/interface/ESProducer.h"
0029 #include "FWCore/Framework/interface/EventSetupRecordIntervalFinder.h"
0030 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0031 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0032
0033
0034 #include "CondFormats/Alignment/interface/Alignments.h"
0035 #include "CondFormats/Alignment/interface/AlignmentErrorsExtended.h"
0036 #include "CondFormats/Alignment/interface/AlignmentSurfaceDeformations.h"
0037 #include "CondFormats/AlignmentRecord/interface/TrackerAlignmentRcd.h"
0038 #include "CondFormats/AlignmentRecord/interface/DTAlignmentRcd.h"
0039 #include "CondFormats/AlignmentRecord/interface/CSCAlignmentRcd.h"
0040 #include "CondFormats/AlignmentRecord/interface/TrackerAlignmentErrorExtendedRcd.h"
0041 #include "CondFormats/AlignmentRecord/interface/DTAlignmentErrorExtendedRcd.h"
0042 #include "CondFormats/AlignmentRecord/interface/CSCAlignmentErrorExtendedRcd.h"
0043 #include "CondFormats/AlignmentRecord/interface/GlobalPositionRcd.h"
0044 #include "CondFormats/AlignmentRecord/interface/TrackerSurfaceDeformationRcd.h"
0045
0046 class FakeAlignmentSource : public edm::ESProducer, public edm::EventSetupRecordIntervalFinder {
0047 public:
0048 FakeAlignmentSource(const edm::ParameterSet&);
0049 ~FakeAlignmentSource() override {}
0050
0051
0052 std::unique_ptr<Alignments> produceTkAli(const TrackerAlignmentRcd&) { return std::make_unique<Alignments>(); }
0053 std::unique_ptr<AlignmentErrorsExtended> produceTkAliErr(const TrackerAlignmentErrorExtendedRcd&) {
0054 return std::make_unique<AlignmentErrorsExtended>();
0055 }
0056
0057
0058 std::unique_ptr<Alignments> produceDTAli(const DTAlignmentRcd&) { return std::make_unique<Alignments>(); }
0059 std::unique_ptr<AlignmentErrorsExtended> produceDTAliErr(const DTAlignmentErrorExtendedRcd&) {
0060 return std::make_unique<AlignmentErrorsExtended>();
0061 }
0062
0063
0064 std::unique_ptr<Alignments> produceCSCAli(const CSCAlignmentRcd&) { return std::make_unique<Alignments>(); }
0065 std::unique_ptr<AlignmentErrorsExtended> produceCSCAliErr(const CSCAlignmentErrorExtendedRcd&) {
0066 return std::make_unique<AlignmentErrorsExtended>();
0067 }
0068
0069
0070 std::unique_ptr<Alignments> produceGlobals(const GlobalPositionRcd&) { return std::make_unique<Alignments>(); }
0071
0072
0073 std::unique_ptr<AlignmentSurfaceDeformations> produceTrackerSurfaceDeformation(const TrackerSurfaceDeformationRcd&) {
0074 return std::make_unique<AlignmentSurfaceDeformations>();
0075 }
0076
0077 protected:
0078
0079 void setIntervalFor(const edm::eventsetup::EventSetupRecordKey& ,
0080 const edm::IOVSyncValue& ioSyncVal,
0081 edm::ValidityInterval& iov) override;
0082
0083 private:
0084 bool produceTracker_;
0085 bool produceDT_;
0086 bool produceCSC_;
0087 bool produceGlobalPosition_;
0088 bool produceTrackerSurfaceDeformation_;
0089 };
0090
0091
0092
0093
0094
0095 FakeAlignmentSource::FakeAlignmentSource(const edm::ParameterSet& iConfig)
0096 : produceTracker_(iConfig.getParameter<bool>("produceTracker")),
0097 produceDT_(iConfig.getParameter<bool>("produceDT")),
0098 produceCSC_(iConfig.getParameter<bool>("produceCSC")),
0099 produceGlobalPosition_(iConfig.getParameter<bool>("produceGlobalPosition")),
0100 produceTrackerSurfaceDeformation_(iConfig.getParameter<bool>("produceTrackerSurfaceDeformation")) {
0101
0102
0103
0104
0105 edm::LogInfo("Alignments") << "@SUB=FakeAlignmentSource"
0106 << "Providing data with label '" << iConfig.getParameter<std::string>("appendToDataLabel")
0107 << "'.";
0108
0109
0110 if (produceTracker_) {
0111 this->setWhatProduced(this, &FakeAlignmentSource::produceTkAli);
0112 this->setWhatProduced(this, &FakeAlignmentSource::produceTkAliErr);
0113 }
0114 if (produceDT_) {
0115 this->setWhatProduced(this, &FakeAlignmentSource::produceDTAli);
0116 this->setWhatProduced(this, &FakeAlignmentSource::produceDTAliErr);
0117 }
0118 if (produceCSC_) {
0119 this->setWhatProduced(this, &FakeAlignmentSource::produceCSCAli);
0120 this->setWhatProduced(this, &FakeAlignmentSource::produceCSCAliErr);
0121 }
0122 if (produceGlobalPosition_) {
0123 this->setWhatProduced(this, &FakeAlignmentSource::produceGlobals);
0124 }
0125 if (produceTrackerSurfaceDeformation_) {
0126 this->setWhatProduced(this, &FakeAlignmentSource::produceTrackerSurfaceDeformation);
0127 }
0128
0129
0130 if (produceTracker_) {
0131 this->findingRecord<TrackerAlignmentRcd>();
0132 this->findingRecord<TrackerAlignmentErrorExtendedRcd>();
0133 }
0134 if (produceDT_) {
0135 this->findingRecord<DTAlignmentRcd>();
0136 this->findingRecord<DTAlignmentErrorExtendedRcd>();
0137 }
0138 if (produceCSC_) {
0139 this->findingRecord<CSCAlignmentRcd>();
0140 this->findingRecord<CSCAlignmentErrorExtendedRcd>();
0141 }
0142 if (produceGlobalPosition_) {
0143 this->findingRecord<GlobalPositionRcd>();
0144 }
0145 if (produceTrackerSurfaceDeformation_) {
0146 this->findingRecord<TrackerSurfaceDeformationRcd>();
0147 }
0148 }
0149
0150 void FakeAlignmentSource::setIntervalFor(const edm::eventsetup::EventSetupRecordKey& ,
0151 const edm::IOVSyncValue& ioSyncVal,
0152 edm::ValidityInterval& outValidity) {
0153
0154 outValidity = edm::ValidityInterval(ioSyncVal.beginOfTime(), ioSyncVal.endOfTime());
0155 }
0156
0157
0158 DEFINE_FWK_EVENTSETUP_SOURCE(FakeAlignmentSource);