CMS 3D CMS Logo

ME0DigiModel.h
Go to the documentation of this file.
1 #ifndef SimMuon_GEMDigitizer_ME0DigiModel_h
2 #define SimMuon_GEMDigitizer_ME0DigiModel_h
3 
20 
21 #include <map>
22 #include <set>
23 
24 namespace CLHEP {
25  class HepRandomEngine;
26 }
27 
28 class ME0EtaPartition;
29 class ME0Geometry;
30 class PSimHit;
31 
32 class ME0DigiModel {
33 public:
36 
37  virtual ~ME0DigiModel() {}
38 
40 
41  const ME0Geometry* getGeometry() { return geometry_; }
42 
43  virtual void simulateSignal(const ME0EtaPartition*, const edm::PSimHitContainer&, CLHEP::HepRandomEngine* engine) = 0;
44 
45  virtual void simulateNoise(const ME0EtaPartition*, CLHEP::HepRandomEngine* engine) = 0;
46 
47  virtual std::vector<std::pair<int, int> > simulateClustering(const ME0EtaPartition*,
48  const PSimHit*,
49  const int,
50  CLHEP::HepRandomEngine* engine) = 0;
51 
52  void fillDigis(int rollDetId, ME0DigiCollection&);
53 
54  virtual void setup() = 0;
55 
58 
59 protected:
61 
63 
64  std::set<std::pair<int, int> > strips_;
65 
67  void addLinks(unsigned int strip, int bx);
68  void addLinksWithPartId(unsigned int strip, int bx);
69 
70  // keeps track of which hits contribute to which channels
71  typedef std::multimap<std::pair<unsigned int, int>, const PSimHit*, std::less<std::pair<unsigned int, int> > >
73 
77 };
78 #endif
ME0DigiCollection.h
ME0DigiModel::geometry_
const ME0Geometry * geometry_
Definition: ME0DigiModel.h:62
ME0DigiModel::~ME0DigiModel
virtual ~ME0DigiModel()
Definition: ME0DigiModel.h:37
edm::DetSet< StripDigiSimLink >
digitizers_cfi.strip
strip
Definition: digitizers_cfi.py:19
ME0Geometry
Definition: ME0Geometry.h:12
PSimHitContainer.h
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
ME0DigiModel::setGeometry
void setGeometry(const ME0Geometry *geom)
Definition: ME0DigiModel.h:39
ME0DigiModel::addLinksWithPartId
void addLinksWithPartId(unsigned int strip, int bx)
Definition: ME0DigiModel.cc:52
ME0DigiModel::DetectorHitMap
std::multimap< std::pair< unsigned int, int >, const PSimHit *, std::less< std::pair< unsigned int, int > > > DetectorHitMap
Definition: ME0DigiModel.h:72
ME0DigiModel::setup
virtual void setup()=0
ME0DigiModel::theME0DigiSimLinks_
ME0DigiSimLinks theME0DigiSimLinks_
Definition: ME0DigiModel.h:76
ME0DigiCollection
ME0DigiModel::strips_
std::set< std::pair< int, int > > strips_
Definition: ME0DigiModel.h:64
ME0DigiModel::simulateClustering
virtual std::vector< std::pair< int, int > > simulateClustering(const ME0EtaPartition *, const PSimHit *, const int, CLHEP::HepRandomEngine *engine)=0
MixCollection.h
ME0DigiModel::ME0DigiModel
ME0DigiModel(const edm::ParameterSet &)
Definition: ME0DigiModel.h:60
ME0DigiModel::simulateSignal
virtual void simulateSignal(const ME0EtaPartition *, const edm::PSimHitContainer &, CLHEP::HepRandomEngine *engine)=0
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
ME0DigiModel::fillDigis
void fillDigis(int rollDetId, ME0DigiCollection &)
Definition: ME0DigiModel.cc:4
ME0DigiModel::me0DigiSimLinks
const ME0DigiSimLinks & me0DigiSimLinks() const
Definition: ME0DigiModel.h:57
ME0DigiModel::detectorHitMap_
DetectorHitMap detectorHitMap_
Definition: ME0DigiModel.h:74
CLHEP
Definition: CocoaGlobals.h:27
ME0DigiModel
Definition: ME0DigiModel.h:32
edm::ParameterSet
Definition: ParameterSet.h:36
ME0DigiModel::simulateNoise
virtual void simulateNoise(const ME0EtaPartition *, CLHEP::HepRandomEngine *engine)=0
ME0DigiModel::ME0DigiSimLinks
edm::DetSet< ME0DigiSimLink > ME0DigiSimLinks
Definition: ME0DigiModel.h:35
ME0DigiModel::getGeometry
const ME0Geometry * getGeometry()
Definition: ME0DigiModel.h:41
EventSetup.h
ME0DigiModel::stripDigiSimLinks_
StripDigiSimLinks stripDigiSimLinks_
Definition: ME0DigiModel.h:75
ME0DigiModel::stripDigiSimLinks
const StripDigiSimLinks & stripDigiSimLinks() const
Definition: ME0DigiModel.h:56
DetSet.h
edm::PSimHitContainer
std::vector< PSimHit > PSimHitContainer
Definition: PSimHitContainer.h:11
ParameterSet.h
PSimHit
Definition: PSimHit.h:15
ME0DigiModel::StripDigiSimLinks
edm::DetSet< StripDigiSimLink > StripDigiSimLinks
Definition: ME0DigiModel.h:34
ME0EtaPartition
Definition: ME0EtaPartition.h:12
ME0DigiModel::addLinks
void addLinks(unsigned int strip, int bx)
creates links from Digi to SimTrack
Definition: ME0DigiModel.cc:18