Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef RPCDigitizer_RPCSimAverage_h
0002 #define RPCDigitizer_RPCSimAverage_h
0003 
0004 /** \class RPCSimAverage
0005  *   Class for the RPC strip response simulation based
0006  *   on a parametrized model (ORCA-based)
0007  *
0008  *  \author Raffaello Trentadue -- INFN Bari
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 
0021 class RPCGeometry;
0022 
0023 namespace CLHEP {
0024   class HepRandomEngine;
0025 }
0026 
0027 class RPCSimAverage : public RPCSim {
0028 public:
0029   RPCSimAverage(const edm::ParameterSet& config);
0030   ~RPCSimAverage() override;
0031 
0032   void simulate(const RPCRoll* roll, const edm::PSimHitContainer& rpcHits, CLHEP::HepRandomEngine*) override;
0033 
0034   void simulateNoise(const RPCRoll*, CLHEP::HepRandomEngine*) override;
0035 
0036   int getClSize(float posX, CLHEP::HepRandomEngine*);
0037 
0038 private:
0039   void init() override {}
0040 
0041 private:
0042   double aveEff;
0043   double aveCls;
0044   double resRPC;
0045   double timOff;
0046   double dtimCs;
0047   double resEle;
0048   double sspeed;
0049   double lbGate;
0050   bool rpcdigiprint;
0051 
0052   int N_hits;
0053   int nbxing;
0054   double rate;
0055   double gate;
0056 
0057   std::map<int, std::vector<double> > clsMap;
0058   std::vector<double> sum_clsize;
0059   std::ifstream* infile;
0060 
0061   RPCSynchronizer* _rpcSync;
0062 };
0063 #endif