CMS 3D CMS Logo

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

#include <RecoLocalCalo/HcalRecProducers/plugins/HBHEPlan1Combiner.cc>

Inheritance diagram for HBHEPlan1Combiner:
edm::stream::EDProducer<>

Public Member Functions

 HBHEPlan1Combiner (const edm::ParameterSet &)
 
 ~HBHEPlan1Combiner () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

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

Private Attributes

std::unique_ptr< AbsPlan1RechitCombinercombiner_
 
bool ignorePlan1Topology_
 
edm::EDGetTokenT< HBHERecHitCollectiontok_rechits_
 
bool usePlan1Mode_
 

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

Description: rechit combiner module for the "Plan 1" scenario

Implementation: [Notes on implementation]

Definition at line 41 of file HBHEPlan1Combiner.cc.

Constructor & Destructor Documentation

HBHEPlan1Combiner::HBHEPlan1Combiner ( const edm::ParameterSet conf)
explicit

Definition at line 65 of file HBHEPlan1Combiner.cc.

References combiner_, edm::ParameterSet::getParameter(), and tok_rechits_.

66  : ignorePlan1Topology_(conf.getParameter<bool>("ignorePlan1Topology")),
67  usePlan1Mode_(conf.getParameter<bool>("usePlan1Mode")),
69  // Check that the rechit recombination algorithm has been successfully configured
70  if (!combiner_.get())
71  throw cms::Exception("HBHEPlan1BadConfig") << "Invalid Plan1RechitCombiner algorithm configuration" << std::endl;
72 
73  // Consumes and produces statements
74  tok_rechits_ = consumes<HBHERecHitCollection>(conf.getParameter<edm::InputTag>("hbheInput"));
75  produces<HBHERecHitCollection>();
76 }
T getParameter(std::string const &) const
edm::EDGetTokenT< HBHERecHitCollection > tok_rechits_
std::unique_ptr< AbsPlan1RechitCombiner > parsePlan1RechitCombiner(const edm::ParameterSet &ps)
std::unique_ptr< AbsPlan1RechitCombiner > combiner_
HBHEPlan1Combiner::~HBHEPlan1Combiner ( )
override

Definition at line 78 of file HBHEPlan1Combiner.cc.

78  {
79  // do anything here that needs to be done at destruction time
80  // (e.g. close files, deallocate resources etc.)
81 }

Member Function Documentation

void HBHEPlan1Combiner::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 131 of file HBHEPlan1Combiner.cc.

References edm::ParameterSetDescription::add(), add_param_set, edm::ConfigurationDescriptions::addDefault(), qcdUeDQM_cfi::algorithm, and DEFINE_FWK_MODULE.

131  {
133 
134  desc.add<edm::InputTag>("hbheInput");
135  desc.add<bool>("ignorePlan1Topology");
136  desc.add<bool>("usePlan1Mode");
137 
139 
140  descriptions.addDefault(desc);
141 }
void addDefault(ParameterSetDescription const &psetDescription)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
#define add_param_set(name)
void HBHEPlan1Combiner::produce ( edm::Event iEvent,
const edm::EventSetup eventSetup 
)
overrideprivate

Definition at line 88 of file HBHEPlan1Combiner.cc.

References edm::SortedCollection< T, SORT >::begin(), combiner_, edm::SortedCollection< T, SORT >::end(), edm::EventSetup::get(), CaloRecHitAuxSetter::getBit(), edm::Event::getByToken(), HcalTopology::getMergePositionFlag(), ignorePlan1Topology_, eostools::move(), HBHERecHitAuxSetter::OFF_TDC_TIME, edm::ESHandle< T >::product(), edm::Event::put(), edm::SortedCollection< T, SORT >::size(), tok_rechits_, and usePlan1Mode_.

88  {
89  using namespace edm;
90 
91  // Get the Hcal topology
93  eventSetup.get<HcalRecNumberingRecord>().get(htopo);
94  combiner_->setTopo(htopo.product());
95 
96  // Are we using "Plan 1" geometry?
97  const bool plan1Mode = ignorePlan1Topology_ ? usePlan1Mode_ : htopo->getMergePositionFlag();
98 
99  // Find the input rechit collection
100  Handle<HBHERecHitCollection> inputRechits;
101  iEvent.getByToken(tok_rechits_, inputRechits);
102 
103  // Create a new output collections
104  std::unique_ptr<HBHERecHitCollection> outputRechits = std::make_unique<HBHERecHitCollection>();
105  outputRechits->reserve(inputRechits->size());
106 
107  // Iterate over the input collection. Copy QIE8 rechits directly into
108  // the output collection and prepare to combine QIE11 rechits.
109  combiner_->clear();
110  for (typename HBHERecHitCollection::const_iterator it = inputRechits->begin(); it != inputRechits->end(); ++it) {
111  // If the rechit has TDC time info, it corresponds to QIE11
112  if (plan1Mode && CaloRecHitAuxSetter::getBit(it->auxPhase1(), HBHERecHitAuxSetter::OFF_TDC_TIME))
113  combiner_->add(*it);
114  else
115  outputRechits->push_back(*it);
116  }
117 
118  // Combine QIE11 rechits and fill the output collection
119  combiner_->combine(&*outputRechits);
120 
121  // Put the output collection into the Event
122  iEvent.put(std::move(outputRechits));
123 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:131
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
std::vector< T >::const_iterator const_iterator
edm::EDGetTokenT< HBHERecHitCollection > tok_rechits_
bool getMergePositionFlag() const
Definition: HcalTopology.h:167
static const unsigned OFF_TDC_TIME
constexpr bool getBit(const uint32_t u, const unsigned bitnum)
std::unique_ptr< AbsPlan1RechitCombiner > combiner_
const_iterator end() const
HLT enums.
size_type size() const
T get() const
Definition: EventSetup.h:73
T const * product() const
Definition: ESHandle.h:86
def move(src, dest)
Definition: eostools.py:511
const_iterator begin() const

Member Data Documentation

std::unique_ptr<AbsPlan1RechitCombiner> HBHEPlan1Combiner::combiner_
private

Definition at line 59 of file HBHEPlan1Combiner.cc.

Referenced by HBHEPlan1Combiner(), and produce().

bool HBHEPlan1Combiner::ignorePlan1Topology_
private

Definition at line 55 of file HBHEPlan1Combiner.cc.

Referenced by produce().

edm::EDGetTokenT<HBHERecHitCollection> HBHEPlan1Combiner::tok_rechits_
private

Definition at line 54 of file HBHEPlan1Combiner.cc.

Referenced by HBHEPlan1Combiner(), and produce().

bool HBHEPlan1Combiner::usePlan1Mode_
private

Definition at line 56 of file HBHEPlan1Combiner.cc.

Referenced by produce().