File indexing completed on 2023-03-17 11:25:29
0001 #ifndef RPCDigitizer_RPCSimAsymmetricCls_h
0002 #define RPCDigitizer_RPCSimAsymmetricCls_h
0003
0004
0005
0006
0007
0008
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
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);
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