CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
omtf::OmtfPacker Class Reference
Inheritance diagram for omtf::OmtfPacker:
edm::stream::EDProducer<>

Public Member Functions

void beginRun (const edm::Run &run, const edm::EventSetup &es) override
 
 OmtfPacker (const edm::ParameterSet &pset)
 
void produce (edm::Event &ev, const edm::EventSetup &es) override
 
 ~OmtfPacker () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

edm::ParameterSet theConfig
 
CscPacker theCscPacker
 
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollectiontheCscToken
 
DtPacker theDtPacker
 
edm::EDGetTokenT< L1MuDTChambPhContainertheDtPhToken
 
edm::EDGetTokenT< L1MuDTChambThContainertheDtThToken
 
unsigned long theEventCounter
 
std::string theOutputTag
 
RpcPacker theRpcPacker
 
edm::EDGetTokenT< RPCDigiCollectiontheRpcToken
 
bool theSkipCsc
 
bool theSkipDt
 
bool theSkipRpc
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 46 of file OmtfPacker.cc.

Constructor & Destructor Documentation

◆ OmtfPacker()

omtf::OmtfPacker::OmtfPacker ( const edm::ParameterSet pset)

Definition at line 76 of file OmtfPacker.cc.

77  theOutputTag = pset.getParameter<std::string>("outputTag");
78 
79  produces<FEDRawDataCollection>(theOutputTag);
80 
81  theRpcToken = consumes<RPCDigiCollection>(pset.getParameter<edm::InputTag>("rpcInputLabel"));
82  theCscToken = consumes<CSCCorrelatedLCTDigiCollection>(pset.getParameter<edm::InputTag>("cscInputLabel"));
83  theDtPhToken = consumes<L1MuDTChambPhContainer>(pset.getParameter<edm::InputTag>("dtPhInputLabel"));
84  theDtThToken = consumes<L1MuDTChambThContainer>(pset.getParameter<edm::InputTag>("dtThInputLabel"));
85 
86  theSkipDt = pset.getParameter<bool>("skipDt");
87  theSkipRpc = pset.getParameter<bool>("skipRpc");
88  theSkipCsc = pset.getParameter<bool>("skipCsc");
89  }

References muonDTDigis_cfi::pset, AlCaHLTBitMon_QueryRunRegistry::string, theCscToken, theDtPhToken, theDtThToken, theOutputTag, theRpcToken, theSkipCsc, theSkipDt, and theSkipRpc.

◆ ~OmtfPacker()

omtf::OmtfPacker::~OmtfPacker ( )
inlineoverride

Definition at line 50 of file OmtfPacker.cc.

50 {}

Member Function Documentation

◆ beginRun()

void omtf::OmtfPacker::beginRun ( const edm::Run run,
const edm::EventSetup es 
)
override

Definition at line 106 of file OmtfPacker.cc.

106  {
107  //
108  // initialise RPC packer
109  //
110  if (!theSkipRpc) {
111  if (theConfig.getParameter<bool>("useRpcConnectionFile")) {
113  } else {
114  theRpcPacker.init(es);
115  }
116  }
117 
118  //
119  // init CSC Link map
120  //
121  if (!theSkipCsc)
122  theCscPacker.init();
123  }

References edm::FileInPath::fullPath(), edm::ParameterSet::getParameter(), omtf::CscPacker::init(), omtf::RpcPacker::init(), AlCaHLTBitMon_QueryRunRegistry::string, theConfig, theCscPacker, theRpcPacker, theSkipCsc, and theSkipRpc.

◆ fillDescriptions()

void omtf::OmtfPacker::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 91 of file OmtfPacker.cc.

91  {
93  desc.add<edm::InputTag>("rpcInputLabel", edm::InputTag(""));
94  desc.add<edm::InputTag>("cscInputLabel", edm::InputTag(""));
95  desc.add<edm::InputTag>("dtPhInputLabel", edm::InputTag(""));
96  desc.add<edm::InputTag>("dtThInputLabel", edm::InputTag(""));
97  desc.add<bool>("skipRpc", false);
98  desc.add<bool>("skipCsc", false);
99  desc.add<bool>("skipDt", false);
100  desc.add<bool>("useRpcConnectionFile", false);
101  desc.add<std::string>("rpcConnectionFile", "");
102  desc.add<std::string>("outputTag", "");
103  descriptions.add("omtfPacker", desc);
104  }

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, HLT_FULL_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ produce()

void omtf::OmtfPacker::produce ( edm::Event ev,
const edm::EventSetup es 
)
override

Definition at line 125 of file OmtfPacker.cc.

125  {
126  LogDebug("OmtfPacker::produce") << "Beginning To Pack Event: " << ++theEventCounter;
127 
128  //
129  // prepare FedAmcRawsMap structure to collect Word64 raws from digi packers
130  //
131  FedAmcRawsMap raws;
132  std::list<unsigned int> amcIds = {1, 3, 5, 7, 9, 11};
133  std::list<unsigned int> fedIds = {1380, 1381};
134  for (auto& fedId : fedIds) {
135  for (auto& amcId : amcIds) {
136  raws[std::make_pair(fedId, amcId)];
137  }
138  }
139 
140  //
141  // DT raws
142  //
143  if (!theSkipDt) {
144  edm::Handle<L1MuDTChambPhContainer> digiCollectionDTPh;
145  ev.getByToken(theDtPhToken, digiCollectionDTPh);
146  edm::Handle<L1MuDTChambThContainer> digiCollectionDTTh;
147  ev.getByToken(theDtThToken, digiCollectionDTTh);
148  theDtPacker.pack(digiCollectionDTPh.product(), digiCollectionDTTh.product(), raws);
149  }
150 
151  //
152  // csc raws
153  //
154  if (!theSkipCsc) {
156  ev.getByToken(theCscToken, digiCollectionCSC);
157  theCscPacker.pack(digiCollectionCSC.product(), raws);
158  }
159 
160  //
161  // rpc raws
162  //
163  if (!theSkipRpc) {
164  edm::Handle<RPCDigiCollection> digiCollectionRPC;
165  ev.getByToken(theRpcToken, digiCollectionRPC);
166  theRpcPacker.pack(digiCollectionRPC.product(), raws);
167  }
168 
169  auto bxId = ev.bunchCrossing();
170  auto evtId = ev.id().event();
171  auto orbit = ev.eventAuxiliary().orbitNumber();
172  std::unique_ptr<FEDRawDataCollection> raw_coll(new FEDRawDataCollection());
173  for (auto& fedId : fedIds) {
174  //
175  // assign formatted raws to feds
176  //
178  for (const auto& it : raws) {
179  if (fedId != it.first.first)
180  continue;
181  const std::vector<Word64>& amcData = it.second;
182  unsigned int amcId = it.first.second;
183  for (const auto& raw : amcData) {
184  std::ostringstream dataStr;
185  if (DataWord64::csc == DataWord64::type(raw))
186  dataStr << CscDataWord64(raw);
187  if (DataWord64::dt == DataWord64::type(raw))
188  dataStr << DtDataWord64(raw);
189  if (DataWord64::rpc == DataWord64::type(raw))
190  dataStr << RpcDataWord64(raw);
192  dataStr << MuonDataWord64(raw);
193  LogTrace("") << " fed: " << fedId << " amcId: " << amcId << " RAW DATA: " << dataStr.str() << std::endl;
194  }
195  amc13.add(amcId, 43981, evtId, orbit, bxId, amcData);
196  }
197 
198  FEDRawData& fed_data = raw_coll->FEDData(fedId);
199 
200  const unsigned int slinkHeaderSize = 8;
201  const unsigned int slinkTrailerSize = 8;
202  unsigned int size = (amc13.size()) * sizeof(Word64) + slinkHeaderSize + slinkTrailerSize;
203  fed_data.resize(size);
204  unsigned char* payload = fed_data.data();
205  unsigned char* payload_start = payload;
206 
208  const unsigned int evtType = 1;
209  header.set(payload, evtType, evtId, bxId, fedId);
210 
211  amc13.write(ev, payload, slinkHeaderSize, size - slinkHeaderSize - slinkTrailerSize);
212 
213  payload += slinkHeaderSize;
214  payload += amc13.size() * 8;
215 
216  FEDTrailer trailer(payload);
217  trailer.set(payload, size / 8, evf::compute_crc(payload_start, size), 0, 0);
218  }
219  ev.put(std::move(raw_coll), theOutputTag);
220  }

References evf::compute_crc(), omtf::DataWord64::csc, FEDRawData::data(), omtf::DataWord64::dt, ev, l1tstage2_dqm_sourceclient-live_cfg::fedId, L1TStage2BMTF_cff::fedIds, EcalFEDMonitor_cfi::FEDRawDataCollection, RecoTauValidation_cfi::header, LogDebug, LogTrace, eostools::move(), omtf::DataWord64::omtf, omtf::DtPacker::pack(), omtf::CscPacker::pack(), omtf::RpcPacker::pack(), jets_cff::payload, edm::Handle< T >::product(), FEDRawData::resize(), omtf::DataWord64::rpc, FEDTrailer::set(), findQualityFiles::size, theCscPacker, theCscToken, theDtPacker, theDtPhToken, theDtThToken, theEventCounter, theOutputTag, theRpcPacker, theRpcToken, theSkipCsc, theSkipDt, theSkipRpc, and omtf::DataWord64::type().

Member Data Documentation

◆ theConfig

edm::ParameterSet omtf::OmtfPacker::theConfig
private

Definition at line 59 of file OmtfPacker.cc.

Referenced by beginRun().

◆ theCscPacker

CscPacker omtf::OmtfPacker::theCscPacker
private

Definition at line 71 of file OmtfPacker.cc.

Referenced by beginRun(), and produce().

◆ theCscToken

edm::EDGetTokenT<CSCCorrelatedLCTDigiCollection> omtf::OmtfPacker::theCscToken
private

Definition at line 67 of file OmtfPacker.cc.

Referenced by OmtfPacker(), and produce().

◆ theDtPacker

DtPacker omtf::OmtfPacker::theDtPacker
private

Definition at line 73 of file OmtfPacker.cc.

Referenced by produce().

◆ theDtPhToken

edm::EDGetTokenT<L1MuDTChambPhContainer> omtf::OmtfPacker::theDtPhToken
private

Definition at line 69 of file OmtfPacker.cc.

Referenced by OmtfPacker(), and produce().

◆ theDtThToken

edm::EDGetTokenT<L1MuDTChambThContainer> omtf::OmtfPacker::theDtThToken
private

Definition at line 68 of file OmtfPacker.cc.

Referenced by OmtfPacker(), and produce().

◆ theEventCounter

unsigned long omtf::OmtfPacker::theEventCounter
private

Definition at line 60 of file OmtfPacker.cc.

Referenced by produce().

◆ theOutputTag

std::string omtf::OmtfPacker::theOutputTag
private

Definition at line 62 of file OmtfPacker.cc.

Referenced by OmtfPacker(), and produce().

◆ theRpcPacker

RpcPacker omtf::OmtfPacker::theRpcPacker
private

Definition at line 72 of file OmtfPacker.cc.

Referenced by beginRun(), and produce().

◆ theRpcToken

edm::EDGetTokenT<RPCDigiCollection> omtf::OmtfPacker::theRpcToken
private

Definition at line 66 of file OmtfPacker.cc.

Referenced by OmtfPacker(), and produce().

◆ theSkipCsc

bool omtf::OmtfPacker::theSkipCsc
private

Definition at line 64 of file OmtfPacker.cc.

Referenced by beginRun(), OmtfPacker(), and produce().

◆ theSkipDt

bool omtf::OmtfPacker::theSkipDt
private

Definition at line 64 of file OmtfPacker.cc.

Referenced by OmtfPacker(), and produce().

◆ theSkipRpc

bool omtf::OmtfPacker::theSkipRpc
private

Definition at line 64 of file OmtfPacker.cc.

Referenced by beginRun(), OmtfPacker(), and produce().

omtf::OmtfPacker::theOutputTag
std::string theOutputTag
Definition: OmtfPacker.cc:62
omtf::OmtfPacker::theDtPacker
DtPacker theDtPacker
Definition: OmtfPacker.cc:73
edm::Handle::product
T const * product() const
Definition: Handle.h:70
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89285
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
omtf::Word64
uint64_t Word64
Definition: OmtfDataWord64.h:11
omtf::OmtfPacker::theEventCounter
unsigned long theEventCounter
Definition: OmtfPacker.cc:60
omtf::DataWord64::csc
Definition: OmtfDataWord64.h:16
amc13
Definition: AMC13Spec.h:14
omtf::OmtfPacker::theSkipDt
bool theSkipDt
Definition: OmtfPacker.cc:64
omtf::DataWord64::omtf
Definition: OmtfDataWord64.h:16
edm::Handle< L1MuDTChambPhContainer >
omtf::OmtfPacker::theSkipRpc
bool theSkipRpc
Definition: OmtfPacker.cc:64
FEDRawData::data
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:24
FEDRawData
Definition: FEDRawData.h:19
edm::FileInPath
Definition: FileInPath.h:64
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
amc13::Packet
Definition: AMC13Spec.h:69
omtf::OmtfPacker::theSkipCsc
bool theSkipCsc
Definition: OmtfPacker.cc:64
EcalFEDMonitor_cfi.FEDRawDataCollection
FEDRawDataCollection
Definition: EcalFEDMonitor_cfi.py:6
jets_cff.payload
payload
Definition: jets_cff.py:32
omtf::OmtfPacker::theConfig
edm::ParameterSet theConfig
Definition: OmtfPacker.cc:59
omtf::RpcPacker::pack
void pack(const RPCDigiCollection *prod, FedAmcRawsMap &raws)
Definition: OmtfRpcPacker.cc:38
omtf::RpcPacker::init
void init(const edm::EventSetup &es)
Definition: OmtfRpcPacker.cc:24
omtf::FedAmcRawsMap
std::map< std::pair< unsigned int, unsigned int >, std::vector< Word64 > > FedAmcRawsMap
Definition: OmtfDataWord64.h:13
evf::compute_crc
unsigned short compute_crc(unsigned char *buffer, unsigned int bufSize)
Definition: CRC16.h:46
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
omtf::OmtfPacker::theRpcPacker
RpcPacker theRpcPacker
Definition: OmtfPacker.cc:72
omtf::DataWord64::dt
Definition: OmtfDataWord64.h:16
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
FEDTrailer
Definition: FEDTrailer.h:14
omtf::MuonDataWord64
Definition: OmtfMuonDataWord64.h:8
omtf::OmtfPacker::theRpcToken
edm::EDGetTokenT< RPCDigiCollection > theRpcToken
Definition: OmtfPacker.cc:66
omtf::DtDataWord64
Definition: OmtfDtDataWord64.h:9
omtf::DataWord64::type
Type type(const T &)
omtf::RpcDataWord64
Definition: OmtfRpcDataWord64.h:9
l1tstage2_dqm_sourceclient-live_cfg.fedId
fedId
Definition: l1tstage2_dqm_sourceclient-live_cfg.py:88
omtf::OmtfPacker::theDtPhToken
edm::EDGetTokenT< L1MuDTChambPhContainer > theDtPhToken
Definition: OmtfPacker.cc:69
omtf::DtPacker::pack
void pack(const L1MuDTChambPhContainer *phCont, const L1MuDTChambThContainer *thCont, FedAmcRawsMap &raws)
Definition: OmtfDtPacker.cc:8
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
ev
bool ev
Definition: Hydjet2Hadronizer.cc:95
FEDRawData::resize
void resize(size_t newsize)
Definition: FEDRawData.cc:28
L1TStage2BMTF_cff.fedIds
fedIds
Definition: L1TStage2BMTF_cff.py:10
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
omtf::CscPacker::pack
void pack(const CSCCorrelatedLCTDigiCollection *prod, FedAmcRawsMap &raws)
Definition: OmtfCscPacker.cc:11
omtf::CscDataWord64
Definition: OmtfCscDataWord64.h:9
RecoTauValidation_cfi.header
header
Definition: RecoTauValidation_cfi.py:292
omtf::CscPacker::init
void init()
Definition: OmtfCscPacker.cc:9
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
FEDHeader
Definition: FEDHeader.h:14
omtf::DataWord64::rpc
Definition: OmtfDataWord64.h:16
edm::InputTag
Definition: InputTag.h:15
omtf::OmtfPacker::theCscToken
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > theCscToken
Definition: OmtfPacker.cc:67
edm::FileInPath::fullPath
std::string fullPath() const
Definition: FileInPath.cc:161
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
omtf::OmtfPacker::theDtThToken
edm::EDGetTokenT< L1MuDTChambThContainer > theDtThToken
Definition: OmtfPacker.cc:68
omtf::OmtfPacker::theCscPacker
CscPacker theCscPacker
Definition: OmtfPacker.cc:71
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443