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