33 for (
auto const& hitRef : hitRefs) {
34 const int hitidx = std::get<0>(hitRef);
35 const uint32_t
id = std::get<1>(hitRef);
48 DetId geoId =
BTLDetId(btlid.mtdSide(), btlid.mtdRR(), btlid.module() + boundRef * (btlid.modType() - 1), 0, 1);
51 if (thedet ==
nullptr) {
52 throw cms::Exception(
"BTLTileDeviceSim") <<
"GeographicalID: " << std::hex << geoId.
rawId() <<
" (" 53 << detId.rawId() <<
") is invalid!" <<
std::dec << std::endl;
59 Local3DPoint simscaled(0.1 * pentry.x(), 0.1 * pentry.y(), 0.1 * pentry.z());
62 const auto& thepixel = topo.
pixel(simscaled);
63 uint8_t row(thepixel.first),
col(thepixel.second);
65 if (btlid.row(topo.
nrows()) != row || btlid.column(topo.
nrows()) !=
col) {
67 <<
"BTLDetId (row,column): (" << btlid.row(topo.
nrows()) <<
',' << btlid.column(topo.
nrows())
68 <<
") is not equal to " 69 <<
"topology (row,column): (" << uint32_t(row) <<
',' << uint32_t(
col) <<
"), overriding to detid";
70 row = btlid.row(topo.
nrows());
90 (simHitIt->second).hit_info[0][0] += Npe;
93 if ((simHitIt->second).hit_info[1][0] == 0 || toa < (simHitIt->second).hit_info[1][0])
94 (simHitIt->second).hit_info[1][0] = toa;
const float LightCollTime_
virtual const Topology & topology() const
constexpr uint32_t rawId() const
get the raw id
const float LightCollEff_
int nrows() const override
Detector identifier base class for the MIP Timing Layer.
const MTDGeomDet * idToDet(DetId) const override
virtual const PixelTopology & specificTopology() const
std::pair< float, float > pixel(const LocalPoint &p) const override
LocalPoint pixelToModuleLocalPoint(const LocalPoint &plp, int row, int col) const
const float smearLightCollTime_
static constexpr std::array< int, 4 > kTypeBoundariesReference
float energyLoss() const
The energy deposit in the PSimHit, in ???.
Detector identifier class for the Barrel Timing Layer. The crystal count must start from 0...
const MTDGeometry * geom_
Local3DPoint entryPoint() const
Entry point in the local Det frame.