CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
GctDigiToRaw Class Reference

#include <EventFilter/GctRawToDigi/src/GctDigiToRaw.cc>

Inheritance diagram for GctDigiToRaw:
edm::global::EDProducer<> edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 GctDigiToRaw (const edm::ParameterSet &)
 
- Public Member Functions inherited from edm::global::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void print (FEDRawData &data) const
 
void produce (edm::StreamID, edm::Event &, const edm::EventSetup &) const final
 

Private Attributes

std::atomic< int > counter_
 
const int fedId_
 
const bool packRctCalo_
 
const bool packRctEm_
 
edm::EDGetTokenT< L1CaloEmCollectiontokenCaloEm_
 
edm::EDGetTokenT< L1CaloRegionCollectiontokenCaloRegion_
 
edm::EDGetTokenT< L1GctEtHadCollectiontokenGctEtHad_
 
edm::EDGetTokenT< L1GctEtMissCollectiontokenGctEtMiss_
 
edm::EDGetTokenT< L1GctEtTotalCollectiontokenGctEtTotal_
 
edm::EDGetTokenT< L1GctHFBitCountsCollectiontokenGctHFBitCounts_
 
edm::EDGetTokenT< L1GctHFRingEtSumsCollectiontokenGctHFRingEtSums_
 
edm::EDGetTokenT< L1GctHtMissCollectiontokenGctHtMiss_
 
edm::EDGetTokenT< L1GctJetCandCollectiontokenGctJetCand_cenJets_
 
edm::EDGetTokenT< L1GctJetCandCollectiontokenGctJetCand_forJets_
 
edm::EDGetTokenT< L1GctJetCandCollectiontokenGctJetCand_tauJets_
 
edm::EDGetTokenT< L1GctJetCountsCollectiontokenGctJetCounts_
 
edm::EDGetTokenT< L1GctEmCandCollectiontokenL1GctEmCand_isoEm_
 
edm::EDGetTokenT< L1GctEmCandCollectiontokenL1GctEmCand_nonIsoEm_
 
edm::EDPutTokenT< FEDRawDataCollectiontokenPut_
 
const bool verbose_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: Produce fake GCT raw data from digis

Implementation: <Notes on="" implementation>="">

Definition at line 40 of file GctDigiToRaw.h.

Constructor & Destructor Documentation

◆ GctDigiToRaw()

GctDigiToRaw::GctDigiToRaw ( const edm::ParameterSet iConfig)
explicit

Definition at line 39 of file GctDigiToRaw.cc.

References fedId_, l1GctValidation_cfi::gctInputTag, edm::ParameterSet::getParameter(), HLT_2022v12_cff::InputTag, LogDebug, packRctCalo_, packRctEm_, l1GctValidation_cfi::rctInputTag, AlCaHLTBitMon_QueryRunRegistry::string, tokenCaloEm_, tokenCaloRegion_, tokenGctEtHad_, tokenGctEtMiss_, tokenGctEtTotal_, tokenGctHFBitCounts_, tokenGctHFRingEtSums_, tokenGctHtMiss_, tokenGctJetCand_cenJets_, tokenGctJetCand_forJets_, tokenGctJetCand_tauJets_, tokenGctJetCounts_, tokenL1GctEmCand_isoEm_, tokenL1GctEmCand_nonIsoEm_, and tokenPut_.

40  : packRctEm_(iConfig.getUntrackedParameter<bool>("packRctEm", true)),
41  packRctCalo_(iConfig.getUntrackedParameter<bool>("packRctCalo", true)),
42  fedId_(iConfig.getParameter<int>("gctFedId")),
43  verbose_(iConfig.getUntrackedParameter<bool>("verbose", false)),
44  counter_(0) {
45  LogDebug("GCT") << "GctDigiToRaw will pack FED Id " << fedId_;
46 
47  //register the products
48  tokenPut_ = produces<FEDRawDataCollection>();
49  const edm::InputTag rctInputTag = iConfig.getParameter<edm::InputTag>("rctInputLabel");
50  const edm::InputTag gctInputTag = iConfig.getParameter<edm::InputTag>("gctInputLabel");
51  const std::string& gctInputLabelStr = gctInputTag.label();
52  tokenL1GctEmCand_isoEm_ = consumes<L1GctEmCandCollection>(edm::InputTag(gctInputLabelStr, "isoEm"));
53  tokenL1GctEmCand_nonIsoEm_ = consumes<L1GctEmCandCollection>(edm::InputTag(gctInputLabelStr, "nonIsoEm"));
54  tokenGctJetCand_cenJets_ = consumes<L1GctJetCandCollection>(edm::InputTag(gctInputLabelStr, "cenJets"));
55  tokenGctJetCand_forJets_ = consumes<L1GctJetCandCollection>(edm::InputTag(gctInputLabelStr, "forJets"));
56  tokenGctJetCand_tauJets_ = consumes<L1GctJetCandCollection>(edm::InputTag(gctInputLabelStr, "tauJets"));
57  tokenGctEtTotal_ = consumes<L1GctEtTotalCollection>(gctInputTag);
58  tokenGctEtHad_ = consumes<L1GctEtHadCollection>(gctInputTag);
59  tokenGctEtMiss_ = consumes<L1GctEtMissCollection>(gctInputTag);
60  tokenGctHFRingEtSums_ = consumes<L1GctHFRingEtSumsCollection>(gctInputTag);
61  tokenGctHFBitCounts_ = consumes<L1GctHFBitCountsCollection>(gctInputTag);
62  tokenGctHtMiss_ = consumes<L1GctHtMissCollection>(gctInputTag);
63  tokenGctJetCounts_ = consumes<L1GctJetCountsCollection>(gctInputTag);
64  if (packRctEm_) {
65  tokenCaloEm_ = consumes<L1CaloEmCollection>(rctInputTag);
66  }
67  if (packRctCalo_) {
68  tokenCaloRegion_ = consumes<L1CaloRegionCollection>(rctInputTag);
69  }
70 }
edm::EDGetTokenT< L1GctHFBitCountsCollection > tokenGctHFBitCounts_
Definition: GctDigiToRaw.h:60
std::atomic< int > counter_
Definition: GctDigiToRaw.h:77
edm::EDGetTokenT< L1GctJetCandCollection > tokenGctJetCand_forJets_
Definition: GctDigiToRaw.h:54
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetTokenT< L1GctEmCandCollection > tokenL1GctEmCand_isoEm_
Definition: GctDigiToRaw.h:51
edm::EDGetTokenT< L1CaloEmCollection > tokenCaloEm_
Definition: GctDigiToRaw.h:63
edm::EDGetTokenT< L1GctJetCandCollection > tokenGctJetCand_tauJets_
Definition: GctDigiToRaw.h:55
edm::EDGetTokenT< L1GctHtMissCollection > tokenGctHtMiss_
Definition: GctDigiToRaw.h:61
edm::EDGetTokenT< L1GctEtTotalCollection > tokenGctEtTotal_
Definition: GctDigiToRaw.h:56
edm::EDGetTokenT< L1CaloRegionCollection > tokenCaloRegion_
Definition: GctDigiToRaw.h:64
edm::EDGetTokenT< L1GctJetCountsCollection > tokenGctJetCounts_
Definition: GctDigiToRaw.h:62
edm::EDGetTokenT< L1GctJetCandCollection > tokenGctJetCand_cenJets_
Definition: GctDigiToRaw.h:53
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< L1GctEtMissCollection > tokenGctEtMiss_
Definition: GctDigiToRaw.h:58
edm::EDGetTokenT< L1GctEtHadCollection > tokenGctEtHad_
Definition: GctDigiToRaw.h:57
edm::EDPutTokenT< FEDRawDataCollection > tokenPut_
Definition: GctDigiToRaw.h:65
const int fedId_
Definition: GctDigiToRaw.h:71
const bool packRctEm_
Definition: GctDigiToRaw.h:67
edm::EDGetTokenT< L1GctHFRingEtSumsCollection > tokenGctHFRingEtSums_
Definition: GctDigiToRaw.h:59
const bool verbose_
Definition: GctDigiToRaw.h:74
const bool packRctCalo_
Definition: GctDigiToRaw.h:68
edm::EDGetTokenT< L1GctEmCandCollection > tokenL1GctEmCand_nonIsoEm_
Definition: GctDigiToRaw.h:52
#define LogDebug(id)

Member Function Documentation

◆ print()

void GctDigiToRaw::print ( FEDRawData data) const
private

Definition at line 202 of file GctDigiToRaw.cc.

References gather_cfg::cout, ztail::d, data, mps_fire::i, and w().

Referenced by produce().

202  {
203  const unsigned char* d = data.data();
204 
205  for (unsigned int i = 0; i < data.size(); i = i + 4) {
206  uint32_t w = (uint32_t)d[i] + (uint32_t)(d[i + 1] << 8) + (uint32_t)(d[i + 2] << 16) + (uint32_t)(d[i + 3] << 24);
207  cout << std::hex << std::setw(4) << i / 4 << " " << std::setw(8) << w << endl;
208  }
209 }
T w() const
d
Definition: ztail.py:151
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79

◆ produce()

void GctDigiToRaw::produce ( edm::StreamID  ,
edm::Event iEvent,
const edm::EventSetup iSetup 
) const
finalprivatevirtual

Implements edm::global::EDProducerBase.

Definition at line 77 of file GctDigiToRaw.cc.

References simKBmtfDigis_cfi::bx, evf::compute_crc(), counter_, edm::HandleBase::failedToGet(), FEDRawDataCollection::FEDData(), fedId_, l1t_dqm_sourceclient-live_cfg::fedRawData, iEvent, LogDebug, eostools::move(), packRctCalo_, packRctEm_, print(), edm::Handle< T >::product(), FEDHeader::set(), FEDTrailer::set(), GctFormatTranslateBase::setPackingBxId(), GctFormatTranslateBase::setPackingEventId(), tokenCaloEm_, tokenCaloRegion_, tokenGctEtHad_, tokenGctEtMiss_, tokenGctEtTotal_, tokenGctHFBitCounts_, tokenGctHFRingEtSums_, tokenGctHtMiss_, tokenGctJetCand_cenJets_, tokenGctJetCand_forJets_, tokenGctJetCand_tauJets_, tokenGctJetCounts_, tokenL1GctEmCand_isoEm_, tokenL1GctEmCand_nonIsoEm_, tokenPut_, verbose_, GctFormatTranslateMCLegacy::writeAllRctCaloRegionBlock(), GctFormatTranslateMCLegacy::writeGctOutEmAndEnergyBlock(), GctFormatTranslateMCLegacy::writeGctOutJetBlock(), and GctFormatTranslateMCLegacy::writeRctEmCandBlocks().

77  {
78  using namespace edm;
79 
80  auto counter = counter_++; // To "simulate" bunch crossings for now...
81  unsigned int bx = counter % 3564; // What's the proper way of doing this?
82  EventNumber_t eventNumber = iEvent.id().event();
83 
84  // digi to block converter
85  // Supply bx and EvID to the packer so it can make internal capture block headers.
86  GctFormatTranslateMCLegacy formatTranslator;
87  formatTranslator.setPackingBxId(bx);
88  formatTranslator.setPackingEventId(eventNumber);
89 
90  // get GCT digis
92  iEvent.getByToken(tokenL1GctEmCand_isoEm_, isoEm);
94  iEvent.getByToken(tokenL1GctEmCand_nonIsoEm_, nonIsoEm);
96  iEvent.getByToken(tokenGctJetCand_cenJets_, cenJets);
98  iEvent.getByToken(tokenGctJetCand_forJets_, forJets);
100  iEvent.getByToken(tokenGctJetCand_tauJets_, tauJets);
102  iEvent.getByToken(tokenGctEtTotal_, etTotal);
104  iEvent.getByToken(tokenGctEtHad_, etHad);
106  iEvent.getByToken(tokenGctEtMiss_, etMiss);
108  iEvent.getByToken(tokenGctHFRingEtSums_, hfRingSums);
110  iEvent.getByToken(tokenGctHFBitCounts_, hfBitCounts);
112  iEvent.getByToken(tokenGctHtMiss_, htMiss);
114  iEvent.getByToken(tokenGctJetCounts_, jetCounts);
115 
116  // get RCT EM Cand digi
117  bool packRctEmThisEvent = packRctEm_;
119  if (packRctEmThisEvent) {
120  iEvent.getByToken(tokenCaloEm_, rctEm);
121  if (rctEm.failedToGet()) {
122  packRctEmThisEvent = false;
123  LogDebug("GCT") << "RCT EM Candidate packing requested, but failed to get them from event!";
124  }
125  }
126 
127  // get RCT Calo region digi
128  bool packRctCaloThisEvent = packRctCalo_;
130  if (packRctCaloThisEvent) {
131  iEvent.getByToken(tokenCaloRegion_, rctCalo);
132  if (rctCalo.failedToGet()) {
133  packRctCaloThisEvent = false;
134  LogDebug("GCT") << "RCT Calo Region packing requested, but failed to get them from event!";
135  }
136  }
137 
138  // create the raw data collection
139  FEDRawDataCollection rawColl;
140 
141  // get the GCT buffer
142  FEDRawData& fedRawData = rawColl.FEDData(fedId_);
143 
144  // set the size & make pointers to the header, beginning of payload, and footer.
145  unsigned int rawSize = 88; // MUST BE MULTIPLE OF 8! (slink packets are 64 bit, but using 8-bit data struct).
146  if (packRctEmThisEvent) {
147  rawSize += 232;
148  } // Space for RCT EM Cands.
149  if (packRctCaloThisEvent) {
150  rawSize += 800;
151  } // Space for RCT Calo Regions (plus a 32-bit word of padding to make divisible by 8)
152  fedRawData.resize(rawSize);
153  unsigned char* pHeader = fedRawData.data();
154  unsigned char* pPayload = pHeader + 16; // 16 = 8 for slink header + 8 for Greg's versioning header.
155  unsigned char* pFooter = pHeader + rawSize - 8;
156 
157  // Write CDF header (exactly as told by Marco Zanetti)
158  FEDHeader fedHeader(pHeader);
159  fedHeader.set(pHeader, 1, eventNumber, bx, fedId_); // what should the bx_ID be?
160 
161  // Pack GCT jet output digis
162  formatTranslator.writeGctOutJetBlock(pPayload,
163  cenJets.product(),
164  forJets.product(),
165  tauJets.product(),
166  hfRingSums.product(),
167  hfBitCounts.product(),
168  htMiss.product());
169 
170  pPayload += 36; //advance payload pointer
171 
172  // Pack GCT EM and energy sums digis.
173  formatTranslator.writeGctOutEmAndEnergyBlock(
174  pPayload, isoEm.product(), nonIsoEm.product(), etTotal.product(), etHad.product(), etMiss.product());
175 
176  pPayload += 28; //advance payload pointer
177 
178  // Pack RCT EM Cands
179  if (packRctEmThisEvent) {
180  formatTranslator.writeRctEmCandBlocks(pPayload, rctEm.product());
181  pPayload += 232; //advance payload pointer
182  }
183 
184  // Pack RCT Calo Regions
185  if (packRctCaloThisEvent) {
186  formatTranslator.writeAllRctCaloRegionBlock(pPayload, rctCalo.product());
187  }
188 
189  // Write CDF footer (exactly as told by Marco Zanetti)
190  FEDTrailer fedTrailer(pFooter);
191  fedTrailer.set(pFooter, rawSize / 8, evf::compute_crc(pHeader, rawSize), 0, 0);
192 
193  // Debug output.
194  if (verbose_) {
195  print(fedRawData);
196  }
197 
198  // Put the collection in the event.
199  iEvent.emplace(tokenPut_, std::move(rawColl));
200 }
edm::EDGetTokenT< L1GctHFBitCountsCollection > tokenGctHFBitCounts_
Definition: GctDigiToRaw.h:60
void setPackingEventId(uint32_t eventId)
std::atomic< int > counter_
Definition: GctDigiToRaw.h:77
void writeGctOutEmAndEnergyBlock(unsigned char *d, const L1GctEmCandCollection *iso, const L1GctEmCandCollection *nonIso, const L1GctEtTotalCollection *etTotal, const L1GctEtHadCollection *etHad, const L1GctEtMissCollection *etMiss)
Writes GCT output EM and energy sums block into an unsigned char array, starting at the position poin...
edm::EDGetTokenT< L1GctJetCandCollection > tokenGctJetCand_forJets_
Definition: GctDigiToRaw.h:54
void writeAllRctCaloRegionBlock(unsigned char *d, const L1CaloRegionCollection *rctCalo)
Writes the giant hack that is the RCT Calo Regions block.
edm::EDGetTokenT< L1GctEmCandCollection > tokenL1GctEmCand_isoEm_
Definition: GctDigiToRaw.h:51
edm::EDGetTokenT< L1CaloEmCollection > tokenCaloEm_
Definition: GctDigiToRaw.h:63
edm::EDGetTokenT< L1GctJetCandCollection > tokenGctJetCand_tauJets_
Definition: GctDigiToRaw.h:55
edm::EDGetTokenT< L1GctHtMissCollection > tokenGctHtMiss_
Definition: GctDigiToRaw.h:61
T const * product() const
Definition: Handle.h:70
void writeRctEmCandBlocks(unsigned char *d, const L1CaloEmCollection *rctEm)
Writes the 4 RCT EM Candidate blocks.
unsigned long long EventNumber_t
edm::EDGetTokenT< L1GctEtTotalCollection > tokenGctEtTotal_
Definition: GctDigiToRaw.h:56
edm::EDGetTokenT< L1CaloRegionCollection > tokenCaloRegion_
Definition: GctDigiToRaw.h:64
edm::EDGetTokenT< L1GctJetCountsCollection > tokenGctJetCounts_
Definition: GctDigiToRaw.h:62
void writeGctOutJetBlock(unsigned char *d, const L1GctJetCandCollection *cenJets, const L1GctJetCandCollection *forJets, const L1GctJetCandCollection *tauJets, const L1GctHFRingEtSumsCollection *hfRingSums, const L1GctHFBitCountsCollection *hfBitCounts, const L1GctHtMissCollection *htMiss)
Writes GCT output jet cands and counts into an unsigned char array, starting at the position pointed ...
edm::EDGetTokenT< L1GctJetCandCollection > tokenGctJetCand_cenJets_
Definition: GctDigiToRaw.h:53
edm::EDGetTokenT< L1GctEtMissCollection > tokenGctEtMiss_
Definition: GctDigiToRaw.h:58
bool failedToGet() const
Definition: HandleBase.h:72
int iEvent
Definition: GenABIO.cc:224
edm::EDGetTokenT< L1GctEtHadCollection > tokenGctEtHad_
Definition: GctDigiToRaw.h:57
unsigned short compute_crc(unsigned char *buffer, unsigned int bufSize)
Definition: CRC16.h:46
edm::EDPutTokenT< FEDRawDataCollection > tokenPut_
Definition: GctDigiToRaw.h:65
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
const int fedId_
Definition: GctDigiToRaw.h:71
const bool packRctEm_
Definition: GctDigiToRaw.h:67
edm::EDGetTokenT< L1GctHFRingEtSumsCollection > tokenGctHFRingEtSums_
Definition: GctDigiToRaw.h:59
const bool verbose_
Definition: GctDigiToRaw.h:74
const bool packRctCalo_
Definition: GctDigiToRaw.h:68
Unpacks/packs the MC Legacy data originally produced by the GctBlockPacker class. ...
edm::EDGetTokenT< L1GctEmCandCollection > tokenL1GctEmCand_nonIsoEm_
Definition: GctDigiToRaw.h:52
void setPackingBxId(uint32_t bxId)
void print(FEDRawData &data) const
HLT enums.
def move(src, dest)
Definition: eostools.py:511
#define LogDebug(id)

Member Data Documentation

◆ counter_

std::atomic<int> GctDigiToRaw::counter_
mutableprivate

Definition at line 77 of file GctDigiToRaw.h.

Referenced by produce().

◆ fedId_

const int GctDigiToRaw::fedId_
private

Definition at line 71 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ packRctCalo_

const bool GctDigiToRaw::packRctCalo_
private

Definition at line 68 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ packRctEm_

const bool GctDigiToRaw::packRctEm_
private

Definition at line 67 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenCaloEm_

edm::EDGetTokenT<L1CaloEmCollection> GctDigiToRaw::tokenCaloEm_
private

Definition at line 63 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenCaloRegion_

edm::EDGetTokenT<L1CaloRegionCollection> GctDigiToRaw::tokenCaloRegion_
private

Definition at line 64 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenGctEtHad_

edm::EDGetTokenT<L1GctEtHadCollection> GctDigiToRaw::tokenGctEtHad_
private

Definition at line 57 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenGctEtMiss_

edm::EDGetTokenT<L1GctEtMissCollection> GctDigiToRaw::tokenGctEtMiss_
private

Definition at line 58 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenGctEtTotal_

edm::EDGetTokenT<L1GctEtTotalCollection> GctDigiToRaw::tokenGctEtTotal_
private

Definition at line 56 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenGctHFBitCounts_

edm::EDGetTokenT<L1GctHFBitCountsCollection> GctDigiToRaw::tokenGctHFBitCounts_
private

Definition at line 60 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenGctHFRingEtSums_

edm::EDGetTokenT<L1GctHFRingEtSumsCollection> GctDigiToRaw::tokenGctHFRingEtSums_
private

Definition at line 59 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenGctHtMiss_

edm::EDGetTokenT<L1GctHtMissCollection> GctDigiToRaw::tokenGctHtMiss_
private

Definition at line 61 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenGctJetCand_cenJets_

edm::EDGetTokenT<L1GctJetCandCollection> GctDigiToRaw::tokenGctJetCand_cenJets_
private

Definition at line 53 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenGctJetCand_forJets_

edm::EDGetTokenT<L1GctJetCandCollection> GctDigiToRaw::tokenGctJetCand_forJets_
private

Definition at line 54 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenGctJetCand_tauJets_

edm::EDGetTokenT<L1GctJetCandCollection> GctDigiToRaw::tokenGctJetCand_tauJets_
private

Definition at line 55 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenGctJetCounts_

edm::EDGetTokenT<L1GctJetCountsCollection> GctDigiToRaw::tokenGctJetCounts_
private

Definition at line 62 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenL1GctEmCand_isoEm_

edm::EDGetTokenT<L1GctEmCandCollection> GctDigiToRaw::tokenL1GctEmCand_isoEm_
private

Definition at line 51 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenL1GctEmCand_nonIsoEm_

edm::EDGetTokenT<L1GctEmCandCollection> GctDigiToRaw::tokenL1GctEmCand_nonIsoEm_
private

Definition at line 52 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ tokenPut_

edm::EDPutTokenT<FEDRawDataCollection> GctDigiToRaw::tokenPut_
private

Definition at line 65 of file GctDigiToRaw.h.

Referenced by GctDigiToRaw(), and produce().

◆ verbose_

const bool GctDigiToRaw::verbose_
private

Definition at line 74 of file GctDigiToRaw.h.

Referenced by produce().