EventFilter
L1TRawToDigi
src
OmtfRpcUnpacker.cc
Go to the documentation of this file.
1
#include "
EventFilter/L1TRawToDigi/interface/OmtfRpcUnpacker.h
"
2
3
#include "
FWCore/Framework/interface/EventSetup.h
"
4
#include "
FWCore/Framework/interface/ESTransientHandle.h
"
5
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
6
7
#include "
EventFilter/RPCRawToDigi/interface/RPCRecordFormatter.h
"
8
#include "
EventFilter/RPCRawToDigi/interface/RPCPackingModule.h
"
9
#include "
EventFilter/RPCRawToDigi/interface/DebugDigisPrintout.h
"
10
#include "
CondFormats/RPCObjects/interface/RPCEMap.h
"
11
#include "
CondFormats/DataRecord/interface/RPCEMapRcd.h
"
12
#include "
EventFilter/L1TRawToDigi/interface/OmtfRpcDataWord64.h
"
13
14
#include "
DataFormats/RPCDigi/interface/DataRecord.h
"
15
#include "
DataFormats/RPCDigi/interface/RecordBX.h
"
16
#include "
DataFormats/RPCDigi/interface/RecordSLD.h
"
17
#include "
DataFormats/RPCDigi/interface/RecordCD.h
"
18
19
namespace
omtf
{
20
21
void
RpcUnpacker::initCabling
(
const
edm::EventSetup
&es) {
22
edm::ESTransientHandle<RPCEMap>
readoutMapping;
23
es.
get
<
RPCEMapRcd
>().
get
(readoutMapping);
24
thePactCabling
.reset(readoutMapping->
convert
());
25
26
LogDebug
(
"OmtfUnpacker"
) <<
" Has PACT readout map, VERSION: "
<<
thePactCabling
->version() << std::endl;
27
}
28
29
void
RpcUnpacker::init
(
const
edm::EventSetup
&es) {
30
initCabling
(es);
31
RpcLinkMap
omtfLink2Ele;
32
omtfLink2Ele.
init
(es);
33
theOmtf2Pact
=
translateOmtf2Pact
(omtfLink2Ele,
thePactCabling
.get());
34
}
35
36
void
RpcUnpacker::init
(
const
edm::EventSetup
&es,
const
std::string
&connectionFile) {
37
initCabling
(es);
38
RpcLinkMap
omtfLink2Ele;
39
omtfLink2Ele.
init
(connectionFile);
40
theOmtf2Pact
=
translateOmtf2Pact
(omtfLink2Ele,
thePactCabling
.get());
41
}
42
43
void
RpcUnpacker::unpack
(
44
int
triggerBX,
unsigned
int
fed,
unsigned
int
amc
,
const
RpcDataWord64
&
data
,
RPCDigiCollection
*
prod
) {
45
LogTrace
(
"RpcUnpacker:"
) <<
data
;
46
47
// EleIndex omtfEle(fedHeader.sourceID(), bh.getAMCNumber()/2+1, data.linkNum());
48
EleIndex
omtfEle(fed,
amc
,
data
.linkNum());
49
LinkBoardElectronicIndex
rpcEle =
theOmtf2Pact
.at(omtfEle);
50
RPCRecordFormatter
formater(rpcEle.dccId,
thePactCabling
.get());
51
52
rpcrawtodigi::EventRecords
records(triggerBX);
53
rpcrawtodigi::RecordBX
recordBX(triggerBX +
data
.bxNum() - 3);
54
records.add(recordBX);
// warning: event records must be added in right order
55
rpcrawtodigi::RecordSLD
recordSLD(rpcEle.tbLinkInputNum, rpcEle.dccInputChannelNum);
56
records.add(recordSLD);
// warning: event records must be added in right order
57
58
for
(
unsigned
int
iframe = 1; iframe <= 3; iframe++) {
59
uint16_t
frame
= (iframe == 1) ?
data
.frame1() : ((iframe == 2) ?
data
.frame2() :
data
.frame3());
60
if
(
frame
== 0)
61
continue
;
62
rpcrawtodigi::RecordCD
recordCD(
frame
);
63
records.add(recordCD);
64
65
LogTrace
(
""
) <<
"OMTF->RPC Event isComplete: "
<< records.complete()
66
<< records.print(
rpcrawtodigi::DataRecord::StartOfBXData
);
// << std::endl;
67
LogTrace
(
""
) <<
"OMTF->RPC Event: "
68
<< records.print(
rpcrawtodigi::DataRecord::StartOfTbLinkInputNumberData
) << std::endl;
69
LogTrace
(
""
) <<
"OMTF->RPC Event: "
<< records.print(
rpcrawtodigi::DataRecord::ChamberData
)
70
<<
" lb:"
<< recordCD.
lbInLink
() <<
" part: "
<< recordCD.
partitionNumber
()
71
<<
" partData: "
<< recordCD.
partitionData
() << std::endl
72
<< std::endl;
73
74
if
(records.complete())
75
formater.recordUnpack(records,
prod
,
nullptr
,
nullptr
);
76
}
77
}
78
}
// namespace omtf
rpcrawtodigi::RecordBX
Definition:
RecordBX.h:7
RPCRecordFormatter
Definition:
RPCRecordFormatter.h:15
ESTransientHandle.h
MessageLogger.h
RPCEMap::convert
RPCReadOutMapping const * convert() const
Definition:
RPCEMap.h:64
RPCRecordFormatter.h
rpcrawtodigi::RecordCD
Definition:
RecordCD.h:8
rpcrawtodigi::RecordCD::partitionNumber
int partitionNumber() const
Definition:
RecordCD.cc:30
omtf::RpcUnpacker::theOmtf2Pact
MapEleIndex2LBIndex theOmtf2Pact
Definition:
OmtfRpcUnpacker.h:32
omtf::RpcLinkMap::init
void init(const edm::EventSetup &es)
Definition:
OmtfLinkMappingRpc.cc:78
DebugDigisPrintout.h
RPCEMapRcd.h
RecordSLD.h
RPCDigiCollection
rpcrawtodigi::DataRecord::StartOfTbLinkInputNumberData
Definition:
DataRecord.h:16
omtf::RpcUnpacker::initCabling
void initCabling(const edm::EventSetup &es)
Definition:
OmtfRpcUnpacker.cc:21
edm::EventSetup::get
T get() const
Definition:
EventSetup.h:73
omtf::EleIndex
Definition:
OmtfEleIndex.h:9
dumpMFGeometry_cfg.prod
prod
Definition:
dumpMFGeometry_cfg.py:24
omtf::RpcLinkMap
Definition:
OmtfLinkMappingRpc.h:32
rpcrawtodigi::RecordSLD
Definition:
RecordSLD.h:7
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
LogDebug
#define LogDebug(id)
Definition:
MessageLogger.h:670
OmtfRpcDataWord64.h
rpcrawtodigi::EventRecords
Definition:
EventRecords.h:11
omtf::translateOmtf2Pact
MapEleIndex2LBIndex translateOmtf2Pact(const RpcLinkMap &omtfLnks, const RPCReadOutMapping *pactCabling)
Definition:
OmtfLinkMappingRpc.cc:36
omtf::RpcDataWord64
Definition:
OmtfRpcDataWord64.h:9
edm::EventSetup
Definition:
EventSetup.h:57
get
#define get
RPCEMapRcd
Definition:
RPCEMapRcd.h:5
rpcrawtodigi::RecordCD::lbInLink
int lbInLink() const
Definition:
RecordCD.cc:28
edm::ESTransientHandle
Definition:
ESTransientHandle.h:41
LinkBoardElectronicIndex
Definition:
LinkBoardElectronicIndex.h:10
DataRecord.h
RPCPackingModule.h
rpcrawtodigi::RecordCD::partitionData
int partitionData() const
Definition:
RecordCD.cc:36
amptDefault_cfi.frame
frame
Definition:
amptDefault_cfi.py:12
EventSetup.h
RecordCD.h
amc
Definition:
AMCSpec.h:8
omtf::RpcUnpacker::init
void init(const edm::EventSetup &es)
Definition:
OmtfRpcUnpacker.cc:29
data
char data[epos_bytes_allocation]
Definition:
EPOS_Wrapper.h:79
RPCEMap.h
LogTrace
#define LogTrace(id)
Definition:
MessageLogger.h:671
omtf::RpcUnpacker::thePactCabling
std::unique_ptr< const RPCReadOutMapping > thePactCabling
Definition:
OmtfRpcUnpacker.h:33
omtf::RpcUnpacker::unpack
void unpack(int triggerBX, unsigned int fed, unsigned int amc, const RpcDataWord64 &raw, RPCDigiCollection *prod)
Definition:
OmtfRpcUnpacker.cc:43
rpcrawtodigi::DataRecord::StartOfBXData
Definition:
DataRecord.h:15
RecordBX.h
omtf
Definition:
OmtfCscDataWord64.h:7
OmtfRpcUnpacker.h
rpcrawtodigi::DataRecord::ChamberData
Definition:
DataRecord.h:17
Generated for CMSSW Reference Manual by
1.8.16