File indexing completed on 2024-04-06 12:30:50
0001 #include "Geometry/RPCGeometry/interface/RPCRoll.h"
0002 #include "Geometry/RPCGeometry/interface/RPCRollSpecs.h"
0003 #include "SimMuon/RPCDigitizer/src/RPCSimTriv.h"
0004 #include "Geometry/CommonTopologies/interface/RectangularStripTopology.h"
0005 #include "Geometry/CommonTopologies/interface/TrapezoidalStripTopology.h"
0006 #include "Geometry/RPCGeometry/interface/RPCGeometry.h"
0007 #include "SimMuon/RPCDigitizer/src/RPCSimSetUp.h"
0008
0009 #include <cmath>
0010 #include <utility>
0011 #include <map>
0012
0013 RPCSimTriv::RPCSimTriv(const edm::ParameterSet& config) : RPCSim(config) {
0014 rate = config.getParameter<double>("Rate");
0015 nbxing = config.getParameter<int>("Nbxing");
0016 gate = config.getParameter<double>("Gate");
0017
0018 _rpcSync = new RPCSynchronizer(config);
0019 }
0020
0021 RPCSimTriv::~RPCSimTriv() { delete _rpcSync; }
0022
0023 void RPCSimTriv::simulate(const RPCRoll* roll, const edm::PSimHitContainer& rpcHits, CLHEP::HepRandomEngine*) {
0024
0025 theRpcDigiSimLinks.clear();
0026 theDetectorHitMap.clear();
0027 theRpcDigiSimLinks = RPCDigiSimLinks(roll->id().rawId());
0028
0029 const Topology& topology = roll->specs()->topology();
0030 for (edm::PSimHitContainer::const_iterator _hit = rpcHits.begin(); _hit != rpcHits.end(); ++_hit) {
0031 int type = _hit->particleType();
0032 if (type == 13 || type == -13) {
0033
0034 const LocalPoint& entr = _hit->entryPoint();
0035
0036
0037 int time_hit = 0;
0038 std::pair<int, int> digi(topology.channel(entr) + 1, time_hit);
0039
0040 theDetectorHitMap.insert(DetectorHitMap::value_type(digi, &(*_hit)));
0041 strips.insert(digi);
0042 }
0043 }
0044 }
0045
0046 void RPCSimTriv::simulateNoise(const RPCRoll* roll, CLHEP::HepRandomEngine*) {
0047
0048 return;
0049 }