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
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
 
virtual ~ESDigiToRaw ()
 
- Public Member Functions inherited from edm::global::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- 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 ()
 
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, std::unordered_multimap< std::string, edm::ProductResolverIndex > const &iIndicies, std::string const &moduleLabel)
 
virtual ~ProducerBase () noexcept(false)
 
- 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
 
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_(0),
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:184
const std::string instanceName_
Definition: ESDigiToRaw.h:40
const int formatMinor_
Definition: ESDigiToRaw.h:45
ESDigiToRaw::~ESDigiToRaw ( )
virtual

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().