File indexing completed on 2024-04-06 12:30:45
0001 #ifndef SimMuon_GEMDigitizer_ME0DigiPreRecoModel_h
0002 #define SimMuon_GEMDigitizer_ME0DigiPreRecoModel_h
0003
0004
0005
0006
0007
0008
0009
0010 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0011 #include "FWCore/Framework/interface/EventSetup.h"
0012 #include "DataFormats/GEMDigi/interface/ME0DigiPreRecoCollection.h"
0013 #include "DataFormats/Common/interface/DetSet.h"
0014 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
0015 #include "SimDataFormats/CrossingFrame/interface/MixCollection.h"
0016
0017 #include <map>
0018 #include <set>
0019
0020 namespace CLHEP {
0021 class HepRandomEngine;
0022 }
0023
0024 class ME0EtaPartition;
0025 class ME0Geometry;
0026 class PSimHit;
0027
0028 class ME0DigiPreRecoModel {
0029 public:
0030 virtual ~ME0DigiPreRecoModel() {}
0031
0032 void setGeometry(const ME0Geometry* geom) { geometry_ = geom; }
0033
0034 const ME0Geometry* getGeometry() { return geometry_; }
0035
0036 virtual void simulateSignal(const ME0EtaPartition*, const edm::PSimHitContainer&, CLHEP::HepRandomEngine* engine) = 0;
0037
0038 virtual void simulateNoise(const ME0EtaPartition*, CLHEP::HepRandomEngine* engine) = 0;
0039
0040
0041
0042
0043 void fillDigis(int rollDetId, ME0DigiPreRecoCollection&);
0044
0045 virtual void setup() = 0;
0046
0047 protected:
0048 std::set<ME0DigiPreReco> digi_;
0049
0050 ME0DigiPreRecoModel(const edm::ParameterSet&) {}
0051
0052 const ME0Geometry* geometry_;
0053
0054
0055 };
0056 #endif