43 std::vector<uint32_t> c_nstrips;
44 std::vector<float> c_barycenter, c_variance, c_localdirx, c_localdiry, c_localdirz, c_localx, c_rhlocalx,
47 c_nstrips.push_back(clus.cluster->amplitudes().size());
50 const auto& trajState = clus.measurement.updatedState();
51 const auto trackDir = trajState.localDirection();
52 c_localdirx.push_back(trackDir.x());
53 c_localdiry.push_back(trackDir.y());
54 c_localdirz.push_back(trackDir.z());
55 const auto hit = clus.measurement.recHit()->hit();
56 const auto stripDet =
dynamic_cast<const StripGeomDetUnit*
>(tkGeom.idToDet(
hit->geographicalId()));
57 c_barycenter.push_back(stripDet->specificTopology().localPosition(clus.cluster->barycenter()).
x());
58 c_localx.push_back(stripDet->toLocal(trajState.globalPosition()).
x());
59 c_rhlocalx.push_back(
hit->localPosition().
x());
60 c_rhlocalxerr.push_back(
hit->localPositionError().xx());
64 addColumn(
table,
"localdirx", c_localdirx,
"x component of the local track direction");
65 addColumn(
table,
"localdiry", c_localdiry,
"y component of the local track direction");
66 addColumn(
table,
"localdirz", c_localdirz,
"z component of the local track direction");
67 addColumn(
table,
"barycenter", c_barycenter,
"Cluster barycenter (local x without corrections)");
70 addColumn(
table,
"rhlocalxerr", c_rhlocalxerr,
"RecHit local x uncertainty");
void setCluster(const SiStripCluster &cluster, int detId)
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
SiStripClusterInfo m_clusterInfo
static void addColumn(nanoaod::FlatTable *table, const std::string &name, VALUES &&values, const std::string &doc)
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > m_tkGeomToken