File indexing completed on 2024-04-06 12:30:49
0001 #ifndef RPCDigiProducer_h
0002 #define RPCDigiProducer_h
0003
0004 #include "FWCore/Framework/interface/stream/EDProducer.h"
0005 #include "FWCore/Framework/interface/Event.h"
0006 #include "FWCore/Framework/interface/EventSetup.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0008 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0009 #include "FWCore/Utilities/interface/ESGetToken.h"
0010
0011 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0012 #include "SimMuon/RPCDigitizer/src/RPCDigitizer.h"
0013 #include "Geometry/Records/interface/MuonGeometryRecord.h"
0014 #include "CondFormats/RPCObjects/interface/RPCStripNoises.h"
0015 #include "CondFormats/DataRecord/interface/RPCStripNoisesRcd.h"
0016 #include "CondFormats/RPCObjects/interface/RPCClusterSize.h"
0017 #include "CondFormats/DataRecord/interface/RPCClusterSizeRcd.h"
0018
0019 class RPCGeometry;
0020 class RPCSimSetUp;
0021 class RPCSynchronizer;
0022
0023 class RPCDigiProducer : public edm::stream::EDProducer<> {
0024 public:
0025 typedef RPCDigitizer::RPCDigiSimLinks RPCDigitizerSimLinks;
0026
0027 explicit RPCDigiProducer(const edm::ParameterSet& ps);
0028 ~RPCDigiProducer() override;
0029
0030 void beginRun(const edm::Run&, const edm::EventSetup&) override;
0031
0032
0033 void produce(edm::Event& e, const edm::EventSetup& c) override;
0034
0035 void setRPCSetUp(const std::vector<RPCStripNoises::NoiseItem>&, const std::vector<double>&);
0036
0037 private:
0038 RPCDigitizer* theDigitizer;
0039 RPCSimSetUp* theRPCSimSetUp;
0040
0041
0042 std::string mix_;
0043 std::string collection_for_XF;
0044
0045
0046 edm::EDGetTokenT<CrossingFrame<PSimHit>> crossingFrameToken;
0047
0048
0049 edm::ESGetToken<RPCGeometry, MuonGeometryRecord> geomToken;
0050 edm::ESGetToken<RPCStripNoises, RPCStripNoisesRcd> noiseToken;
0051 edm::ESGetToken<RPCClusterSize, RPCClusterSizeRcd> clsToken;
0052 };
0053
0054 #endif