CMS 3D CMS Logo

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

Classes

class  TemporaryGeometry
 

Public Member Functions

void beginRun (const edm::Run &, const edm::EventSetup &) override
 
void buildDigis (const ME0DigiPreRecoCollection &, ME0DigiPreRecoCollection &, ME0DigiPreRecoMap &, CLHEP::HepRandomEngine *engine)
 
 ME0ReDigiProducer (const edm::ParameterSet &ps)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~ME0ReDigiProducer () 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
 

Private Types

typedef std::map< DigiIndicies, unsigned int > ChamberDigiMap
 
typedef std::tuple< unsigned int, unsigned int, unsigned int > DigiIndicies
 

Private Member Functions

void fillCentralTOFs ()
 
unsigned int fillDigiMap (ChamberDigiMap &chDigiMap, unsigned int bx, unsigned int part, unsigned int strip, unsigned int currentIDX) const
 
int getCustomStripProperties (const ME0DetId &detId, const ME0DigiPreReco *inDigi, float &tof, int &strip, LocalPoint &digiLocalPoint, LocalError &digiLocalError) const
 
void getStripProperties (const ME0EtaPartition *etaPart, const ME0DigiPreReco *inDigi, float &tof, int &strip, LocalPoint &digiLocalPoint, LocalError &digiLocalError) const
 

Private Attributes

const float bxWidth
 
const ME0Geometrygeometry
 
std::vector< int > layerReadout
 
int maxBXReadout
 
bool mergeDigis
 
int minBXReadout
 
double neutronAcceptance
 
unsigned int numberOfPartitions
 
unsigned int numberOfStrips
 
TemporaryGeometrytempGeo
 
double timeResolution
 
std::vector< std::vector< double > > tofs
 
edm::EDGetTokenT< ME0DigiPreRecoCollectiontoken
 
bool useBuiltinGeo
 
bool useCusGeoFor1PartGeo
 
bool usePads
 

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 40 of file ME0ReDigiProducer.cc.

Member Typedef Documentation

◆ ChamberDigiMap

typedef std::map<DigiIndicies, unsigned int> ME0ReDigiProducer::ChamberDigiMap
private

Definition at line 101 of file ME0ReDigiProducer.cc.

◆ DigiIndicies

typedef std::tuple<unsigned int, unsigned int, unsigned int> ME0ReDigiProducer::DigiIndicies
private

Definition at line 100 of file ME0ReDigiProducer.cc.

Constructor & Destructor Documentation

◆ ME0ReDigiProducer()

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

Definition at line 266 of file ME0ReDigiProducer.cc.

267  : bxWidth(25.0),
268  useCusGeoFor1PartGeo(ps.getParameter<bool>("useCusGeoFor1PartGeo")),
269  usePads(ps.getParameter<bool>("usePads")),
270  numberOfStrips(ps.getParameter<unsigned int>("numberOfStrips")),
271  numberOfPartitions(ps.getParameter<unsigned int>("numberOfPartitions")),
272  neutronAcceptance(ps.getParameter<double>("neutronAcceptance")),
273  timeResolution(ps.getParameter<double>("timeResolution")),
274  minBXReadout(ps.getParameter<int>("minBXReadout")),
275  maxBXReadout(ps.getParameter<int>("maxBXReadout")),
276  layerReadout(ps.getParameter<std::vector<int>>("layerReadout")),
277  mergeDigis(ps.getParameter<bool>("mergeDigis")),
278  token(consumes<ME0DigiPreRecoCollection>(edm::InputTag(ps.getParameter<std::string>("inputCollection")))) {
279  produces<ME0DigiPreRecoCollection>();
280  produces<ME0DigiPreRecoMap>();
281 
283  if (!rng.isAvailable()) {
284  throw cms::Exception("Configuration")
285  << "ME0ReDigiProducer::ME0PreRecoDigiProducer() - RandomNumberGeneratorService is not present in configuration "
286  "file.\n"
287  << "Add the service in the configuration file or remove the modules that require it.";
288  }
289  geometry = nullptr;
290  tempGeo = nullptr;
291  useBuiltinGeo = true;
292 
293  if (useCusGeoFor1PartGeo) {
294  if (usePads)
296  if (numberOfStrips == 0)
297  throw cms::Exception("Setup")
298  << "ME0ReDigiProducer::ME0PreRecoDigiProducer() - Must have at least one strip if using custom geometry.";
299  if (numberOfPartitions == 0)
300  throw cms::Exception("Setup")
301  << "ME0ReDigiProducer::ME0PreRecoDigiProducer() - Must have at least one partition if using custom geometry.";
302  }
303 
304  if (neutronAcceptance < 0)
305  throw cms::Exception("Setup") << "ME0ReDigiProducer::ME0PreRecoDigiProducer() - neutronAcceptance must be >= 0.";
306 }

References Exception, edm::Service< T >::isAvailable(), neutronAcceptance, numberOfPartitions, numberOfStrips, tempGeo, useBuiltinGeo, useCusGeoFor1PartGeo, and usePads.

◆ ~ME0ReDigiProducer()

ME0ReDigiProducer::~ME0ReDigiProducer ( )
override

Definition at line 308 of file ME0ReDigiProducer.cc.

308  {
309  if (tempGeo)
310  delete tempGeo;
311 }

References tempGeo.

Member Function Documentation

◆ beginRun()

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

Definition at line 313 of file ME0ReDigiProducer.cc.

313  {
314  // set geometry
316  eventSetup.get<MuonGeometryRecord>().get(hGeom);
317  geometry = &*hGeom;
318 
319  const auto& chambers = geometry->chambers();
320  if (chambers.empty())
321  throw cms::Exception("Setup") << "ME0ReDigiProducer::beginRun() - No ME0Chambers in geometry.";
322 
323  const unsigned int nLayers = chambers.front()->nLayers();
324  if (!nLayers)
325  throw cms::Exception("Setup") << "ME0ReDigiProducer::beginRun() - No layers in ME0 geometry.";
326 
327  const unsigned int nPartitions = chambers.front()->layers()[0]->nEtaPartitions();
328 
329  if (useCusGeoFor1PartGeo && nPartitions == 1) {
330  useBuiltinGeo = false;
331  }
332 
333  if (useBuiltinGeo) {
334  if (nLayers != layerReadout.size())
335  throw cms::Exception("Configuration")
336  << "ME0ReDigiProducer::beginRun() - The geometry has " << nLayers << " layers, but the readout of "
337  << layerReadout.size() << " were specified with the layerReadout parameter.";
338  fillCentralTOFs();
339  } else {
340  LogDebug("ME0ReDigiProducer") << "Building temporary geometry:" << std::endl;
341  tempGeo = new TemporaryGeometry(geometry, numberOfStrips, numberOfPartitions);
342  LogDebug("ME0ReDigiProducer") << "Done building temporary geometry!" << std::endl;
343 
344  if (tempGeo->numLayers() != layerReadout.size())
345  throw cms::Exception("Configuration")
346  << "ME0ReDigiProducer::beginRun() - The geometry has " << tempGeo->numLayers()
347  << " layers, but the readout of " << layerReadout.size()
348  << " were specified with the layerReadout parameter.";
349  }
350 }

References chambers, options_cfi::eventSetup, Exception, fillCentralTOFs(), get, layerReadout, LogDebug, MuonTCMETValueMapProducer_cff::nLayers, numberOfPartitions, numberOfStrips, ME0ReDigiProducer::TemporaryGeometry::numLayers(), tempGeo, useBuiltinGeo, and useCusGeoFor1PartGeo.

◆ buildDigis()

void ME0ReDigiProducer::buildDigis ( const ME0DigiPreRecoCollection input_digis,
ME0DigiPreRecoCollection output_digis,
ME0DigiPreRecoMap output_digimap,
CLHEP::HepRandomEngine *  engine 
)

Definition at line 370 of file ME0ReDigiProducer.cc.

373  {
374  /*
375  Starting form the incoming pseudo-digi, which has perfect time and position resolution:
376  1A. Smear time using sigma_t by some value
377  1B. Correct the smeared time with the central arrival time for partition
378  1C. Apply discretization: if the smeared time is outside the BX window (-12.5ns;+12.5ns),
379  the hit should be assigned to the next (or previous) BX
380 
381  2A. Find strip that the digi belongs to
382  2B. Get the center of this strip and the error on the position assuming the geometry
383 
384  3A. Filter event if a digi at this partition/strip/BX already exists
385  3B. Add to collection
386  */
387 
388  LogDebug("ME0ReDigiProducer::buildDigis") << "Begin building digis." << std::endl;
390  for (me0dgIt = input_digis.begin(); me0dgIt != input_digis.end(); ++me0dgIt) {
391  const auto& me0Id = (*me0dgIt).first;
392  LogTrace("ME0ReDigiProducer::buildDigis") << "Starting with roll: " << me0Id << std::endl;
393 
394  //setup map for this chamber/eta partition
395  ChamberDigiMap chDigiMap;
396 
397  int newDigiIdx = 0;
398  const ME0DigiPreRecoCollection::Range& range = (*me0dgIt).second;
399  for (ME0DigiPreRecoCollection::const_iterator digi = range.first; digi != range.second; digi++) {
400  LogTrace("ME0ReDigiProducer::buildDigis") << std::endl
401  << "(" << digi->x() << "," << digi->y() << "," << digi->tof() << ","
402  << digi->pdgid() << "," << digi->prompt() << ")-> ";
403 
404  //If we don't readout this layer skip
405  if (!layerReadout[me0Id.layer() - 1]) {
406  output_digimap.insertDigi(me0Id, -1);
407  continue;
408  }
409 
410  //if neutron and we are filtering skip
411  if (!digi->prompt() && neutronAcceptance < 1.0)
412  if (CLHEP::RandFlat::shoot(engine) > neutronAcceptance) {
413  output_digimap.insertDigi(me0Id, -1);
414  continue;
415  }
416 
417  //smear TOF if necessary
418  float tof = digi->tof() + (timeResolution < 0 ? 0.0 : CLHEP::RandGaussQ::shoot(engine, 0, timeResolution));
419 
420  //Values used to fill objet
421  int mapPartIDX = me0Id.roll() - 1;
422  int strip = 0;
423  LocalPoint digiLocalPoint;
424  LocalError digiLocalError;
425  if (useBuiltinGeo) {
426  getStripProperties(geometry->etaPartition(me0Id), &*digi, tof, strip, digiLocalPoint, digiLocalError);
427  } else {
428  mapPartIDX = getCustomStripProperties(me0Id, &*digi, tof, strip, digiLocalPoint, digiLocalError);
429  }
430 
431  //filter if outside of readout window
432  const int bxIdx = std::round(tof / bxWidth);
433  LogTrace("ME0ReDigiProducer::buildDigis") << tof << "(" << bxIdx << ") ";
434  if (bxIdx < minBXReadout) {
435  output_digimap.insertDigi(me0Id, -1);
436  continue;
437  }
438  if (bxIdx > maxBXReadout) {
439  output_digimap.insertDigi(me0Id, -1);
440  continue;
441  }
442  tof = bxIdx * bxWidth;
443 
444  //If we are merging check to see if it already exists
445  LogTrace("ME0ReDigiProducer::buildDigis") << "(" << bxIdx << "," << mapPartIDX << "," << strip << ") ";
446  if (mergeDigis) {
447  int matchIDX = fillDigiMap(chDigiMap, bxIdx, mapPartIDX, strip, newDigiIdx);
448  if (matchIDX >= 0) {
449  output_digimap.insertDigi(me0Id, matchIDX);
450  continue;
451  }
452  }
453 
454  //Digis store sigmaX,sigmaY, correlationCoef
455  const float sigmaX = std::sqrt(digiLocalError.xx());
456  const float sigmaY = std::sqrt(digiLocalError.yy());
457  const float corrCoef = digiLocalError.xy() / (sigmaX * sigmaY);
458 
459  //Fill in the new collection
460  ME0DigiPreReco out_digi(
461  digiLocalPoint.x(), digiLocalPoint.y(), sigmaX, sigmaY, corrCoef, tof, digi->pdgid(), digi->prompt());
462  output_digis.insertDigi(me0Id, out_digi);
463 
464  // store index of previous detid and digi
465  output_digimap.insertDigi(me0Id, newDigiIdx);
466  newDigiIdx++;
467 
468  LogTrace("ME0ReDigiProducer::buildDigis") << "(" << digiLocalPoint.x() << "," << digiLocalPoint.y() << ","
469  << sigmaX << "," << sigmaY << "," << tof << ") ";
470  }
471 
472  chDigiMap.clear();
473  }
474 }

References bxWidth, fillDigiMap(), getCustomStripProperties(), getStripProperties(), MuonDigiCollection< IndexType, DigiType >::insertDigi(), layerReadout, LogDebug, LogTrace, maxBXReadout, mergeDigis, minBXReadout, neutronAcceptance, FastTimerService_cff::range, fftjetvertexadder_cfi::sigmaX, fftjetvertexadder_cfi::sigmaY, mathSSE::sqrt(), digitizers_cfi::strip, timeResolution, useBuiltinGeo, PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), LocalError::xy(), PV3DBase< T, PVType, FrameType >::y(), and LocalError::yy().

Referenced by produce().

◆ fillCentralTOFs()

void ME0ReDigiProducer::fillCentralTOFs ( )
private

Definition at line 476 of file ME0ReDigiProducer.cc.

476  {
477  const auto* mainChamber = geometry->chambers().front();
478  const unsigned int nLayers = mainChamber->nLayers();
479  //Get TOF at center of each partition
480  tofs.clear();
481  tofs.resize(nLayers);
482  LogDebug("ME0ReDigiProducer::fillCentralTOFs()") << "TOF numbers [layer][partition]: ";
483  for (unsigned int iL = 0; iL < nLayers; ++iL) {
484  const auto* layer = mainChamber->layers()[iL];
485  const unsigned int mapLayIDX = layer->id().layer() - 1;
486  const unsigned int nPartitions = layer->nEtaPartitions();
487  if (!nPartitions)
488  throw cms::Exception("Setup") << "ME0ReDigiProducer::fillCentralTOFs() - ME0Layer has no partitions.";
489  tofs[mapLayIDX].resize(nPartitions);
490  for (unsigned int iP = 0; iP < nPartitions; ++iP) {
491  const unsigned int mapPartIDX = layer->etaPartitions()[iP]->id().roll() - 1;
492  const GlobalPoint centralGP(layer->etaPartitions()[iP]->position());
493  tofs[mapLayIDX][mapPartIDX] = (centralGP.mag() / (CLHEP::c_light / CLHEP::cm)); //speed of light [cm/ns]
494  LogDebug("ME0ReDigiProducer::fillCentralTOFs()")
495  << "[" << mapLayIDX << "][" << mapPartIDX << "]=" << tofs[mapLayIDX][mapPartIDX] << " " << std::endl;
496  }
497  }
498 }

References Exception, LogDebug, MuonTCMETValueMapProducer_cff::nLayers, and tofs.

Referenced by beginRun().

◆ fillDigiMap()

unsigned int ME0ReDigiProducer::fillDigiMap ( ChamberDigiMap chDigiMap,
unsigned int  bx,
unsigned int  part,
unsigned int  strip,
unsigned int  currentIDX 
) const
private

Definition at line 555 of file ME0ReDigiProducer.cc.

556  {
557  DigiIndicies newIDX(bx, part, strip);
558  auto it1 = chDigiMap.find(newIDX);
559  if (it1 == chDigiMap.end()) {
560  chDigiMap[newIDX] = currentIDX;
561  return -1;
562  }
563  return it1->second;
564 }

References simKBmtfDigis_cfi::bx, and digitizers_cfi::strip.

Referenced by buildDigis().

◆ getCustomStripProperties()

int ME0ReDigiProducer::getCustomStripProperties ( const ME0DetId detId,
const ME0DigiPreReco inDigi,
float &  tof,
int &  strip,
LocalPoint digiLocalPoint,
LocalError digiLocalError 
) const
private

Definition at line 499 of file ME0ReDigiProducer.cc.

504  {
505  const unsigned int partIdx = tempGeo->findEtaPartition(inDigi->y());
506  LogTrace("ME0ReDigiProducer::buildDigis") << partIdx << " ";
507  const float partMeanTof = tempGeo->getCentralTOF(detId, partIdx);
508 
509  //convert to relative to partition
510  tof -= partMeanTof;
511 
512  //get coordinates and errors
513  const float partCenter = tempGeo->getPartCenter(partIdx);
514  const auto* topo = tempGeo->getTopo(partIdx);
515 
516  //find channel
517  const LocalPoint partLocalPoint(inDigi->x(), inDigi->y() - partCenter, 0.);
518  strip = topo->channel(partLocalPoint);
519  const float stripF = float(strip) + 0.5;
520 
521  //get digitized location
522  LocalPoint digiPartLocalPoint = topo->localPosition(stripF);
523  digiLocalError = topo->localError(
524  stripF,
525  1. /
526  sqrt(
527  12.)); //std dev. flat distribution with length L is L/sqrt(12). The strip topology expects the error in units of strips.
528  digiLocalPoint = LocalPoint(digiPartLocalPoint.x(), digiPartLocalPoint.y() + partCenter, 0.0);
529  return partIdx;
530 }

References ME0ReDigiProducer::TemporaryGeometry::findEtaPartition(), dqmMemoryStats::float, ME0ReDigiProducer::TemporaryGeometry::getCentralTOF(), ME0ReDigiProducer::TemporaryGeometry::getPartCenter(), ME0ReDigiProducer::TemporaryGeometry::getTopo(), LogTrace, partIdx(), mathSSE::sqrt(), digitizers_cfi::strip, tempGeo, ME0DigiPreReco::x(), PV3DBase< T, PVType, FrameType >::x(), ME0DigiPreReco::y(), and PV3DBase< T, PVType, FrameType >::y().

Referenced by buildDigis().

◆ getStripProperties()

void ME0ReDigiProducer::getStripProperties ( const ME0EtaPartition etaPart,
const ME0DigiPreReco inDigi,
float &  tof,
int &  strip,
LocalPoint digiLocalPoint,
LocalError digiLocalError 
) const
private

Definition at line 531 of file ME0ReDigiProducer.cc.

536  {
537  //convert to relative to partition
538  tof -= tofs[etaPart->id().layer() - 1][etaPart->id().roll() - 1];
539 
540  const TrapezoidalStripTopology* origTopo = (const TrapezoidalStripTopology*)(&etaPart->specificTopology());
541  TrapezoidalStripTopology padTopo(
542  origTopo->nstrips() / 2, origTopo->pitch() * 2, origTopo->stripLength(), origTopo->radius());
543  const auto& topo = usePads ? padTopo : etaPart->specificTopology();
544 
545  //find channel
546  const LocalPoint partLocalPoint(inDigi->x(), inDigi->y(), 0.);
547  strip = topo.channel(partLocalPoint);
548  const float stripF = float(strip) + 0.5;
549 
550  //get digitized location
551  digiLocalPoint = topo.localPosition(stripF);
552  digiLocalError = topo.localError(stripF, 1. / sqrt(12.));
553 }

References dqmMemoryStats::float, ME0EtaPartition::id(), ME0DetId::layer(), TrapezoidalStripTopology::nstrips(), TrapezoidalStripTopology::pitch(), TrapezoidalStripTopology::radius(), ME0DetId::roll(), ME0EtaPartition::specificTopology(), mathSSE::sqrt(), digitizers_cfi::strip, TrapezoidalStripTopology::stripLength(), tofs, usePads, ME0DigiPreReco::x(), and ME0DigiPreReco::y().

Referenced by buildDigis().

◆ produce()

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

Definition at line 352 of file ME0ReDigiProducer.cc.

352  {
354  CLHEP::HepRandomEngine* engine = &rng->getEngine(e.streamID());
355 
357  e.getByToken(token, input_digis);
358 
359  std::unique_ptr<ME0DigiPreRecoCollection> output_digis(new ME0DigiPreRecoCollection());
360  std::unique_ptr<ME0DigiPreRecoMap> output_digimap(new ME0DigiPreRecoMap());
361 
362  // build the digis
363  buildDigis(*(input_digis.product()), *output_digis, *output_digimap, engine);
364 
365  // store them in the event
366  e.put(std::move(output_digis));
367  e.put(std::move(output_digimap));
368 }

References buildDigis(), MillePedeFileConverter_cfg::e, edm::RandomNumberGenerator::getEngine(), eostools::move(), edm::Handle< T >::product(), and token.

Member Data Documentation

◆ bxWidth

const float ME0ReDigiProducer::bxWidth
private

Definition at line 107 of file ME0ReDigiProducer.cc.

Referenced by buildDigis().

◆ geometry

const ME0Geometry* ME0ReDigiProducer::geometry
private

Definition at line 121 of file ME0ReDigiProducer.cc.

◆ layerReadout

std::vector<int> ME0ReDigiProducer::layerReadout
private

Definition at line 116 of file ME0ReDigiProducer.cc.

Referenced by beginRun(), and buildDigis().

◆ maxBXReadout

int ME0ReDigiProducer::maxBXReadout
private

Definition at line 115 of file ME0ReDigiProducer.cc.

Referenced by buildDigis().

◆ mergeDigis

bool ME0ReDigiProducer::mergeDigis
private

Definition at line 117 of file ME0ReDigiProducer.cc.

Referenced by buildDigis().

◆ minBXReadout

int ME0ReDigiProducer::minBXReadout
private

Definition at line 114 of file ME0ReDigiProducer.cc.

Referenced by buildDigis().

◆ neutronAcceptance

double ME0ReDigiProducer::neutronAcceptance
private

Definition at line 112 of file ME0ReDigiProducer.cc.

Referenced by buildDigis(), and ME0ReDigiProducer().

◆ numberOfPartitions

unsigned int ME0ReDigiProducer::numberOfPartitions
private

◆ numberOfStrips

unsigned int ME0ReDigiProducer::numberOfStrips
private

◆ tempGeo

TemporaryGeometry* ME0ReDigiProducer::tempGeo
private

◆ timeResolution

double ME0ReDigiProducer::timeResolution
private

Definition at line 113 of file ME0ReDigiProducer.cc.

Referenced by buildDigis().

◆ tofs

std::vector<std::vector<double> > ME0ReDigiProducer::tofs
private

Definition at line 123 of file ME0ReDigiProducer.cc.

Referenced by fillCentralTOFs(), and getStripProperties().

◆ token

edm::EDGetTokenT<ME0DigiPreRecoCollection> ME0ReDigiProducer::token
private

Definition at line 118 of file ME0ReDigiProducer.cc.

Referenced by produce().

◆ useBuiltinGeo

bool ME0ReDigiProducer::useBuiltinGeo
private

Definition at line 120 of file ME0ReDigiProducer.cc.

Referenced by beginRun(), buildDigis(), and ME0ReDigiProducer().

◆ useCusGeoFor1PartGeo

bool ME0ReDigiProducer::useCusGeoFor1PartGeo
private

Definition at line 108 of file ME0ReDigiProducer.cc.

Referenced by beginRun(), and ME0ReDigiProducer().

◆ usePads

bool ME0ReDigiProducer::usePads
private

Definition at line 109 of file ME0ReDigiProducer.cc.

Referenced by getStripProperties(), and ME0ReDigiProducer().

ME0ReDigiProducer::minBXReadout
int minBXReadout
Definition: ME0ReDigiProducer.cc:114
ME0ReDigiProducer::neutronAcceptance
double neutronAcceptance
Definition: ME0ReDigiProducer.cc:112
ME0ReDigiProducer::token
edm::EDGetTokenT< ME0DigiPreRecoCollection > token
Definition: ME0ReDigiProducer.cc:118
ME0ReDigiProducer::timeResolution
double timeResolution
Definition: ME0ReDigiProducer.cc:113
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
edm::RandomNumberGenerator::getEngine
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
ME0ReDigiProducer::TemporaryGeometry::findEtaPartition
unsigned int findEtaPartition(float locY) const
Definition: ME0ReDigiProducer.cc:227
TrapezoidalStripTopology::stripLength
float stripLength() const override
det heigth (strip length in the middle)
Definition: TrapezoidalStripTopology.h:63
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
edm::Handle::product
T const * product() const
Definition: Handle.h:70
LocalError::xy
float xy() const
Definition: LocalError.h:23
ME0DigiPreRecoMap
MuonDigiCollection< ME0DetId, int > ME0DigiPreRecoMap
Definition: ME0DigiPreRecoCollection.h:14
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
ME0ReDigiProducer::TemporaryGeometry::getTopo
const TrapezoidalStripTopology * getTopo(const unsigned int partIdx) const
Definition: ME0ReDigiProducer.cc:54
digitizers_cfi.strip
strip
Definition: digitizers_cfi.py:19
geometry
Definition: geometry.py:1
edm::Handle
Definition: AssociativeIterator.h:50
edm::Service::isAvailable
bool isAvailable() const
Definition: Service.h:40
MuonDigiCollection::const_iterator
std::vector< DigiType >::const_iterator const_iterator
Definition: MuonDigiCollection.h:94
partIdx
static unsigned int partIdx(const InputGenJetsParticleSelector::ParticleVector &p, const reco::Candidate *particle)
Definition: InputGenJetsParticleSelector.cc:120
simKBmtfDigis_cfi.bx
bx
Definition: simKBmtfDigis_cfi.py:55
ME0EtaPartition::specificTopology
const StripTopology & specificTopology() const
Definition: ME0EtaPartition.cc:16
ME0DigiPreReco::y
float y() const
Definition: ME0DigiPreReco.h:26
ME0ReDigiProducer::layerReadout
std::vector< int > layerReadout
Definition: ME0ReDigiProducer.cc:116
part
part
Definition: HCALResponse.h:20
LocalPoint
class Point3DBase< float, LocalTag > LocalPoint
Definition: ME0ReDigiProducer.cc:38
LocalError::xx
float xx() const
Definition: LocalError.h:22
ME0DetId::roll
int roll() const
Definition: ME0DetId.h:48
TrapezoidalStripTopology
Definition: TrapezoidalStripTopology.h:21
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
edm::ESHandle< ME0Geometry >
ME0ReDigiProducer::buildDigis
void buildDigis(const ME0DigiPreRecoCollection &, ME0DigiPreRecoCollection &, ME0DigiPreRecoMap &, CLHEP::HepRandomEngine *engine)
Definition: ME0ReDigiProducer.cc:370
Point3DBase< float, LocalTag >
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MuonTCMETValueMapProducer_cff.nLayers
nLayers
Definition: MuonTCMETValueMapProducer_cff.py:38
ME0ReDigiProducer::DigiIndicies
std::tuple< unsigned int, unsigned int, unsigned int > DigiIndicies
Definition: ME0ReDigiProducer.cc:100
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
ME0ReDigiProducer::numberOfPartitions
unsigned int numberOfPartitions
Definition: ME0ReDigiProducer.cc:111
TrapezoidalStripTopology::pitch
float pitch() const override
Definition: TrapezoidalStripTopology.cc:106
ME0ReDigiProducer::mergeDigis
bool mergeDigis
Definition: ME0ReDigiProducer.cc:117
LocalError
Definition: LocalError.h:12
ME0ReDigiProducer::tofs
std::vector< std::vector< double > > tofs
Definition: ME0ReDigiProducer.cc:123
ME0ReDigiProducer::TemporaryGeometry::getPartCenter
float getPartCenter(const unsigned int partIdx) const
Definition: ME0ReDigiProducer.cc:238
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
edm::Service< edm::RandomNumberGenerator >
chambers
static char chambers[264][20]
Definition: ReadPGInfo.cc:243
ME0ReDigiProducer::usePads
bool usePads
Definition: ME0ReDigiProducer.cc:109
ME0ReDigiProducer::maxBXReadout
int maxBXReadout
Definition: ME0ReDigiProducer.cc:115
get
#define get
TrapezoidalStripTopology::radius
float radius() const
Definition: TrapezoidalStripTopology.h:69
fftjetvertexadder_cfi.sigmaX
sigmaX
Definition: fftjetvertexadder_cfi.py:30
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
ME0ReDigiProducer::useBuiltinGeo
bool useBuiltinGeo
Definition: ME0ReDigiProducer.cc:120
ME0EtaPartition::id
ME0DetId id() const
Definition: ME0EtaPartition.h:18
eostools.move
def move(src, dest)
Definition: eostools.py:511
ME0ReDigiProducer::getStripProperties
void getStripProperties(const ME0EtaPartition *etaPart, const ME0DigiPreReco *inDigi, float &tof, int &strip, LocalPoint &digiLocalPoint, LocalError &digiLocalError) const
Definition: ME0ReDigiProducer.cc:531
fftjetvertexadder_cfi.sigmaY
sigmaY
Definition: fftjetvertexadder_cfi.py:31
ME0ReDigiProducer::TemporaryGeometry::numLayers
unsigned int numLayers() const
Definition: ME0ReDigiProducer.cc:59
ME0DigiPreReco
Definition: ME0DigiPreReco.h:15
Exception
Definition: hltDiff.cc:246
options_cfi.eventSetup
eventSetup
Definition: options_cfi.py:12
MuonDigiCollection::insertDigi
void insertDigi(const IndexType &index, const DigiType &digi)
insert a digi for a given DetUnit
Definition: MuonDigiCollection.h:98
MuonDigiCollection::Range
std::pair< const_iterator, const_iterator > Range
Definition: MuonDigiCollection.h:95
ME0ReDigiProducer::getCustomStripProperties
int getCustomStripProperties(const ME0DetId &detId, const ME0DigiPreReco *inDigi, float &tof, int &strip, LocalPoint &digiLocalPoint, LocalError &digiLocalError) const
Definition: ME0ReDigiProducer.cc:499
ME0ReDigiProducer::ChamberDigiMap
std::map< DigiIndicies, unsigned int > ChamberDigiMap
Definition: ME0ReDigiProducer.cc:101
ME0ReDigiProducer::numberOfStrips
unsigned int numberOfStrips
Definition: ME0ReDigiProducer.cc:110
ME0ReDigiProducer::useCusGeoFor1PartGeo
bool useCusGeoFor1PartGeo
Definition: ME0ReDigiProducer.cc:108
TrapezoidalStripTopology::nstrips
int nstrips() const override
Definition: TrapezoidalStripTopology.cc:118
ME0DigiPreReco::x
float x() const
Definition: ME0DigiPreReco.h:25
cms::Exception
Definition: Exception.h:70
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
ME0ReDigiProducer::TemporaryGeometry::getCentralTOF
float getCentralTOF(const ME0DetId &me0Id, unsigned int partIdx) const
Definition: ME0ReDigiProducer.cc:56
ME0ReDigiProducer::tempGeo
TemporaryGeometry * tempGeo
Definition: ME0ReDigiProducer.cc:122
ME0ReDigiProducer::bxWidth
const float bxWidth
Definition: ME0ReDigiProducer.cc:107
DigiContainerIterator
Definition: MuonDigiCollection.h:30
ME0ReDigiProducer::fillDigiMap
unsigned int fillDigiMap(ChamberDigiMap &chDigiMap, unsigned int bx, unsigned int part, unsigned int strip, unsigned int currentIDX) const
Definition: ME0ReDigiProducer.cc:555
MuonGeometryRecord
Definition: MuonGeometryRecord.h:34
ME0DetId::layer
int layer() const
Layer id: each chamber has six layers of chambers: layer 1 is the inner layer and layer 6 is the oute...
Definition: ME0DetId.h:44
LocalError::yy
float yy() const
Definition: LocalError.h:24
edm::InputTag
Definition: InputTag.h:15
ME0ReDigiProducer::fillCentralTOFs
void fillCentralTOFs()
Definition: ME0ReDigiProducer.cc:476
ME0DigiPreRecoCollection
MuonDigiCollection< ME0DetId, ME0DigiPreReco > ME0DigiPreRecoCollection
Definition: ME0DigiPreRecoCollection.h:13
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37