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 
33 {
34 public:
35 
38 
39  virtual ~ME0DigiModel() {}
40 
41  void setGeometry(const ME0Geometry *geom) {geometry_ = geom;}
42 
43  const ME0Geometry* getGeometry() {return geometry_;}
44 
45  virtual void simulateSignal(const ME0EtaPartition*, const edm::PSimHitContainer&, CLHEP::HepRandomEngine* engine) = 0;
46 
47  virtual void simulateNoise(const ME0EtaPartition*, CLHEP::HepRandomEngine* engine) = 0;
48 
49  virtual std::vector<std::pair<int,int> >
50  simulateClustering(const ME0EtaPartition*, const PSimHit*, const int, CLHEP::HepRandomEngine* engine) = 0;
51 
52  void fillDigis(int rollDetId, ME0DigiCollection&);
53 
54  virtual void setup() = 0;
55 
56  const StripDigiSimLinks & stripDigiSimLinks() const {return stripDigiSimLinks_;}
57  const ME0DigiSimLinks & me0DigiSimLinks() const {return theME0DigiSimLinks_;}
58 
59 protected:
60 
62 
64 
65  std::set< std::pair<int, int> > strips_;
66 
68  void addLinks(unsigned int strip,int bx);
69  void addLinksWithPartId(unsigned int strip,int bx);
70 
71  // keeps track of which hits contribute to which channels
72  typedef std::multimap<
73  std::pair<unsigned int, int>,
74  const PSimHit*,
75  std::less<std::pair<unsigned int, int> >
77 
79  StripDigiSimLinks stripDigiSimLinks_;
80  ME0DigiSimLinks theME0DigiSimLinks_;
81 
82 };
83 #endif
edm::DetSet< ME0DigiSimLink > ME0DigiSimLinks
Definition: ME0DigiModel.h:37
virtual ~ME0DigiModel()
Definition: ME0DigiModel.h:39
StripDigiSimLinks stripDigiSimLinks_
Definition: ME0DigiModel.h:79
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:1
std::set< std::pair< int, int > > strips_
Definition: ME0DigiModel.h:65
const ME0Geometry * geometry_
Definition: ME0DigiModel.h:63
void setGeometry(const ME0Geometry *geom)
Definition: ME0DigiModel.h:41
ME0DigiSimLinks theME0DigiSimLinks_
Definition: ME0DigiModel.h:80
ME0DigiModel(const edm::ParameterSet &)
Definition: ME0DigiModel.h:61
const StripDigiSimLinks & stripDigiSimLinks() const
Definition: ME0DigiModel.h:56
const ME0DigiSimLinks & me0DigiSimLinks() const
Definition: ME0DigiModel.h:57
const ME0Geometry * getGeometry()
Definition: ME0DigiModel.h:43
DetectorHitMap detectorHitMap_
Definition: ME0DigiModel.h:78
edm::DetSet< StripDigiSimLink > StripDigiSimLinks
Definition: ME0DigiModel.h:36
std::vector< PSimHit > PSimHitContainer
std::multimap< std::pair< unsigned int, int >, const PSimHit *, std::less< std::pair< unsigned int, int > > > DetectorHitMap
Definition: ME0DigiModel.h:76