Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:25:30

0001 #ifndef RPCDigitizer_RPCSimModelTiming_h
0002 #define RPCDigitizer_RPCSimModelTiming_h
0003 
0004 /** \class RPCSimAverage
0005  *   Class for the RPC strip response simulation based
0006  *   on a parametrized model (ORCA-based)
0007  *
0008  *  \author Borislav Pavlov -- University of Sofia
0009  */
0010 #include "SimMuon/RPCDigitizer/src/RPCSim.h"
0011 #include "SimMuon/RPCDigitizer/src/RPCSynchronizer.h"
0012 #include "SimMuon/RPCDigitizer/src/RPCSimAsymmetricCls.h"
0013 #include "SimMuon/RPCDigitizer/src/RPCSimAverageNoiseEffCls.h"
0014 
0015 #include <cstring>
0016 #include <iostream>
0017 #include <fstream>
0018 #include <string>
0019 #include <vector>
0020 #include <cstdlib>
0021 #include "FWCore/Framework/interface/EventSetup.h"
0022 #include "SimMuon/RPCDigitizer/src/RPCSimSetUp.h"
0023 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0024 
0025 class RPCGeometry;
0026 
0027 namespace CLHEP {
0028   class HepRandomEngine;
0029 }
0030 
0031 class RPCSimModelTiming : public RPCSim {
0032 public:
0033   RPCSimModelTiming(const edm::ParameterSet& config);
0034   ~RPCSimModelTiming() override;
0035   void simulate(const RPCRoll* roll, const edm::PSimHitContainer& rpcHits, CLHEP::HepRandomEngine*) override;
0036   void simulateNoise(const RPCRoll*, CLHEP::HepRandomEngine*) override;
0037   int getClSize(uint32_t id, float posX, CLHEP::HepRandomEngine*);
0038   int LeftRightNeighbour(const RPCRoll& roll, const LocalPoint& hit_pos, int strip);
0039 
0040 protected:
0041   void init() override{};
0042 
0043   double aveEff;
0044   double aveCls;
0045   double resRPC;
0046   double timOff;
0047   double dtimCs;
0048   double resEle;
0049   double sspeed;
0050   double lbGate;
0051   bool rpcdigiprint;
0052   bool eledig;
0053 
0054   int N_hits;
0055   int nbxing;
0056   double rate;
0057   double gate;
0058   double frate;
0059   bool do_Y;
0060   double sigmaY;
0061 
0062   std::map<int, std::vector<double> > clsMap;
0063   std::vector<double> sum_clsize;
0064   std::vector<double> clsForDetId;
0065   std::ifstream* infile;
0066 
0067   RPCSynchronizer* _rpcSync;
0068 };
0069 #endif