Belle II Software  release-05-02-19
DATCONTrackingModule Class Reference

DATCONTrackingModule class. More...

#include <DATCONTrackingModule.h>

Inheritance diagram for DATCONTrackingModule:
Collaboration diagram for DATCONTrackingModule:

Public Types

enum  EModulePropFlags {
  c_Input = 1,
  c_Output = 2,
  c_ParallelProcessingCertified = 4,
  c_HistogramManager = 8,
  c_InternalSerializer = 16,
  c_TerminateInAllProcesses = 32,
  c_DontCollectStatistics = 64
}
 Each module can be tagged with property flags, which indicate certain features of the module. More...
 
typedef ModuleCondition::EAfterConditionPath EAfterConditionPath
 Forward the EAfterConditionPath definition from the ModuleCondition.
 

Public Member Functions

 DATCONTrackingModule ()
 Constructor. More...
 
virtual ~DATCONTrackingModule ()=default
 Standard Deconstructor.
 
virtual void initialize () override
 Initialize the module and check module parameters.
 
virtual void event () override
 Run tracking.
 
virtual void terminate () override
 Terminate the module.
 
void addParameter ()
 Add module parameter, put in separate function to have the Constructor clean and readable.
 
void prepareDATCONSVDSpacePoints ()
 Prepare the DATCONSVDSpacePoints for the Hough Trafo.
 
void prepareSVDSpacePoints ()
 Prepare the DATCONSVDSpacePoints for the Hough Trafo.
 
void houghTrafo2d (svdHitMap &mapClusters, bool u_side)
 Hough transformation function.
 
int fastInterceptFinder2d (houghMap &hits, bool u_side, TVector2 v1_s, TVector2 v2_s, TVector2 v4_s, unsigned int iterations, unsigned int maxIterations)
 Intercept Finder functions. More...
 
int slowInterceptFinder2d (houghMap &hits, bool u_side)
 FPGA-like intercept finder with all the sectors defined a priori, so no subdivision of sectors is needed. More...
 
void FindHoughSpaceCluster (bool u_side)
 Cluster finding in the Hough Space using a "depth first search" algorithm.
 
void DepthFirstSearch (bool u_side, int **ArrayOfActiveHoughSpaceSectors, int angleSectors, int vertSectors, int actualPositionX, int actualPositionY, std::vector< unsigned int > &mergedList)
 Depth First Search algorithm, compare with https://en.wikipedia.org/wiki/Depth-first_search (06. More...
 
bool layerFilter (bool *layer)
 Layer filter, checking for hits from different SVD layers.
 
void purifyTrackCandsList ()
 Purify track candidates by checking list of strip_id (specific id calculated in this module) More...
 
bool compareList (std::vector< unsigned int > &aList, std::vector< unsigned int > &bList)
 Compare strip_id lists / lists of counter variable.
 
void mergeIdList (std::vector< unsigned int > &mergedList, std::vector< unsigned int > &mergeme)
 Merge strip_id lists / lists of counter variables to combine large lists to smaller ones and thus purify track candidates and avoid (too) many fakes.
 
void trackCandMerger ()
 Track merger to merge DATCONTrackCand with similar properties and to avoid / reduce number of fakes. More...
 
void trackMerger ()
 Track merger to merge DATCONTrackCand with similar properties and to avoid / reduce number of fakes. More...
 
void findandcombine3d ()
 Find and Combine track candidates Combine found values of phi and r from u-side HS with found values of theta from v-side HS into track candidates. More...
 
void saveHitsToRecoTrack (std::vector< unsigned int > &idList, TVector3 momentum)
 Save Hits to RecoTrack. More...
 
virtual std::vector< std::string > getFileNames (__attribute__((unused)) bool outputFiles)
 Return a list of output filenames for this modules. More...
 
virtual void beginRun ()
 Called when entering a new run. More...
 
virtual void endRun ()
 This method is called if the current run ends. More...
 
const std::string & getName () const
 Returns the name of the module. More...
 
const std::string & getType () const
 Returns the type of the module (i.e. More...
 
const std::string & getPackage () const
 Returns the package this module is in.
 
const std::string & getDescription () const
 Returns the description of the module.
 
void setName (const std::string &name)
 Set the name of the module. More...
 
void setPropertyFlags (unsigned int propertyFlags)
 Sets the flags for the module properties. More...
 
LogConfiggetLogConfig ()
 Returns the log system configuration.
 
void setLogConfig (const LogConfig &logConfig)
 Set the log system configuration.
 
void setLogLevel (int logLevel)
 Configure the log level.
 
void setDebugLevel (int debugLevel)
 Configure the debug messaging level.
 
void setAbortLevel (int abortLevel)
 Configure the abort log level.
 
void setLogInfo (int logLevel, unsigned int logInfo)
 Configure the printed log information for the given level. More...
 
void if_value (const std::string &expression, const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 Add a condition to the module. More...
 
void if_false (const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 A simplified version to add a condition to the module. More...
 
void if_true (const std::shared_ptr< Path > &path, EAfterConditionPath afterConditionPath=EAfterConditionPath::c_End)
 A simplified version to set the condition of the module. More...
 
bool hasCondition () const
 Returns true if at least one condition was set for the module.
 
const ModuleConditiongetCondition () const
 Return a pointer to the first condition (or nullptr, if none was set)
 
const std::vector< ModuleCondition > & getAllConditions () const
 Return all set conditions for this module.
 
bool evalCondition () const
 If at least one condition was set, it is evaluated and true returned if at least one condition returns true. More...
 
std::shared_ptr< PathgetConditionPath () const
 Returns the path of the last true condition (if there is at least one, else reaturn a null pointer). More...
 
Module::EAfterConditionPath getAfterConditionPath () const
 What to do after the conditional path is finished. More...
 
std::vector< std::shared_ptr< Path > > getAllConditionPaths () const
 Return all condition paths currently set (no matter if the condition is true or not).
 
bool hasProperties (unsigned int propertyFlags) const
 Returns true if all specified property flags are available in this module. More...
 
bool hasUnsetForcedParams () const
 Returns true and prints error message if the module has unset parameters which the user has to set in the steering file.
 
const ModuleParamListgetParamList () const
 Return module param list.
 
template<typename T >
ModuleParam< T > & getParam (const std::string &name) const
 Returns a reference to a parameter. More...
 
bool hasReturnValue () const
 Return true if this module has a valid return value set.
 
int getReturnValue () const
 Return the return value set by this module. More...
 
std::shared_ptr< PathElementclone () const override
 Create an independent copy of this module. More...
 
std::shared_ptr< boost::python::list > getParamInfoListPython () const
 Returns a python list of all parameters. More...
 

Static Public Member Functions

static void exposePythonAPI ()
 Exposes methods of the Module class to Python.
 

Protected Member Functions

virtual void def_initialize ()
 Wrappers to make the methods without "def_" prefix callable from Python. More...
 
virtual void def_beginRun ()
 Wrapper method for the virtual function beginRun() that has the implementation to be used in a call from Python.
 
virtual void def_event ()
 Wrapper method for the virtual function event() that has the implementation to be used in a call from Python.
 
virtual void def_endRun ()
 This method can receive that the current run ends as a call from the Python side. More...
 
virtual void def_terminate ()
 Wrapper method for the virtual function terminate() that has the implementation to be used in a call from Python.
 
void setDescription (const std::string &description)
 Sets the description of the module. More...
 
void setType (const std::string &type)
 Set the module type. More...
 
template<typename T >
void addParam (const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
 Adds a new parameter to the module. More...
 
template<typename T >
void addParam (const std::string &name, T &paramVariable, const std::string &description)
 Adds a new enforced parameter to the module. More...
 
void setReturnValue (int value)
 Sets the return value for this module as integer. More...
 
void setReturnValue (bool value)
 Sets the return value for this module as bool. More...
 
void setParamList (const ModuleParamList &params)
 Replace existing parameter list.
 

Protected Attributes

std::string m_storeMCParticlesName
 Members holding module parameters: More...
 
std::string m_storeSVDSpacePointsName
 Name of the SVDSpacePoints array.
 
std::string m_storeDATCONSVDDigitsName
 Name of the DATCONSVDDigits array.
 
std::string m_storeDATCONSVDClusterName
 Name of the DATCONSVDSpacePoints array.
 
std::string m_storeDATCONSVDSpacePointsName
 Name of the DATCONSVDSpacePoints array.
 
std::string m_storeDATCONTracksName
 Name of the collection for the SVD Hough tracks.
 
std::string m_storeDATCONRecoTracksName
 Name of the RecoTrack array.
 
std::string m_storeRecoHitInformationName
 Name of the RecoHit StoreArray required for RecoTracks.
 
StoreArray< MCParticlestoreMCParticles
 MCParticles StoreArray.
 
StoreArray< SpacePointstoreSVDSpacePoints
 SVDSpacePoints StoreArray.
 
StoreArray< DATCONSVDDigitstoreDATCONSVDDigits
 DATCONSVDDigit StoreArray.
 
StoreArray< SVDClusterstoreDATCONSVDCluster
 DATCONSVDCluster StoreArray.
 
StoreArray< DATCONSVDSpacePointstoreDATCONSVDSpacePoints
 DATCONSVDSpacePoint StoreArray.
 
StoreArray< RecoHitInformationstoreRecoHitInformation
 RecoHitInformation StoreArray for DATCON Reco Hits.
 
StoreArray< RecoTrackstoreDATCONRecoTracks
 DATCONRecoTracks StoreArray.
 
StoreArray< DATCONTrackstoreDATCONTracks
 DATCONTracks StoreArray.
 
bool m_useDATCONSVDSpacePoints
 Use DATCONSVDSpacePoints.
 
bool m_useSVDSpacePoints
 Use SVDSpacePoints.
 
double m_trackCenterX
 Center of the tracks (our Hough Trafo requires (0, 0, 0). More...
 
double m_trackCenterY
 Center position in Y.
 
unsigned short m_minimumLines
 Minimum number of lines required for an active sector (default: 3)
 
int m_maxIterationsU
 Maximum number of iterations allowed for u-side (obsolete?) (default: 12)
 
int m_maxIterationsV
 Maximum number of iterations allowed for v-side (obsolete?) (default: 12)
 
bool m_independentSectors
 Use tracking with independent sectors in HS like it is possible to do on FPGA (with slowInterceptFinder2d) Independent means: number of sectors is not necessary equal to 2^n with n=1,2,3,... More...
 
int m_nAngleSectorsU
 Using independent sectors: Number of horizontal sectors for u-side (default: 256)
 
int m_nAngleSectorsV
 Using independent sectors: Number of horizontal sectors for v-side (default: 256)
 
int m_nVertSectorsU
 Using independent sectors: Number of vertical sectors for u-side (default: 256)
 
int m_nVertSectorsV
 Using independent sectors: Number of vertical sectors for v-side (default: 256)
 
double m_rectSizeV
 For fastInterceptFinder2d: vertical size of HS for v-side (default: 0.1)
 
double m_rectSizeU
 For fastInterceptFinder2d: vertical size of HS for u-side (default: 0.1)
 
bool m_usePhase2Simulation
 Use the simulation for phase 2 geometry and FPGA setup?
 
bool m_usePurifier
 Use purifying algortihm at all.
 
bool m_useHoughSpaceClustering
 Use FindHoughSpaceCluster algorithm to extract track information from the Hough Spaces?
 
int m_MinimumPhiHSClusterSize
 Minimum cluster size in the Phi HS.
 
int m_MaximumPhiHSClusterSize
 Maximum cluster size in the Phi HS.
 
int m_MaximumPhiHSClusterSizeX
 Maximum cluster size in horizontal direction in the Phi HS.
 
int m_MaximumPhiHSClusterSizeY
 Maximum cluster size in vertical direction in the Phi HS.
 
int m_MinimumThetaHSClusterSize
 Minimum cluster size of the Theta HS.
 
int m_MaximumThetaHSClusterSize
 Maximum cluster size in the Theta HS.
 
int m_MaximumThetaHSClusterSizeX
 Maximum cluster size in horizontal direction in the Theta HS.
 
int m_MaximumThetaHSClusterSizeY
 Maximum cluster size in vertical direction in the Theta HS.
 
int m_clusterSize
 Size of the current cluster.
 
int m_clusterCount
 Number of clusters in current event.
 
TVector2 m_clusterInitialPosition
 Initial position of cluster in HS sector coordinates.
 
TVector2 m_clusterCenterOfGravity
 Center of Gravity of current cluster.
 
bool m_useTrackCandMerger
 Use TrackMerger to merge found tracks (candidates) to avoid / reduce fakes.
 
bool m_useTrackCandMergerU
 Use TrackMerger for u-side tracks (candidates)
 
bool m_useTrackCandMergerV
 Use TrackMerger for v-side tracks (candidates)
 
double m_mergeThreshold
 Global track merger merging threshold.
 
double m_mergeThresholdU
 Merging threshold for u-side trackCandMerger.
 
double m_mergeThresholdV
 Merging threshold for v-side trackCandMerger.
 
bool m_useTrackMerger
 Use TrackMerger to merge found tracks (candidates) to avoid / reduce fakes.
 
double m_mergeThresholdPhi
 Merging threshold for phi trackMerger.
 
double m_mergeThresholdTheta
 Merging threshold for theta trackMerger.
 
svdHitMap uClusters
 Clusters. More...
 
svdHitMap vClusters
 SVD v-side clusters.
 
houghMap uHough
 Hough Map. More...
 
houghMap vHough
 v-side HoughMap
 
std::vector< DATCONHoughCanduHoughCand
 Hough Candidates. More...
 
std::vector< DATCONHoughCandvHoughCand
 v-side
 
std::vector< DATCONHoughSpaceClusterCanduHoughSpaceClusterCand
 u-side
 
std::vector< DATCONHoughSpaceClusterCandvHoughSpaceClusterCand
 v-side
 
std::vector< DATCONTrackCanduTrackCand
 Purified Hough Candidates. More...
 
std::vector< DATCONTrackCandvTrackCand
 v-side
 
std::vector< DATCONTrackDATCONTracks
 DATCON Track.
 
std::vector< bool > activeSectorVectorPhi
 Vector of bools containing information about the active sectors of the Phi Hough Space in a 1-D representation.
 
std::vector< bool > activeSectorVectorTheta
 Analogue vector for the Theta Hough Space.
 
int ** ArrayOfActiveSectorsPhiHS
 "2D-Array" of the sectors of the Phi Hough Space containing information whether or not a sector is "active", meaning it is at crossed by at least three rising curves of three different layers.
 
int ** ArrayOfActiveSectorsThetaHS
 Analogue array for the Theta Hough Space.
 

Private Member Functions

std::list< ModulePtrgetModules () const override
 no submodules, return empty list
 
std::string getPathString () const override
 return the module name.
 
void setParamPython (const std::string &name, const boost::python::object &pyObj)
 Implements a method for setting boost::python objects. More...
 
void setParamPythonDict (const boost::python::dict &dictionary)
 Implements a method for reading the parameter values from a boost::python dictionary. More...
 

Private Attributes

std::string m_name
 The name of the module, saved as a string (user-modifiable)
 
std::string m_type
 The type of the module, saved as a string.
 
std::string m_package
 Package this module is found in (may be empty).
 
std::string m_description
 The description of the module.
 
unsigned int m_propertyFlags
 The properties of the module as bitwise or (with |) of EModulePropFlags.
 
LogConfig m_logConfig
 The log system configuration of the module.
 
ModuleParamList m_moduleParamList
 List storing and managing all parameter of the module.
 
bool m_hasReturnValue
 True, if the return value is set.
 
int m_returnValue
 The return value.
 
std::vector< ModuleConditionm_conditions
 Module condition, only non-null if set.
 

Detailed Description

DATCONTrackingModule class.

Definition at line 79 of file DATCONTrackingModule.h.

Member Enumeration Documentation

◆ EModulePropFlags

enum EModulePropFlags
inherited

Each module can be tagged with property flags, which indicate certain features of the module.

Enumerator
c_Input 

This module is an input module (reads data).

c_Output 

This module is an output module (writes data).

c_ParallelProcessingCertified 

This module can be run in parallel processing mode safely (All I/O must be done through the data store, in particular, the module must not write any files.)

c_HistogramManager 

This module is used to manage histograms accumulated by other modules.

c_InternalSerializer 

This module is an internal serializer/deserializer for parallel processing.

c_TerminateInAllProcesses 

When using parallel processing, call this module's terminate() function in all processes().

This will also ensure that there is exactly one process (single-core if no parallel modules found) or at least one input, one main and one output process.

c_DontCollectStatistics 

No statistics is collected for this module.

Definition at line 79 of file Module.h.

Constructor & Destructor Documentation

◆ DATCONTrackingModule()

Constructor.


Definition at line 25 of file DATCONTrackingModule.cc.

25  : Module()
26 {
27  //Set module properties
28  setDescription("DATCON: Data Acquisition Tracking Concentrator Online Node \n"
29  "Algorithm for online data reduction in the PXD. \n"
30  "DATCON takes SVD hits as input and performs track reconstruction based on these data. \n"
31  "The tracks are extrapolated from the origin in the x-y-plane to the PXD sensors. \n"
32  "Around each extrapolated hit (called Most Probable Hit, MPH), a Region of Interest (ROI) is created."
33  "The data of the ROIs (namely two opposing corners) are sent to the \n"
34  "Online Selector Node (ONSEN) which also receives ROIs of the Higher Level Trigger (HLT). \n"
35  "This C++ Implementation of DATCON is the development environment, the algorithms will later \n"
36  "be transferred to FPGA, as DATCON is a hardware based online data reduction system.");
38 
39  addParameter();
40 
41 }

Member Function Documentation

◆ beginRun()

virtual void beginRun ( )
inlinevirtualinherited

Called when entering a new run.

Called at the beginning of each run, the method gives you the chance to change run dependent constants like alignment parameters, etc.

This method can be implemented by subclasses.

Reimplemented in DQMHistAnalysisPXDTrackChargeModule, DQMHistOutputToEPICSModule, DQMHistInjectionModule, DQMHistAnalysisRooFitExampleModule, DQMHistAnalysisPXDCMModule, DQMHistAnalysisPXDReductionModule, DQMHistAnalysisPXDChargeModule, DQMHistAnalysisPXDDAQModule, DQMHistAnalysisPXDEffModule, DQMHistAnalysisPXDInjectionModule, DQMHistAnalysisTrackingModule, PXDDigitizerModule, ECLDQMInjectionModule, PXDGatedModeDQMModule, PXDDAQDQMModule, PXDInjectionDQMModule, PXDBgTupleProducerModule, PXDMCBgTupleProducerModule, DQMHistAnalysisSVDDoseModule, SVDDQMInjectionModule, PXDDQMEfficiencySelftrackModule, DQMHistComparitorModule, PXDDQMEfficiencyModule, PyModule, PXDGatedDHCDQMModule, SVDDQMDoseModule, PXDROIFinderAnalysisModule, AlignDQMModule, SVDDQMExpressRecoModule, DQMHistAnalysisInputRootFileModule, SVDDQMClustersOnTrackModule, SVDUnpackerDQMModule, TrackDQMModule, PXDTrackClusterDQMModule, PXDRawDQMModule, PXDclusterFilterModule, PXDdigiFilterModule, DQMHistAnalysisPXDERModule, PXDDQMCorrModule, PXDROIDQMModule, PXDDQMExpressRecoModule, DelayDQMModule, PXDDQMClustersModule, VXDDQMExpressRecoModule, vxdDigitMaskingModule, PXDRawDQMCorrModule, DAQMonitorModule, DQMHistAnalysisIPModule, DQMHistAnalysisEpicsExampleModule, DQMHistAnalysisPXDFitsModule, DQMHistAnalysisExampleFlagsModule, V0ObjectsDQMModule, TRGCDCT3DUnpackerModule, TRGCDCTSFUnpackerModule, TRGGRLUnpackerModule, TRGCDCETFUnpackerModule, MaterialScanModule, TOPUnpackerModule, B2BIIConvertMdstModule, ECLWaveformFitModule, FindletModule< AFindlet >, FindletModule< FacetCreator >, FindletModule< TrackFinderAutomaton >, FindletModule< CKFToCDCFromEclFindlet >, FindletModule< CKFToSVDSeedFindlet >, FindletModule< CKFToCDCFindlet >, FindletModule< AxialTrackCreatorMCTruth >, FindletModule< AxialStraightTrackFinder >, FindletModule< SegmentLinker >, FindletModule< TrackCreatorSegmentTripleAutomaton >, FindletModule< TrackCreatorSegmentPairAutomaton >, FindletModule< SegmentCreatorFacetAutomaton >, FindletModule< SegmentOrienter >, FindletModule< SegmentFinderFacetAutomaton >, FindletModule< CKFToSVDFindlet >, FindletModule< TrackFinderSegmentTripleAutomaton >, FindletModule< TrackRejecter >, FindletModule< SegmentCreatorMCTruth >, FindletModule< TrackFinderCosmics >, FindletModule< SuperClusterCreator >, FindletModule< HitBasedT0Extractor >, FindletModule< AsicBackgroundLibraryCreator >, FindletModule< TrackExporter >, FindletModule< ClusterPreparer >, FindletModule< CosmicsTrackMergerFindlet >, FindletModule< AxialTrackFinderHough >, FindletModule< TrackFinderSegmentPairAutomaton >, FindletModule< TrackLinker >, FindletModule< TrackOrienter >, FindletModule< TrackFinder >, FindletModule< AxialTrackFinderLegendre >, FindletModule< AxialTrackCreatorSegmentHough >, FindletModule< MonopoleAxialTrackFinderLegendre >, FindletModule< ClusterRefiner< BridgingWireHitRelationFilter > >, FindletModule< SegmentPairCreator >, FindletModule< HitReclaimer >, FindletModule< TrackQualityEstimator >, FindletModule< CKFToPXDFindlet >, FindletModule< StereoHitFinder >, FindletModule< TrackCreatorSingleSegments >, FindletModule< TrackFlightTimeAdjuster >, FindletModule< SegmentFitter >, FindletModule< SegmentRejecter >, FindletModule< WireHitPreparer >, FindletModule< SegmentTripleCreator >, FindletModule< SegmentTrackCombiner >, FindletModule< MCVXDCDCTrackMergerFindlet >, FindletModule< MonopoleStereoHitFinder >, FindletModule< TrackCombiner >, FindletModule< AxialSegmentPairCreator >, FindletModule< WireHitBackgroundDetector >, FindletModule< ClusterBackgroundDetector >, FindletModule< CDCTrackingEventLevelMdstInfoFillerFindlet >, FindletModule< MonopoleStereoHitFinderQuadratic >, FindletModule< TrackQualityAsserter >, FindletModule< WireHitCreator >, SVDBackgroundModule, TOPTimeBaseCalibratorModule, TOPTBCComparatorModule, B2BIIFixMdstModule, ECLChargedPIDModule, SVDDigitizerModule, ARICHNtupleModule, ECLDigitizerModule, BeamBkgTagSetterModule, PXDBackgroundModule, ParticleKinematicFitterModule, ECLShowerShapeModule, TOPGainEfficiencyCalculatorModule, SoftwareTriggerModule, ChargedPidMVAModule, ChargedPidMVAMulticlassModule, KLMClustersReconstructorModule, OpticalGunModule, SegmentNetworkProducerModule, TagVertexModule, KLMDQMModule, CDCDedxValidationModule, TOPDQMModule, CDCDQMModule, TOPDigitizerModule, TOPLaserHitSelectorModule, DQMHistAnalysisKLMModule, BKLMDigitAnalyzerModule, TOPModuleT0CalibratorModule, DQMHistAnalysisTRGGDLModule, GearboxModule, KLMUnpackerModule, TOPChannelT0CalibratorModule, TOPCommonT0CalibratorModule, ParticleVertexFitterModule, ECLCRFinderModule, KLMReconstructorModule, SVDUnpackerModule, TOPRawDigitConverterModule, DQMHistAnalysisCDCMonObjModule, ECLDigitizerPureCsIModule, ECLLocalRunCalibratorModule, KLMDigitizerModule, CDCCRTestModule, EKLMDataCheckerModule, TOPReconstructorModule, TrackFinderVXDBasicPathFinderModule, TrackFinderVXDCellOMatModule, ECLDataAnalysisModule, KLMPackerModule, FullSimModule, TOPChannelMaskerModule, TRGGDLUnpackerModule, HLTDQM2ZMQModule, ECLShowerCorrectorModule, MdstPIDModule, SVDCoGTimeEstimatorModule, ARICHDigitizerModule, ARICHDQMModule, BelleMCOutputModule, CsIDigitizerModule, DQMHistAnalysisARICHModule, ECLDQMModule, TOPAlignerModule, ARICHFillHitsModule, ARICHPackerModule, ARICHReconstructorModule, BeamBkgHitRateMonitorModule, BeamBkgMixerModule, CDCCosmicAnalysisModule, CDCUnpackerModule, ECLSplitterN1Module, PXDPerformanceModule, TOPPDFCheckerModule, ARICHRelateModule, CsIStudyModule, CDCPackerModule, DQMHistAnalysisMiraBelleModule, ECLDigitCalibratorModule, ECLDQMEXTENDEDModule, TOPPDFDebuggerModule, ARICHUnpackerModule, BKLMSimHistogrammerModule, SVDROIFinderAnalysisModule, VXDTFTrainingDataCollectorModule, ARICHMCParticlesModule, ARICHRateCalModule, TOPBackgroundModule, TOPTimeRecalibratorModule, TrackFinderMCTruthRecoTracksModule, ReprocessorModule, ECLChargedPIDDataAnalysisModule, ECLChargedPIDDataAnalysisValidationModule, EclDisplayModule, EvtGenDecayModule, EKLMADCModule, SVDDQMHitTimeModule, TOPDoublePulseGeneratorModule, SVDROIFinderModule, TRGCDCT3DConverterModule, TRGGRLMatchModule, BGOverlayExecutorModule, DQMHistAnalysisECLModule, ECLLocalMaximumFinderModule, SoftwareTriggerHLTDQMModule, SVDPackerModule, TOPBunchFinderModule, VXDSimpleClusterizerModule, ARICHRawUnpackerModule, NtuplePhase1_v6Module, TpcDigitizerModule, ExportGeometryModule, KLMClusterEfficiencyModule, CDCDedxDQMModule, SVDLocalCalibrationsMonitorModule, SVDPerformanceModule, TOPCalPulseGeneratorModule, TOPNtupleModule, TOPPackerModule, TOPWaveformFeatureExtractorModule, ExtModule, MCTrackCandClassifierModule, MuidModule, SPTCmomentumSeedRetrieverModule, TrackFinderVXDAnalizerModule, TRGTOPDQMModule, BeamBkgGeneratorModule, DQMHistAnalysisInputPVSrvModule, ECLClusterPSDModule, EventInfoPrinterModule, BKLMTrackingModule, KLMExpertModule, SVDOccupancyAnalysisModule, TOPInterimFENtupleModule, TOPMCTrackMakerModule, BGOverlayInputModule, CDCRecoTrackFilterModule, ECLBackgroundModule, EvtGenInputModule, OverrideGenerationFlagsModule, MCMatcherKLMClustersModule, PIDNtupleModule, SVDDataFormatCheckModule, SPTCvirtualIPRemoverModule, HitXPModule, arichBtestModule, BgoStudyModule, CsiStudy_v2Module, FANGSDigitizerModule, MicrotpcStudyModule, PlumeDigitizerModule, DQMHistAnalysisARICHMonObjModule, PXDClustersFromTracksModule, EventT0DQMModule, TOPXTalkChargeShareSetterModule, PXDROIFinderModule, VXDQualityEstimatorMVAModule, AnalysisPhase1StudyModule, DosiStudyModule, He3tubeStudyModule, ECLCovarianceMatrixModule, ECLFinalizerModule, ECLSplitterN2Module, KKGenInputModule, BKLMAnaModule, SVDLocalCalibrationsCheckModule, SVDClusterEvaluationTrueInfoModule, TOPTriggerDigitizerModule, TrackingPerformanceEvaluationModule, SecMapTrainerVXDTFModule, TRGECLRawdataAnalysisModule, TRGTOPUnpackerModule, BgoDigitizerModule, CsiDigitizer_v2Module, DosiDigitizerModule, TPCStudyModule, PinDigitizerModule, ECLShowerCalibratorModule, ECLUnpackerModule, MVAExpertModule, MVAMultipleExpertsModule, SVDLatencyCalibrationModule, SVDB4CommissioningPlotsModule, SVDClusterEvaluationModule, EffPlotsModule, SecMapTrainerBaseModule, He3DigitizerModule, DQMHistAnalysisMonObjModule, DQMHistSnapshotsModule, MCMatcherECLClustersModule, KlongValidationModule, TOPCosmicT0FinderModule, TrackQualityEstimatorMVAModule, BeamabortStudyModule, ClawStudyModule, ClawsStudyModule, PindiodeStudyModule, QcsmonitorStudyModule, DQMHistAnalysisCDCDedxModule, DQMHistAnalysisHLTMonObjModule, IPDQMExpressRecoModule, PXDRawDQMChipsModule, SVDClusterCalibrationsMonitorModule, SVDMissingAPVsClusterCreatorModule, SectorMapBootstrapModule, CurlTaggerModule, BeamDigitizerModule, ECLPackerModule, EventLimiterModule, RandomBarrierModule, V0findingPerformanceEvaluationModule, DQMHistDeltaHistoModule, StatisticsSummaryModule, MVAPrototypeModule, DataWriterModule, SVDClusterFilterModule, SVDMaxStripTTreeModule, SVDShaperDigitsFromTracksModule, SVD3SamplesEmulatorModule, QualityEstimatorVXDModule, VXDQETrainingDataCollectorModule, MCMatcherTRGECLModule, TRGGDLModule, EventKinematicsModule, ClawDigitizerModule, ClawsDigitizerModule, ECLHitDebugModule, SubEventModule, SVDCoGTimeCalibrationsMonitorModule, SVDHotStripFinderModule, TOPLaserCalibratorModule, BeamSpotMonitorModule, TrackQETrainingDataCollectorModule, CDCTriggerNeuroDQMModule, TRGECLModule, FANGSStudyModule, QcsmonitorDigitizerModule, DQMHistAnalysisTOPModule, TOPChannelT0MCModule, B2BIIConvertBeamParamsModule, ProgressModule, TRGECLFAMModule, B2BIIMdstInputModule, CsiModule, CreateFieldMapModule, TRGGRLModule, DQMHistAnalysisSVDOnMiraBelleModule, Convert2RawDetModule, TRGGRLProjectsModule, TRGCDCModule, DQMHistAnalysisOutputMonObjModule, CosmicsAlignmentValidationModule, TRGCDCTSStreamModule, TRGGDLDQMModule, VXDMisalignmentModule, TreeFitterModule, DQMHistAnalysisInputModule, SwitchDataStoreModule, TRGECLQAMModule, TRGECLTimingCalModule, IoVDependentConditionModule, StatisticsTimingHLTDQMModule, PhysicsObjectsMiraBelleModule, KLMTriggerModule, cdcDQM7Module, DQMHistAnalysisInputSrvModule, SeqRootOutputModule, DQMHistAnalysisEventT0Module, DQMHistAnalysisSVDGeneralModule, PhysicsObjectsMiraBelleDst2Module, PhysicsObjectsMiraBelleDstModule, HistoModule, TxModule, TRGGRLDQMModule, DQMHistAnalysisOutputNSMModule, DQMHistAnalysisPlotOnlyModule, DQMHistAnalysisSVDEfficiencyModule, RxModule, svdDumpModule, B2BIIMCParticlesMonitorModule, DQMHistAnalysisExampleModule, DQMHistAnalysisOutputRelayMsgModule, DQMHistAnalysisOutputFileModule, MCV0MatcherModule, TRGECLDQMModule, DQMHistAnalysisOutputModule, HistoManagerModule, SeqRootInputModule, TRGCDCT2DDQMModule, TRGCDCT3DDQMModule, TRGGDLSummaryModule, PhysicsObjectsDQMModule, TRGCDCTSFDQMModule, TRGGDLDSTModule, CalibrationCollectorModule, DQMHistAnalysisHLTModule, CDCTriggerUnpackerModule, ARICHBackgroundModule, TRGECLUnpackerModule, EvReductionModule, Raw2DsModule, RawInputModule, StorageDeserializerModule, BeamabortModule, BgoModule, CaveModule, ClawModule, CLAWSModule, DosiModule, FANGSModule, He3tubeModule, MicrotpcModule, Ph1bpipeModule, Ph1sustrModule, PindiodeModule, PlumeModule, QcsmonitorModule, SrsensorModule, SerializerModule, FastRbuf2DsModule, Ds2SampleModule, DeSerializerPXDModule, Rbuf2RbufModule, Rbuf2DsModule, TxSocketModule, DqmHistoManagerModule, Ds2RawModule, Ds2RawFileModule, Ds2RbufModule, StorageSerializerModule, GetEventFromSocketModule, ReceiveEventModule, ElapsedTimeModule, GenRawSendModule, MonitorDataCOPPERModule, RxSocketModule, CertifyParallelModule, SeqRootMergerModule, DAQPerfModule, MonitorDataModule, TrackAnaModule, and PartialSeqRootReaderModule.

Definition at line 149 of file Module.h.

◆ clone()

std::shared_ptr< PathElement > clone ( ) const
overridevirtualinherited

Create an independent copy of this module.

Note that parameters are shared, so changing them on a cloned module will also affect the original module.

Implements PathElement.

Definition at line 181 of file Module.cc.

◆ def_endRun()

virtual void def_endRun ( )
inlineprotectedvirtualinherited

This method can receive that the current run ends as a call from the Python side.

For regular C++-Modules that forwards the call to the regular endRun() method.

Reimplemented in PyModule.

Definition at line 441 of file Module.h.

◆ def_initialize()

virtual void def_initialize ( )
inlineprotectedvirtualinherited

Wrappers to make the methods without "def_" prefix callable from Python.

Overridden in PyModule. Wrapper method for the virtual function initialize() that has the implementation to be used in a call from Python.

Reimplemented in PyModule.

Definition at line 422 of file Module.h.

◆ DepthFirstSearch()

void DepthFirstSearch ( bool  u_side,
int **  ArrayOfActiveHoughSpaceSectors,
int  angleSectors,
int  vertSectors,
int  actualPositionX,
int  actualPositionY,
std::vector< unsigned int > &  mergedList 
)

Depth First Search algorithm, compare with https://en.wikipedia.org/wiki/Depth-first_search (06.

May 2018) https://en.wikipedia.org/wiki/Connected_component_(graph_theory) (06. May 2018)

Definition at line 102 of file DATCONTrackingHoughSpaceClusterFinder.cc.

104 {
105  vector<unsigned int> mergeMeIDList;
106  int maximumClusterSize;
107  int maximumClusterSizeX;
108  int maximumClusterSizeY;
109  vector<DATCONHoughSpaceClusterCand> HoughSpaceClusterCandCopy;
110  TVector2 CandidateCoordinates;
111 
112  if (uSide) {
113  HoughSpaceClusterCandCopy = uHoughSpaceClusterCand;
114  maximumClusterSize = m_MaximumPhiHSClusterSize;
115  maximumClusterSizeX = m_MaximumPhiHSClusterSizeX;
116  maximumClusterSizeY = m_MaximumPhiHSClusterSizeY;
117  } else {
118  HoughSpaceClusterCandCopy = vHoughSpaceClusterCand;
119  maximumClusterSize = m_MaximumThetaHSClusterSize;
120  maximumClusterSizeX = m_MaximumThetaHSClusterSizeX;
121  maximumClusterSizeY = m_MaximumThetaHSClusterSizeY;
122  }
123 
124  ArrayOfActiveHoughSpaceSectors[actualPositionY][actualPositionX] = m_clusterCount;
125  for (int k = actualPositionY; k >= actualPositionY - 1; k--) {
126  for (int l = actualPositionX; l <= actualPositionX + 1; l++) {
127  if (k >= 0 && k < vertSectors && l >= 0 && l < angleSectors) {
128  if (ArrayOfActiveHoughSpaceSectors[k][l] == -1) {
129  for (auto it = HoughSpaceClusterCandCopy.begin(); it != HoughSpaceClusterCandCopy.end(); it++) {
130  mergeMeIDList = it->getIdList();
131  CandidateCoordinates = it->getCoord();
132  int j = (int)CandidateCoordinates.X();
133  int i = (int)CandidateCoordinates.Y();
134  if (j == l && i == k) {
135  break;
136  }
137  }
138  mergeIdList(mergedList, mergeMeIDList);
139 
140  m_clusterCenterOfGravity += TVector2(l, k);
141  m_clusterSize++;
142  if (m_clusterSize >= maximumClusterSize || abs((int)m_clusterInitialPosition.X() - actualPositionX) >= maximumClusterSizeX
143  || abs((int)m_clusterInitialPosition.Y() - actualPositionY) >= maximumClusterSizeY) {
144  return;
145  }
146  DepthFirstSearch(uSide, ArrayOfActiveHoughSpaceSectors, angleSectors, vertSectors, l, k, mergedList);
147  }
148  }
149  }
150  }
151 }

◆ endRun()

virtual void endRun ( )
inlinevirtualinherited

This method is called if the current run ends.

Use this method to store information, which should be aggregated over one run.

This method can be implemented by subclasses.

Reimplemented in DQMHistAnalysisPXDTrackChargeModule, DQMHistOutputToEPICSModule, DQMHistAnalysisRooFitExampleModule, DQMHistAnalysisPXDChargeModule, DQMHistAnalysisSVDDoseModule, PyModule, DQMHistComparitorModule, TrackSetEvaluatorHopfieldNNDEVModule, DQMHistAnalysisInputRootFileModule, AlignDQMModule, SVDUnpackerDQMModule, DQMHistAnalysisPXDERModule, vxdDigitMaskingModule, DQMHistAnalysisEpicsExampleModule, DQMHistAnalysisPXDFitsModule, DQMHistAnalysisExampleFlagsModule, TRGCDCT3DUnpackerModule, TRGCDCTSFUnpackerModule, TRGGRLUnpackerModule, TRGCDCETFUnpackerModule, TOPUnpackerModule, FindletModule< AFindlet >, FindletModule< FacetCreator >, FindletModule< TrackFinderAutomaton >, FindletModule< CKFToCDCFromEclFindlet >, FindletModule< CKFToSVDSeedFindlet >, FindletModule< CKFToCDCFindlet >, FindletModule< AxialTrackCreatorMCTruth >, FindletModule< AxialStraightTrackFinder >, FindletModule< SegmentLinker >, FindletModule< TrackCreatorSegmentTripleAutomaton >, FindletModule< TrackCreatorSegmentPairAutomaton >, FindletModule< SegmentCreatorFacetAutomaton >, FindletModule< SegmentOrienter >, FindletModule< SegmentFinderFacetAutomaton >, FindletModule< CKFToSVDFindlet >, FindletModule< TrackFinderSegmentTripleAutomaton >, FindletModule< TrackRejecter >, FindletModule< SegmentCreatorMCTruth >, FindletModule< TrackFinderCosmics >, FindletModule< SuperClusterCreator >, FindletModule< HitBasedT0Extractor >, FindletModule< AsicBackgroundLibraryCreator >, FindletModule< TrackExporter >, FindletModule< ClusterPreparer >, FindletModule< CosmicsTrackMergerFindlet >, FindletModule< AxialTrackFinderHough >, FindletModule< TrackFinderSegmentPairAutomaton >, FindletModule< TrackLinker >, FindletModule< TrackOrienter >, FindletModule< TrackFinder >, FindletModule< AxialTrackFinderLegendre >, FindletModule< AxialTrackCreatorSegmentHough >, FindletModule< MonopoleAxialTrackFinderLegendre >, FindletModule< ClusterRefiner< BridgingWireHitRelationFilter > >, FindletModule< SegmentPairCreator >, FindletModule< HitReclaimer >, FindletModule< TrackQualityEstimator >, FindletModule< CKFToPXDFindlet >, FindletModule< StereoHitFinder >, FindletModule< TrackCreatorSingleSegments >, FindletModule< TrackFlightTimeAdjuster >, FindletModule< SegmentFitter >, FindletModule< SegmentRejecter >, FindletModule< WireHitPreparer >, FindletModule< SegmentTripleCreator >, FindletModule< SegmentTrackCombiner >, FindletModule< MCVXDCDCTrackMergerFindlet >, FindletModule< MonopoleStereoHitFinder >, FindletModule< TrackCombiner >, FindletModule< AxialSegmentPairCreator >, FindletModule< WireHitBackgroundDetector >, FindletModule< ClusterBackgroundDetector >, FindletModule< CDCTrackingEventLevelMdstInfoFillerFindlet >, FindletModule< MonopoleStereoHitFinderQuadratic >, FindletModule< TrackQualityAsserter >, FindletModule< WireHitCreator >, ECLWaveformFitModule, B2BIIConvertMdstModule, TOPTimeBaseCalibratorModule, TOPTBCComparatorModule, ECLChargedPIDModule, SVDBackgroundModule, ARICHNtupleModule, ECLDigitizerModule, BeamBkgTagSetterModule, TOPGainEfficiencyCalculatorModule, ECLShowerShapeModule, KLMClustersReconstructorModule, OpticalGunModule, ParticleKinematicFitterModule, PXDBackgroundModule, CDCDedxValidationModule, ARICHDigitizerModule, KLMDQMModule, TOPDQMModule, CDCDQMModule, TOPLaserHitSelectorModule, TOPModuleT0CalibratorModule, DQMHistAnalysisKLMModule, DQMHistAnalysisTRGGDLModule, BKLMDigitAnalyzerModule, TOPChannelT0CalibratorModule, TOPCommonT0CalibratorModule, KLMUnpackerModule, TOPRawDigitConverterModule, TOPReconstructorModule, ARICHFillHitsModule, DQMHistAnalysisCDCMonObjModule, KLMReconstructorModule, CDCCRTestModule, KLMDigitizerModule, ECLDigitizerPureCsIModule, EKLMDataCheckerModule, ARICHReconstructorModule, ECLLocalRunCalibratorModule, KLMPackerModule, MdstPIDModule, FullSimModule, ARICHDQMModule, CDCUnpackerModule, DQMHistAnalysisARICHModule, ECLCRFinderModule, TOPAlignerModule, TOPPDFDebuggerModule, ARICHPackerModule, BelleMCOutputModule, BeamBkgMixerModule, CDCPackerModule, TOPBackgroundModule, TOPPDFCheckerModule, ARICHRelateModule, BeamBkgHitRateMonitorModule, CsIDigitizerModule, DQMHistAnalysisMiraBelleModule, ARICHUnpackerModule, ARICHMCParticlesModule, ARICHRateCalModule, CDCCosmicAnalysisModule, ECLShowerCorrectorModule, SVDCoGTimeEstimatorModule, SVDUnpackerModule, SVDROIFinderAnalysisModule, ECLDataAnalysisModule, EclDisplayModule, TOPDoublePulseGeneratorModule, TOPWaveformQualityPlotterModule, BGOverlayExecutorModule, ECLChargedPIDDataAnalysisValidationModule, ECLDigitCalibratorModule, ECLSplitterN1Module, EvtGenDecayModule, EKLMADCModule, SVDROIFinderModule, TRGGDLUnpackerModule, ARICHRawUnpackerModule, NtuplePhase1_v6Module, ECLDQMModule, TOPCalPulseGeneratorModule, TOPNtupleModule, TOPPackerModule, TOPWaveformFeatureExtractorModule, TrackFinderMCTruthRecoTracksModule, VXDTFTrainingDataCollectorModule, BeamBkgGeneratorModule, EventInfoPrinterModule, BKLMSimHistogrammerModule, KLMClusterEfficiencyModule, PXDPerformanceModule, TOPInterimFENtupleModule, TOPMCTrackMakerModule, VXDSimpleClusterizerModule, BGOverlayInputModule, TpcDigitizerModule, ECLDQMEXTENDEDModule, PIDNtupleModule, SPTCvirtualIPRemoverModule, arichBtestModule, ReprocessorModule, CsIStudyModule, ECLChargedPIDDataAnalysisModule, OverrideGenerationFlagsModule, MCMatcherKLMClustersModule, PrintDataModule, SPTCmomentumSeedRetrieverModule, TrackFinderVXDAnalizerModule, TRGGRLMatchModule, DQMHistAnalysisARICHMonObjModule, ECLLocalMaximumFinderModule, CDCDedxDQMModule, FANGSDigitizerModule, CDCRecoTrackFilterModule, ECLClusterPSDModule, SVDLocalCalibrationsMonitorModule, TOPTriggerDigitizerModule, ExtModule, MCTrackCandClassifierModule, MuidModule, HLTDQM2ZMQModule, DQMHistAnalysisECLModule, IPDQMExpressRecoModule, BKLMTrackingModule, TOPCosmicT0FinderModule, HitXPModule, TRGCDCT3DConverterModule, DQMHistAnalysisMonObjModule, ECLBackgroundModule, EventT0DQMModule, SVDDataFormatCheckModule, TRGTOPDQMModule, BgoStudyModule, CsiStudy_v2Module, MicrotpcStudyModule, PlumeDigitizerModule, DQMHistAnalysisCDCDedxModule, DQMHistAnalysisHLTMonObjModule, PXDClustersFromTracksModule, SVDPackerModule, SVDClusterEvaluationTrueInfoModule, TOPXTalkChargeShareSetterModule, SecMapTrainerVXDTFModule, AnalysisPhase1StudyModule, DosiStudyModule, He3tubeStudyModule, ECLCovarianceMatrixModule, ECLFinalizerModule, ECLSplitterN2Module, MCMatcherECLClustersModule, BKLMAnaModule, SVDHotStripFinderModule, SVDPerformanceModule, SecMapTrainerBaseModule, NoKickCutsEvalModule, TRGECLRawdataAnalysisModule, TRGTOPUnpackerModule, BgoDigitizerModule, CsiDigitizer_v2Module, DosiDigitizerModule, TPCStudyModule, PinDigitizerModule, HLTDs2ZMQModule, DQMHistAnalysisInputPVSrvModule, ECLShowerCalibratorModule, SVDLatencyCalibrationModule, SVDOccupancyAnalysisModule, TOPLaserCalibratorModule, PXDROIFinderModule, KlongValidationModule, TrackingPerformanceEvaluationModule, MCMatcherTRGECLModule, BeamabortStudyModule, ClawStudyModule, ClawsStudyModule, PindiodeStudyModule, QcsmonitorStudyModule, ECLHitDebugModule, ECLUnpackerModule, SVDClusterCalibrationsMonitorModule, TOPChannelT0MCModule, EffPlotsModule, CurlTaggerModule, BeamDigitizerModule, He3DigitizerModule, StatisticsSummaryModule, DataWriterModule, SVDB4CommissioningPlotsModule, SVDClusterEvaluationModule, SVDClusterFilterModule, SVDShaperDigitsFromTracksModule, SVD3SamplesEmulatorModule, RT2SPTCConverterModule, SVDROIDQMModule, TRGGDLModule, EventKinematicsModule, ClawDigitizerModule, ClawsDigitizerModule, DQMHistSnapshotsModule, ECLPackerModule, PrintEventRateModule, SVDCoGTimeCalibrationsMonitorModule, V0findingPerformanceEvaluationModule, TRGECLModule, CosmicsAlignmentValidationModule, FANGSStudyModule, QcsmonitorDigitizerModule, SectorMapBootstrapModule, CsiModule, DQMHistDeltaHistoModule, RandomBarrierModule, TRGGRLModule, GenfitVisModule, CDCTriggerNeuroDQMModule, TRGECLFAMModule, TRGGRLProjectsModule, B2BIIMdstInputModule, DQMHistAnalysisTOPModule, SubEventModule, TRGCDCModule, DQMHistAnalysisSVDOnMiraBelleModule, TRGCDCTSStreamModule, Convert2RawDetModule, TRGGDLDQMModule, DQMHistAnalysisOutputMonObjModule, TRGECLQAMModule, TRGECLTimingCalModule, MCV0MatcherModule, DQMHistAnalysisInputModule, cdcDQM7Module, SwitchDataStoreModule, PhysicsObjectsMiraBelleModule, HistoModule, TRGGRLDQMModule, KLMTriggerModule, DQMHistAnalysisEventT0Module, DQMHistAnalysisInputSrvModule, SeqRootOutputModule, DQMHistAnalysisSVDGeneralModule, PhysicsObjectsMiraBelleDst2Module, PhysicsObjectsMiraBelleDstModule, TxModule, B2BIIMCParticlesMonitorModule, DQMHistAnalysisOutputNSMModule, DQMHistAnalysisPlotOnlyModule, DQMHistAnalysisSVDEfficiencyModule, RxModule, Root2BinaryModule, DQMHistAnalysisExampleModule, DQMHistAnalysisOutputRelayMsgModule, svdDumpModule, TRGECLDQMModule, DQMHistAnalysisOutputFileModule, TRGCDCT2DDQMModule, DQMHistAnalysisOutputModule, SeqRootInputModule, TRGCDCT3DDQMModule, TRGGDLSummaryModule, HistoManagerModule, TRGCDCTSFDQMModule, TRGGDLDSTModule, PhysicsObjectsDQMModule, CalibrationCollectorModule, ARICHBackgroundModule, TRGECLUnpackerModule, EvReductionModule, Raw2DsModule, RawInputModule, StorageDeserializerModule, BeamabortModule, BgoModule, CaveModule, ClawModule, CLAWSModule, DosiModule, FANGSModule, He3tubeModule, MicrotpcModule, Ph1bpipeModule, Ph1sustrModule, PindiodeModule, PlumeModule, QcsmonitorModule, SrsensorModule, SerializerModule, FastRbuf2DsModule, Ds2SampleModule, DeSerializerPXDModule, Rbuf2RbufModule, GenRawSendModule, Rbuf2DsModule, TxSocketModule, Ds2RawModule, Ds2RawFileModule, DqmHistoManagerModule, Ds2RbufModule, StorageSerializerModule, GetEventFromSocketModule, ReceiveEventModule, ElapsedTimeModule, MonitorDataCOPPERModule, Root2RawModule, RxSocketModule, CertifyParallelModule, SeqRootMergerModule, DAQPerfModule, MonitorDataModule, TrackAnaModule, and PartialSeqRootReaderModule.

Definition at line 168 of file Module.h.

◆ evalCondition()

bool evalCondition ( ) const
inherited

If at least one condition was set, it is evaluated and true returned if at least one condition returns true.

If no condition or result value was defined, the method returns false. Otherwise, the condition is evaluated and true returned, if at least one condition returns true. To speed up the evaluation, the condition strings were already parsed in the method if_value().

Returns
True if at least one condition and return value exists and at least one condition expression was evaluated to true.

Definition at line 98 of file Module.cc.

◆ fastInterceptFinder2d()

int fastInterceptFinder2d ( houghMap hits,
bool  u_side,
TVector2  v1_s,
TVector2  v2_s,
TVector2  v4_s,
unsigned int  iterations,
unsigned int  maxIterations 
)

Intercept Finder functions.

fastInterceptFinder2d uses iterative / recursive approach, only subdividing "active" sectors with at least m_minimum lines of m_minimumLines different SVD layers passing through the "active" sector, using a "Divide & Conquer" approach. New fastInterceptFinder2d written by Christian Wessel, up-to-date

< differences used to fill the ArrayOfActiveSectors

Definition at line 49 of file DATCONTrackingInterceptFinder.cc.

53 {
54  int hitID;
55  unsigned int countLayer;
56  double unitX, unitY;
57  double y1, y2;
58  double m, a;
59  houghPair hp;
60  VxdID sensor;
61  vector<unsigned int> candidateIDList;
62  double xdiff, ydiff;
63  int sectorX, sectorY;
64  double baseX, baseY;
65  int maxSectorX, maxSectorY;
66  houghMap containedHits;
67 
68  TVector2 v1, v2, v3, v4;
69 
70  unitX = ((v2_s.X() - v1_s.X()) / 2.0);
71  unitY = ((v1_s.Y() - v4_s.Y()) / 2.0);
72 
73  if (uSide) {
74  baseX = -M_PI;
75  baseY = -m_rectSizeU;
76  maxSectorX = (int)pow(2, m_maxIterationsU + 1) - 1;
77  maxSectorY = (int)pow(2, m_maxIterationsU + 1) - 1;
78  } else {
79  baseX = -M_PI;
80  baseY = -m_rectSizeV;
81  maxSectorX = (int)pow(2, m_maxIterationsV + 1) - 1;
82  maxSectorY = (int)pow(2, m_maxIterationsV + 1) - 1;
83  }
84 
85  countLayer = 0;
86  for (int i = 0; i < 2 ; ++i) {
87  for (int j = 0; j < 2; ++j) {
88  v1.Set((v4_s.X() + (double) i * unitX), (v4_s.Y() + (double) j * unitY + unitY));
89  v2.Set((v4_s.X() + (double) i * unitX + unitX), (v4_s.Y() + (double) j * unitY + unitY));
90  v3.Set((v4_s.X() + (double) i * unitX + unitX), (v4_s.Y() + (double) j * unitY));
91  v4.Set((v4_s.X() + (double) i * unitX), (v4_s.Y() + (double) j * unitY));
92 
93  candidateIDList.clear();
94  bool layerHit[4] = {false}; /* For layer filter */
95  for (const auto& hit : hits) {
96  hitID = hit.first;
97  hp = hit.second;
98  sensor = hp.first;
99 
100  if (!uSide) {
101  m = hp.second.X();
102  a = hp.second.Y();
103  y1 = m * cos(v1.X()) + a * sin(v1.X());
104  y2 = m * cos(v2.X()) + a * sin(v2.X());
105  } else {
106  m = hp.second.X();
107  a = hp.second.Y();
108  y1 = 2. * (m * cos(v1.X()) + a * sin(v1.X()));
109  y2 = 2. * (m * cos(v2.X()) + a * sin(v2.X()));
110  if (m_usePhase2Simulation) {
111  m = hp.second.X();
112  a = hp.second.Y();
113  y1 = m * cos(v1.X()) + a * sin(v1.X());
114  y2 = m * cos(v2.X()) + a * sin(v2.X());
115  }
116  }
117 
118  /* Check if HS-parameter curve is inside (or outside) actual sub-HS */
119  if (y1 <= v1.Y() && y2 >= v3.Y() && y2 >= y1) {
120  if (iterations == maxIterations) {
121  candidateIDList.push_back(hitID);
122  }
123 
124  layerHit[sensor.getLayerNumber() - 3] = true; /* layer filter */
125  ++countLayer;
126  containedHits.insert(hit);
127  }
128  }
129 
130  if (countLayer >= m_minimumLines) {
131  if (layerFilter(layerHit)) {
132  // recursive / iterative call of fastInterceptFinder2d, until iterations = critIterations (critIterations-1),
133  // actual values for v1...v4 are new startingpoints
134  if (iterations != maxIterations) {
135  fastInterceptFinder2d(containedHits, uSide, v1, v2, v4,
136  iterations + 1, maxIterations);
137  } else {
138  if (!uSide) {
139  vHoughCand.push_back(DATCONHoughCand(candidateIDList, make_pair(v1, v3)));
141  xdiff = v4.X() - baseX;
142  ydiff = v4.Y() - baseY;
143  sectorX = round(xdiff / unitX);
144  sectorY = maxSectorY - round(ydiff / unitY);
145  if (sectorX > maxSectorX) {
146  sectorX = maxSectorX;
147  } else if (sectorX < 0) {
148  sectorX = 0;
149  }
150  if (sectorY > maxSectorY) {
151  sectorY = maxSectorY;
152  } else if (sectorY < 0) {
153  sectorY = 0;
154  }
155  ArrayOfActiveSectorsThetaHS[sectorY][sectorX] = -1;
156  vHoughSpaceClusterCand.push_back(DATCONHoughSpaceClusterCand(candidateIDList, TVector2(sectorX, sectorY)));
157 
158  activeSectorVectorTheta.push_back(true);
159  }
160 
161  } else {
162  uHoughCand.push_back(DATCONHoughCand(candidateIDList, make_pair(v1, v3)));
164  baseX = -M_PI;
165  baseY = -m_rectSizeU;
166  xdiff = v4.X() - baseX;
167  ydiff = v4.Y() - baseY;
168  maxSectorX = (int)pow(2, m_maxIterationsU + 1) - 1;
169  maxSectorY = (int)pow(2, m_maxIterationsU + 1) - 1;
170  sectorX = round(xdiff / unitX);
171  sectorY = maxSectorY - round(ydiff / unitY);
172  if (sectorX > maxSectorX) {
173  sectorX = maxSectorX;
174  } else if (sectorX < 0) {
175  sectorX = 0;
176  }
177  if (sectorY > maxSectorY) {
178  sectorY = maxSectorY;
179  } else if (sectorY < 0) {
180  sectorY = 0;
181  }
182  ArrayOfActiveSectorsPhiHS[sectorY][sectorX] = -1;
183  uHoughSpaceClusterCand.push_back(DATCONHoughSpaceClusterCand(candidateIDList, TVector2(sectorX, sectorY)));
184 
185  activeSectorVectorPhi.push_back(true);
186  }
187  }
188  }
189  }
190  } else {
192  if (uSide) {
193  activeSectorVectorPhi.push_back(false);
194  } else {
195  activeSectorVectorTheta.push_back(false);
196  }
197  }
198  }
199 
200  countLayer = 0;
201  }
202  }
203 
204  return 0;
205 }

◆ findandcombine3d()

void findandcombine3d ( )

Find and Combine track candidates Combine found values of phi and r from u-side HS with found values of theta from v-side HS into track candidates.

Find and combine into 3D tracks.

Definition at line 22 of file DATCONTrackingFunctions.cc.

23 {
24  unsigned int tracks;
25 
26  TVector3 houghMomentum;
27 
28  if (storeDATCONTracks.isValid()) {
29  storeDATCONTracks.clear();
30  }
31 
32  tracks = 0;
33 
34  for (auto it = vTrackCand.begin(); it != vTrackCand.end(); ++it) {
35  for (auto it_in = uTrackCand.begin(); it_in != uTrackCand.end(); ++it_in) {
36  vector<unsigned int> v_idList = it->getIdList();
37  vector<unsigned int> u_idList = it_in->getIdList();
38 
39  if (compareList(u_idList, v_idList)) {
40 
41  int curvsign = 0;
42  int charge = -curvsign;
43 
44  ++tracks;
45 
46  TVector2 TrackCandV = it->getCoord();
47  TVector2 TrackCandU = it_in->getCoord();
48  double TrackRadius = 1.0 / TrackCandU.Y();
49  double TrackPhi = TrackCandU.X();
50  double TrackTheta = TrackCandV.X();
51  double TrackZzero = TrackCandV.Y();
52 
54  // ATTENTION TODO FIXME : This still has to be implemented!!!
55  // So far no phase 2 specific algorithms have been implemented and tested!
56  B2WARNING("This mode is not yet implemented, nothing will happen! Return...");
57  return;
58  } else { // begin of "else" belonging to "if(m_usePhase2Simulation)"
59  if (TrackRadius < 0.0) {
60  charge = -1;
61  curvsign = -charge;
62  TrackPhi = TrackPhi + M_PI / 2.0;
63  } else {
64  charge = 1;
65  curvsign = -charge;
66  TrackPhi = (TrackPhi + M_PI / 2.0) - M_PI;
67  }
68  if (TrackPhi > M_PI) {
69  TrackPhi -= 2.0 * M_PI;
70  } //else if (TrackPhi < -1.0 * M_PI) {
71  if (TrackPhi < -1.0 * M_PI) {
72  TrackPhi += 2.0 * M_PI;
73  }
74 
75  if (TrackCandV.Y() > 0.0) {
76  TrackTheta = -1.0 * TrackTheta;
77  } else {
78  TrackTheta = M_PI - TrackTheta;
79  }
80 
81  if (TrackTheta < 0.0) {
82  TrackTheta += M_PI;
83  } else if (TrackTheta > M_PI) {
84  TrackTheta -= M_PI;
85  }
86 
87  if (fabs(TrackRadius) < 5000) {
88  storeDATCONTracks.appendNew(DATCONTrack(tracks, TrackRadius, TrackPhi, TrackZzero, TrackTheta, charge, curvsign));
89  DATCONTracks.push_back(DATCONTrack(tracks, TrackRadius, TrackPhi, TrackZzero, TrackTheta, charge, curvsign));
90  }
91 
92  B2Vector3D magField = BFieldManager::getFieldInTesla({0, 0, 0});
93  double BFieldStrength = magField.Mag();
94 
95  double pX = 0.299792458 * BFieldStrength * TrackRadius * cos(TrackPhi);
96  double pY = 0.299792458 * BFieldStrength * TrackRadius * sin(TrackPhi);
97  double pZ = 0.299792458 * BFieldStrength * TrackRadius / tan(TrackTheta);
98 
99  houghMomentum.SetXYZ(pX, pY, pZ);
100 
101 // saveHitsToRecoTrack(u_idList, houghMomentum);
102 
103  }
104  }
105  }
106  }
107 }

◆ getAfterConditionPath()

Module::EAfterConditionPath getAfterConditionPath ( ) const
inherited

What to do after the conditional path is finished.

(defaults to c_End if no condition is set)

Definition at line 135 of file Module.cc.

◆ getConditionPath()

std::shared_ptr< Path > getConditionPath ( ) const
inherited

Returns the path of the last true condition (if there is at least one, else reaturn a null pointer).


Definition at line 115 of file Module.cc.

◆ getFileNames()

virtual std::vector<std::string> getFileNames ( __attribute__((unused)) bool  outputFiles)
inlinevirtualinherited

Return a list of output filenames for this modules.

This will be called when basf2 is run with "--dry-run" if the module has set either the c_Input or c_Output properties.

If the parameter outputFiles is false (for modules with c_Input) the list of input filenames should be returned (if any). If outputFiles is true (for modules with c_Output) the list of output files should be returned (if any).

If a module has sat both properties this member is called twice, once for each property.

The module should return the actual list of requested input or produced output filenames (including handling of input/output overrides) so that the grid system can handle input/output files correctly.

This function should return the same value when called multiple times. This is especially important when taking the input/output overrides from Environment as they get consumed when obtained so the finalized list of output files should be stored for subsequent calls.

Definition at line 136 of file Module.h.

◆ getName()

const std::string& getName ( ) const
inlineinherited

Returns the name of the module.

This can be changed via e.g. set_name() in the steering file to give more useful names if there is more than one module of the same type.

For identifying the type of a module, using getType() (or type() in Python) is recommended.

Definition at line 189 of file Module.h.

◆ getParamInfoListPython()

std::shared_ptr< boost::python::list > getParamInfoListPython ( ) const
inherited

Returns a python list of all parameters.

Each item in the list consists of the name of the parameter, a string describing its type, a python list of all default values and the description of the parameter.

Returns
A python list containing the parameters of this parameter list.

Definition at line 281 of file Module.cc.

◆ getReturnValue()

int getReturnValue ( ) const
inlineinherited

Return the return value set by this module.

This value is only meaningful if hasReturnValue() is true

Definition at line 383 of file Module.h.

◆ getType()

const std::string & getType ( ) const
inherited

Returns the type of the module (i.e.

class name minus 'Module')

Definition at line 43 of file Module.cc.

◆ hasProperties()

bool hasProperties ( unsigned int  propertyFlags) const
inherited

Returns true if all specified property flags are available in this module.

Parameters
propertyFlagsOred EModulePropFlags which should be compared with the module flags.

Definition at line 162 of file Module.cc.

◆ if_false()

void if_false ( const std::shared_ptr< Path > &  path,
EAfterConditionPath  afterConditionPath = EAfterConditionPath::c_End 
)
inherited

A simplified version to add a condition to the module.

Please note that successive calls of this function will add more than one condition to the module. If more than one condition results in true, only the last of them will be used.

Please be careful: Avoid creating cyclic paths, e.g. by linking a condition to a path which is processed before the path where this module is located in.

It is equivalent to the if_value() method, using the expression "<1". This method is meant to be used together with the setReturnValue(bool value) method.

Parameters
pathShared pointer to the Path which will be executed if the return value is false.
afterConditionPathWhat to do after executing 'path'.

Definition at line 87 of file Module.cc.

◆ if_true()

void if_true ( const std::shared_ptr< Path > &  path,
EAfterConditionPath  afterConditionPath = EAfterConditionPath::c_End 
)
inherited

A simplified version to set the condition of the module.

Please note that successive calls of this function will add more than one condition to the module. If more than one condition results in true, only the last of them will be used.

Please be careful: Avoid creating cyclic paths, e.g. by linking a condition to a path which is processed before the path where this module is located in.

It is equivalent to the if_value() method, using the expression ">=1". This method is meant to be used together with the setReturnValue(bool value) method.

Parameters
pathShared pointer to the Path which will be executed if the return value is true.
afterConditionPathWhat to do after executing 'path'.

Definition at line 92 of file Module.cc.

◆ if_value()

void if_value ( const std::string &  expression,
const std::shared_ptr< Path > &  path,
EAfterConditionPath  afterConditionPath = EAfterConditionPath::c_End 
)
inherited

Add a condition to the module.

Please note that successive calls of this function will add more than one condition to the module. If more than one condition results in true, only the last of them will be used.

See https://confluence.desy.de/display/BI/Software+ModCondTut or ModuleCondition for a description of the syntax.

Please be careful: Avoid creating cyclic paths, e.g. by linking a condition to a path which is processed before the path where this module is located in.

Parameters
expressionThe expression of the condition.
pathShared pointer to the Path which will be executed if the condition is evaluated to true.
afterConditionPathWhat to do after executing 'path'.

Definition at line 81 of file Module.cc.

◆ purifyTrackCandsList()

void purifyTrackCandsList ( )

Purify track candidates by checking list of strip_id (specific id calculated in this module)

Start merging for v-side

End merging v-side

Start merging u-side

End merging u-side

Definition at line 21 of file DATCONTrackingPurifierFunctions.cc.

22 {
23  vector<unsigned int> merged_idList;
24  unsigned int cand_cnt = 0;
25  double x = 0, y = 0;
26  double x_tolerance = 0.2;
27  vector<DATCONHoughCand> cpyCand;
28  bool useMerger = false;
29 
32  cpyCand = vHoughCand;
33  sort(cpyCand.begin(), cpyCand.end());
34  for (auto it = cpyCand.begin(); it != cpyCand.end(); ++it) {
35  vector<unsigned int> idList = it->getIdList();
36  coord2dPair hc = it->getCoord();
37  if (it == cpyCand.begin()) {
38  x = hc.first.X() + hc.second.X();
39  y = hc.first.Y() + hc.second.Y();
40  merged_idList = idList;
41  cand_cnt = 1;
42  } else if (compareList(idList, merged_idList) && fabs(x / (2.0 * cand_cnt) - hc.first.X()) < x_tolerance
43  && it != cpyCand.end()) {
44  x += hc.first.X() + hc.second.X();
45  y += hc.first.Y() + hc.second.Y();
46  ++cand_cnt;
47  if (useMerger) {
48  mergeIdList(merged_idList, idList);
49  } else {
50  merged_idList = idList;
51  }
52  } else {
53  if (it != cpyCand.begin()) {
54  x /= (2.0 * ((double) cand_cnt));
55  y /= (2.0 * ((double) cand_cnt));
56  vTrackCand.push_back(DATCONTrackCand(merged_idList, TVector2(x, y)));
57  }
58  x = hc.first.X() + hc.second.X();
59  y = hc.first.Y() + hc.second.Y();
60  cand_cnt = 1;
61  merged_idList = idList;
62  }
63  }
64 
65  if (cpyCand.size() > 0) {
66  x /= (2.0 * ((double) cand_cnt));
67  y /= (2.0 * ((double) cand_cnt));
68  vTrackCand.push_back(DATCONTrackCand(merged_idList, TVector2(x, y)));
69  }
70 
75  cpyCand = uHoughCand;
76  sort(cpyCand.begin(), cpyCand.end());
77  for (auto it = cpyCand.begin(); it != cpyCand.end(); ++it) {
78  vector<unsigned int> idList = it->getIdList();
79  coord2dPair hc = it->getCoord();
80  if (it == cpyCand.begin()) {
81  x = hc.first.X() + hc.second.X();
82  y = hc.first.Y() + hc.second.Y();
83  cand_cnt = 1;
84  merged_idList = idList;
85  } else if (compareList(idList, merged_idList) && fabs(x / (2.0 * cand_cnt) - hc.first.X()) < x_tolerance
86  && it != cpyCand.end()) {
87  x += hc.first.X() + hc.second.X();
88  y += hc.first.Y() + hc.second.Y();
89  ++cand_cnt;
90  if (useMerger) {
91  mergeIdList(merged_idList, idList);
92  } else {
93  merged_idList = idList;
94  }
95  } else {
96  if (it != cpyCand.begin()) {
97  x /= (2.0 * ((double) cand_cnt));
98  y /= (2.0 * ((double) cand_cnt));
99  uTrackCand.push_back(DATCONTrackCand(merged_idList, TVector2(x, y)));
100  }
101  x = hc.first.X() + hc.second.X();
102  y = hc.first.Y() + hc.second.Y();
103  cand_cnt = 1;
104  merged_idList = idList;
105  }
106  }
107 
108  if (cpyCand.size() > 0) {
109  x /= (2.0 * ((double) cand_cnt));
110  y /= (2.0 * ((double) cand_cnt));
111  uTrackCand.push_back(DATCONTrackCand(merged_idList, TVector2(x, y)));
112  }
113 
116 }

◆ saveHitsToRecoTrack()

void saveHitsToRecoTrack ( std::vector< unsigned int > &  idList,
TVector3  momentum 
)

Save Hits to RecoTrack.

Save (Track) Hits to RecoTrack.

Definition at line 114 of file DATCONTrackingFunctions.cc.

◆ setDescription()

void setDescription ( const std::string &  description)
protectedinherited

Sets the description of the module.

Parameters
descriptionA description of the module.

Definition at line 216 of file Module.cc.

◆ setLogInfo()

void setLogInfo ( int  logLevel,
unsigned int  logInfo 
)
inherited

Configure the printed log information for the given level.

Parameters
logLevelThe log level (one of LogConfig::ELogLevel)
logInfoWhat kind of info should be printed? ORed combination of LogConfig::ELogInfo flags.

Definition at line 75 of file Module.cc.

◆ setName()

void setName ( const std::string &  name)
inlineinherited

Set the name of the module.

Note
The module name is set when using the REG_MODULE macro, but the module can be renamed before calling process() using the set_name() function in your steering file.
Parameters
nameThe name of the module

Definition at line 216 of file Module.h.

◆ setParamPython()

void setParamPython ( const std::string &  name,
const boost::python::object &  pyObj 
)
privateinherited

Implements a method for setting boost::python objects.

The method supports the following types: list, dict, int, double, string, bool The conversion of the python object to the C++ type and the final storage of the parameter value is done in the ModuleParam class.

Parameters
nameThe unique name of the parameter.
pyObjThe object which should be converted and stored as the parameter value.

Definition at line 236 of file Module.cc.

◆ setParamPythonDict()

void setParamPythonDict ( const boost::python::dict &  dictionary)
privateinherited

Implements a method for reading the parameter values from a boost::python dictionary.

The key of the dictionary has to be the name of the parameter and the value has to be of one of the supported parameter types.

Parameters
dictionaryThe python dictionary from which the parameter values are read.

Definition at line 251 of file Module.cc.

◆ setPropertyFlags()

void setPropertyFlags ( unsigned int  propertyFlags)
inherited

Sets the flags for the module properties.

Parameters
propertyFlagsbitwise OR of EModulePropFlags

Definition at line 210 of file Module.cc.

◆ setReturnValue() [1/2]

void setReturnValue ( bool  value)
protectedinherited

Sets the return value for this module as bool.

The bool value is saved as an integer with the convention 1 meaning true and 0 meaning false. The value can be used in the steering file to divide the analysis chain into several paths.

Parameters
valueThe value of the return value.

Definition at line 229 of file Module.cc.

◆ setReturnValue() [2/2]

void setReturnValue ( int  value)
protectedinherited

Sets the return value for this module as integer.

The value can be used in the steering file to divide the analysis chain into several paths.

Parameters
valueThe value of the return value.

Definition at line 222 of file Module.cc.

◆ setType()

void setType ( const std::string &  type)
protectedinherited

Set the module type.

Only for use by internal modules (which don't use the normal REG_MODULE mechanism).

Definition at line 50 of file Module.cc.

◆ slowInterceptFinder2d()

int slowInterceptFinder2d ( houghMap hits,
bool  u_side 
)

FPGA-like intercept finder with all the sectors defined a priori, so no subdivision of sectors is needed.

This makes this intercept finder slower since all sectors have to be checked and not only active ones

Definition at line 219 of file DATCONTrackingInterceptFinder.cc.

◆ trackCandMerger()

void trackCandMerger ( )

Track merger to merge DATCONTrackCand with similar properties and to avoid / reduce number of fakes.

Merge duplicated tracks (means tracks with difference of m_mergeThreshold).

Definition at line 158 of file DATCONTrackingFunctions.cc.

◆ trackMerger()

void trackMerger ( )

Track merger to merge DATCONTrackCand with similar properties and to avoid / reduce number of fakes.

Merge duplicated tracks (means tracks with difference of m_mergeThreshold).

Definition at line 266 of file DATCONTrackingFunctions.cc.

Member Data Documentation

◆ m_independentSectors

bool m_independentSectors
protected

Use tracking with independent sectors in HS like it is possible to do on FPGA (with slowInterceptFinder2d) Independent means: number of sectors is not necessary equal to 2^n with n=1,2,3,...

number of iteration steps and number of sectors for horizontal and vertical axis in HS does not have to be equal but different (default: false)

Definition at line 238 of file DATCONTrackingModule.h.

◆ m_storeMCParticlesName

std::string m_storeMCParticlesName
protected

Members holding module parameters:

  1. Collections Name of the collection for the MCParticles

Definition at line 176 of file DATCONTrackingModule.h.

◆ m_trackCenterX

double m_trackCenterX
protected

Center of the tracks (our Hough Trafo requires (0, 0, 0).

If the IP is much different than that, it has to be given. Center position in X

Definition at line 221 of file DATCONTrackingModule.h.

◆ uClusters

svdHitMap uClusters
protected

Clusters.

SVD u-side clusters

Definition at line 313 of file DATCONTrackingModule.h.

◆ uHough

houghMap uHough
protected

Hough Map.

u-side HoughMap

Definition at line 319 of file DATCONTrackingModule.h.

◆ uHoughCand

std::vector<DATCONHoughCand> uHoughCand
protected

Hough Candidates.

u-side

Definition at line 325 of file DATCONTrackingModule.h.

◆ uTrackCand

std::vector<DATCONTrackCand> uTrackCand
protected

Purified Hough Candidates.

u-side

Definition at line 336 of file DATCONTrackingModule.h.


The documentation for this class was generated from the following files:
Belle2::EvtPDLUtil::charge
double charge(int pdgCode)
Returns electric charge of a particle with given pdg code.
Definition: EvtPDLUtil.cc:46
Belle2::VxdID
Class to uniquely identify a any structure of the PXD and SVD.
Definition: VxdID.h:43
VXDTFFilterTest::v2
const std::vector< double > v2
MATLAB generated random vector.
Definition: decorrelationMatrix.cc:44
Belle2::houghMap
std::map< int, houghPair > houghMap
Map containing integer ID and corresponding houghPair for the HS TODO make this description better.
Definition: DATCONTrackingModule.h:73
Belle2::DATCONTrackingModule::m_MaximumThetaHSClusterSizeX
int m_MaximumThetaHSClusterSizeX
Maximum cluster size in horizontal direction in the Theta HS.
Definition: DATCONTrackingModule.h:279
Belle2::DATCONTrackingModule::m_MaximumPhiHSClusterSize
int m_MaximumPhiHSClusterSize
Maximum cluster size in the Phi HS.
Definition: DATCONTrackingModule.h:269
Belle2::DATCONTrackingModule::m_MaximumThetaHSClusterSize
int m_MaximumThetaHSClusterSize
Maximum cluster size in the Theta HS.
Definition: DATCONTrackingModule.h:277
Belle2::Module::setDescription
void setDescription(const std::string &description)
Sets the description of the module.
Definition: Module.cc:216
Belle2::DATCONTrackingModule::m_minimumLines
unsigned short m_minimumLines
Minimum number of lines required for an active sector (default: 3)
Definition: DATCONTrackingModule.h:225
Belle2::DATCONHoughCand
Hough Candidates class.
Definition: DATCONHoughCand.h:37
Belle2::Module::c_ParallelProcessingCertified
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
Definition: Module.h:82
VXDTFFilterTest::v3
const std::vector< double > v3
MATLAB generated random vector.
Definition: decorrelationMatrix.cc:58
VXDTFFilterTest::v1
const std::vector< double > v1
MATLAB generated random vector.
Definition: decorrelationMatrix.cc:30
Belle2::DATCONTrackingModule::layerFilter
bool layerFilter(bool *layer)
Layer filter, checking for hits from different SVD layers.
Definition: DATCONTrackingInterceptFinder.cc:20
Belle2::DATCONTrackingModule::storeDATCONTracks
StoreArray< DATCONTrack > storeDATCONTracks
DATCONTracks StoreArray.
Definition: DATCONTrackingModule.h:209
Belle2::DATCONTrackingModule::m_maxIterationsU
int m_maxIterationsU
Maximum number of iterations allowed for u-side (obsolete?) (default: 12)
Definition: DATCONTrackingModule.h:227
Belle2::DATCONTrackingModule::DepthFirstSearch
void DepthFirstSearch(bool u_side, int **ArrayOfActiveHoughSpaceSectors, int angleSectors, int vertSectors, int actualPositionX, int actualPositionY, std::vector< unsigned int > &mergedList)
Depth First Search algorithm, compare with https://en.wikipedia.org/wiki/Depth-first_search (06.
Definition: DATCONTrackingHoughSpaceClusterFinder.cc:102
Belle2::BFieldManager::getFieldInTesla
static B2Vector3D getFieldInTesla(const B2Vector3D &pos)
return the magnetic field at a given position in Tesla.
Definition: BFieldManager.h:80
Belle2::DATCONTrackingModule::m_clusterSize
int m_clusterSize
Size of the current cluster.
Definition: DATCONTrackingModule.h:283
Belle2::DATCONTrackingModule::activeSectorVectorTheta
std::vector< bool > activeSectorVectorTheta
Analogue vector for the Theta Hough Space.
Definition: DATCONTrackingModule.h:348
Belle2::DATCONTrackingModule::uHoughCand
std::vector< DATCONHoughCand > uHoughCand
Hough Candidates.
Definition: DATCONTrackingModule.h:325
Belle2::DATCONTrack
The DATCON Track class.
Definition: DATCONTrack.h:35
Belle2::B2Vector3< double >
Belle2::DATCONTrackingModule::uTrackCand
std::vector< DATCONTrackCand > uTrackCand
Purified Hough Candidates.
Definition: DATCONTrackingModule.h:336
Belle2::Module::setPropertyFlags
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
Definition: Module.cc:210
Belle2::DATCONTrackingModule::m_clusterCount
int m_clusterCount
Number of clusters in current event.
Definition: DATCONTrackingModule.h:285
Belle2::DATCONTrackingModule::m_clusterInitialPosition
TVector2 m_clusterInitialPosition
Initial position of cluster in HS sector coordinates.
Definition: DATCONTrackingModule.h:287
Belle2::coord2dPair
std::pair< TVector2, TVector2 > coord2dPair
Typedef for the coord2dPair, which represents the DATCONHoughCand.
Definition: DATCONHoughCand.h:32
Belle2::DATCONTrackingModule::m_useHoughSpaceClustering
bool m_useHoughSpaceClustering
Use FindHoughSpaceCluster algorithm to extract track information from the Hough Spaces?
Definition: DATCONTrackingModule.h:265
Belle2::DATCONTrackCand
The DATCONTrackCand represents the candidates of tracks found by the DATCON algoritms for u-side and ...
Definition: DATCONTrackCand.h:38
Belle2::DATCONTrackingModule::DATCONTracks
std::vector< DATCONTrack > DATCONTracks
DATCON Track.
Definition: DATCONTrackingModule.h:341
Belle2::DATCONTrackingModule::m_usePhase2Simulation
bool m_usePhase2Simulation
Use the simulation for phase 2 geometry and FPGA setup?
Definition: DATCONTrackingModule.h:254
Belle2::DATCONTrackingModule::activeSectorVectorPhi
std::vector< bool > activeSectorVectorPhi
Vector of bools containing information about the active sectors of the Phi Hough Space in a 1-D repre...
Definition: DATCONTrackingModule.h:346
Belle2::DATCONHoughSpaceClusterCand
The Hough Space Cluster Candidate represents the candidates of clusters found in the Hough Space.
Definition: DATCONHoughSpaceClusterCand.h:35
Belle2::DATCONTrackingModule::m_rectSizeV
double m_rectSizeV
For fastInterceptFinder2d: vertical size of HS for v-side (default: 0.1)
Definition: DATCONTrackingModule.h:248
Belle2::DATCONTrackingModule::vTrackCand
std::vector< DATCONTrackCand > vTrackCand
v-side
Definition: DATCONTrackingModule.h:338
Belle2::DATCONTrackingModule::vHoughSpaceClusterCand
std::vector< DATCONHoughSpaceClusterCand > vHoughSpaceClusterCand
v-side
Definition: DATCONTrackingModule.h:332
Belle2::Module::Module
Module()
Constructor.
Definition: Module.cc:32
Belle2::DATCONTrackingModule::m_MaximumThetaHSClusterSizeY
int m_MaximumThetaHSClusterSizeY
Maximum cluster size in vertical direction in the Theta HS.
Definition: DATCONTrackingModule.h:281
Belle2::DATCONTrackingModule::addParameter
void addParameter()
Add module parameter, put in separate function to have the Constructor clean and readable.
Definition: DATCONTrackingAddParameter.cc:16
Belle2::DATCONTrackingModule::ArrayOfActiveSectorsPhiHS
int ** ArrayOfActiveSectorsPhiHS
"2D-Array" of the sectors of the Phi Hough Space containing information whether or not a sector is "a...
Definition: DATCONTrackingModule.h:355
Belle2::DATCONTrackingModule::ArrayOfActiveSectorsThetaHS
int ** ArrayOfActiveSectorsThetaHS
Analogue array for the Theta Hough Space.
Definition: DATCONTrackingModule.h:357
Belle2::DATCONTrackingModule::vHoughCand
std::vector< DATCONHoughCand > vHoughCand
v-side
Definition: DATCONTrackingModule.h:327
Belle2::DATCONTrackingModule::fastInterceptFinder2d
int fastInterceptFinder2d(houghMap &hits, bool u_side, TVector2 v1_s, TVector2 v2_s, TVector2 v4_s, unsigned int iterations, unsigned int maxIterations)
Intercept Finder functions.
Definition: DATCONTrackingInterceptFinder.cc:49
Belle2::DATCONTrackingModule::m_clusterCenterOfGravity
TVector2 m_clusterCenterOfGravity
Center of Gravity of current cluster.
Definition: DATCONTrackingModule.h:289
Belle2::DATCONTrackingModule::m_MaximumPhiHSClusterSizeY
int m_MaximumPhiHSClusterSizeY
Maximum cluster size in vertical direction in the Phi HS.
Definition: DATCONTrackingModule.h:273
Belle2::DATCONTrackingModule::compareList
bool compareList(std::vector< unsigned int > &aList, std::vector< unsigned int > &bList)
Compare strip_id lists / lists of counter variable.
Definition: DATCONTrackingPurifierFunctions.cc:123
Belle2::DATCONTrackingModule::m_MaximumPhiHSClusterSizeX
int m_MaximumPhiHSClusterSizeX
Maximum cluster size in horizontal direction in the Phi HS.
Definition: DATCONTrackingModule.h:271
Belle2::B2Vector3::Mag
DataType Mag() const
The magnitude (rho in spherical coordinate system).
Definition: B2Vector3.h:158
Belle2::DATCONTrackingModule::m_maxIterationsV
int m_maxIterationsV
Maximum number of iterations allowed for v-side (obsolete?) (default: 12)
Definition: DATCONTrackingModule.h:229
Belle2::DATCONTrackingModule::uHoughSpaceClusterCand
std::vector< DATCONHoughSpaceClusterCand > uHoughSpaceClusterCand
u-side
Definition: DATCONTrackingModule.h:330
Belle2::DATCONTrackingModule::mergeIdList
void mergeIdList(std::vector< unsigned int > &mergedList, std::vector< unsigned int > &mergeme)
Merge strip_id lists / lists of counter variables to combine large lists to smaller ones and thus pur...
Definition: DATCONTrackingPurifierFunctions.cc:153
Belle2::houghPair
std::pair< VxdID, TVector2 > houghPair
Hough Tuples.
Definition: DATCONTrackingModule.h:71
Belle2::DATCONTrackingModule::m_rectSizeU
double m_rectSizeU
For fastInterceptFinder2d: vertical size of HS for u-side (default: 0.1)
Definition: DATCONTrackingModule.h:250