|
|
Go to the documentation of this file.
13 constexpr
float theRocWidth = 0.81 / 2;
14 constexpr
float theRocHeight = 0.81 / 2;
19 if (dynamic_cast<const PixelGeomDetUnit*>(gdet) ==
nullptr) {
20 throw MeasurementDetException(
"TkPixelMeasurementDet constructed with a GeomDet which is not a PixelGeomDetUnit");
52 auto oldSize =
result.size();
54 for (
auto&&
hit : allHits) {
55 std::pair<bool, double> diffEst = est.
estimate(stateOnThisDet, *
hit);
60 if (
result.size() > oldSize)
74 return std::make_shared<SiPixelRecHit>(
95 if (!
data.pixelData().handle()->data().empty()) {
96 begin = &(
data.pixelData().handle()->data().front());
106 int xminus = PMinus.
x();
107 int yminus = PMinus.y();
108 int xplus = PPlus.x() + 0.5f;
109 int yplus = PPlus.y() + 0.5f;
112 auto rightCluster = std::find_if(
118 for (
auto ci = detSet.
begin(); ci != rightCluster; ++ci) {
120 edm::LogError(
"IndexMisMatch") <<
"TkPixelMeasurementDet cannot create hit because of index mismatch.";
123 unsigned int index = ci - begin;
124 if (!
data.pixelClustersToSkip().empty() &&
index >=
data.pixelClustersToSkip().size()) {
125 edm::LogError(
"IndexMisMatch") <<
"TkPixelMeasurementDet cannot create hit because of index mismatch. i.e "
126 <<
index <<
" >= " <<
data.pixelClustersToSkip().size();
130 if (ci->maxPixelRow() < xminus)
133 if (ci->minPixelCol() > yplus)
135 if (ci->maxPixelCol() < yminus)
138 if (
data.pixelClustersToSkip().empty()
or (not
data.pixelClustersToSkip()[
index])) {
142 LogDebug(
"TkPixelMeasurementDet") <<
"skipping this cluster from last iteration on "
158 auto dx =
std::abs(broc.x() - lp.x()) - theRocWidth;
159 auto dy =
std::abs(broc.y() - lp.y()) - theRocHeight;
160 if ((
dx <= 0.
f) & (
dy <= 0.f))
162 if ((
dx *
dx < 9.
f * le.xx()) && (
dy *
dy < 9.
f * le.yy()))
166 if (badFEDChannelPositions ==
nullptr)
169 for (
auto const&
p : *badFEDChannelPositions) {
170 if (lp.x() > (
p.first.x() -
dx) && lp.x() < (
p.second.x() +
dx) && lp.y() > (
p.first.y() -
dy) &&
171 lp.y() < (
p.second.y() +
dy)) {
std::vector< LocalPoint > badRocPositions_
TrackingRecHit::ConstRecHitContainer RecHitContainer
LocalError positionError() const
const PixelGeomDetUnit & specificGeomDet() const
bool isEmpty(const PxMeasurementDetSet &data) const
Pixel cluster – collection of neighboring pixels above threshold.
std::shared_ptr< TrackingRecHit const > RecHitPointer
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
const PxMeasurementDetSet::BadFEDChannelPositions * getBadFEDChannelPositions(const MeasurementTrackerEvent &data) const
virtual HitReturnType estimate(const TrajectoryStateOnSurface &ts, const TrackingRecHit &hit) const =0
RecHitContainer recHits(const TrajectoryStateOnSurface &, const MeasurementTrackerEvent &dat) const override
bool measurements(const TrajectoryStateOnSurface &stateOnThisDet, const MeasurementEstimator &est, const MeasurementTrackerEvent &dat, TempMeasurements &result) const override
const LocalTrajectoryParameters & localParameters() const
DetId geographicalId() const
The label of this GeomDet.
LocalPoint localPosition() const
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
bool isActive(const MeasurementTrackerEvent &data) const override
Is this module active in reconstruction? It must be both 'setActiveThisEvent' and 'setActive'.
edm::Ref< typename HandleT::element_type, typename HandleT::element_type::value_type::value_type > makeRefTo(HandleT const &handle, const_iterator ci) const
bool hasBadComponents(const TrajectoryStateOnSurface &tsos, const MeasurementTrackerEvent &dat) const override
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
Log< level::Error, false > LogError
const PixelClusterParameterEstimator * cpe() const
constexpr uint32_t rawId() const
get the raw id
TrackingRecHit::ConstRecHitPointer theInactiveHit
RecHitContainer compHits(const TrajectoryStateOnSurface &, const MeasurementTrackerEvent &dat, float xl, float yl) const
TrackingRecHit::RecHitPointer buildRecHit(const SiPixelClusterRef &cluster, const LocalTrajectoryParameters <p) const
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
virtual ReturnType getParameters(const SiPixelCluster &cl, const GeomDetUnit &det) const =0
TkPixelMeasurementDet(const GeomDet *gdet, PxMeasurementConditionSet &conditionSet)
char data[epos_bytes_allocation]
Abs< T >::type abs(const T &t)
const GeomDet & fastGeomDet() const
const LocalTrajectoryError & localError() const
TrackingRecHit::ConstRecHitPointer theMissingHit