File indexing completed on 2023-03-17 10:59:35
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef DTRawToDigi_DTuROSDigiToRaw_h
0014 #define DTRawToDigi_DTuROSDigiToRaw_h
0015
0016 #include "FWCore/Framework/interface/ConsumesCollector.h"
0017 #include "DataFormats/Common/interface/Handle.h"
0018 #include "FWCore/Framework/interface/ESHandle.h"
0019 #include "FWCore/Utilities/interface/ESGetToken.h"
0020 #include "FWCore/Framework/interface/Event.h"
0021 #include "FWCore/Framework/interface/EventSetup.h"
0022 #include "DataFormats/DTDigi/interface/DTDigiCollection.h"
0023 #include "DataFormats/DTDigi/interface/DTuROSControlData.h"
0024 #include "DataFormats/MuonDetId/interface/DTLayerId.h"
0025 #include "DataFormats/FEDRawData/interface/FEDNumbering.h"
0026 #include <DataFormats/FEDRawData/interface/FEDRawDataCollection.h>
0027 #include <FWCore/Framework/interface/stream/EDProducer.h>
0028 #include <FWCore/ParameterSet/interface/ParameterSet.h>
0029 #include <FWCore/Utilities/interface/InputTag.h>
0030 #include "CondFormats/DTObjects/interface/DTReadOutMapping.h"
0031 #include "CondFormats/DataRecord/interface/DTReadOutMappingRcd.h"
0032
0033 #include <string>
0034
0035 class DTReadOutMapping;
0036
0037 class DTuROSDigiToRaw : public edm::stream::EDProducer<> {
0038 public:
0039
0040 DTuROSDigiToRaw(const edm::ParameterSet& pset);
0041
0042
0043 ~DTuROSDigiToRaw() override;
0044
0045
0046 void produce(edm::Event& e, const edm::EventSetup& c) override;
0047
0048
0049 bool fillRawData(edm::Event& e, const edm::EventSetup& c, FEDRawDataCollection& data);
0050
0051 private:
0052 unsigned int eventNum;
0053
0054 edm::InputTag DTDigiInputTag_;
0055
0056 bool debug_;
0057
0058 int nfeds_;
0059
0060 std::vector<int> feds_;
0061
0062 int bslts[DOCESLOTS], dslts[DOCESLOTS];
0063
0064 std::vector<int> wslts[DOCESLOTS];
0065
0066
0067
0068
0069
0070 void process(int DTuROSFED,
0071 edm::Handle<DTDigiCollection> digis,
0072 edm::ESHandle<DTReadOutMapping> mapping,
0073 FEDRawDataCollection& data);
0074
0075
0076 void clear();
0077
0078 int theCRT(int ddu, int ros);
0079
0080 int theSLT(int ddu, int ros, int rob);
0081
0082 int theLNK(int ddu, int ros, int rob);
0083
0084 edm::InputTag getDTDigiInputTag() { return DTDigiInputTag_; }
0085
0086 edm::EDGetTokenT<DTDigiCollection> Raw_token;
0087 edm::ESGetToken<DTReadOutMapping, DTReadOutMappingRcd> mapping_token_;
0088 };
0089 #endif