Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-10 02:59:12

0001 #ifndef RPCDigitizer_RPCSimAsymmetricCls_h
0002 #define RPCDigitizer_RPCSimAsymmetricCls_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 
0013 #include <cstring>
0014 #include <iostream>
0015 #include <fstream>
0016 #include <string>
0017 #include <vector>
0018 #include <cstdlib>
0019 #include "FWCore/Framework/interface/EventSetup.h"
0020 #include "SimMuon/RPCDigitizer/src/RPCSimSetUp.h"
0021 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0022 
0023 class RPCGeometry;
0024 //class RPCSimSetUp;
0025 
0026 namespace CLHEP {
0027   class HepRandomEngine;
0028 }
0029 
0030 class RPCSimAsymmetricCls : public RPCSim {
0031 public:
0032   RPCSimAsymmetricCls(const edm::ParameterSet& config);
0033   ~RPCSimAsymmetricCls() override;
0034 
0035   void simulate(const RPCRoll* roll, const edm::PSimHitContainer& rpcHits, CLHEP::HepRandomEngine*) override;
0036 
0037   void simulateNoise(const RPCRoll*, CLHEP::HepRandomEngine*) override;
0038 
0039   int getClSize(float posX, CLHEP::HepRandomEngine*);
0040   int getClSize(uint32_t id, float posX, CLHEP::HepRandomEngine*);
0041   unsigned int slice(float posX);  //??? CLHEP::HepRandomEngine*);
0042 
0043 private:
0044   void init() override {}
0045 
0046 private:
0047   double aveEff;
0048   double aveCls;
0049   double resRPC;
0050   double timOff;
0051   double dtimCs;
0052   double resEle;
0053   double sspeed;
0054   double lbGate;
0055   bool rpcdigiprint;
0056   bool eledig;
0057 
0058   int N_hits;
0059   int nbxing;
0060   double rate;
0061   double gate;
0062   double frate;
0063 
0064   std::map<int, std::vector<double> > clsMap;
0065   std::vector<double> sum_clsize;
0066   std::vector<double> clsForDetId;
0067   std::ifstream* infile;
0068 
0069   RPCSynchronizer* _rpcSync;
0070 };
0071 #endif