17 excludeSingleEdgeHits_( iConfig.getParameter<
bool>(
"excludeSingleEdgeHits" ) )
45 int numberOfTracks = 0;
46 DimensionParameters param;
55 const auto& oot = hitBatch.first;
56 const auto&
hits = hitBatch.second;
63 param.rangeBegin = hitRange.xBegin;
64 param.rangeEnd = hitRange.xEnd;
67 if ( xPartTracks.empty() )
70 const float yRangeCenter = 0.5f*( hitRange.yBegin + hitRange.yEnd );
71 const float zRangeCenter = 0.5f*( hitRange.zBegin + hitRange.zEnd );
72 const float ySigma = 0.5f*( hitRange.yEnd - hitRange.yBegin );
73 const float zSigma = 0.5f*( hitRange.zEnd - hitRange.zBegin );
75 for (
const auto& xTrack: xPartTracks ) {
77 math::XYZPoint positionSigma( xTrack.getX0Sigma(), ySigma, zSigma );
79 const int multipleHits = (
mhMap_.find(oot) !=
mhMap_.end() )
88 componentHits.emplace_back(
hit );
90 float mean_time = 0.f, time_sigma = 0.f;
91 bool valid_hits =
timeEval( componentHits, mean_time, time_sigma );
93 newTrack.
setT( mean_time );
100 return numberOfTracks;
std::vector< CTPPSDiamondRecHit > HitVector
SpatialRange getHitSpatialRange(const HitVector &hits)
void push_back(const T &t)
void producePartialTracks(const HitVector &hits, const DimensionParameters ¶m, float(*getHitCenter)(const CTPPSDiamondRecHit &), float(*getHitRangeWidth)(const CTPPSDiamondRecHit &), void(*setTrackCenter)(CTPPSDiamondLocalTrack &, float), void(*setTrackSigma)(CTPPSDiamondLocalTrack &, float), TrackVector &result)
Reconstructed hit in diamond detectors.
int produceTracks(edm::DetSet< CTPPSDiamondLocalTrack > &tracks) override
Produce a collection of tracks for the current station, given its hits collection.
virtual void clear()
Reset internal state of a class instance.
bool timeEval(const HitVector &hits, float &meanTime, float &timeSigma) const
void setTSigma(float t_sigma)
bool containsHit(const CTPPSDiamondRecHit &recHit, float tolerance=0.1) const
CTPPSDiamondTrackRecognition(const edm::ParameterSet &iConfig)
std::vector< CTPPSDiamondLocalTrack > 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]
void addHit(const CTPPSDiamondRecHit &recHit) override
Feed a new hit to the tracks recognition algorithm.
void clear() override
Reset internal state of a class instance.
bool excludeSingleEdgeHits_
std::unordered_map< int, int > mhMap_
void setPositionSigma(const math::XYZPoint &pos0_sigma)
void setValid(bool valid)