CMS 3D CMS Logo

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

#include <GEMDigiProducer.h>

Inheritance diagram for GEMDigiProducer:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

typedef
GEMDigitizer::StripDigiSimLinks 
StripDigiSimLinks
 
- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 

Public Member Functions

virtual void beginRun (const edm::Run &, const edm::EventSetup &) override
 
 GEMDigiProducer (const edm::ParameterSet &ps)
 
virtual void produce (edm::Event &e, const edm::EventSetup &c) override
 
void setGEMSetUp (const std::vector< RPCStripNoises::NoiseItem > &, const std::vector< double > &)
 
virtual ~GEMDigiProducer ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Attributes

std::string collectionXF_
 
GEMDigitizerdigitizer_
 
GEMSimSetUpgemSimSetUp_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 16 of file GEMDigiProducer.h.

Member Typedef Documentation

Definition at line 20 of file GEMDigiProducer.h.

Constructor & Destructor Documentation

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

Definition at line 30 of file GEMDigiProducer.cc.

References collectionXF_, digitizer_, edm::hlt::Exception, gemSimSetUp_, edm::ParameterSet::getParameter(), and AlCaHLTBitMon_QueryRunRegistry::string.

31 {
32  produces<GEMDigiCollection>();
33  produces<StripDigiSimLinks>("GEM");
34 
35  //Name of Collection used for create the XF
36  collectionXF_ = ps.getParameter<std::string>("InputCollection");
37 
39  if ( ! rng.isAvailable())
40  {
41  throw cms::Exception("Configuration")
42  << "GEMDigiProducer::GEMDigiProducer() - RandomNumberGeneratorService is not present in configuration file.\n"
43  << "Add the service in the configuration file or remove the modules that require it.";
44  }
45  CLHEP::HepRandomEngine& engine = rng->getEngine();
46 
47  gemSimSetUp_ = new GEMSimSetUp(ps);
48  digitizer_ = new GEMDigitizer(ps, engine);
49 }
T getParameter(std::string const &) const
GEMSimSetUp * gemSimSetUp_
GEMDigitizer * digitizer_
std::string collectionXF_
GEMDigiProducer::~GEMDigiProducer ( )
virtual

Definition at line 52 of file GEMDigiProducer.cc.

References digitizer_, and gemSimSetUp_.

53 {
54  delete digitizer_;
55  delete gemSimSetUp_;
56 }
GEMSimSetUp * gemSimSetUp_
GEMDigitizer * digitizer_

Member Function Documentation

void GEMDigiProducer::beginRun ( const edm::Run r,
const edm::EventSetup eventSetup 
)
overridevirtual

Reimplemented from edm::EDProducer.

Definition at line 59 of file GEMDigiProducer.cc.

References digitizer_, gemSimSetUp_, edm::EventSetup::get(), GEMDigitizer::setGEMSimSetUp(), GEMSimSetUp::setGeometry(), GEMDigitizer::setGeometry(), and GEMSimSetUp::setup().

60 {
62  eventSetup.get<MuonGeometryRecord>().get( hGeom );
63  const GEMGeometry *pGeom = &*hGeom;
64 
65  /*
66  edm::ESHandle<RPCStripNoises> noiseRcd;
67  eventSetup.get<RPCStripNoisesRcd>().get(noiseRcd);
68 
69  edm::ESHandle<RPCClusterSize> clsRcd;
70  eventSetup.get<RPCClusterSizeRcd>().get(clsRcd);
71 
72  auto vnoise = noiseRcd->getVNoise();
73  auto vcls = clsRcd->getCls();
74  */
75  std::vector<RPCStripNoises::NoiseItem> vnoise;
76  std::vector<float> vcls;
77 
78  gemSimSetUp_->setGeometry( pGeom );
79  if (vnoise.size()==0 && vcls.size()==0)
81  else
82  gemSimSetUp_->setup(vnoise, vcls);
83 
84  digitizer_->setGeometry( pGeom );
86 }
GEMSimSetUp * gemSimSetUp_
GEMDigitizer * digitizer_
void setGeometry(const GEMGeometry *geom)
Definition: GEMSimSetUp.h:41
void setGeometry(const GEMGeometry *geom)
sets geometry
Definition: GEMDigitizer.h:43
void setGEMSimSetUp(GEMSimSetUp *simsetup)
Definition: GEMDigitizer.h:45
const T & get() const
Definition: EventSetup.h:55
void setup()
Definition: GEMSimSetUp.cc:63
void GEMDigiProducer::produce ( edm::Event e,
const edm::EventSetup c 
)
overridevirtual

Produces the EDM products,

Implements edm::EDProducer.

Definition at line 89 of file GEMDigiProducer.cc.

References collectionXF_, GEMDigitizer::digitize(), digitizer_, edm::Event::getByLabel(), edm::Handle< T >::product(), and edm::Event::put().

90 {
92  e.getByLabel("mix", collectionXF_, cf);
93 
94  std::auto_ptr<MixCollection<PSimHit> > hits( new MixCollection<PSimHit>(cf.product()) );
95 
96  // Create empty output
97  std::auto_ptr<GEMDigiCollection> pDigis(new GEMDigiCollection());
98  std::auto_ptr<StripDigiSimLinks> digiSimLinks(new StripDigiSimLinks() );
99 
100  // run the digitizer
101  digitizer_->digitize(*hits, *pDigis, *digiSimLinks);
102 
103  // store them in the event
104  e.put(pDigis);
105  e.put(digiSimLinks,"GEM");
106 }
GEMDigitizer::StripDigiSimLinks StripDigiSimLinks
GEMDigitizer * digitizer_
MuonDigiCollection< GEMDetId, GEMDigi > GEMDigiCollection
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:116
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:390
void digitize(MixCollection< PSimHit > &simHits, GEMDigiCollection &rpcDigis, StripDigiSimLinks &digiSimLinks)
Definition: GEMDigitizer.cc:25
T const * product() const
Definition: Handle.h:81
std::string collectionXF_
void GEMDigiProducer::setGEMSetUp ( const std::vector< RPCStripNoises::NoiseItem > &  ,
const std::vector< double > &   
)

Member Data Documentation

std::string GEMDigiProducer::collectionXF_
private

Definition at line 38 of file GEMDigiProducer.h.

Referenced by GEMDigiProducer(), and produce().

GEMDigitizer* GEMDigiProducer::digitizer_
private

Definition at line 34 of file GEMDigiProducer.h.

Referenced by beginRun(), GEMDigiProducer(), produce(), and ~GEMDigiProducer().

GEMSimSetUp* GEMDigiProducer::gemSimSetUp_
private

Definition at line 35 of file GEMDigiProducer.h.

Referenced by beginRun(), GEMDigiProducer(), and ~GEMDigiProducer().