File indexing completed on 2024-04-06 11:58:25
0001 #ifndef _DTFAKET0_H
0002 #define _DTFAKET0_H
0003
0004
0005
0006
0007
0008
0009
0010
0011 #include <memory>
0012
0013
0014 #include "FWCore/Framework/interface/SourceFactory.h"
0015
0016 #include "FWCore/Framework/interface/Frameworkfwd.h"
0017 #include "FWCore/Framework/interface/ESProducer.h"
0018 #include "FWCore/Framework/interface/EventSetupRecordIntervalFinder.h"
0019
0020 #include "FWCore/Framework/interface/Event.h"
0021 #include "FWCore/Framework/interface/MakerMacros.h"
0022
0023 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0024
0025 #include "DetectorDescription/Core/interface/DDCompactView.h"
0026 #include "DetectorDescription/DDCMS/interface/DDCompactView.h"
0027 #include "Geometry/Records/interface/IdealGeometryRecord.h"
0028 #include "Geometry/MuonNumbering/interface/MuonGeometryConstants.h"
0029
0030
0031 #include <map>
0032
0033 class DTT0;
0034 class DTT0Rcd;
0035 class DTLayerId;
0036
0037 class DTFakeT0ESProducer : public edm::ESProducer, public edm::EventSetupRecordIntervalFinder {
0038 public:
0039 DTFakeT0ESProducer(const edm::ParameterSet& pset);
0040
0041 ~DTFakeT0ESProducer() override;
0042
0043 std::unique_ptr<DTT0> produce(const DTT0Rcd& iRecord);
0044
0045 private:
0046 void parseDDD(const DTT0Rcd& iRecord);
0047
0048 void setIntervalFor(const edm::eventsetup::EventSetupRecordKey&,
0049 const edm::IOVSyncValue&,
0050 edm::ValidityInterval& oValidity) override;
0051
0052 std::map<DTLayerId, std::pair<unsigned int, unsigned int> > theLayerIdWiresMap;
0053
0054
0055 double t0Mean;
0056 double t0Sigma;
0057
0058 edm::ESGetToken<DDCompactView, IdealGeometryRecord> cpvTokenDDD_;
0059 edm::ESGetToken<MuonGeometryConstants, IdealGeometryRecord> mdcToken_;
0060 };
0061 #endif