33 int numberOfTracks = 0;
34 DimensionParameters param;
46 const auto&
hits = hitBatch.second;
51 param.rangeBegin = hitRange.xBegin;
52 param.rangeEnd = hitRange.xEnd;
55 param.rangeBegin = hitRange.yBegin;
56 param.rangeEnd = hitRange.yEnd;
59 if ( xPartTracks.empty() && yPartTracks.empty() )
64 for (
const auto& xTrack : xPartTracks ) {
65 for (
const auto& yTrack : yPartTracks ) {
67 math::XYZPoint positionSigma( xTrack.getX0Sigma(), yTrack.getY0Sigma(), 0.5f*( hitRange.zEnd - hitRange.zBegin ) );
74 componentHits.emplace_back(
hit );
75 if ( componentHits.size() < validHitsNumber )
78 float mean_time = 0.f, time_sigma = 0.f;
79 bool valid_hits =
timeEval( componentHits, mean_time, time_sigma );
81 newTrack.
setT( mean_time );
89 return numberOfTracks;
std::vector< TotemTimingRecHit > HitVector
SpatialRange getHitSpatialRange(const HitVector &hits)
void push_back(const T &t)
void producePartialTracks(const HitVector &hits, const DimensionParameters ¶m, float(*getHitCenter)(const TotemTimingRecHit &), float(*getHitRangeWidth)(const TotemTimingRecHit &), void(*setTrackCenter)(TotemTimingLocalTrack &, float), void(*setTrackSigma)(TotemTimingLocalTrack &, float), TrackVector &result)
TotemTimingTrackRecognition(const edm::ParameterSet &iConfig)
void addHit(const TotemTimingRecHit &recHit) override
Add new hit to the set from which the tracks are reconstructed.
bool timeEval(const HitVector &hits, float &meanTime, float &timeSigma) const
void setTSigma(float t_sigma)
bool containsHit(const CTPPSTimingRecHit &recHit, float tolerance=0.1f, CheckDimension check=CheckDimension::all) const
std::vector< TotemTimingLocalTrack > TrackVector
void setPosition(const math::XYZPoint &pos0)
HitVectorMap hitVectorMap_
RecHit vectors that should be processed separately while reconstructing tracks.
XYZPointD XYZPoint
point in space with cartesian internal representation
static int position[264][3]
int produceTracks(edm::DetSet< TotemTimingLocalTrack > &tracks) override
Produces a collection of tracks for the current station, given its hits collection.
void setPositionSigma(const math::XYZPoint &pos0_sigma)
void setValid(bool valid)