CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Private Attributes
RPCDigitizer Class Reference

#include <RPCDigitizer.h>

Public Types

typedef edm::DetSetVector
< RPCDigiSimLink
RPCDigiSimLinks
 

Public Member Functions

void doAction (MixCollection< PSimHit > &simHits, RPCDigiCollection &rpcDigis, RPCDigiSimLinks &rpcDigiSimLink, CLHEP::HepRandomEngine *)
 
const RPCRollfindDet (int detId) const
 finds the rpc det unit in the geometry associated with this det ID More...
 
RPCSimSetUpgetRPCSimSetUp ()
 
 RPCDigitizer (const edm::ParameterSet &config)
 
void setGeometry (const RPCGeometry *geom)
 sets geometry More...
 
void setRPCSimSetUp (RPCSimSetUp *simsetup)
 
 ~RPCDigitizer ()
 

Private Attributes

const RPCGeometrytheGeometry
 
bool theNoise
 
std::unique_ptr< RPCSimtheRPCSim
 
RPCSimSetUptheSimSetUp
 

Detailed Description

Digitizer class for RPC

Author
Marcello Maggi – INFN Bari

Definition at line 33 of file RPCDigitizer.h.

Member Typedef Documentation

Definition at line 35 of file RPCDigitizer.h.

Constructor & Destructor Documentation

RPCDigitizer::RPCDigitizer ( const edm::ParameterSet config)

Definition at line 12 of file RPCDigitizer.cc.

References get, edm::ParameterSet::getParameter(), and AlCaHLTBitMon_QueryRunRegistry::string.

13  : theRPCSim{RPCSimFactory::get()->create(config.getParameter<std::string>("digiModel"),
14  config.getParameter<edm::ParameterSet>("digiModelConfig"))},
15  theNoise{config.getParameter<bool>("doBkgNoise")} {}
std::unique_ptr< RPCSim > theRPCSim
Definition: RPCDigitizer.h:57
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
#define get
RPCDigitizer::~RPCDigitizer ( )
default

Member Function Documentation

void RPCDigitizer::doAction ( MixCollection< PSimHit > &  simHits,
RPCDigiCollection rpcDigis,
RPCDigiSimLinks rpcDigiSimLink,
CLHEP::HepRandomEngine *  engine 
)

Definition at line 19 of file RPCDigitizer.cc.

References MixCollection< T >::begin(), MixCollection< T >::end(), Exception, gpuClustering::id, edm::DetSetVector< T >::insert(), alignCSCRings::r, RPCGeometry::rolls(), theGeometry, theNoise, theRPCSim, and theSimSetUp.

Referenced by RPCDigiProducer::produce(), and RPCandIRPCDigiProducer::produce().

22  {
23  theRPCSim->setRPCSimSetUp(theSimSetUp);
24 
25  // arrange the hits by roll
26  std::map<int, edm::PSimHitContainer> hitMap;
27  for (MixCollection<PSimHit>::MixItr hitItr = simHits.begin(); hitItr != simHits.end(); ++hitItr) {
28  hitMap[hitItr->detUnitId()].push_back(*hitItr);
29  }
30 
31  if (!theGeometry) {
32  throw cms::Exception("Configuration")
33  << "RPCDigitizer requires the RPCGeometry \n which is not present in the configuration file. You must add the "
34  "service\n in the configuration file or remove the modules that require it.";
35  }
36 
37  const std::vector<const RPCRoll*>& rpcRolls = theGeometry->rolls();
38  for (auto r = rpcRolls.begin(); r != rpcRolls.end(); r++) {
39  RPCDetId id = (*r)->id();
40  const edm::PSimHitContainer& rollSimHits = hitMap[id];
41 
42  if (!((*r)->isIRPC())) {
43  theRPCSim->simulate(*r, rollSimHits, engine);
44 
45  if (theNoise) {
46  theRPCSim->simulateNoise(*r, engine);
47  }
48  }
49 
50  theRPCSim->fillDigis((*r)->id(), rpcDigis);
51  rpcDigiSimLink.insert(theRPCSim->rpcDigiSimLinks());
52  }
53 }
uint16_t *__restrict__ id
const std::vector< const RPCRoll * > & rolls() const
Return a vector of all RPC rolls.
Definition: RPCGeometry.cc:44
RPCSimSetUp * theSimSetUp
Definition: RPCDigitizer.h:58
iterator end() const
std::unique_ptr< RPCSim > theRPCSim
Definition: RPCDigitizer.h:57
const RPCGeometry * theGeometry
Definition: RPCDigitizer.h:56
std::vector< PSimHit > PSimHitContainer
iterator begin() const
const RPCRoll * RPCDigitizer::findDet ( int  detId) const

finds the rpc det unit in the geometry associated with this det ID

Definition at line 55 of file RPCDigitizer.cc.

References cms::cuda::assert(), RPCGeometry::idToDetUnit(), RPCDetId, and theGeometry.

55  {
56  assert(theGeometry != nullptr);
57  const GeomDetUnit* detUnit = theGeometry->idToDetUnit(RPCDetId(detId));
58  return dynamic_cast<const RPCRoll*>(detUnit);
59 }
const GeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
Definition: RPCGeometry.cc:30
assert(be >=bs)
const RPCGeometry * theGeometry
Definition: RPCDigitizer.h:56
RPCSimSetUp* RPCDigitizer::getRPCSimSetUp ( )
inline

Definition at line 50 of file RPCDigitizer.h.

References theSimSetUp.

50 { return theSimSetUp; }
RPCSimSetUp * theSimSetUp
Definition: RPCDigitizer.h:58
void RPCDigitizer::setGeometry ( const RPCGeometry geom)
inline

sets geometry

Definition at line 46 of file RPCDigitizer.h.

References relativeConstraints::geom, and theGeometry.

Referenced by RPCDigiProducer::beginRun(), and RPCandIRPCDigiProducer::beginRun().

46 { theGeometry = geom; }
const RPCGeometry * theGeometry
Definition: RPCDigitizer.h:56
void RPCDigitizer::setRPCSimSetUp ( RPCSimSetUp simsetup)
inline

Definition at line 48 of file RPCDigitizer.h.

References theSimSetUp.

Referenced by RPCDigiProducer::beginRun(), and RPCandIRPCDigiProducer::beginRun().

48 { theSimSetUp = simsetup; }
RPCSimSetUp * theSimSetUp
Definition: RPCDigitizer.h:58

Member Data Documentation

const RPCGeometry* RPCDigitizer::theGeometry
private

Definition at line 56 of file RPCDigitizer.h.

Referenced by doAction(), findDet(), and setGeometry().

bool RPCDigitizer::theNoise
private

Definition at line 59 of file RPCDigitizer.h.

Referenced by doAction().

std::unique_ptr<RPCSim> RPCDigitizer::theRPCSim
private

Definition at line 57 of file RPCDigitizer.h.

Referenced by doAction().

RPCSimSetUp* RPCDigitizer::theSimSetUp
private

Definition at line 58 of file RPCDigitizer.h.

Referenced by doAction(), getRPCSimSetUp(), and setRPCSimSetUp().