Back to home page

Project CMSSW displayed by LXR

 
 

    


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  *  \class ME0DigiPreRecoModel
0006  *
0007  *  Base Class for the ME0 strip response simulation 
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   //  virtual std::vector<std::pair<int,int> >
0041   //   simulateClustering(const ME0EtaPartition*, const PSimHit*, const int) = 0;
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   //  DetectorHitMap detectorHitMap_;
0055 };
0056 #endif