CMS 3D CMS Logo

GEMDigiModule.h
Go to the documentation of this file.
1 #ifndef SimMuon_GEMDigitizer_GEMDigiModule_h
2 #define SimMuon_GEMDigitizer_GEMDigiModule_h
3 
22 
23 #include <map>
24 #include <set>
25 
26 namespace CLHEP {
27  class HepRandomEngine;
28 }
29 
30 class GEMDigiModel;
31 class GEMEtaPartition;
32 class GEMGeometry;
33 class PSimHit;
34 
36 public:
38 
39  ~GEMDigiModule();
40 
43 
44  void setGeometry(const GEMGeometry*);
45 
46  void simulate(const GEMEtaPartition*, const edm::PSimHitContainer&, CLHEP::HepRandomEngine*);
47 
48  void fillDigis(int rollDetId, GEMDigiCollection&);
49 
50  const StripDigiSimLinks& stripDigiSimLinks() const { return stripDigiSimLinks_; }
51  const GEMDigiSimLinks& gemDigiSimLinks() const { return theGemDigiSimLinks_; }
52 
53 private:
55 
56  std::vector<std::unique_ptr<GEMDigiModel> > models;
57 
59  void addLinks(unsigned int strip, int bx);
60  void addLinksWithPartId(unsigned int strip, int bx);
61 
64  StripDigiSimLinks stripDigiSimLinks_;
65  GEMDigiSimLinks theGemDigiSimLinks_;
66 };
67 #endif
edm::DetSet< StripDigiSimLink > StripDigiSimLinks
Definition: GEMDigiModule.h:41
StripDigiSimLinks stripDigiSimLinks_
Definition: GEMDigiModule.h:64
const GEMGeometry * geometry_
Definition: GEMDigiModule.h:54
GEMDigiSimLinks theGemDigiSimLinks_
Definition: GEMDigiModule.h:65
std::vector< std::unique_ptr< GEMDigiModel > > models
Definition: GEMDigiModule.h:56
const GEMDigiSimLinks & gemDigiSimLinks() const
Definition: GEMDigiModule.h:51
void setGeometry(CaloGeometry const *)
edm::DetSet< GEMDigiSimLink > GEMDigiSimLinks
Definition: GEMDigiModule.h:42
const StripDigiSimLinks & stripDigiSimLinks() const
Definition: GEMDigiModule.h:50
std::multimap< std::pair< unsigned int, int >, const PSimHit *, std::less< std::pair< unsigned int, int > > > DetectorHitMap
Definition: GEMDigiModel.h:35
std::set< std::pair< int, int > > Strips
Definition: GEMDigiModel.h:31
DetectorHitMap detectorHitMap_
Definition: GEMDigiModule.h:63
std::vector< PSimHit > PSimHitContainer