CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Attributes | Private Attributes
ESDigiToRaw Class Reference

#include <ESDigiToRaw.h>

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

Public Types

typedef uint32_t Word32
 
typedef uint64_t Word64
 
- 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
 

Public Member Functions

 ESDigiToRaw (const edm::ParameterSet &ps)
 
void produce (edm::StreamID, edm::Event &e, const edm::EventSetup &es) const override
 
 ~ESDigiToRaw () override
 
- Public Member Functions inherited from edm::global::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () 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
 
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)
 
 ~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
 
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::vector< ModuleDescription const * > &modules, 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
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Attributes

static const int BXMAX = 2808
 
static const int KCHIP_BC_RANGE = 4096
 
static const int KCHIP_EC_RANGE = 256
 
static const int LHC_BX_RANGE = 3564
 

Private Attributes

const bool debug_
 
const ESDataFormatterESDataFormatter_
 
const edm::EDGetTokenT< ESDigiCollectionESDigiToken_
 
int fedId_ [2][2][40][40]
 
const int formatMajor_
 
const int formatMinor_
 
const std::string instanceName_
 
const std::string label_
 
const edm::FileInPath lookup_
 

Additional Inherited Members

- 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::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
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 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)
 

Detailed Description

Definition at line 20 of file ESDigiToRaw.h.

Member Typedef Documentation

typedef uint32_t ESDigiToRaw::Word32

Definition at line 27 of file ESDigiToRaw.h.

typedef uint64_t ESDigiToRaw::Word64

Definition at line 28 of file ESDigiToRaw.h.

Constructor & Destructor Documentation

ESDigiToRaw::ESDigiToRaw ( const edm::ParameterSet ps)

Definition at line 14 of file ESDigiToRaw.cc.

References gather_cfg::cout, ESDataFormatter_, fedId_, FrontierConditions_GlobalTag_cff::file, formatMajor_, edm::FileInPath::fullPath(), mps_fire::i, gen::k, lookup_, and funct::m.

14  : ESDataFormatter_(nullptr),
15  label_(ps.getParameter<string>("Label")),
16  instanceName_(ps.getParameter<string>("InstanceES")),
17  ESDigiToken_(consumes<ESDigiCollection>(edm::InputTag(label_, instanceName_))),
18  lookup_(ps.getUntrackedParameter<FileInPath>("LookupTable")),
19  debug_(ps.getUntrackedParameter<bool>("debugMode", false)),
20  formatMajor_(ps.getUntrackedParameter<int>("formatMajor", 4)),
21  formatMinor_(ps.getUntrackedParameter<int>("formatMinor", 1))
22 {
23  if (formatMajor_ == 4)
25  else
27 
28  produces<FEDRawDataCollection>();
29  // initialize look-up table
30  for (int i=0; i<2; ++i)
31  for (int j=0; j<2; ++j)
32  for (int k=0 ;k<40; ++k)
33  for (int m=0; m<40; m++)
34  fedId_[i][j][k][m] = -1;
35 
36  // read in look-up table
37  int nLines, iz, ip, ix, iy, fed, kchip, pace, bundle, fiber, optorx;
38  ifstream file;
39  file.open(lookup_.fullPath().c_str());
40  if( file.is_open() ) {
41 
42  file >> nLines;
43  for (int i=0; i<nLines; ++i) {
44  file >> iz >> ip >> ix >> iy >> fed >> kchip >> pace >> bundle >> fiber >> optorx ;
45  fedId_[(3-iz)/2-1][ip-1][ix-1][iy-1] = fed;
46  }
47  } else {
48  cout<<"[ESDigiToRaw] Look up table file can not be found in "<<lookup_.fullPath().c_str() <<endl;
49  }
50 
51  file.close();
52 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const edm::EDGetTokenT< ESDigiCollection > ESDigiToken_
Definition: ESDigiToRaw.h:41
const int formatMajor_
Definition: ESDigiToRaw.h:44
const ESDataFormatter * ESDataFormatter_
Definition: ESDigiToRaw.h:38
int fedId_[2][2][40][40]
Definition: ESDigiToRaw.h:36
const bool debug_
Definition: ESDigiToRaw.h:43
int k[5][pyjets_maxn]
const edm::FileInPath lookup_
Definition: ESDigiToRaw.h:42
const std::string label_
Definition: ESDigiToRaw.h:39
std::string fullPath() const
Definition: FileInPath.cc:197
const std::string instanceName_
Definition: ESDigiToRaw.h:40
const int formatMinor_
Definition: ESDigiToRaw.h:45
ESDigiToRaw::~ESDigiToRaw ( )
override

Definition at line 54 of file ESDigiToRaw.cc.

References ESDataFormatter_.

54  {
56 }
const ESDataFormatter * ESDataFormatter_
Definition: ESDigiToRaw.h:38

Member Function Documentation

void ESDigiToRaw::produce ( edm::StreamID  ,
edm::Event e,
const edm::EventSetup es 
) const
override

Definition at line 58 of file ESDigiToRaw.cc.

References edm::DataFrameContainer::begin(), ESDataFormatter::Meta_Data::bx, gather_cfg::cout, debug_, ESDataFormatter::DigiToRaw(), edm::DataFrameContainer::end(), ESDataFormatter_, ESDigiToken_, edm::EventID::event(), fedId_, edm::Event::getByToken(), edm::EventBase::id(), ESDataFormatter::Meta_Data::kchip_bc, KCHIP_BC_RANGE, ESDataFormatter::Meta_Data::kchip_ec, KCHIP_EC_RANGE, LHC_BX_RANGE, ESDataFormatter::Meta_Data::lv1, eostools::move(), ESDataFormatter::Meta_Data::orbit_number, ESDetId::plane(), edm::Event::put(), edm::EventID::run(), ESDataFormatter::Meta_Data::run_number, ESDetId::six(), ESDetId::siy(), FEDRawData::size(), and ESDetId::zside().

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

58  {
60  meta_data.lv1 = ev.id().event();
61  meta_data.run_number = ev.id().run();
62  meta_data.orbit_number = meta_data.lv1 / LHC_BX_RANGE;
63  meta_data.bx = (meta_data.lv1 % LHC_BX_RANGE);
64 
65  meta_data.kchip_ec = (meta_data.lv1 % KCHIP_EC_RANGE);
66  meta_data.kchip_bc = (meta_data.lv1 % KCHIP_BC_RANGE);
67 
69  ev.getByToken(ESDigiToken_, digis);
70 
71  int ifed;
73  Digis.clear();
74 
75  for (ESDigiCollection::const_iterator it=digis->begin(); it!=digis->end(); ++it) {
76 
77  const ESDataFrame& df = *it;
78  const ESDetId& detId = it->id();
79 
80  ifed = fedId_[(3-detId.zside())/2-1][detId.plane()-1][detId.six()-1][detId.siy()-1];
81  if (ifed < 0) continue;
82 
83  Digis[ifed].push_back(df);
84  }
85 
86  auto productRawData = std::make_unique<FEDRawDataCollection>();
87 
88  ESDataFormatter::Digis::const_iterator itfed;
89  for (itfed = Digis.begin(); itfed != Digis.end(); ++itfed) {
90  int fId = (*itfed).first ;
91 
92  FEDRawData& fedRawData = productRawData->FEDData(fId);
93  ESDataFormatter_->DigiToRaw(fId, Digis, fedRawData, meta_data);
94 
95  if (debug_) cout<<"FED : "<<fId<<" Data size : "<<fedRawData.size()<<" (Bytes)"<<endl;
96  }
97 
98  ev.put(std::move(productRawData));
99 
100  return;
101 }
static const int KCHIP_EC_RANGE
Definition: ESDigiToRaw.h:33
virtual void DigiToRaw(int fedId, Digis &digis, FEDRawData &fedRawData, const Meta_Data &meta_data) const =0
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
const edm::EDGetTokenT< ESDigiCollection > ESDigiToken_
Definition: ESDigiToRaw.h:41
bool ev
int six() const
Definition: ESDetId.h:49
const_iterator begin() const
std::map< int, DetDigis > Digis
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
const ESDataFormatter * ESDataFormatter_
Definition: ESDigiToRaw.h:38
int siy() const
Definition: ESDetId.h:51
int fedId_[2][2][40][40]
Definition: ESDigiToRaw.h:36
int zside() const
Definition: ESDetId.h:45
const bool debug_
Definition: ESDigiToRaw.h:43
const_iterator end() const
static const int KCHIP_BC_RANGE
Definition: ESDigiToRaw.h:32
int plane() const
Definition: ESDetId.h:47
static const int LHC_BX_RANGE
Definition: ESDigiToRaw.h:31
def move(src, dest)
Definition: eostools.py:510

Member Data Documentation

const int ESDigiToRaw::BXMAX = 2808
static

Definition at line 30 of file ESDigiToRaw.h.

const bool ESDigiToRaw::debug_
private

Definition at line 43 of file ESDigiToRaw.h.

Referenced by produce().

const ESDataFormatter* ESDigiToRaw::ESDataFormatter_
private

Definition at line 38 of file ESDigiToRaw.h.

Referenced by ESDigiToRaw(), produce(), and ~ESDigiToRaw().

const edm::EDGetTokenT<ESDigiCollection> ESDigiToRaw::ESDigiToken_
private

Definition at line 41 of file ESDigiToRaw.h.

Referenced by produce().

int ESDigiToRaw::fedId_[2][2][40][40]
private

Definition at line 36 of file ESDigiToRaw.h.

Referenced by ESDigiToRaw(), and produce().

const int ESDigiToRaw::formatMajor_
private

Definition at line 44 of file ESDigiToRaw.h.

Referenced by ESDigiToRaw().

const int ESDigiToRaw::formatMinor_
private

Definition at line 45 of file ESDigiToRaw.h.

const std::string ESDigiToRaw::instanceName_
private

Definition at line 40 of file ESDigiToRaw.h.

const int ESDigiToRaw::KCHIP_BC_RANGE = 4096
static

Definition at line 32 of file ESDigiToRaw.h.

Referenced by produce().

const int ESDigiToRaw::KCHIP_EC_RANGE = 256
static

Definition at line 33 of file ESDigiToRaw.h.

Referenced by produce().

const std::string ESDigiToRaw::label_
private
const int ESDigiToRaw::LHC_BX_RANGE = 3564
static

Definition at line 31 of file ESDigiToRaw.h.

Referenced by produce().

const edm::FileInPath ESDigiToRaw::lookup_
private

Definition at line 42 of file ESDigiToRaw.h.

Referenced by ESDigiToRaw().