File indexing completed on 2023-03-17 11:25:22
0001 #ifndef SimMuon_GEMDigitizer_GEMDigiModel_h
0002 #define SimMuon_GEMDigitizer_GEMDigiModel_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0014 #include "FWCore/Framework/interface/EventSetup.h"
0015 #include "DataFormats/GEMDigi/interface/GEMDigiCollection.h"
0016 #include "DataFormats/Common/interface/DetSet.h"
0017 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0018 #include "SimDataFormats/TrackerDigiSimLink/interface/StripDigiSimLink.h"
0019 #include "SimDataFormats/GEMDigiSimLink/interface/GEMDigiSimLink.h"
0020 #include "SimDataFormats/CrossingFrame/interface/MixCollection.h"
0021
0022 #include <map>
0023 #include <set>
0024
0025 namespace CLHEP {
0026 class HepRandomEngine;
0027 }
0028
0029 class PSimHit;
0030 class GEMEtaPartition;
0031 class GEMGeometry;
0032
0033 typedef std::set<std::pair<int, int> > Strips;
0034 typedef std::multimap<std::pair<unsigned int, int>, const PSimHit *, std::less<std::pair<unsigned int, int> > >
0035 DetectorHitMap;
0036
0037 class GEMDigiModel {
0038 public:
0039 virtual ~GEMDigiModel() {}
0040
0041 virtual void simulate(
0042 const GEMEtaPartition *, const edm::PSimHitContainer &, CLHEP::HepRandomEngine *, Strips &, DetectorHitMap &) = 0;
0043
0044 void setGeometry(const GEMGeometry *geom) { geometry_ = geom; }
0045
0046 protected:
0047 const GEMGeometry *geometry_;
0048 GEMDigiModel(const edm::ParameterSet &) {}
0049 };
0050 #endif