36 for (
auto const& hitRef: hitRefs) {
38 const int hitidx = std::get<0>(hitRef);
39 const uint32_t
id = std::get<1>(hitRef);
44 if ( detId.det()!=
DetId::Forward || detId.mtdSubDetector()!=1 )
continue;
50 DetId geoId =
BTLDetId(btlid.mtdSide(),btlid.mtdRR(),btlid.module()+boundRef*(btlid.modType()-1),0,1);
53 if( thedet ==
nullptr ) {
54 throw cms::Exception(
"BTLTileDeviceSim") <<
"GeographicalID: " << std::hex
56 <<
" (" << detId.rawId()<<
") is invalid!" <<
std::dec 63 Local3DPoint simscaled(0.1*pentry.x(),0.1*pentry.y(),0.1*pentry.z());
66 const auto& thepixel = topo.
pixel(simscaled);
67 uint8_t row(thepixel.first),
col(thepixel.second);
69 if( btlid.row(topo.
nrows()) != row || btlid.column(topo.
nrows()) !=
col ) {
71 <<
"BTLDetId (row,column): (" << btlid.row(topo.
nrows()) <<
',' << btlid.column(topo.
nrows()) <<
") is not equal to " 72 <<
"topology (row,column): (" << uint32_t(row) <<
',' << uint32_t(
col) <<
"), overriding to detid";
73 row = btlid.row(topo.
nrows());
94 (simHitIt->second).hit_info[0][0] += Npe;
97 if( (simHitIt->second).hit_info[1][0] == 0 ||
98 toa < (simHitIt->second).hit_info[1][0]
100 (simHitIt->second).hit_info[1][0] = toa;
const float LightCollTime_
virtual const Topology & topology() const
static constexpr std::array< int, 4 > kTypeBoundariesReference
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_
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.