1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#ifndef RPCRawToDigi_RPCPackingModule_H
#define RPCRawToDigi_RPCPackingModule_H
/** \class RPCPackingModule
* Driver class for digi to raw data conversions
*/
#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "EventFilter/RPCRawToDigi/interface/EventRecords.h"
#include "FWCore/Utilities/interface/InputTag.h"
#include "DataFormats/RPCDigi/interface/RPCDigiCollection.h"
#include "FWCore/Utilities/interface/ESGetToken.h"
#include "CondFormats/RPCObjects/interface/RPCEMap.h"
#include "CondFormats/DataRecord/interface/RPCEMapRcd.h"
#include "FWCore/Framework/interface/ESWatcher.h"
#include <vector>
namespace edm {
class ParameterSet;
}
namespace edm {
class EventSetup;
}
namespace edm {
class Event;
}
class FEDRawData;
class RPCRecordFormatter;
class RPCReadOutMapping;
class RPCPackingModule : public edm::stream::EDProducer<> {
public:
/// ctor
explicit RPCPackingModule(const edm::ParameterSet&);
/// dtor
~RPCPackingModule() override;
/// get data, convert to raw event, attach again to Event
void produce(edm::Event&, const edm::EventSetup&) override;
static std::vector<rpcrawtodigi::EventRecords> eventRecords(int fedId,
int trigger_BX,
const RPCDigiCollection*,
const RPCRecordFormatter&);
private:
FEDRawData* rawData(int fedId, unsigned int lvl1_ID, const RPCDigiCollection*, const RPCRecordFormatter&) const;
private:
edm::EDGetTokenT<RPCDigiCollection> dataLabel_;
edm::ESWatcher<RPCEMapRcd> recordWatcher_;
const RPCReadOutMapping* theCabling;
edm::ESGetToken<RPCEMap, RPCEMapRcd> readoutMappingToken_;
};
#endif
|