CMS 3D CMS Logo

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

#include <SimMuon/RPCDigitizer/plugins/RPCChamberMasker.cc>

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

Public Member Functions

 RPCChamberMasker (const edm::ParameterSet &)
 
 ~RPCChamberMasker () override
 
- Public Member Functions inherited from edm::stream::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
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

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

Private Attributes

edm::ESGetToken< MuonSystemAging, MuonSystemAgingRcdagingObjToken_
 
edm::InputTag digiTag_
 
std::map< RPCDetId, float > m_ChEffs
 
edm::EDGetTokenT< RPCDigiCollectionm_digiTag
 
edm::ESGetToken< RPCGeometry, MuonGeometryRecordrpcGeomToken_
 
bool theRE31_off
 
bool theRE41_off
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Description:

Implementation: Class to mask RPC digis on a for single DetIds

Definition at line 52 of file RPCChamberMasker.cc.

Constructor & Destructor Documentation

◆ RPCChamberMasker()

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

Definition at line 87 of file RPCChamberMasker.cc.

88  : digiTag_(iConfig.getParameter<edm::InputTag>("digiTag")) {
89  m_digiTag = consumes<RPCDigiCollection>(digiTag_);
90  produces<RPCDigiCollection>();
91 
92  theRE31_off = iConfig.getParameter<bool>("descopeRE31");
93  theRE41_off = iConfig.getParameter<bool>("descopeRE41");
96 }

References agingObjToken_, digiTag_, DeDxTools::esConsumes(), edm::ParameterSet::getParameter(), m_digiTag, rpcGeomToken_, theRE31_off, and theRE41_off.

◆ ~RPCChamberMasker()

RPCChamberMasker::~RPCChamberMasker ( )
override

Definition at line 98 of file RPCChamberMasker.cc.

98 {}

Member Function Documentation

◆ beginRun()

void RPCChamberMasker::beginRun ( edm::Run const &  run,
edm::EventSetup const &  iSetup 
)
overrideprivate

Definition at line 127 of file RPCChamberMasker.cc.

127  {
128  m_ChEffs.clear();
129 
130  auto rpcGeom = iSetup.getHandle(rpcGeomToken_);
131  auto agingObj = iSetup.getHandle(agingObjToken_);
132 
133  const auto rolls = rpcGeom->rolls();
134 
135  for (const auto* roll : rolls) {
136  RPCDetId rollId = roll->id();
137  uint32_t rollRawId = rollId.rawId();
138 
139  Float_t chamberEff = 1.;
140  for (const auto& agingPair : agingObj->m_RPCChambEffs) {
141  if (agingPair.first == rollRawId) {
142  chamberEff = agingPair.second;
143  break;
144  }
145 
146  if (theRE31_off && (roll->isIRPC() && (rollId.station() == 3))) {
147  chamberEff = 0;
148  }
149  if (theRE41_off && (roll->isIRPC() && (rollId.station() == 4))) {
150  chamberEff = 0;
151  }
152  }
153  m_ChEffs[rollId] = chamberEff;
154  }
155 }

References agingObjToken_, edm::EventSetup::getHandle(), m_ChEffs, DetId::rawId(), rpcGeomToken_, RPCDetId::station(), theRE31_off, and theRE41_off.

◆ endRun()

void RPCChamberMasker::endRun ( edm::Run const &  ,
edm::EventSetup const &   
)
overrideprivate

Definition at line 159 of file RPCChamberMasker.cc.

159 {}

◆ fillDescriptions()

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

Definition at line 162 of file RPCChamberMasker.cc.

162  {
164  desc.add<edm::InputTag>("digiTag", edm::InputTag("preRPCDigis"));
165  desc.add<bool>("descopeRE31", false);
166  desc.add<bool>("descopeRE41", false);
167  descriptions.add("rpcChamberMasker", desc);
168 }

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, and HLT_FULL_cff::InputTag.

◆ produce()

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

Definition at line 105 of file RPCChamberMasker.cc.

105  {
106  using namespace edm;
108  CLHEP::HepRandomEngine& randGen = randGenService->getEngine(iEvent.streamID());
109 
110  std::unique_ptr<RPCDigiCollection> filteredDigis(new RPCDigiCollection());
111  if (!digiTag_.label().empty()) {
113  iEvent.getByToken(m_digiTag, rpcDigis);
114 
115  for (const auto& rpcLayerId : (*rpcDigis)) {
116  int id = (rpcLayerId.first).rawId();
117  auto chEffIt = m_ChEffs.find(id);
118  if ((chEffIt != m_ChEffs.end()) && (randGen.flat() <= chEffIt->second))
119  filteredDigis->put(rpcLayerId.second, rpcLayerId.first);
120  }
121  }
122  iEvent.put(std::move(filteredDigis));
123 }

References digiTag_, edm::RandomNumberGenerator::getEngine(), iEvent, edm::InputTag::label(), m_ChEffs, m_digiTag, and eostools::move().

Member Data Documentation

◆ agingObjToken_

edm::ESGetToken<MuonSystemAging, MuonSystemAgingRcd> RPCChamberMasker::agingObjToken_
private

Definition at line 73 of file RPCChamberMasker.cc.

Referenced by beginRun(), and RPCChamberMasker().

◆ digiTag_

edm::InputTag RPCChamberMasker::digiTag_
private

Definition at line 66 of file RPCChamberMasker.cc.

Referenced by produce(), and RPCChamberMasker().

◆ m_ChEffs

std::map<RPCDetId, float> RPCChamberMasker::m_ChEffs
private

Definition at line 68 of file RPCChamberMasker.cc.

Referenced by beginRun(), and produce().

◆ m_digiTag

edm::EDGetTokenT<RPCDigiCollection> RPCChamberMasker::m_digiTag
private

Definition at line 67 of file RPCChamberMasker.cc.

Referenced by produce(), and RPCChamberMasker().

◆ rpcGeomToken_

edm::ESGetToken<RPCGeometry, MuonGeometryRecord> RPCChamberMasker::rpcGeomToken_
private

Definition at line 72 of file RPCChamberMasker.cc.

Referenced by beginRun(), and RPCChamberMasker().

◆ theRE31_off

bool RPCChamberMasker::theRE31_off
private

Definition at line 69 of file RPCChamberMasker.cc.

Referenced by beginRun(), and RPCChamberMasker().

◆ theRE41_off

bool RPCChamberMasker::theRE41_off
private

Definition at line 70 of file RPCChamberMasker.cc.

Referenced by beginRun(), and RPCChamberMasker().

RPCChamberMasker::theRE31_off
bool theRE31_off
Definition: RPCChamberMasker.cc:69
edm::RandomNumberGenerator::getEngine
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
RPCDetId::station
int station() const
Definition: RPCDetId.h:78
edm
HLT enums.
Definition: AlignableModifier.h:19
RPCDetId
Definition: RPCDetId.h:16
RPCChamberMasker::m_digiTag
edm::EDGetTokenT< RPCDigiCollection > m_digiTag
Definition: RPCChamberMasker.cc:67
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
RPCChamberMasker::agingObjToken_
edm::ESGetToken< MuonSystemAging, MuonSystemAgingRcd > agingObjToken_
Definition: RPCChamberMasker.cc:73
RPCChamberMasker::rpcGeomToken_
edm::ESGetToken< RPCGeometry, MuonGeometryRecord > rpcGeomToken_
Definition: RPCChamberMasker.cc:72
edm::Handle< RPCDigiCollection >
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
RPCChamberMasker::theRE41_off
bool theRE41_off
Definition: RPCChamberMasker.cc:70
RPCDigiCollection
MuonDigiCollection< RPCDetId, RPCDigi > RPCDigiCollection
Definition: RPCDigiCollection.h:13
edm::Service< edm::RandomNumberGenerator >
iEvent
int iEvent
Definition: GenABIO.cc:224
RPCChamberMasker::digiTag_
edm::InputTag digiTag_
Definition: RPCChamberMasker.cc:66
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
RPCChamberMasker::m_ChEffs
std::map< RPCDetId, float > m_ChEffs
Definition: RPCChamberMasker.cc:68
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
DeDxTools::esConsumes
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
edm::InputTag
Definition: InputTag.h:15