CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
GEMSim.h
Go to the documentation of this file.
1 #ifndef GEMDigitizer_GEMSim_h
2 #define GEMDigitizer_GEMSim_h
3 
16 #include "CLHEP/Random/RandomEngine.h"
17 
18 #include <map>
19 #include <set>
20 
21 class GEMEtaPartition;
22 class GEMGeometry;
23 class GEMSimSetUp;
24 class PSimHit;
25 
26 class GEMSim
27 {
28 public:
29 
31 
32  virtual ~GEMSim() {}
33 
34  virtual void simulate(const GEMEtaPartition* roll, const edm::PSimHitContainer& rpcHits) = 0;
35 
36  virtual void simulateNoise(const GEMEtaPartition* roll) = 0;
37 
38  virtual void setRandomEngine(CLHEP::HepRandomEngine& eng) = 0;
39 
40  virtual void fillDigis(int rollDetId, GEMDigiCollection& digis);
41 
43 
45 
47 
48 protected:
49 
51 
52  virtual void init() = 0;
53 
54  std::set< std::pair<int, int> > strips_;
55 
58  virtual void addLinks(unsigned int strip,int bx);
59 
60  // keeps track of which hits contribute to which channels
61  typedef std::multimap<
62  std::pair<unsigned int, int>,
63  const PSimHit*,
64  std::less<std::pair<unsigned int, int> >
66 
69 
71 };
72 #endif
virtual void fillDigis(int rollDetId, GEMDigiCollection &digis)
Definition: GEMSim.cc:6
std::multimap< std::pair< unsigned int, int >, const PSimHit *, std::less< std::pair< unsigned int, int > > > DetectorHitMap
Definition: GEMSim.h:65
GEMSimSetUp * simSetUp_
Definition: GEMSim.h:70
virtual ~GEMSim()
Definition: GEMSim.h:32
DetectorHitMap detectorHitMap_
Definition: GEMSim.h:67
Definition: GEMSim.h:26
edm::DetSet< StripDigiSimLink > StripDigiSimLinks
Definition: GEMSim.h:30
std::set< std::pair< int, int > > strips_
Definition: GEMSim.h:54
const StripDigiSimLinks & stripDigiSimLinks() const
Definition: GEMSim.h:46
void setGEMSimSetUp(GEMSimSetUp *setup)
Definition: GEMSim.h:42
GEMSim(const edm::ParameterSet &config)
Definition: GEMSim.h:50
virtual void simulate(const GEMEtaPartition *roll, const edm::PSimHitContainer &rpcHits)=0
virtual void addLinks(unsigned int strip, int bx)
Definition: GEMSim.cc:21
virtual void init()=0
GEMSimSetUp * getGEMSimSetUp()
Definition: GEMSim.h:44
std::vector< PSimHit > PSimHitContainer
StripDigiSimLinks stripDigiSimLinks_
Definition: GEMSim.h:68
virtual void simulateNoise(const GEMEtaPartition *roll)=0
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
virtual void setRandomEngine(CLHEP::HepRandomEngine &eng)=0