8#include <tracking/vxdHoughTracking/findlets/SVDHoughTracking.h>
9#include <tracking/vxdHoughTracking/findlets/RawTrackCandCleaner.icc.h>
10#include <tracking/vxdHoughTracking/utilities/SVDHoughTrackingHelpers.h>
11#include <tracking/spacePointCreation/SpacePointTrackCand.h>
12#include <tracking/trackFindingCDC/utilities/StringManipulation.h>
13#include <framework/logging/Logger.h>
14#include <framework/core/ModuleParamList.h>
17using namespace TrackFindingCDC;
18using namespace vxdHoughTracking;
45 moduleParamList->
getParameter<std::string>(
"relationFilter").setDefaultValue(
"angleAndTime");
46 moduleParamList->
getParameter<std::string>(
"twoHitFilter").setDefaultValue(
"twoHitVirtualIPQI");
47 moduleParamList->
getParameter<std::string>(
"threeHitFilter").setDefaultValue(
"qualityIndicator");
48 moduleParamList->
getParameter<std::string>(
"fourHitFilter").setDefaultValue(
"qualityIndicator");
49 moduleParamList->
getParameter<std::string>(
"fiveHitFilter").setDefaultValue(
"qualityIndicator");
51 moduleParamList->
addParameter(TrackFindingCDC::prefixed(prefix,
"useMultiHoughSpaceInterceptFinding"),
53 "Use Hough spaces working on a subset of hits (=true), or just one Hough space working on all hits at the same time (=false)?",
88 return ((a.getNHits() > b.getNHits()) or
89 (a.getNHits() == b.getNHits() and a.getQualityIndicator() > b.getQualityIndicator()));
The Module parameter list class.
Storage for (VXD) SpacePoint-based track candidates.
void addProcessingSignalListener(ProcessingSignalListener *psl)
Register a processing signal listener to be notified.
void beginEvent() override
Receive and dispatch signal for the start of a new event.
virtual void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix)
Forward prefixed parameters of this findlet to the module parameter list.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
void apply(std::vector< VXDHoughState > &hits, std::vector< std::vector< VXDHoughState * > > &rawTrackCandidates) override
Load in the prepared hits and create track candidates for further processing like hit filtering and f...
void apply(const std::vector< SpacePointTrackCand > &finalTracks) override
Function to call all the sub-findlets.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
void apply(std::vector< SpacePointTrackCand > &finishedResults, const std::vector< const SpacePoint * > &spacePoints) override
Store the finishey SpacePointTrackCands into RecoTracks and tag the SpacePoints.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
SpacePointLoaderAndPreparer m_spacePointLoaderAndPreparer
Findlets:
MultiHoughSpaceFastInterceptFinder m_multiHouthSpaceInterceptFinder
Hough Space intercept finder.
std::vector< VXDHoughState > m_vxdHoughStates
Vector containing the cached hit information.
RawTrackCandCleaner< VXDHoughState > m_rawTCCleaner
Raw track candidate cleaner.
std::vector< const SpacePoint * > m_spacePointVector
Container to share data between findlets.
SingleHoughSpaceFastInterceptFinder m_singleHouthSpaceInterceptFinder
Simple Hough Space intercept finder.
TrackCandidateOverlapResolver m_overlapResolver
Resolve hit overlaps in track candidates.
std::vector< SpacePointTrackCand > m_trackCandidates
A track candidate is a vector of SpacePoint, and in each event multiple track candidates will be crea...
SVDHoughTracking()
Constructor for adding the subfindlets.
void beginEvent() override
Clear the object pools.
std::vector< std::vector< VXDHoughState * > > m_rawTrackCandidates
Vector containing raw track candidates.
~SVDHoughTracking()
Default destructor.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
RecoTrackStorer m_recoTrackStorer
Store tracks as RecoTracks.
void apply() override
Function to call all the sub-findlets.
bool m_useMultiHoughSpaceInterceptFinding
Use the elaborate FastInterceptFinder2D with multiple Hough spaces (true) or the simple one with just...
ROIFinder m_roiFinder
ROIFinder findlet, calculates PXD intercepts and ROIs.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
void apply(std::vector< VXDHoughState > &hits, std::vector< std::vector< VXDHoughState * > > &rawTrackCandidates) override
Load in the prepared hits and create track candidates for further processing like hit filtering and f...
void apply(std::vector< const SpacePoint * > &spacePoints, std::vector< VXDHoughState > &hits) override
Load the SVD SpacePoints and create a VXDHoughState object for each hit.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
void apply(std::vector< SpacePointTrackCand > &spacePointTrackCandsToResolve) override
Reject bad SpacePointTrackCands and bad hits inside the remaining.
void exposeParameters(ModuleParamList *moduleParamList, const std::string &prefix) override
Expose the parameters of the sub findlets.
ModuleParam< T > & getParameter(const std::string &name) const
Returns a reference to a parameter.
void addParameter(const std::string &name, T ¶mVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module list.
Abstract base class for different kinds of events.