CMS 3D CMS Logo

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

#include <ShallowEventDataProducer.h>

Inheritance diagram for ShallowEventDataProducer:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 ShallowEventDataProducer (const edm::ParameterSet &)
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducer () 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 () 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)
 

Private Member Functions

void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

edm::EDGetTokenT< LumiScalersCollectionscalerToken_
 
edm::EDGetTokenT< L1GlobalTriggerReadoutRecordtrig_token_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer 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::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- 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 10 of file ShallowEventDataProducer.h.

Constructor & Destructor Documentation

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

Definition at line 6 of file ShallowEventDataProducer.cc.

References edm::ParameterSet::getParameter(), produce(), scalerToken_, and trig_token_.

6  {
7  produces <unsigned int> ( "run" );
8  produces <unsigned int> ( "event" );
9  produces <unsigned int> ( "bx" );
10  produces <unsigned int> ( "lumi" );
11  produces <float> ( "instLumi" );
12  produces <float> ( "PU" );
13  produces <std::vector<bool> > ( "TrigTech" );
14  produces <std::vector<bool> > ( "TrigPh" );
15 
16  trig_token_ = consumes<L1GlobalTriggerReadoutRecord>(iConfig.getParameter<edm::InputTag>("trigRecord"));
17  scalerToken_ = consumes< LumiScalersCollection >(iConfig.getParameter<edm::InputTag>("lumiScalers"));
18 
19 }
T getParameter(std::string const &) const
edm::EDGetTokenT< LumiScalersCollection > scalerToken_
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > trig_token_

Member Function Documentation

void ShallowEventDataProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 22 of file ShallowEventDataProducer.cc.

References edm::EventBase::bunchCrossing(), edm::EventID::event(), edm::Event::getByToken(), mps_fire::i, edm::EventBase::id(), muonGEMDigis_cfi::instLumi, edm::EventBase::luminosityBlock(), eostools::move(), JetPlusTrackCorrections_cff::PU, edm::Event::put(), edm::EventID::run(), findQualityFiles::run, scalerToken_, and trig_token_.

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

22  {
23 
24 
25  auto run = std::make_unique<unsigned int>(iEvent.id().run() );
26  auto event = std::make_unique<unsigned int>(iEvent.id().event() );
27  auto bx = std::make_unique<unsigned int>(iEvent.bunchCrossing() );
28  auto lumi = std::make_unique<unsigned int>(iEvent.luminosityBlock() );
29 
31  iEvent.getByToken(trig_token_, gtRecord);
32 
33  std::vector<bool> TrigTech_(64,false);
34  std::vector<bool> TrigPh_(128,false);
35 
36  // Get dWord after masking disabled bits
37  DecisionWord dWord = gtRecord->decisionWord();
38  if ( ! dWord.empty() ) { // if board not there this is zero
39  // loop over dec. bit to get total rate (no overlap)
40  for ( int i = 0; i < 64; ++i ) {
41  TrigPh_[i]= dWord[i];
42  }
43  }
44 
45  TechnicalTriggerWord tw = gtRecord->technicalTriggerWord();
46  if ( ! tw.empty() ) {
47  // loop over dec. bit to get total rate (no overlap)
48  for ( int i = 0; i < 64; ++i ) {
49  TrigTech_[i]=tw[i];
50  }
51  }
52 
53  auto TrigTech = std::make_unique<std::vector<bool>>(TrigTech_);
54  auto TrigPh = std::make_unique<std::vector<bool>>(TrigPh_);
55 
56  // Luminosity informations
58  float instLumi_=0; float PU_=0;
59  iEvent.getByToken(scalerToken_, lumiScalers);
60  if(lumiScalers.isValid()){
61  if (lumiScalers->begin() != lumiScalers->end()) {
62  instLumi_ = lumiScalers->begin()->instantLumi();
63  PU_ = lumiScalers->begin()->pileup();
64  }
65  } else {
66  edm::LogInfo("ShallowEventDataProducer")
67  << "LumiScalers collection not found in the event; will write dummy values";
68  }
69 
70  auto instLumi = std::make_unique<float>(instLumi_);
71  auto PU = std::make_unique<float>(PU_);
72 
73  iEvent.put(std::move(run), "run" );
74  iEvent.put(std::move(event), "event" );
75  iEvent.put(std::move(bx), "bx" );
76  iEvent.put(std::move(lumi), "lumi" );
77  iEvent.put(std::move(TrigTech), "TrigTech" );
78  iEvent.put(std::move(TrigPh), "TrigPh" );
79  iEvent.put(std::move(instLumi), "instLumi");
80  iEvent.put(std::move(PU), "PU");
81 }
RunNumber_t run() const
Definition: EventID.h:39
EventNumber_t event() const
Definition: EventID.h:41
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:136
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:519
edm::EDGetTokenT< LumiScalersCollection > scalerToken_
int bunchCrossing() const
Definition: EventBase.h:66
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:63
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > trig_token_
std::vector< bool > DecisionWord
typedefs
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
edm::EventID id() const
Definition: EventBase.h:60
def move(src, dest)
Definition: eostools.py:510
Definition: event.py:1

Member Data Documentation

edm::EDGetTokenT< LumiScalersCollection > ShallowEventDataProducer::scalerToken_
private

Definition at line 16 of file ShallowEventDataProducer.h.

Referenced by produce(), and ShallowEventDataProducer().

edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > ShallowEventDataProducer::trig_token_
private

Definition at line 15 of file ShallowEventDataProducer.h.

Referenced by produce(), and ShallowEventDataProducer().