File indexing completed on 2024-04-06 12:30:52
0001 #include "SimPPS/PPSPixelDigiProducer/interface/RPixHitChargeConverter.h"
0002
0003 RPixHitChargeConverter::RPixHitChargeConverter(const edm::ParameterSet ¶ms,
0004 CLHEP::HepRandomEngine &eng,
0005 uint32_t det_id,
0006 const PPSPixelTopology &ppt)
0007 : det_id_(det_id) {
0008 verbosity_ = params.getParameter<int>("RPixVerbosity");
0009 theRPixChargeDivider = std::make_unique<RPixLinearChargeDivider>(params, eng, det_id);
0010 theRPixChargeCollectionDrifter = std::make_unique<RPixLinearChargeCollectionDrifter>(params, det_id, ppt);
0011 theRPixChargeShare = std::make_unique<RPixChargeShare>(params, det_id, ppt);
0012 }
0013
0014 std::map<unsigned short, double> RPixHitChargeConverter::processHit(const PSimHit &hit, const PPSPixelTopology &ppt) {
0015 std::vector<RPixEnergyDepositUnit> ions_along_path = theRPixChargeDivider->divide(hit);
0016 if (verbosity_)
0017 edm::LogInfo("PPS") << "RPixHitChargeConverter " << det_id_
0018 << " clouds no generated on the path=" << ions_along_path.size();
0019 return theRPixChargeShare->Share(theRPixChargeCollectionDrifter->Drift(ions_along_path), ppt);
0020 }