Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:30:45

0001 #ifndef SimMuon_GEMDigitizer_GEMSignalModel_h
0002 #define SimMuon_GEMDigitizer_GEMSignalModel_h
0003 
0004 /** 
0005  * \class GEMSignalModel
0006  *
0007  * Class for the GEM strip response simulation based on a very simple model
0008  * Originally comes from GEMSimpleModel
0009  *
0010  * \author Sven Dildick
0011  * \modified by Roumyana Hadjiiska
0012  * \splitted by Yechan Kang
0013  */
0014 
0015 #include "SimMuon/GEMDigitizer/interface/GEMDigiModel.h"
0016 
0017 class GEMGeometry;
0018 class GEMStripTopology;
0019 
0020 namespace CLHEP {
0021   class HepRandomEngine;
0022 }
0023 
0024 class GEMSignalModel : public GEMDigiModel {
0025 public:
0026   GEMSignalModel(const edm::ParameterSet&);
0027 
0028   ~GEMSignalModel() override;
0029 
0030   void simulate(
0031       const GEMEtaPartition*, const edm::PSimHitContainer&, CLHEP::HepRandomEngine*, Strips&, DetectorHitMap&) override;
0032 
0033   int getSimHitBx(const PSimHit*, CLHEP::HepRandomEngine*);
0034 
0035   std::vector<std::pair<int, int> > simulateClustering(const GEMStripTopology*,
0036                                                        const PSimHit*,
0037                                                        const int,
0038                                                        CLHEP::HepRandomEngine*);
0039 
0040 private:
0041   double averageEfficiency_;
0042   double averageShapingTime_;
0043   double timeResolution_;
0044   double timeJitter_;
0045   double signalPropagationSpeed_;
0046   bool bx0filter_;
0047   bool digitizeOnlyMuons_;
0048   double resolutionX_;
0049 
0050   const double cspeed;
0051   const double energyMinCut;
0052 };
0053 #endif