CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
ME0DigiPreRecoProducer Class Reference
Inheritance diagram for ME0DigiPreRecoProducer:
edm::stream::EDProducer<>

Public Member Functions

void beginRun (const edm::Run &, const edm::EventSetup &) override
 
 ME0DigiPreRecoProducer (const edm::ParameterSet &ps)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~ME0DigiPreRecoProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Private Attributes

edm::EDGetTokenT< CrossingFrame< PSimHit > > cf_token
 
std::string digiPreRecoModelString_
 
edm::ESGetToken< ME0Geometry, MuonGeometryRecordgeom_token_
 
std::unique_ptr< ME0DigiPreRecoModelme0DigiPreRecoModel_
 

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

Definition at line 37 of file ME0DigiPreRecoProducer.cc.

Constructor & Destructor Documentation

◆ ME0DigiPreRecoProducer()

ME0DigiPreRecoProducer::ME0DigiPreRecoProducer ( const edm::ParameterSet ps)
explicit

Definition at line 56 of file ME0DigiPreRecoProducer.cc.

57  : digiPreRecoModelString_(ps.getParameter<std::string>("digiPreRecoModelString")),
59  produces<ME0DigiPreRecoCollection>();
60 
62  if (!rng.isAvailable()) {
63  throw cms::Exception("Configuration")
64  << "ME0DigiPreRecoProducer::ME0PreRecoDigiProducer() - RandomNumberGeneratorService is not present in "
65  "configuration file.\n"
66  << "Add the service in the configuration file or remove the modules that require it.";
67  }
68  LogDebug("ME0DigiPreRecoProducer") << "Using ME0" + digiPreRecoModelString_ + "Model";
69 
70  std::string mix_(ps.getParameter<std::string>("mixLabel"));
71  std::string collection_(ps.getParameter<std::string>("inputCollection"));
72 
73  cf_token = consumes<CrossingFrame<PSimHit> >(edm::InputTag(mix_, collection_));
74  geom_token_ = esConsumes<ME0Geometry, MuonGeometryRecord, edm::Transition::BeginRun>();
75 }

References digiPreRecoModelString_, and get.

◆ ~ME0DigiPreRecoProducer()

ME0DigiPreRecoProducer::~ME0DigiPreRecoProducer ( )
overridedefault

Member Function Documentation

◆ beginRun()

void ME0DigiPreRecoProducer::beginRun ( const edm::Run ,
const edm::EventSetup eventSetup 
)
override

Definition at line 79 of file ME0DigiPreRecoProducer.cc.

79  {
80  // set geometry
82  me0DigiPreRecoModel_->setGeometry(&*hGeom);
83  me0DigiPreRecoModel_->setup();
84 }

References geom_token_, edm::EventSetup::getHandle(), and me0DigiPreRecoModel_.

◆ produce()

void ME0DigiPreRecoProducer::produce ( edm::Event e,
const edm::EventSetup eventSetup 
)
override

Definition at line 86 of file ME0DigiPreRecoProducer.cc.

86  {
88  CLHEP::HepRandomEngine* engine = &rng->getEngine(e.streamID());
89 
91  e.getByToken(cf_token, cf);
92 
94 
95  // Create empty output
96  auto digis = std::make_unique<ME0DigiPreRecoCollection>();
97 
98  // arrange the hits by eta partition
99  std::map<uint32_t, edm::PSimHitContainer> hitMap;
100  for (const auto& hit : hits) {
101  hitMap[hit.detUnitId()].push_back(hit);
102  }
103 
104  // simulate signal and noise for each eta partition
105  const auto& etaPartitions(me0DigiPreRecoModel_->getGeometry()->etaPartitions());
106 
107  for (const auto& roll : etaPartitions) {
108  const ME0DetId detId(roll->id());
109  const uint32_t rawId(detId.rawId());
110  const auto& simHits(hitMap[rawId]);
111 
112  LogDebug("ME0DigiPreRecoProducer") << "ME0DigiPreRecoProducer: found " << simHits.size()
113  << " hit(s) in eta partition" << rawId;
114 
115  me0DigiPreRecoModel_->simulateSignal(roll, simHits, engine);
116  me0DigiPreRecoModel_->simulateNoise(roll, engine);
117  me0DigiPreRecoModel_->fillDigis(rawId, *digis);
118  }
119 
120  // store them in the event
121  e.put(std::move(digis));
122 }

References cf_token, MillePedeFileConverter_cfg::e, edm::RandomNumberGenerator::getEngine(), hfClusterShapes_cfi::hits, LogDebug, me0DigiPreRecoModel_, eostools::move(), edm::Handle< T >::product(), and FastTrackerRecHitCombiner_cfi::simHits.

Member Data Documentation

◆ cf_token

edm::EDGetTokenT<CrossingFrame<PSimHit> > ME0DigiPreRecoProducer::cf_token
private

Definition at line 49 of file ME0DigiPreRecoProducer.cc.

Referenced by produce().

◆ digiPreRecoModelString_

std::string ME0DigiPreRecoProducer::digiPreRecoModelString_
private

Definition at line 52 of file ME0DigiPreRecoProducer.cc.

Referenced by ME0DigiPreRecoProducer().

◆ geom_token_

edm::ESGetToken<ME0Geometry, MuonGeometryRecord> ME0DigiPreRecoProducer::geom_token_
private

Definition at line 50 of file ME0DigiPreRecoProducer.cc.

Referenced by beginRun().

◆ me0DigiPreRecoModel_

std::unique_ptr<ME0DigiPreRecoModel> ME0DigiPreRecoProducer::me0DigiPreRecoModel_
private

Definition at line 53 of file ME0DigiPreRecoProducer.cc.

Referenced by beginRun(), and produce().

edm::RandomNumberGenerator::getEngine
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
edm::Handle::product
T const * product() const
Definition: Handle.h:70
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
ME0DigiPreRecoProducer::geom_token_
edm::ESGetToken< ME0Geometry, MuonGeometryRecord > geom_token_
Definition: ME0DigiPreRecoProducer.cc:50
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89353
FastTrackerRecHitCombiner_cfi.simHits
simHits
Definition: FastTrackerRecHitCombiner_cfi.py:5
edm::Handle
Definition: AssociativeIterator.h:50
edm::Service::isAvailable
bool isAvailable() const
Definition: Service.h:40
ME0DigiPreRecoProducer::digiPreRecoModelString_
std::string digiPreRecoModelString_
Definition: ME0DigiPreRecoProducer.cc:52
MixCollection
Definition: MixCollection.h:11
edm::ESHandle< ME0Geometry >
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
ME0DigiPreRecoProducer::me0DigiPreRecoModel_
std::unique_ptr< ME0DigiPreRecoModel > me0DigiPreRecoModel_
Definition: ME0DigiPreRecoProducer.cc:53
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
edm::Service< edm::RandomNumberGenerator >
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:148
ME0DetId
Definition: ME0DetId.h:16
get
#define get
eostools.move
def move(src, dest)
Definition: eostools.py:511
Exception
Definition: hltDiff.cc:246
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
hit
Definition: SiStripHitEffFromCalibTree.cc:88
ME0DigiPreRecoProducer::cf_token
edm::EDGetTokenT< CrossingFrame< PSimHit > > cf_token
Definition: ME0DigiPreRecoProducer.cc:49
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37