Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:59:31

0001 #ifndef CalibTracker_SiPhase2TrackerESProducers_SiPhase2OuterTrackerFakeLorentzAngleESSource_h
0002 #define CalibTracker_SiPhase2TrackerESProducers_SiPhase2OuterTrackerFakeLorentzAngleESSource_h
0003 // -*- C++ -*-
0004 //
0005 // Package:    SiPhase2OuterTrackerFakeLorentzAngleESSource
0006 // Class:      SiPhase2OuterTrackerFakeLorentzAngleESSource
0007 //
0008 /**\class SiPhase2OuterTrackerFakeLorentzAngleESSource SiPhase2OuterTrackerFakeLorentzAngleESSource.h CalibTracker/SiPhase2TrackerESProducers/src/SiPhase2OuterTrackerFakeLorentzAngleESSource.cc
0009  Description: <one line class summary>
0010  Implementation:
0011      <Notes on implementation>
0012 */
0013 //
0014 // Original Author:  Marco Musich
0015 //         Created:  July 31st, 2020
0016 //
0017 //
0018 
0019 // system include files
0020 #include <memory>
0021 
0022 // user include files
0023 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0024 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0025 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0026 #include "FWCore/Framework/interface/ESProducer.h"
0027 #include "FWCore/Framework/interface/EventSetupRecordIntervalFinder.h"
0028 #include "CondFormats/SiPhase2TrackerObjects/interface/SiPhase2OuterTrackerLorentzAngle.h"
0029 #include "CondFormats/DataRecord/interface/SiPhase2OuterTrackerLorentzAngleRcd.h"
0030 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0031 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
0032 
0033 //
0034 // class decleration
0035 //
0036 
0037 class SiPhase2OuterTrackerFakeLorentzAngleESSource : public edm::ESProducer,
0038                                                      public edm::EventSetupRecordIntervalFinder {
0039 public:
0040   SiPhase2OuterTrackerFakeLorentzAngleESSource(const edm::ParameterSet &);
0041   ~SiPhase2OuterTrackerFakeLorentzAngleESSource() override;
0042 
0043   void produce(){};
0044   static void fillDescriptions(edm::ConfigurationDescriptions &);
0045 
0046 protected:
0047   void setIntervalFor(const edm::eventsetup::EventSetupRecordKey &,
0048                       const edm::IOVSyncValue &,
0049                       edm::ValidityInterval &) override;
0050 
0051   virtual std::unique_ptr<SiPhase2OuterTrackerLorentzAngle> produceOTLA(const SiPhase2OuterTrackerLorentzAngleRcd &);
0052   virtual std::unique_ptr<SiPhase2OuterTrackerLorentzAngle> produceOTSimLA(
0053       const SiPhase2OuterTrackerLorentzAngleSimRcd &);
0054 
0055 private:
0056   edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> m_tTopoToken;
0057   edm::ESGetToken<GeometricDet, IdealGeometryRecord> m_geomDetToken;
0058   const float LAvalue_;
0059   const std::string recordName_;
0060 };
0061 #endif