CMS 3D CMS Logo

GEMDigiModel.h
Go to the documentation of this file.
1 #ifndef SimMuon_GEMDigitizer_GEMDigiModel_h
2 #define SimMuon_GEMDigitizer_GEMDigiModel_h
3 
20 
21 #include <map>
22 #include <set>
23 
24 namespace CLHEP {
25  class HepRandomEngine;
26 }
27 
28 class GEMEtaPartition;
29 class GEMGeometry;
30 class PSimHit;
31 
33 {
34 public:
35 
38 
39  virtual ~GEMDigiModel() {}
40 
41  void setGeometry(const GEMGeometry *geom) {geometry_ = geom;}
42 
43  const GEMGeometry* getGeometry() {return geometry_;}
44 
45  virtual void simulateSignal(const GEMEtaPartition*, const edm::PSimHitContainer&, CLHEP::HepRandomEngine* engine) = 0;
46 
47  virtual void simulateNoise(const GEMEtaPartition*, CLHEP::HepRandomEngine* engine) = 0;
48 
49  virtual std::vector<std::pair<int,int> >
50  simulateClustering(const GEMEtaPartition*, const PSimHit*, const int, CLHEP::HepRandomEngine* engine) = 0;
51 
52  void fillDigis(int rollDetId, GEMDigiCollection&);
53 
54  virtual void setup() = 0;
55 
56  const StripDigiSimLinks & stripDigiSimLinks() const {return stripDigiSimLinks_;}
57  const GEMDigiSimLinks & gemDigiSimLinks() const {return theGemDigiSimLinks_;}
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  GEMDigiSimLinks theGemDigiSimLinks_;
81 
82 };
83 #endif
const GEMDigiSimLinks & gemDigiSimLinks() const
Definition: GEMDigiModel.h:57
void setGeometry(const GEMGeometry *geom)
Definition: GEMDigiModel.h:41
edm::DetSet< GEMDigiSimLink > GEMDigiSimLinks
Definition: GEMDigiModel.h:37
const GEMGeometry * getGeometry()
Definition: GEMDigiModel.h:43
def setup(process, global_tag, zero_tesla=False)
Definition: GeneralSetup.py:2
GEMDigiSimLinks theGemDigiSimLinks_
Definition: GEMDigiModel.h:80
const StripDigiSimLinks & stripDigiSimLinks() const
Definition: GEMDigiModel.h:56
GEMDigiModel(const edm::ParameterSet &)
Definition: GEMDigiModel.h:61
const GEMGeometry * geometry_
Definition: GEMDigiModel.h:63
virtual ~GEMDigiModel()
Definition: GEMDigiModel.h:39
std::set< std::pair< int, int > > strips_
Definition: GEMDigiModel.h:65
DetectorHitMap detectorHitMap_
Definition: GEMDigiModel.h:78
std::vector< PSimHit > PSimHitContainer
StripDigiSimLinks stripDigiSimLinks_
Definition: GEMDigiModel.h:79
std::multimap< std::pair< unsigned int, int >, const PSimHit *, std::less< std::pair< unsigned int, int > > > DetectorHitMap
Definition: GEMDigiModel.h:76
edm::DetSet< StripDigiSimLink > StripDigiSimLinks
Definition: GEMDigiModel.h:36