Belle II Software development
tracking

Topics

 tracking data objects
 
 
 tracking modules
 
 

Namespaces

namespace  Belle2::CDC
 
namespace  Belle2::TestHelpers
 Some utilities to help with writing unit tests.
 
namespace  Belle2::AnalyzingAlgorithmHelper
 INFO This file contains all the algorithms retrieving infos from Clusters.
 
namespace  Belle2::SecMapHelper
 namespace for SectorMapHelper-related stuff
 
namespace  Belle2::DNN
 namespace for DirectedNodeNetwork-related stuff
 

Classes

class  CDCCKFState
 Define states for CKF algorithm, which can be seed track or CDC wire hit. More...
 
class  ArcLengthBasedCDCfromEclPathPairFilter
 For the two paths with the same number of hits prefers one with shortest arcLength ("densest path") More...
 
class  ArcLengthBasedCDCPathPairFilter
 For the two paths with the same number of hits prefers one with shortest arcLength ("densest path") More...
 
class  CDCPathPairFilterFactory
 Factory that can create appropriate cluster filters from associated names. More...
 
class  Chi2BasedCDCPathPairFilter
 Prefers path with smallest sum dist^2 / length of path. More...
 
class  DistanceBasedCDCPathPairFilter
 For the two paths with the same number of hits prefers one with smallest sum dist^2. More...
 
class  DuplicateCDCPathPairFilter
 Simple filter to distinguish between photon conversion and Bremsstrahlung. More...
 
class  HitDistanceBasedCDCPathPairFilter
 Prefers path with smallest sum dist^2 / length of path. More...
 
class  MCTruthCDCPathPairFilter
 For the two paths select the one with the most of MC matched hits. More...
 
class  CDCfromEclPathTruthVarNames
 Vehicle class to transport the variable names. More...
 
class  CDCfromEclPathTruthVarSet
 Var set to store basic quantities related to CDC CKF (using truth information) More...
 
class  CDCPathBasicVarNames
 Vehicle class to transport the variable names. More...
 
class  CDCPathBasicVarSet
 Var set to store basic quantities related to CDC CKF. More...
 
class  CDCPathFilterFactory
 Factory that can create appropriate cluster filters from associated names. More...
 
class  CDCPathTruthVarNames
 Vehicle class to transport the variable names. More...
 
class  CDCPathTruthVarSet
 Var set to store basic quantities related to CDC CKF (using truth information) More...
 
class  SeedChargeCDCPathFilter
 Check if charge of fitted path corresponds to charge of seed. More...
 
class  SizeCDCPathFilter
 Return the size of the path. More...
 
class  CDCfromEclStateTruthVarNames
 Vehicle class to transport the variable names. More...
 
class  CDCfromEclStateTruthVarSet
 Var set to store basic quantities related to CDC CKF (using truth information) More...
 
class  CDCStateBasicVarNames
 Vehicle class to transport the variable names. More...
 
class  CDCStateBasicVarSet
 Var set to store basic quantities related to CDC CKF. More...
 
class  CDCStateFilterFactory
 Factory that can create appropriate cluster filters from associated names. More...
 
class  CDCStateTruthVarNames
 Vehicle class to transport the variable names. More...
 
class  CDCStateTruthVarSet
 Var set to store basic quantities related to CDC CKF (using truth information) More...
 
class  DistanceCDCStateFilter
 Give a weight based on the distance from the hit to the path. More...
 
class  ExtrapolateAndUpdateCDCStateFilter
 An extrapolateAndUpdate filter for all CDC states. More...
 
class  MCTruthCDCStateFilter
 Give a weight based on the mc truth information (1 or NAN) More...
 
class  MCTruthEclSeedFilter
 Give a weight based on the mc truth information (1 or NAN) More...
 
class  RoughCDCfromEclStateFilter
 A very rough filter for all CDC states. More...
 
class  RoughCDCStateFilter
 A very rough filter for all CDC states. More...
 
class  CDCCKFDuplicateRemover
 Remove duplicate paths created from ECLShowers These typically come from the seeding with two charge assumptions and Bremsstrahlung. More...
 
class  CDCCKFEclSeedCreator
 Findlet for. More...
 
class  CDCCKFPathMerger
 Merge similar paths. More...
 
class  CDCCKFPathSelector
 Select the m_maximalCandidatesInFlight paths for further processing. More...
 
class  CDCCKFResultFinalizer
 Findlet to finalize CKF Paths in terms of final result. More...
 
class  CDCCKFResultStorer
 Store resulting tracks and relations on the dataStore. More...
 
class  CDCCKFSeedCreator
 Create a CKF seed based on RecoTrack (presumably from VXDTF2) More...
 
class  CDCCKFStateCreator
 Create CKF states, based on the current path. Perform some basic selection at this stage (based on phi, max. jump of layers) More...
 
class  CDCCKFStateFilter
 A stack of pre-, helix-extrapolation- , Kalman-extrapolation- and Kalman-update-filters. More...
 
class  CKFToCDCFindlet
 Main findlet of the ToCDCCKF module. More...
 
class  CKFToCDCFromEclFindlet
 Main findlet of the ToCDCCKF module. More...
 
class  StackTreeSearcher
 CKF tree searcher which traces several best paths. More...
 
class  CKFResult< ASeed, AHit >
 Object for temporary storage of a CKF tree search result. More...
 
class  CKFState< ASeed, AHit >
 State object to store one step in the CKF algorithm together with its parent (the state before), the hit (e.g. More...
 
class  AdvanceFilter< AState, AnAdvancer >
 Filter which can be used on a pair of path (vector of states) and states, which will call the extrapolate function of the given advancer class, to extrapolate the last path state to the plane of the new state and store the mSoP in the new state. More...
 
class  KalmanFilter< AState, AKalmanStepper >
 Filter which can be used on a pair of path (vector of states) and states, which will call the kalmanStep function of the given stepper class, to update the mSoP of the new state with a klaman update. More...
 
class  NonIPCrossingStateFilter< AllStateFilter >
 Reusable filter for checking the direction of a new state if it is in the correct orientation (forwards or backwards) by their arc length. More...
 
class  CKFRelationCreator< AState, ASeedRelationFilter, AHitRelationFilter >
 Findlet for applying filters for creating hit-hit and hit-seed relations. More...
 
class  LayerToggledApplier< AState, AFindlet >
 A special findlet, which is chooseable based on a given findlet for layers higher than N, N and for the rest. More...
 
class  LimitedOnStateApplier< AState, AFilter >
 Specialisation of the OnStateApplier, which (a) uses a filter for the () operator, which is configurable (b) does only allow for the best N candidates in the child states. More...
 
class  OnStateApplier< AState >
 Helper findlet which applies its () operator to all pairs of path and state with all states in the given child state list. More...
 
class  OverlapResolver< AFilter >
 Simple findlet for searching the best candidate for a given seed applying the given filter. More...
 
class  ResultStorer< AResult >
 This findlet does also handle the storing of the results. More...
 
class  SpacePointTagger< AResult, ACluster >
 Findlet for tagging all space points in the results vector as used. More...
 
class  StateCreator< AnObject, AState >
 Create new states and add them to a vector from a given object vector. More...
 
class  StateCreatorWithReversal< AState >
 An adaption of the normal state creator introducing another parameter to reverse the seed. More...
 
class  StateRejecter< AState, AFilter >
 Reject some (or all) states from a given list of child states using 5 filters. More...
 
class  TrackFitterAndDeleter
 Findlet to fit tracks and remove all non fitted ones. More...
 
class  TrackLoader
 Findlet for loading the seeds from the data store. More...
 
class  TreeSearcher< AState, AStateRejecter, AResult >
 Findlet for constructing result paths out of a list of states, which are connected with weighted relations. More...
 
class  Advancer
 Helper findlet for performing an extrapolation of a mSoP of one plane to another plane using the representation stored in the mSoP. More...
 
struct  SeedGetter
 Helper Functor to get the Seed of a given result. More...
 
struct  NumberOfHitsGetter
 Helper Functor to get the Number of hits of a given result. More...
 
struct  GetArcLength
 Helper Functor to get the arc length of a given result. More...
 
class  KalmanStepper< Dimension >
 Class to bundle all algorithms needed for the kalman update procedure. More...
 
class  CKFToPXDResult
 Specialized CKF Result for extrapolating into the PXD. More...
 
class  CKFToPXDState
 Specialized CKF State for extrapolating into the PXD. More...
 
class  AngularDistancePXDPairFilter
 Base filter for CKF PXD states. More...
 
class  CylinderDistancePXDPairFilter
 Base filter for CKF PXD states. More...
 
class  InterceptDistancePXDPairFilter
 Base filter for CKF PXD states. More...
 
class  LayerPXDRelationFilter< AFilter, APrefilter >
 Base filter for CKF PXD states. More...
 
class  LoosePXDPairFilter
 Base filter for CKF PXD states. More...
 
class  PXDPairFilterFactory
 Factory that can create appropriate cluster filters from associated names. More...
 
class  SensorPXDPairFilter
 Base filter for CKF PXD states. More...
 
class  PXDResultFilterFactory
 Factory that can create appropriate cluster filters from associated names. More...
 
class  PXDResultTruthVarNames
 Vehicle class to transport the variable names. More...
 
class  PXDResultTruthVarSet
 Var set used in the CKF for calculating the probability of a correct result, which knows the truth information if two tracks belong together or not. More...
 
class  PXDResultVarNames
 Vehicle class to transport the variable names. More...
 
class  PXDResultVarSet
 Var set used in the VXD-CDC-Merger for calculating the probability of a VXD-CDC-track match, which knows the truth information if two tracks belong together or not. More...
 
class  SizePXDResultFilter
 Base filter for CKF PXD results (on overlap check) More...
 
class  AllPXDStateFilter
 A very simple filter for all space points. More...
 
class  PXDStateBasicVarNames
 Vehicle class to transport the variable names. More...
 
class  PXDStateBasicVarSet
 Var set used in the VXD-CDC-Merger for calculating the probability of a VXD-CDC-track match. More...
 
class  PXDStateFilterFactory
 Factory that can create appropriate cluster filters from associated names. More...
 
class  PXDStateTruthVarNames
 Vehicle class to transport the variable names. More...
 
class  PXDStateTruthVarSet
 Var set used in the VXD-CDC-Merger for calculating the probability of a VXD-CDC-track match, which knows the truth information if two tracks belong together or not. More...
 
class  SimplePXDStateFilter
 A very simple filter for all space points. More...
 
class  CKFToPXDFindlet
 Combinatorial Kalman Filter to extrapolate CDC Reco Tracks into the VXD (PXD) and collect space points. More...
 
class  PXDKalmanStepper
 Kalman stepper implementation for the PXD CKF. More...
 
class  MCUtil
 Class bundling all helper functions for the MC information used in the PXD CKF. More...
 
class  CKFToSVDResult
 Specialized CKF Result for extrapolating into the SVD. More...
 
class  CKFToSVDState
 Specialized CKF State for extrapolating into the SVD. More...
 
class  DistanceSVDPairFilter
 Base filter for CKF SVD states. More...
 
class  LayerSVDRelationFilter< AFilter, APrefilter >
 Base filter for CKF SVD states. More...
 
class  LooseSVDPairFilter
 Base filter for CKF SVD states. More...
 
class  SectorMapBasedSVDPairFilter
 Filter for relations between CKF SVD states based on SectorMaps. More...
 
class  SensorSVDPairFilter
 Base filter for CKF SVD states. More...
 
class  SVDPairFilterFactory
 Factory that can create appropriate cluster filters from associated names. More...
 
class  RelationSVDResultVarNames
 Vehicle class to transport the variable names. More...
 
class  RelationSVDResultVarSet
 Var set used in the VXD-CDC-Merger for calculating the probability of a VXD-CDC-track match, which knows the truth information if two tracks belong together or not. More...
 
class  SizeSVDResultFilter
 Base filter for CKF SVD results (on overlap check) More...
 
class  SVDResultFilterFactory
 Factory that can create appropriate cluster filters from associated names. More...
 
class  SVDResultTruthVarNames
 Vehicle class to transport the variable names. More...
 
class  SVDResultTruthVarSet
 Var set used in the CKF for calculating the probability of a correct result, which knows the truth information if two tracks belong together or not. More...
 
class  SVDResultVarNames
 Vehicle class to transport the variable names. More...
 
class  SVDResultVarSet
 Var set used in the VXD-CDC-Merger for calculating the probability of a VXD-CDC-track match, which knows the truth information if two tracks belong together or not. More...
 
class  WeightSVDResultFilter
 Base filter for CKF SVD results (on overlap check) More...
 
class  AllSVDStateFilter
 A very simple filter for all space points. More...
 
class  ResidualSVDStateFilter
 A very simple filter for all space points. More...
 
class  SimpleSVDStateFilter
 A very simple filter for all space points. More...
 
class  SVDStateBasicVarNames
 Vehicle class to transport the variable names. More...
 
class  SVDStateBasicVarSet
 Var set used in the VXD-CDC-Merger for calculating the probability of a VXD-CDC-track match. More...
 
class  SVDStateFilterFactory
 Factory that can create appropriate cluster filters from associated names. More...
 
class  SVDStateTruthVarNames
 Vehicle class to transport the variable names. More...
 
class  SVDStateTruthVarSet
 Var set used in the VXD-CDC-Merger for calculating the probability of a VXD-CDC-track match, which knows the truth information if two tracks belong together or not. More...
 
class  SVDStateVarNames
 Vehicle class to transport the variable names. More...
 
class  SVDStateVarSet
 Var set used in the VXD-CDC-Merger for calculating the probability of a VXD-CDC-track match. More...
 
class  CKFToSVDFindlet
 Combinatorial Kalman Filter to extrapolate CDC Reco Tracks into the VXD (SVD) and collect space points. More...
 
class  CKFToSVDSeedFindlet
 Findlet for combining CDC tracks with SVD tracks. More...
 
class  RecoTrackRelator
 The results of the CKF ar in the form (seed -> vector of hits). More...
 
class  RelationApplier
 Relate the SVD and CDC tracks in the given relations also in the store array. More...
 
class  RelationFromSVDTracksCreator
 Simplified relation creator only creating relations between states of CDC Reco Track seeds and states with SpacePoints, that: (a) for the seed states: connect every seed with every lst hit of the SVD Reco Tracks (b) for the hit states: are in the same SVD Reco Track and follow each other directly. More...
 
class  SpacePointLoader
 Load the space points from the store array to the given vector. More...
 
class  SVDKalmanStepper
 Kalman stepper implementation for the SVD CKF. More...
 
struct  DATCONSVDClusterCandidate
 struct containing a cluster candidate for easier handling More...
 
class  DATCONSVDDigit
 The DATCONSVDDigit class. More...
 
class  DATCONFPGAFindlet
 Findlet for performing the DATCON ROI calculation close to the implementation on FPGA. More...
 
class  DATCONSVDClusterizer
 Findlet for clustering DATCONSVDDigits and creating SVDClusters that are used for tracking in DATCON. More...
 
class  DATCONSVDClusterLoaderAndPreparer
 Findlet for loading SVDClusters that were created by the DATCONSVDClusterizer findlet and prepare them for usage in the FastInterceptFinder2D by calculating the conformal transformed x,y coordinates and the creating pairs of coordinates for finding track candidates in r-phi and r-z. More...
 
class  FastInterceptFinder2DFPGA
 Findlet for finging intersections of sinosoidal curves in the 2D Hough space by iteratively calling fastInterceptFinder2d. More...
 
class  ROICalculator
 Findlet to calculate ROI on the PXD sensors based on input hits. More...
 
class  SVDShaperDigitConverter
 Findlet for converting SVDShaperDigits into DATCONSVDDigits. More...
 
class  ToPXDExtrapolator
 Findlet to extrapolate found tracks to the PXD sensors and calculate intercepts. More...
 
class  CKFParameters
 The payload containing all parameters for the PXD and SVD CKF. More...
 
class  CkfToPXDFiltersSetting
 The payload containing. More...
 
class  DAFConfiguration
 The payload containing all the DAFParameters configuration, one for each different track fit option. More...
 
class  DAFParameters
 The payload containing the DAF parameters. More...
 
class  KinkFinderParameters
 The payload containing the parameters for the kinkFinder. More...
 
class  ROICalculationParameters
 The payload containing all PXD ROI parameters. More...
 
class  SVDEventT0Configuration
 This class store the configuration of the selections applied on the tracks used to compute the SVD EventT0. More...
 
class  TrackFitMomentumRange
 The payload containing the momentum threshold to disable the particle hypothesis in the track fit. More...
 
class  TrackFlippingCuts
 The payload containing the cuts for 2 mva based filters to decide whether a RecoTrack should be flipped or not. More...
 
class  TrackingMVAFilterParameters
 Class for the MVA filter payloads. More...
 
class  DQMEventProcessorBase
 The purpose of this class is to process one event() in DQMHistoModuleBase, which is a base for TrackDQMModule and AlignDQMModule. More...
 
class  DQMHistoModuleBase
 This class serves as a base for the TrackDQMModule and AlignDQMModule (and possibly other DQM histogram modules). More...
 
class  BaseEventTimeExtractor< AIOTypes >
 Class to extract the event t0. More...
 
class  BaseEventTimeExtractorModuleFindlet< AFindlet >
 Base class for most of the time extraction modules doing a track selection beforehand. More...
 
class  Chi2BasedEventTimeExtractor
 Event time extraction based on the principle of arXiv:0810.2241. More...
 
class  DriftLengthBasedEventTimeExtractor
 Event time extraction based on the principle of the CDC drift time calculation. More...
 
class  FullGridChi2TrackTimeExtractor
 Class to extract the event t0 using the chi-squared approach. More...
 
class  FullGridDriftLengthTrackTimeExtractor
 Class to extract the event t0 using the drift-length approach. More...
 
class  GridEventTimeExtractor< AFindlet >
 Generic findlet applying a certain time extractor multiple times. More...
 
class  HitBasedT0Extractor
 Findlet to extract the T0 time of an event only using CDC Hits. More...
 
class  IterativeChi2BasedEventTimeExtractor
 Class to iteratively extract the event t0 using the chi-squared approach. More...
 
class  IterativeDriftLengthBasedEventTimeExtractor
 Class to iteratively extract the event t0 using the drift-length approach. More...
 
class  IterativeEventTimeExtractor< AFindlet >
 Generic findlet applying a certain time extractor multiple times. More...
 
class  TrackSelector
 Select the tracks for the event time extraction. More...
 
class  TimeExtractionUtils
 Helper class to perform all kind of track extrapolations using the methods from arXiv:0810.2241. More...
 
class  KinkFitter
 KinkFitter class to create Kink mdst's objects from reconstructed tracks. More...
 
class  TrackMatchLookUp
 Class to provide convenient methods to look up matching information between pattern recognition and Monte Carlo tracks. More...
 
class  ROIDetPlane
 ROIDetPlane describes the plane containing a sensor. More...
 
class  ROIGeometry
 This class appends the VXDIntercept infos of a track to the list of intercepts. More...
 
class  ROIToUnitTranslator< aIntercept >
 Translator for ROI-geometry-information into a list of pixels or strips. More...
 
class  VXDInterceptor< aIntercept >
 This Class implements the interceptor of the SVD tracks on the PXD layers. More...
 
class  MCVXDPurityInfo
 The MC VXD Purity info container class. More...
 
class  SpacePoint
 SpacePoint typically is build from 1 PXDCluster or 1-2 SVDClusters. More...
 
class  SpacePointTrackCand
 Storage for (VXD) SpacePoint-based track candidates. More...
 
struct  ExtState
 Data structure to define extrapolation state. More...
 
struct  Intersection
 intersection of muid-extrapolated track with a KLM layer More...
 
class  TrackExtrapolateG4e
 geant4e-based track extrapolation. More...
 
struct  CALogger
 simple logger for CA algorithm More...
 
struct  CAValidator< CellType >
 validation tool for CA algorithm More...
 
class  CellularAutomaton< ContainerType, ValidatorType >
 The CellularAutomaton class This class serves as a functor for the algorithm itself. More...
 
struct  NodeCompatibilityCheckerBase< NodeType >
 most trivial node compatibility checker, says always true More...
 
struct  NodeCompatibilityCheckerCA< NodeType >
 simple NodeCompatibilityChecker, which checks for compatible Neighboring states of passed nodes (does no extended validation check) More...
 
struct  NodeCompatibilityCheckerPathCollector< NodeType >
 simple NodeCompatibilityChecker, which checks for compatible Neighboring states of passed nodes (does no extended validation check) More...
 
class  NodeFamilyDefiner< ContainerType, NodeType, NeighbourContainerType >
 This class assigns a common family identifier to all CACells in the network that are connected. More...
 
class  PathCollectorRecursive< ContainerType, NodeType, NeighbourContainerType, NodeCompatibilityCheckerType >
 Path finder for generic ContainerType. More...
 
class  SPTCSelectorXBestPerFamily
 Algorithm to collect the x best TrackCandidates per family based on a VXD Quality estimator method output. More...
 
class  StandaloneCosmicsCollector
 Track finding algorithm class for linear tracks produced by cosmics in the VXD without magnetic field. More...
 
class  TrackerAlgorithmBase< ContainerType, ValidatorType >
 base class for TrackerAlgorithms. shall allow a common base for algorithms like the cellular automaton More...
 
class  AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType >
 Base class for storing an algorithm determining the data one wants to have. More...
 
class  AnalyzingAlgorithmLostUClusters< DataType, TCInfoType, VectorType >
 Class for storing an algorithm to find out how many u-type-clusters the testTC lost compared to the refTC. More...
 
class  AnalyzingAlgorithmLostVClusters< DataType, TCInfoType, VectorType >
 Class for storing an algorithm to find out how many v-type-clusters the testTC lost compared to the refTC. More...
 
class  AnalyzingAlgorithmLostUEDep< DataType, TCInfoType, VectorType >
 Class for storing an algorithm to find out the energy deposit of u-type-clusters the testTC lost compared to the refTC. More...
 
class  AnalyzingAlgorithmLostVEDep< DataType, TCInfoType, VectorType >
 Class for storing an algorithm to find out the energy deposit of v-type-clusters the testTC lost compared to the refTC. More...
 
class  AnalyzingAlgorithmTotalUClusters< DataType, TCInfoType, VectorType >
 Class for storing an algorithm to find out how many u-type-clusters the given TC had. More...
 
class  AnalyzingAlgorithmTotalVClusters< DataType, TCInfoType, VectorType >
 Class for storing an algorithm to find out how many v-type-clusters the given TC had. More...
 
class  AnalyzingAlgorithmTotalUEDep< DataType, TCInfoType, VectorType >
 Class for storing an algorithm to find out the energy deposit of u-type-clusters the given TC had. More...
 
class  AnalyzingAlgorithmTotalVEDep< DataType, TCInfoType, VectorType >
 Class for storing an algorithm to find out the energy deposit of v-type-clusters the given TC had. More...
 
class  AnalyzingAlgorithmResidualPX< DataType, TCInfoType, VectorType >
 INFO This file contains all the algorithms calculating residuals of something. More...
 
class  AnalyzingAlgorithmResidualPY< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the residual (ref-test) of momentum in Y. More...
 
class  AnalyzingAlgorithmResidualPZ< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the residual (ref-test) of momentum in Z. More...
 
class  AnalyzingAlgorithmResidualPT< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the residual (ref-test) of momentum in pT. More...
 
class  AnalyzingAlgorithmResidualP< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the residual (ref-test) of momentum in |p|. More...
 
class  AnalyzingAlgorithmResidualPTheta< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the residual (ref-test) of momentum in theta (in degrees) More...
 
class  AnalyzingAlgorithmResidualPPhi< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the residual (ref-test) of momentum in phi (in degrees) More...
 
class  AnalyzingAlgorithmResidualPAngle< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the residual (ref-test) of momentum in its angle (direction residual in degrees) More...
 
class  AnalyzingAlgorithmResidualPTAngle< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the residual (ref-test) of pT in angle (transverse direction residual in degrees) More...
 
class  AnalyzingAlgorithmResidualPosition< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the residual (ref-test) of the seed position in 3D. More...
 
class  AnalyzingAlgorithmResidualPositionXY< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the residual (ref-test) of the seed position in XY (=r) More...
 
class  AnalyzingAlgorithmValuePX< DataType, TCInfoType, VectorType >
 INFO This file contains all the algorithms calculating a certain value of something. More...
 
class  AnalyzingAlgorithmValuePY< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the momentum in Y. More...
 
class  AnalyzingAlgorithmValuePZ< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the momentum in Z. More...
 
class  AnalyzingAlgorithmValuePT< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the momentum in pT. More...
 
class  AnalyzingAlgorithmValueP< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the momentum in |p|. More...
 
class  AnalyzingAlgorithmValuePTheta< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the momentum in theta (in degrees) More...
 
class  AnalyzingAlgorithmValuePPhi< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the momentum in phi (in degrees) More...
 
class  AnalyzingAlgorithmValueDistSeed2IP< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the the distance seedHit to IP in 3D. More...
 
class  AnalyzingAlgorithmValueDistSeed2IPXY< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the distance seedHit to IP in XY (=r) More...
 
class  AnalyzingAlgorithmValueDistSeed2IPZ< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the distance seedHit to IP in XY (=r) More...
 
class  AnalyzingAlgorithmValueQI< DataType, TCInfoType, VectorType >
 Class for storing an algorithm determining the quality indicator of the TC. More...
 
class  AlgoritmType
 Small class for classifying types of analyzing algorithms. More...
 
class  AnalizerTCInfo
 simple class storing infos relevant for a TC for analyzing it. More...
 
class  KeyValBox< KeyType, ValueType >
 Minimal container storing a pair of < KeyType, ValueType> More...
 
class  RootParameterTracker
 Production notes for RootParameterTracker: More...
 
class  TCType
 Small class for classifying types of reconstructed track candidates. More...
 
class  VXDTFFilters< point_t >
 Class that contains all the static sectors to which the filters are attached. More...
 
class  ClosedLowerBoundedSet< MinType >
 Represents a closed lower bounded set of arithmetic types. More...
 
class  ClosedRange< MinType, MaxType >
 Represents a closed set of arithmetic types. More...
 
class  ClosedUpperBoundedSet< MaxType >
 Represents an upper bounded set of arithmetic types. More...
 
class  Filter< typePack >
 This class is used to select pairs, triplets... of objects. More...
 
struct  all_same< types >
 The all_same struct is meant to check that all the types in a template pack are of the same type. More...
 
struct  all_same< T >
 The all_same struct is meant to check that all the types in a template pack are of the same type. More...
 
struct  all_same< >
 The all_same struct is meant to check that all the types in a template pack are of the same type. More...
 
struct  all_same< T, T, types ... >
 The all_same struct is meant to check that all the types in a template pack are of the same type. More...
 
class  Filter< Variable, RangeType, Observer >
 Basic Filter ///. More...
 
class  Filter< Variable, RangeType, Belle2::BypassableFilter, Observer >
 Bypassable Filter ///. More...
 
class  Filter< Variable, RangeType, Belle2::ActivatableFilter, Observer >
 Activatable Filter /// TODO: Remove, as it is no longer used...? More...
 
class  Filter< Belle2::OperatorNot, someFilter, templateObserverType >
 Realization of a NOT operator for the Filter classes. More...
 
class  Filter< Belle2::OperatorAnd, FilterA, FilterB, templateObserverType >
 Realization of the AND operator between two objects of the Filter class. More...
 
class  Filter< Belle2::OperatorOr, FilterA, FilterB, templateObserverType >
 Realization of the OR operator between two objects of the Filter class. More...
 
class  LowerBoundedSet< InfType >
 Represents a lower bounded set of arithmetic types. More...
 
class  Observer
 Observer base class which can be used to evaluate the VXDTF2's Filters. More...
 
class  Range< InfType, SupType >
 Represents a range of arithmetic types. More...
 
class  SelectionVariable< templateArgumentType, Nargs, templateReturnType >
 Base class of the selection variable objects used for pair filtering. More...
 
class  SingleElementSet< Type >
 Represents a set containing a single element;. More...
 
class  UpperBoundedSet< SupType >
 Represents an upper bounded set of arithmetic types. More...
 
class  VoidObserver
 The most CPU efficient Observer for the VXDTF filter tools (even if useless). More...
 
class  DELTACIRCLERADIUS_NAME< PointType >
 calculates delta-circleRadius-value (difference in circle radii of 2 subsets of the hits), returning unit: cm. More...
 
class  DELTADISTCIRCLECENTER_NAME< PointType >
 calculates the distance between the estimated circle centers (using 2 subsets of given hits) in the xy-plane, returning unit: cm. More...
 
class  DELTAPT_NAME< PointType >
 calculates dpt-value (dpt= difference in transverse momentum of 2 subsets of the hits), returning unit: GeV/c. More...
 
class  CompactSecIDs
 This class provides a computer convenient numbering scheme for the sectors in the sector map and for the N sectors combinations. More...
 
class  FiltersContainer< point_t >
 This class contains everything needed by the VXDTF that is not going to change during a RUN, i.e. More...
 
class  SectorsOnSensor< sectorID >
 This class associates to an ordered pairs of normalized local coordinates a compact sector id. More...
 
class  ANGLE3DFULL_NAME< PointType >
 calculates the angle between the hits/vectors (3D), returning unit: angle in degrees. More...
 
class  ANGLE3DSIMPLE_NAME< PointType >
 calculates the angle between the hits/vectors (3D), returning unit: none (calculation for degrees is incomplete, if you want readable numbers, use Angle3DFull instead). More...
 
class  ANGLERZFULL_NAME< PointType >
 calculates the angle between the hits/vectors (RZ), returning unit: angle in degrees. More...
 
class  ANGLERZSIMPLE_NAME< PointType >
 calculates the angle between the hits/vectors (RZ), returning unit: none (calculation for degrees is incomplete, if you want readable numbers, use AngleRZFull instead). More...
 
class  ANGLEXYFULL_NAME< PointType >
 calculates the angle between the hits/vectors (XY), returning unit: angle in degrees. More...
 
class  CIRCLECENTERXY_NAME< PointType >
 calculates the center of the circle for 3 hits in the XY plane and returns a B2Vector3 with the result (z=0). More...
 
class  CIRCLEDIST2IP_NAME< PointType >
 calculates the distance of the point of closest approach of circle to the IP, returning unit: cm More...
 
class  CIRCLERADIUS_NAME< PointType >
 calculates the estimation of the circle radius of the 3-hit-tracklet, returning unit: cm. More...
 
class  COSANGLEXY_NAME< PointType >
 calculates the angle between the hits/vectors (XY), returning unit: none (calculation for degrees is incomplete, if you want readable numbers, use AngleXYFull instead): More...
 
class  DELTASLOPERZ_NAME< PointType >
 calculates deviations in the slope of the inner segment and the outer segment, returning unit: none More...
 
class  DELTASLOPEZOVERS_NAME< PointType >
 compares the "slopes" z over arc length. More...
 
class  DELTASOVERZ_NAME< PointType >
 calculates the helixparameter describing the deviation in arc length per unit in z. More...
 
class  DISTANCEINTIME< PointType >
 This variable returns the difference among the V and U side clusters of th ecenter space point. More...
 
class  HELIXPARAMETERFIT_NAME< PointType >
 calculates the helixparameter describing the deviation in z per unit angle, returning unit: none. More...
 
class  MLHANDOVER_NAME< PointType, Ndims >
 SelectionVariable that is used for the Machine Learning (ML) based filters. More...
 
class  PT_NAME< PointType >
 calculates the estimation of the transverse momentum of the 3-hit-tracklet, returning unit: GeV/c. More...
 
class  SIGNCURVATUREXY_NAME< PointType >
 calculates the sign of the curvature for three hits More...
 
class  SIGNCURVATUREXYERROR_NAME< PointType >
 calculates the sign of the curvature for three hits More...
 
class  ZIGGZAGGRZ_NAME< PointType, PointContainerType >
 checks whether chain of segments are zigg-zagging (changing sign of curvature of neighbouring segments) in the R-Z-plane, returns number of charge-signs found (if != 1, then the given hitContainer is ziggZagging). More...
 
class  ZIGGZAGGXY_NAME< PointType, PointContainerType >
 checks whether chain of segments are zigg-zagging (changing sign of curvature of neighbouring segments) in the X-Y-plane, returns number of charge-signs found (if != 1, then the given hitContainer is ziggZagging). More...
 
class  ZIGGZAGGXYWITHSIGMA_NAME< PointType, PointContainerType >
 checks whether chain of segments are zigg-zagging (changing sign of curvature of neighbouring segments) in the X-Y-plane, returns number of charge-signs found (if != 1, then the given hitContainer is ziggZagging). More...
 
class  VariablesTTree< filterLeaves >
 Dump on a TTree the values of all the variables in a filter. More...
 
class  VariablesTTree<>
 Defines the interface using an empty template pack. More...
 
class  VariablesTTree< Filter< Variable, other ... > >
 Specialization for a simple filter. More...
 
class  VariablesTTree< Filter< unaryOperator, Filter< args ... >, other ... > >
 Specialization for unary operators acting on a filter. More...
 
class  VariablesTTree< Filter< binaryOperator, Filter< argsA ... >, Filter< argsB ... >, other ... > >
 Specialization for binary operators acting on a filter. More...
 
class  VariableTBranch< Variable >
 This class contains. More...
 
class  COSDIRECTIONXY_NAME< PointType >
 This is a specialization returning floats, where value calculates the cos of the angle of the segment of two hits in the XY plane. More...
 
class  DISTANCE1DZ_NAME< PointType >
 This is the specialization for SpacePoints with returning floats, where value calculates the distance between two hits in 1D on the Z-axis. More...
 
class  DISTANCE1DZSQUARED_NAME< PointType >
 This is the specialization for SpacePoints with returning floats, where value calculates the squared distance between two hits in 1D on the Z-axis. More...
 
class  DISTANCE2DXYSQUARED_NAME< PointType >
 This is the specialization for SpacePoints with returning floats, where value calculates the squared distance between two hits in 2D on the X-Y-plane. More...
 
class  DISTANCE3DNORMED_NAME< PointType >
 This is the specialization for SpacePoints with returning floats, where value calculates the normed distance between two hits in 3D. More...
 
class  DISTANCE3DSQUARED_NAME< PointType >
 This is the specialization for SpacePoints with returning floats, where value calculates the squared distance between two hits in 3D. More...
 
class  DISTANCEINTIME_U_NAME< PointType >
 This variable returns the time difference among the U side clusters of the two space points. More...
 
class  DISTANCEINTIME_V_NAME< PointType >
 This variable returns the time difference among the V side clusters of the two space points. More...
 
class  SLOPERZ_NAME< PointType >
 This is the specialization for SpacePoints with returning floats, where value calculates the slope in R-Z for a given pair of hits. More...
 
class  DecorrelationMatrix< Ndims >
 Class holding a Matrix that can be used to decorrelate input data to Machine Learning classifiers. More...
 
class  FBDTClassifier< Ndims >
 FastBDT as RelationsObject to make it storable and accessible on/via the DataStore. More...
 
struct  FBDTTrainSample< Ndims >
 bundle together the classifier input and the target value into one struct for easier passing around. More...
 
class  MLRange< ClassifierType, Ndims, CutType >
 Range used for the Machine Learning assisted TrackFinding approach. More...
 
class  Observer3HitPrintResults
 this observer does simply print the name of the SelectionVariable and the result of its value-function as a Warning(if failed) or as an Info (if succeeded) More...
 
class  ObserverCheckFilters
 this observer searches logs the response for each of SelectionVariables used in the filters If the pointer to the StoreArray is set the results will be put into the datastore More...
 
class  ObserverCheckMCPurity
 this observer searches for mcParticles attached to the hits given and stores the information found to be retrieved later. More...
 
class  ObserverPrintResults
 this observer does simply print the name of the SelectionVariable and the result of its value-function as a Warning(if failed) or as an Info (if succeeded) More...
 
class  SelectionVariableFactory< PointType >
 The factory,as the name implies, does not implement at all the factory paradigm. More...
 
struct  SelVarHelper< PointType, DataType >
 contains a collection of functions and related stuff needed for SelectionVariables implementing 2-, 3- and 4-hitfilters. More...
 
class  MVAExpert
 Class to interact with the MVA package, based on class with same name in CDC package. More...
 
class  ActivatedSector
 ActivatedSector is carrying the dynamic part of a Sector. More...
 
struct  BranchInterface< ValueType >
 simple struct for interfacing the Branch. More...
 
class  FilterMill< PointType >
 Small class which stores the filters/selectionVariables to be used for a secMap and has an interface for applying them. More...
 
class  SecIDPair
 allows to set outer and inner secID. More...
 
class  SecIDTriplet
 allows to set outer, center and inner secID. More...
 
class  SecIDQuadruplet
 allows to set outer, outerCenter, innerCenter and inner secID. More...
 
class  FilterValueDataSet< SecIDSetType >
 contains the relevant information needed for filling a TTree containing train-data for the secMap. More...
 
class  MinMax
 small class for storing min and max. More...
 
class  MinMaxCollector< DataType >
 A container for collecting data, where min- and max-quantiles near q(0) and q(1) are to be found. More...
 
class  NoKickCuts
 This class is an auxiliary class that implement methods to access to a single cut, used in NoKickRTSel class. More...
 
class  NoKickRTSel
 This class implement some methods useful for the application of cuts evaluated in NoKickCutsEval module. More...
 
class  RawDataCollectedMinMax
 takes care of collecting raw data and staying below RAM-threshold. More...
 
class  RawSecMapRootInterface
 To be used as an interface to root-stuff. More...
 
class  SecMapTrainer< FilterFactoryType >
 This class contains all relevant tools for training a VXDTFFilters. More...
 
class  SecMapTrainerHit
 simple Hit class used for sectorMap-training. More...
 
class  SecMapTrainerTC
 simple Hit class used for sectorMap-training. More...
 
class  Sector
 Sector is a central part of storing information for VXD trackFinders. More...
 
class  SectorFriendship
 SectorFriendship is carrying the link between parent sector and a connected sector (socalled Friendsector). More...
 
class  SectorGraph< FilterType >
 contains all subgraphs. More...
 
class  SectorMapComparer
 A root tool that compares two Sectormaps (local root files) and produces some statistics output. More...
 
class  SubGraph< FilterType >
 contains all relevant stuff needed for dealing with a subGraph. More...
 
class  SubGraphID
 stores the ID of a subgraph, which is basically a chain of FullSecID coded as unsigned ints. More...
 
class  ActiveSector< StaticSectorType, HitType >
 The ActiveSector Class. More...
 
class  CACell
 The CACell class This Class stores all relevant information one wants to have stored in a cell for a Cellular automaton. More...
 
class  DirectedNode< EntryType, MetaInfoType >
 The Node-Class. More...
 
class  DirectedNodeNetwork< EntryType, MetaInfoType >
 Network of directed nodes of the type EntryType. More...
 
class  DirectedNodeNetworkContainer
 The Container stores the output produced by the SegmentNetworkProducerModule. More...
 
class  Segment< HitType >
 The Segment class This class represents segments of track candidates needed for TrackFinderVXD-Modules. More...
 
class  StaticSector< HitType, Filter2sp, Filter3sp, Filter4sp >
 class to describe a static sector of the sector map. More...
 
struct  TrackNode
 Minimal class to store combination of sector and spacePoint, since SpacePoint can not carry sectorConnection. More...
 
class  VoidMetaInfo
 The most CPU efficient MetaInfo for the DirectedNode-requirements (even if useless). More...
 
struct  SpacePointTrackCandCreator< SPTCContainerType >
 small class to take simple vectors of SpacePoints and convert them to real SpacePointTrackCands More...
 
struct  QualityEstimationResults
 Container for complete fit/estimation results. More...
 
class  QualityEstimatorBase
 BaseClass for QualityEstimators. More...
 
class  QualityEstimatorCircleFit
 Class containing the algorithm to perform the simple circle fit. More...
 
class  QualityEstimatorLineFit3D
 Testbeam: Coords: Sensors: ^ . More...
 
class  QualityEstimatorMC
 Class implementing the algorithm used for the MC based quality estimation. More...
 
class  QualityEstimatorRandom
 Class implementing a random quality estimation. More...
 
class  QualityEstimatorRiemannHelixFit
 Based on R. More...
 
class  QualityEstimatorTripletFit
 does a tripletFit of the given hits The filter is based on the paper 'A New Three-Dimensional Track Fit with Multiple Scattering' by Andre Schoening et al. More...
 
class  AlwaysYesFilter
 AlwaysYesFilter is a simple filter saying always yes, which is meant for testing purposes. More...
 
class  FilterBase
 FilterBase is the baseClass for filters applied on (chains of) spacepoints. More...
 
class  HopfieldNetwork
 Hopfield Algorithm with number based inputs. More...
 
class  OverlapMatrixCreator
 Creates a vector of vectors, that knows which track is conflicting with which other. More...
 
class  OverlapNetwork
 Hold information about overlap of SpacePointTrackCand. More...
 
struct  OverlapResolverNodeInfo
 Struct for holding information needed by overlap resolving algorithms for one node. More...
 
class  Scrooge
 Executes greedy algorithm for vector of QITrackOverlap structs. More...
 
class  Named< T >
 A mixin class to attach a name to an object. Based on class with same name in CDC package. More...
 
class  ClusterInfoExtractor
 class to extract info from individual clusters and combine for SPTC More...
 
class  QEResultsExtractor
 class to extract results from qualityEstimation More...
 
class  SimpleVariableRecorder
 Class to write collected variables into a root file, Used by VXDQETrainingDataCollectorModule. More...
 
class  VariableExtractor
 class to extract individual variables More...
 
class  TrackFitter
 Algorithm class to handle the fitting of RecoTrack objects. More...
 
class  MeasurementAdder
 Algorithm class to translate the added detector hits (e.g. More...
 
class  BaseMeasurementCreator
 Base class for all measurement creators. More...
 
class  BaseMeasurementCreatorFromCoordinateMeasurement< HitType, detector >
 Baseclass to create measurement track points based on the coordinate measurements. More...
 
class  BaseMeasurementCreatorFromHit< HitType, detector >
 Base Class to create measurements based on a given hit related to the RecoTrack. More...
 
class  CoordinateMeasurementCreator< HitType, detector >
 A measurement creator for normal coordinate measurements out of cdc/svd/pxd hits. More...
 
class  VXDMomentumEstimationMeasurementCreator< HitType, detector >
 Creator for VXDMeasurements with momentum estimation based on the dEdX information. More...
 
class  AdditionalMeasurementCreatorFactory
 Add measurement creators that do not rely on a specific hit type, but rather add measurements without corresponding hit. More...
 
class  BKLMMeasurementCreatorFactory
 Add all measurement creators related to BKLM hits. More...
 
class  CDCMeasurementCreatorFactory
 Add all measurement creators related to CDC hits. More...
 
class  EKLMMeasurementCreatorFactory
 Add all measurement creators related to EKLM hits. More...
 
class  MeasurementCreatorFactory< BaseMeasurementCreatorType >
 This is the base class for all MeasurementCreatorFactories used in the MeasurementCreatorModule. More...
 
class  PXDMeasurementCreatorFactory
 Add all measurement creators related to PXD hits. More...
 
class  SVDMeasurementCreatorFactory
 Add all measurement creators related to SVD hits. More...
 
class  HMatrixQP
 AbsHMatrix implementation for one-dimensional MeasurementOnPlane and RKTrackRep parameterization. More...
 
class  PlanarMomentumMeasurement
 Measurement class implementing a planar hit geometry (1 or 2D) with only a momentum measurement. More...
 
class  PlanarVXDMomentumMeasurement< HitType >
 Measurement class implementing a planar hit geometry (1 or 2D) with a momentum measurement based on the VXD dEdX information with setable parameters (see VXDMomentumEstimationMeasurementCreator). More...
 
class  TrackBuilder
 TrackBuilder class to create the Track/TrackFitResult mdst output from the RecoTrack. More...
 
class  EventInfoExtractor
 class to extract results from qualityEstimation More...
 
class  HitInfoExtractor
 class to extract info from individual clusters and combine for SPTC More...
 
class  RecoTrackExtractor
 class to extract results from qualityEstimation More...
 
class  SubRecoTrackExtractor
 class to extract results from qualityEstimation More...
 
class  NewV0Fitter
 Improved V0 fitter class. More...
 
class  V0Fitter
 V0Fitter class to create V0 mdst's from reconstructed tracks. More...
 
class  ExporterEventInfo
 Bundles information for a single event to be stored by NonRootDataExportModule. More...
 
class  ExporterHitInfo
 Bundles information for a single hit to be stored by EventInfo (needed for HitExporter, which is needed by NonRootDataExportModule) More...
 
class  ExporterTcInfo
 Bundles information for a single track candidate to be stored by EventInfo (needed for HitExporter, which is needed by NonRootDataExportModule) More...
 
class  FilterExceptions
 Exception which are thrown by members of the FilterClasses. More...
 
class  FourHitFilters
 The class 'FourHitFilters' bundles filter methods using 4 hits which are stored in B2Vector3Ds. More...
 
class  GlobalNames
 Bundles filter methods using 2 hits. More...
 
class  ThreeHitFilters
 The class 'ThreeHitFilters' bundles filter methods using 3 hits which are stored in B2Vector3Ds. More...
 
class  TwoHitFilters
 The class 'TwoHitFilters' bundles filter methods using 2 hits which are stored in B2Vector3Ds. More...
 
class  XHitFilterFactory< PointType >
 The factory serves as an interface between all x-hit-filters and a user only knowing their name (in string), but not their type. More...
 
class  VXDMomentumEstimation< ClusterType >
 Class doing the momentum estimation from dEdX for SVDClusters and PXDClusters. More...
 
class  VXDMomentumEstimationTools< ClusterType >
 Tools needed for the VXD momentum estimation to, e.g. More...
 

Macros

#define SELECTION_VARIABLE(variableName, nArgs, argumentType, implementation)
 Template to define a selection-variable class.
 

Typedefs

using CDCCKFPath = std::vector<CDCCKFState>
 Shortcut for the collection of CDC CKF-algorithm states.
 
using CDCCKFResult = CDCCKFPath
 Alias for the collection of CDC CKF-algorithm states.
 
using BaseCDCPathPairFilter = TrackFindingCDC::Filter<std::pair<const CDCCKFPath*, const CDCCKFPath*>>
 Base filter for CKF CDC paths.
 
using BaseCDCPathFilter = TrackFindingCDC::Filter<CDCCKFPath>
 Base filter for CKF CDC paths.
 
using BaseCDCStateFilter
 Base filter for CKF CDC states.
 
using BasePXDPairFilter = TrackFindingCDC::Filter<std::pair<const CKFToPXDState*, const CKFToPXDState*>>
 Base filter for CKF PXD states.
 
using ChooseablePXDRelationFilter = LayerPXDRelationFilter<TrackFindingCDC::ChooseableFilter<PXDPairFilterFactory>>
 A chooseable filter for picking out the relations between states.
 
using BasePXDResultFilter = TrackFindingCDC::Filter<CKFToPXDResult>
 Base filter for CKF PXD results (on overlap check)
 
using ChooseablePXDResultFilter = TrackFindingCDC::ChooseableFilter<PXDResultFilterFactory>
 Alias for filter to weight the PXD clusters.
 
using BasePXDStateFilter
 Base filter for CKF PXD states.
 
using ChooseableOnPXDStateApplier
 Alias to apply the () operator to all items filtered by CKF PXD layer states.
 
using NonIPCrossingPXDStateFilter = NonIPCrossingStateFilter<AllPXDStateFilter>
 Alias for filter to check direction of a new CKF PXD state.
 
using PXDStateRejecter = StateRejecter<CKFToPXDState, ChooseableOnPXDStateApplier>
 Rejecter findlet for CKF PXD states.
 
using PXDAdvancer = Advancer
 The PXD advancer is just a synonym of the normal advancer (but may change in the future).
 
using BaseSVDPairFilter = TrackFindingCDC::Filter<std::pair<const CKFToSVDState*, const CKFToSVDState*>>
 Base filter for CKF SVD states.
 
using ChooseableSVDRelationFilter = LayerSVDRelationFilter<TrackFindingCDC::ChooseableFilter<SVDPairFilterFactory>>
 A chooseable filter for picking out the relations between states.
 
using BaseSVDResultFilter = TrackFindingCDC::Filter<CKFToSVDResult>
 Base filter for CKF SVD results (on overlap check)
 
using ChooseableSVDResultFilter = TrackFindingCDC::ChooseableFilter<SVDResultFilterFactory>
 Alias for filter to weight the SVD clusters.
 
using BaseSVDStateFilter
 Base filter for CKF SVD states.
 
using ChooseableOnSVDStateApplier
 Alias to apply the () operator to all items filtered by CKF SVD layer states.
 
using NonIPCrossingSVDStateFilter = NonIPCrossingStateFilter<AllSVDStateFilter>
 Alias for filter to check direction of a new CKF SVD state.
 
using SVDStateRejecter = StateRejecter<CKFToSVDState, ChooseableOnSVDStateApplier>
 Rejecter findlet for CKF SVD states.
 
using SVDAdvancer = Advancer
 The PXD advancer is just a synonym of the normal advancer (but may change in the future).
 
template<class AFindlet>
using EventTimeExtractorModule
 Alias for the event time extraction module.
 
using CDCBaseMeasurementCreator = BaseMeasurementCreatorFromHit<RecoHitInformation::UsedCDCHit, Const::CDC>
 Needed for templating.
 
using SVDBaseMeasurementCreator = BaseMeasurementCreatorFromHit<RecoHitInformation::UsedSVDHit, Const::SVD>
 Standard base class for SVD measurement creators.
 
using PXDBaseMeasurementCreator = BaseMeasurementCreatorFromHit<RecoHitInformation::UsedPXDHit, Const::PXD>
 Standard base class for PXD measurement creators.
 
using BKLMBaseMeasurementCreator = BaseMeasurementCreatorFromHit<RecoHitInformation::UsedBKLMHit, Const::BKLM>
 Standard base class for BKLM measurement creators.
 
using EKLMBaseMeasurementCreator = BaseMeasurementCreatorFromHit<RecoHitInformation::UsedEKLMHit, Const::EKLM>
 Standard base class for EKLM measurement creators.
 
using CDCCoordinateMeasurementCreator = CoordinateMeasurementCreator<RecoHitInformation::UsedCDCHit, Const::CDC>
 Needed for templating.
 
using SVDCoordinateMeasurementCreator = CoordinateMeasurementCreator<RecoHitInformation::UsedSVDHit, Const::SVD>
 Hit to reco hit measurement creator for the SVD.
 
using PXDCoordinateMeasurementCreator = CoordinateMeasurementCreator<RecoHitInformation::UsedPXDHit, Const::PXD>
 Hit to reco hit measurement creator for the PXD.
 
using BKLMCoordinateMeasurementCreator = CoordinateMeasurementCreator<RecoHitInformation::UsedBKLMHit, Const::BKLM>
 Hit to reco hit measurement creator for the BKLM.
 
using EKLMCoordinateMeasurementCreator = CoordinateMeasurementCreator<RecoHitInformation::UsedEKLMHit, Const::EKLM>
 Hit to reco hit measurement creator for the EKLM.
 
using SVDMomentumMeasurementCreator = VXDMomentumEstimationMeasurementCreator<RecoHitInformation::UsedSVDHit, Const::SVD>
 Momentum measurement creator for the SVD.
 
using PXDMomentumMeasurementCreator = VXDMomentumEstimationMeasurementCreator<RecoHitInformation::UsedPXDHit, Const::PXD>
 Momentum measurement creator for the PXD.
 

Enumerations

enum  VolTypes {
  VOLTYPE_CDC ,
  VOLTYPE_TOP1 ,
  VOLTYPE_TOP2 ,
  VOLTYPE_TOP3 ,
  VOLTYPE_ARICH1 ,
  VOLTYPE_ARICH2 ,
  VOLTYPE_ARICH3 ,
  VOLTYPE_ECL ,
  VOLTYPE_BKLM1 ,
  VOLTYPE_BKLM2 ,
  VOLTYPE_EKLM
}
 Enumeration for G4VPhysicalVolume sensitive-volume categories. More...
 

Functions

std::ostream & operator<< (std::ostream &output, const CDCCKFPath &path)
 Output operator for the collection of CDC CKF-algorithm states.
 
std::ostream & operator<< (std::ostream &output, const CDCCKFState &state)
 print state info
 
std::string getClassMnemomicParameterName (const RecoTrack *dispatchTag)
 Returns a short name for class RecoTrack to be used in names of parameters.
 
std::string getClassMnemomicParameterDescription (const RecoTrack *dispatchTag)
 Returns a short description for class RecoTrack to be used in descriptions of parameters.
 
std::string getClassMnemomicParameterName (const SpacePoint *dispatchTag)
 Returns a short name for class SpacePoint to be used in names of parameters.
 
std::string getClassMnemomicParameterDescription (const SpacePoint *dispatchTag)
 Returns a short description for class SpacePoint to be used in descriptions of parameters.
 
template<unsigned int NRows, unsigned int NCols, class AMatrix>
Eigen::Matrix< double, NRows, NCols, Eigen::RowMajor > convertToEigen (const AMatrix &matrix)
 Convert a ROOT matrix to Eigen. Checks for the correct row and column number.
 
template<unsigned int NRows>
Eigen::Matrix< double, NRows, 1 > convertToEigen (const TVectorD &matrix)
 Convert a ROOT matrix to Eigen - TVector specialisation. Checks for the correct row number.
 
template<class T>
void checkResizeClear (std::vector< T > &vectorToCheck, uint limit)
 Check capacity of a vector and create a fresh one if capacity too large If the capacity of a std::vector is very large without being used, it just allocates RAM for no reason, increasing the RAM usage unnecessarily.
 
constexpr bool arcLengthInRightDirection (double arcLength2D, TrackFindingCDC::EForwardBackward forwardBackward)
 Given the calculated arc length between a start point and an end point, checks if the travelled path is along the given direction or not.
 
TrackFindingCDC::EForwardBackward fromString (const std::string &directionString)
 Helper function to turn a direction string into a valid forward backward information.
 
long convertFloatToInt (double value, int power)
 Convert float or double to long int for more similarity to the FPGA implementation.
 
template<typename MapType>
std::vector< typename MapType::key_type > getUniqueKeys (const MapType &aMap)
 get the unique keys of a map (i.e.
 
template<typename MapType>
unsigned int getUniqueSize (const MapType &aMap)
 get the number of unique keys inside the map NOTE: for non-multimap this is the same as .size()
 
template<typename MapType>
std::vector< std::pair< typename MapType::key_type, unsigned int > > getNValuesPerKey (const MapType &aMap)
 get the unique keys of a map together with the number of values associated to each key.
 
template<typename MapType>
std::vector< typename MapType::mapped_type > getValuesToKey (const MapType &aMap, typename MapType::key_type aKey)
 get all values stored in the map for a given key
 
template<typename MapType>
std::vector< std::tuple< typename MapType::key_type, typename MapType::mapped_type, unsigned int > > getSortedKeyValueTuples (const MapType &aMap)
 get the (key, value, number of values) tuples stored in the map, sorted after the following scheme (descending order) 1) the number of associated values to one key 2) the sum of the associated values to that key NOTE: for a non-multimap this returns the content of the map ordered by valued CAUTION: if one of the values to a key is NaN this key will be the first (of the ones with the same number of associated values)
 
template<typename MapType>
std::vector< typename MapType::mapped_type > getAllValues (const MapType &aMap)
 get all values in the map (i.e.
 
template<typename MapType>
std::string printMap (const MapType &aMap)
 get the contents of the map as string.
 
static bool findWeightInVector (std::vector< std::pair< int, double > > &vec, double weight)
 find the given weight in the given vector of pair<int,double> NOTE: the criteria for finding are rather loose (i.e.
 
template<typename TrueHitType>
static std::vector< std::pair< int, double > > getMCParticles (const Belle2::SpacePoint *spacePoint)
 get the related MCParticles to the TrueHit.
 
static void increaseClusterCounters (const Belle2::SpacePoint *spacePoint, std::array< unsigned, 3 > &clusterCtr)
 increase the appropriate Cluster counter by asking the SpacePoint which type he has and which Clusters are assigned
 
static std::vector< size_t > getAccessorsFromWeight (double weight)
 convert the relation weight (SpacePoint <-> TrueHit) to a type that can be used to access arrays
 
static std::vector< Belle2::MCVXDPurityInfocreatePurityInfosVec (const std::vector< const Belle2::SpacePoint * > &spacePoints)
 create a vector of MCVXDPurityInfos objects for a std::vector<Belle2::SpacePoints>.
 
template<typename SPContainer>
static std::vector< Belle2::MCVXDPurityInfocreatePurityInfos (const SPContainer *container)
 create a vector of MCVXDPurityInfos objects for any given container holding SpacePoints and providing a getHits() method each MCParticle that is in the container gets its own object NOTE: negative MCParticleIds are possible und used as follows:
 
template<typename SPContainer>
static std::vector< Belle2::MCVXDPurityInfocreatePurityInfos (const SPContainer &container)
 
template<class NetworkPath>
SpacePointTrackCand convertNetworkPath (NetworkPath networkPath)
 Create new SPTC from network path.
 
void insertSpacePoint (std::vector< const SpacePoint * > &target, TrackNode source)
 Convert TrackNode to SpaePoint an add to a SpacePoint path.
 
void insertSpacePoints (std::vector< const SpacePoint * > &target, const Segment< TrackNode > &source)
 Insert of inner and outer TrackNodes of a Segment as SpacePoints into path of SpacePoints.
 
template<class DataType, class TCInfoType, class VectorType>
bool operator== (const AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > &a, const std::string &b)
 non-memberfunction Comparison for equality with a std::string
 
template<class DataType, class TCInfoType, class VectorType>
bool operator== (const std::string &a, const AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > &b)
 non-memberfunction Comparison for equality with a std::string
 
template<class DataType, class TCInfoType, class VectorType>
bool operator== (const AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > &a, const AlgoritmType::Type &b)
 non-memberfunction Comparison for equality with a AlgoritmType::Type
 
template<class DataType, class TCInfoType, class VectorType>
bool operator== (const AlgoritmType::Type &a, const AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > &b)
 non-memberfunction Comparison for equality with a AlgoritmType::Type
 
template<class DataType, class TCInfoType, class VectorType>
AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > * AnalyzingAlgorithmFactoryDouble (AlgoritmType::Type algorithmID)
 the analyzingAlgorithm factory for algorithms returning one double for each TC passed:
 
template<class DataType, class TCInfoType, class VectorType>
AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > * AnalyzingAlgorithmFactoryInt (AlgoritmType::Type algorithmID)
 the analyzingAlgorithm factory for algorithms returning one int for each TC passed:
 
template<class DataType, class TCInfoType, class VectorType>
AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > * AnalyzingAlgorithmFactoryVecDouble (AlgoritmType::Type algorithmID)
 the analyzingAlgorithm factory for algorithms returning one vector< double> for each TC passed:
 
template<typename ... types>
Filter< OperatorNot, Filter< types... >, VoidObserveroperator! (const Filter< types... > &filter)
 Definition of the NOT operator !
 
template<typename ... types1, typename ... types2>
Filter< Belle2::OperatorAnd, Belle2::Filter< types1... >, Belle2::Filter< types2... >, Belle2::VoidObserveroperator&& (const Filter< types1... > &filter1, const Filter< types2... > &filter2)
 Definition of the boolean AND operator && of the Filter class.
 
template<typename ... types1, typename ... types2>
Filter< Belle2::OperatorOr, Belle2::Filter< types1... >, Belle2::Filter< types2... >, Belle2::VoidObserveroperator|| (const Filter< types1... > &filter1, const Filter< types2... > &filter2)
 Definition of the boolean OR operator || of the Filter class.
 
template<class booleanBinaryOperator, typename ... types1, typename ... types2, class observer, typename ... argsTypes>
bool initializeObservers (const Filter< booleanBinaryOperator, Belle2::Filter< types1... >, Belle2::Filter< types2... >, observer > &, argsTypes ... args)
 Observer Stuff ///.
 
template<class booleanUnaryOperator, typename ... types1, class observer, typename ... argsTypes>
bool initializeObservers (const Filter< booleanUnaryOperator, Belle2::Filter< types1... >, observer > &, argsTypes ... args)
 Recursive function to initialize all the observers in a unary boolean Filter.
 
template<class Variable, class RangeType, class observer, typename ... argsTypes>
bool initializeObservers (const Belle2::Filter< Variable, RangeType, observer > &filter, argsTypes ... args)
 Initialize the observer of a RangeType Filter.
 
template<class Variable, class Range, class ... Options>
std::unordered_map< std::string, typename Variable::functionType > SelectionVariableNamesToFunctions (Belle2::Filter< Variable, Range, Options... >)
 Return a map from the SelectionVariable name to the SelectionVariable function of the Variable used in the filter that is the template argument parameter.
 
template<class someFilter, class ... options>
std::unordered_map< std::string, typename someFilter::functionType > SelectionVariableNamesToFunctions (Belle2::Filter< Belle2::OperatorNot, someFilter, options... >)
 Wrapper for filters with NOT Operator tag.
 
template<class FilterA, class FilterB, class ... options>
std::unordered_map< std::string, typename FilterA::functionType > SelectionVariableNamesToFunctions (Belle2::Filter< Belle2::OperatorAnd, FilterA, FilterB, options... >)
 Wrapper for filters with AND Operator tag.
 
template<class FilterA, class FilterB, class ... options>
std::unordered_map< std::string, typename FilterA::functionType > SelectionVariableNamesToFunctions (Belle2::Filter< Belle2::OperatorOr, FilterA, FilterB, options... >)
 Wrapper for filters with OR Operator tag.
 
template<class Var, class Arithmetic, typename ... types>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, UpperBoundedSet< Arithmetic >, VoidObserver > >::type operator< (const Var &, Arithmetic upperBound)
 Creates a Filters with an upper bound < on the provided variable Var < lowerBound.
 
template<class Var, class Arithmetic, typename ... types>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, ClosedUpperBoundedSet< Arithmetic >, VoidObserver > >::type operator<= (const Var &, Arithmetic upperBound)
 Creates a Filters with a closed upper bound <= on the provided variable Var <= lowerBound.
 
template<class Var, class Arithmetic>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, LowerBoundedSet< Arithmetic >, VoidObserver > >::type operator> (const Var &, Arithmetic lowerBound)
 Creates a Filters with an lower bound > on the provided variable Var > lowerBound.
 
template<class Var, class Arithmetic>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, ClosedLowerBoundedSet< Arithmetic >, VoidObserver > >::type operator>= (const Var &, Arithmetic lowerBound)
 Creates a Filters with a closed lower bound >= on the provided variable Var >= lowerBound.
 
template<class Var, class Arithmetic>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, UpperBoundedSet< Arithmetic >, VoidObserver > >::type operator> (Arithmetic upperBound, const Var &)
 Creates a Filters with an upper bound < on the provided variable upperBound > Var.
 
template<class Var, class Arithmetic>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, ClosedUpperBoundedSet< Arithmetic >, VoidObserver > >::type operator>= (Arithmetic upperBound, const Var &)
 Creates a Filters with a closed upper bound <= on the provided variable upperBound >= Var.
 
template<class Var, class Arithmetic>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, LowerBoundedSet< Arithmetic >, VoidObserver > >::type operator< (Arithmetic lowerBound, const Var &)
 Creates a Filters with an lower bound > on the provided variable lowerBound < Var.
 
template<class Var, class Arithmetic>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, ClosedLowerBoundedSet< Arithmetic >, VoidObserver > >::type operator<= (Arithmetic lowerBound, const Var &)
 Creates a Filters with a closed lower bound >= on the provided variable lowerBound <= Var.
 
template<class Var, class Val>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value, Filter< Var, SingleElementSet< Val >, VoidObserver > >::type operator== (const Var &, Val v)
 Creates a Filters to compare a variable against a given value Var == Val;.
 
template<class Var, class Val>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value, Filter< Var, SingleElementSet< Val >, VoidObserver > >::type operator== (Val val, const Var &var)
 Creates a Filters to compare a variable against a given value Val == Var;.
 
template<class Var, class ArithmeticLower, class ArithmeticUpper, class Observer>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< ArithmeticLower >::value &&std::is_arithmetic< ArithmeticUpper >::value, Filter< Var, Range< ArithmeticLower, ArithmeticUpper >, Observer > >::type operator< (const Filter< Var, LowerBoundedSet< ArithmeticLower >, Observer > &filter, ArithmeticUpper upperBound)
 Adding upper bound to filter with lower bound to create a filter with an allowed range between lower and upper bound.
 
template<class Var, class ArithmeticLower, class ArithmeticUpper, class Observer>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< ArithmeticLower >::value &&std::is_arithmetic< ArithmeticUpper >::value, Filter< Var, Range< ArithmeticLower, ArithmeticUpper >, Observer > >::type operator> (const Filter< Var, UpperBoundedSet< ArithmeticUpper >, Observer > &filter, ArithmeticLower lowerBound)
 Adding lower bound to filter with upper bound to create a filter with an allowed range between lower and upper bound.
 
template<class Var, class ArithmeticLower, class ArithmeticUpper, class Observer>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< ArithmeticLower >::value &&std::is_arithmetic< ArithmeticUpper >::value, Filter< Var, ClosedRange< ArithmeticLower, ArithmeticUpper >, Observer > >::type operator<= (const Filter< Var, ClosedLowerBoundedSet< ArithmeticLower >, Observer > &filter, ArithmeticUpper upperBound)
 Adding closed upper bound to filter with closed lower bound to create a filter with an allowed closed range between lower and upper bound.
 
template<class Var, class ArithmeticLower, class ArithmeticUpper, class Observer>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< ArithmeticLower >::value &&std::is_arithmetic< ArithmeticUpper >::value, Filter< Var, ClosedRange< ArithmeticLower, ArithmeticUpper >, Observer > >::type operator>= (const Filter< Var, ClosedUpperBoundedSet< ArithmeticUpper >, Observer > &filter, ArithmeticLower lowerBound)
 Adding closed lower bound to filter with closed upper bound to create a filter with an allowed closed range between lower and upper bound.
 
char TBranchLeafType (const char *)
 Overloading TBranchLeafType to be able to get identifier 'C' for type char*.
 
char TBranchLeafType (const Char_t &)
 Overloading TBranchLeafType to be able to get identifier 'B' for type Char_t.
 
char TBranchLeafType (const unsigned char &)
 Overloading TBranchLeafType to be able to get identifier 'b' for type unsigned char.
 
char TBranchLeafType (const short &)
 Overloading TBranchLeafType to be able to get identifier 'S' for type short.
 
char TBranchLeafType (const unsigned short &)
 Overloading TBranchLeafType to be able to get identifier 's' for type unsigned short.
 
char TBranchLeafType (const Int_t &)
 Overloading TBranchLeafType to be able to get identifier 'I' for type Int_t.
 
char TBranchLeafType (const UInt_t &)
 Overloading TBranchLeafType to be able to get identifier 'i' for type UInt_t.
 
char TBranchLeafType (const Float_t &)
 Overloading TBranchLeafType to be able to get identifier 'F' for type Float_t.
 
char TBranchLeafType (const Double_t &)
 Overloading TBranchLeafType to be able to get identifier 'D' for type Double_t.
 
char TBranchLeafType (const long int &)
 Overloading TBranchLeafType to be able to get identifier 'L' for type long int.
 
char TBranchLeafType (const unsigned long int &)
 Overloading TBranchLeafType to be able to get identifier 'l' for type unsigned long int.
 
char TBranchLeafType (const bool &)
 Overloading TBranchLeafType to be able to get identifier 'O' for type bool.
 
template<size_t Ndims>
const Eigen::Matrix< double, Ndims, Ndims, Eigen::RowMajor > calculateCovMatrix (std::array< std::vector< double >, Ndims > inputData)
 calculates the empirical covariance matrix from the inputData.
 
template<size_t Ndims>
static void readSamplesFromStream (std::istream &is, std::vector< FBDTTrainSample< Ndims > > &samples)
 read samples from stream and append them to samples
 
template<size_t Ndims>
static void writeSamplesToStream (std::ostream &os, const std::vector< FBDTTrainSample< Ndims > > &samples)
 write all samples to stream
 
template<class EntryType, class MetaInfoType>
bool operator== (const EntryType &a, const DirectedNode< EntryType, MetaInfoType > &b)
 ************************* NON-MEMBER FUNCTIONS *************************
 
short calcCurvatureSignum (std::vector< SpacePoint const * > const &measurements)
 Calculate curvature based on triplets of measurements.
 
TrackFindingCDC::Weight operator() (const Object &pair) final
 Main function testing the object for the direction.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override
 Expose the direction parameter.
 
void initialize () final
 Copy the string direction parameter to the enum.
 
 ~CKFRelationCreator ()
 Default destructor.
 
 CKFRelationCreator ()
 Construct this findlet and add the subfindlet as listener.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) final
 Expose the parameters of the subfindlet.
 
void apply (std::vector< AState > &seedStates, std::vector< AState > &states, std::vector< TrackFindingCDC::WeightedRelation< AState > > &relations) override
 Apply both filters for creating state-hit and hit-hit relations.
 
 LayerToggledApplier ()
 Add the subfilters as listeners.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) final
 Expose parameters of the subfilters and the layer to change.
 
void apply (const std::vector< TrackFindingCDC::WithWeight< const AState * > > &currentPath, std::vector< TrackFindingCDC::WithWeight< AState * > > &childStates) override
 The weight is calculated using the subfilter based on the geometrical layer of the state.
 
 LimitedOnStateApplier ()
 Constructor adding the findlet as a listener.
 
void apply (const std::vector< TrackFindingCDC::WithWeight< const AState * > > &currentPath, std::vector< TrackFindingCDC::WithWeight< AState * > > &childStates) override
 Apply the filter to each pair of states and current path and let only pass the best N states.
 
TrackFindingCDC::Weight operator() (const Object &object) override
 Copy the filter operator to this method.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override
 Expose the parameters of the subfindlet.
 
void apply (const std::vector< TrackFindingCDC::WithWeight< const AState * > > &currentPath, std::vector< TrackFindingCDC::WithWeight< AState * > > &childStates) override
 Apply the () operator to all pairs of state and current path.
 
virtual TrackFindingCDC::Weight operator() (const Object &object)
 The filter operator for this class.
 
 OverlapResolver ()
 Construct this findlet and add the subfindlet as listener.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) final
 Expose the parameters of the subfindlet.
 
void apply (std::vector< Object > &results, std::vector< Object > &filteredResult) override
 For each seed, search for the best candidate and return it.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override
 Expose the parameters of the sub findlets.
 
void initialize () override
 Create the store arrays.
 
void apply (std::vector< AResult > &results) override
 Load in the reco tracks and the hits.
 
void beginEvent () override
 Clear the used clusters.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override
 Expose the parameters of the findlet.
 
void apply (const std::vector< AResult > &results, const std::vector< const SpacePoint * > &spacePoints) override
 Mark all space points as used, that they share clusters if the given kind with the results.
 
void apply (const std::vector< AnObject * > &objects, std::vector< AState > &states) override
 Add new states to the list of states using all given objects.
 
void apply (const std::vector< RecoTrack * > &objects, std::vector< AState > &states) final
 Create states from the space points, including a reverse flag or not.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) final
 Expose the parameters.
 
 StateRejecter ()
 Construct this findlet and add the subfindlet as listener.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) final
 Expose the parameters of the subfindlet.
 
void apply (const std::vector< TrackFindingCDC::WithWeight< const AState * > > &currentPath, std::vector< TrackFindingCDC::WithWeight< AState * > > &childStates) final
 Apply all five filters to the child states.
 
 TreeSearcher ()
 Construct this findlet and add the subfindlet as listener.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) final
 Expose the parameters of the subfindlet.
 
void apply (const std::vector< AState > &seededStates, std::vector< AState > &hitStates, const std::vector< TrackFindingCDC::WeightedRelation< AState > > &relations, std::vector< AResult > &results) final
 Main function of this findlet: traverse a tree starting from a given seed states.
 
void traverseTree (std::vector< TrackFindingCDC::WithWeight< const AState * > > &path, const std::vector< TrackFindingCDC::WeightedRelation< AState > > &relations, std::vector< AResult > &results)
 Implementation of the traverseTree function.
 
 LayerPXDRelationFilter ()
 Add the filter as listener.
 
 ~LayerPXDRelationFilter ()
 Default destructor.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override
 Expose the parameters of the filter.
 
void initialize () override
 Receive and dispatch signal before the start of the event processing.
 
void beginRun () override
 Receive and dispatch signal for the beginning of a new run.
 
std::vector< CKFToPXDState * > getPossibleTos (CKFToPXDState *from, const std::vector< CKFToPXDState * > &states) const override
 Return all states the given state is possible related to.
 
TrackFindingCDC::Weight operator() (const CKFToPXDState &from, const CKFToPXDState &to) override
 Give a final weight to the possibilities by asking the filter.
 
 LayerSVDRelationFilter ()
 Add the filter as listener.
 
void beginRun () final
 Initialize the maximal ladder cache.
 
 ~LayerSVDRelationFilter ()
 Default destructor.
 
std::vector< CKFToSVDState * > getPossibleTos (CKFToSVDState *from, const std::vector< CKFToSVDState * > &states) const final
 Return all states the given state is possible related to.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) final
 Expose the parameters of the filter.
 
TrackFindingCDC::Weight operator() (const CKFToSVDState &from, const CKFToSVDState &to) final
 Give a final weight to the possibilities by asking the filter.
 
void beginRun () final
 Initialize the sector map.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) final
 Expose the parameters of the filter.
 
TrackFindingCDC::Weight operator() (const std::pair< const CKFToSVDState *, const CKFToSVDState * > &relation) override
 Give a final weight to the possibilities by asking the filter.
 
bool wasSuccessful () const
 Returns true if the last run t0 extraction was successful.
 
virtual void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override
 Expose our parameters to the super module.
 
virtual void initialize () override
 Initialize the event t0 store obj ptr.
 
virtual void beginEvent () override
 Create the event t0 store obj ptr.
 
void resetEventT0 () const
 Reset the t0 value to cached value if it exists or clear it otherwise.
 
 BaseEventTimeExtractorModuleFindlet ()
 Add the subfindlet as listener.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override final
 Expose our parameters to the super module.
 
void apply (std::vector< RecoTrack * > &recoTracks) override final
 Apply the findlets.
 
 GridEventTimeExtractor ()
 Add the subfindlet as listener.
 
void apply (std::vector< RecoTrack * > &recoTracks) override final
 Timing extraction for this findlet.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override final
 Expose the parameters.
 
 IterativeEventTimeExtractor ()
 Add the subfindlet as listener.
 
void apply (std::vector< RecoTrack * > &recoTracks) override final
 Timing extraction for this findlet.
 
void exposeParameters (ModuleParamList *moduleParamList, const std::string &prefix) override
 Expose the parameters.
 
 ROIToUnitTranslator (const ROIinfo *theROIinfo)
 Constructor.
 
 ROIToUnitTranslator (double sigmaSystU, double sigmaSystV, double numSigmaTotU, double numSigmaTotV, double maxWidthU, double maxWidthV)
 Second Constructor.
 
void fillRoiIDList (StoreArray< aIntercept > *listOfIntercepts, StoreArray< ROIid > *ROIidList)
 Append the ROIid to the list listToBeFilled.
 
void fillInterceptList (StoreArray< aIntercept > *listToBeFilled, const StoreArray< RecoTrack > &trackList, RelationArray *recoTrackToIntercepts)
 Fill the list of PXD intecepts corresponding to the list of track candidates.
 
void appendIntercepts (StoreArray< aIntercept > *interceptList, std::list< ROIDetPlane > planeList, genfit::MeasuredStateOnPlane state, int recoTrackIndex, RelationArray *recoTrackToIntercepts)
 Append the Intercept infos related to the track theTrack to the listToBeFilled.
 
 VariableTBranch (TTree *tree)
 Add to the TTree.
 
void calculateDecorrMatrix (std::array< std::vector< double >, Ndims > inputData, bool normalise=true)
 calculate the transformation matrix that when applied to the input data yields linearly uncorrelated data.
 
std::vector< double > decorrelate (const std::vector< double > &inputVec) const
 "decorrelate" one measurement (i.e.
 
std::vector< double > decorrelate (const std::array< double, Ndims > &inputs) const
 "decorrelate" one measurement (i.e.
 
std::array< std::vector< double >, Ndims > decorrelate (const std::array< std::vector< double >, Ndims > &inputMat) const
 decorrelate M measurements (i.e.
 
std::string print () const
 print the matrix to a string.
 
bool readFromStream (std::istream &is)
 read from stream.
 
double analyze (const std::array< double, Ndims > &hits) const
 calculate the output of the FastBDT.
 
virtual std::vector< genfit::MeasurementOnPlane * > constructMeasurementsOnPlane (const genfit::StateOnPlane &state) const override
 Construct the measurement on the plane set in the parent element.
 
const TMatrixD & getMatrix () const override
 Return the underlying matrix.
 
TVectorD Hv (const TVectorD &v) const override
 Calculate H * v = v_0.
 
TMatrixD MHt (const TMatrixDSym &M) const override
 Calculate M * H^T = first column of M.
 
TMatrixD MHt (const TMatrixD &M) const override
 Calculate M * H^T = first column of M.
 
void HMHt (TMatrixDSym &M) const override
 Calculate H * M * H^T = M_00.
 
virtual void Print (const Option_t *="") const override
 Print a symbol for the matrix for debugging.
 

Variables

static constexpr char const *const cdcfromEclPathTruthVarNames []
 Names of the variables to be generated.
 
static constexpr char const *const cdcPathBasicVarNames []
 Names of the variables to be generated.
 
static constexpr char const *const cdcPathTruthVarNames []
 Names of the variables to be generated.
 
static constexpr char const *const cdcfromEclStateTruthVarNames []
 Names of the variables to be generated.
 
static constexpr char const *const cdcStateBasicVarNames []
 Names of the variables to be generated.
 
static constexpr char const *const cdcStateTruthVarNames []
 Names of the variables to be generated.
 
static constexpr char const *const pxdResultTruthNames []
 Names of the variables to be generated.
 
static constexpr char const *const pxdResultVarNames []
 Names of the variables to be generated.
 
static constexpr char const *const pxdStateBasicVarNames []
 Names of the variables to be generated.
 
static constexpr char const *const pxdStateTruthVarNames []
 Names of the variables to be generated.
 
static constexpr char const *const relationSVDResultVarNames []
 Names of the variables to be generated.
 
static constexpr char const *const svdResultTruthNames []
 Names of the variables to be generated.
 
static constexpr char const *const svdResultVarNames []
 Names of the variables to be generated.
 
static constexpr char const *const svdStateBasicVarNames []
 Names of the variables to be generated.
 
static constexpr char const *const svdStateTruthVarNames []
 Names of the variables to be generated.
 
static constexpr char const *const svdStateVarNames []
 Names of the variables to be generated.
 
template<class DataType, class TCInfoType, class VectorType>
VectorType AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType >::s_origin = VectorType(0, 0, 0)
 setting the static origin to a standard value
 
template<class DataType, class TCInfoType, class VectorType>
bool AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType >::m_storeRefTCDataForTestTC = false
 setting the static storeRefTCDataForTestTC to a standard value
 
template<typename PointType, typename DataType>
DataType SelVarHelper< PointType, DataType >::s_MagneticFieldFactor
 magnetic field factor
 

Detailed Description

Macro Definition Documentation

◆ SELECTION_VARIABLE

#define SELECTION_VARIABLE ( variableName,
nArgs,
argumentType,
implementation )
Value:
class variableName: \
public SelectionVariable< argumentType , nArgs, double > \
{ \
public: \
static const std::string name(void) {return #variableName; }; \
implementation \
}; \

Template to define a selection-variable class.

Definition at line 111 of file SelectionVariable.h.

111#define SELECTION_VARIABLE( variableName, nArgs, argumentType, implementation ) \
112 class variableName: \
113 public SelectionVariable< argumentType , nArgs, double > \
114 { \
115 public: \
116 static const std::string name(void) {return #variableName; }; \
117 implementation \
118 }; \
119

Typedef Documentation

◆ BaseCDCPathFilter

Base filter for CKF CDC paths.

Definition at line 19 of file BaseCDCPathFilter.h.

◆ BaseCDCPathPairFilter

Base filter for CKF CDC paths.

Definition at line 21 of file BaseCDCPathPairFilter.h.

◆ BaseCDCStateFilter

Initial value:

Base filter for CKF CDC states.

Definition at line 20 of file BaseCDCStateFilter.h.

◆ BasePXDPairFilter

Base filter for CKF PXD states.

Definition at line 19 of file BasePXDPairFilter.h.

◆ BasePXDResultFilter

Base filter for CKF PXD results (on overlap check)

Definition at line 19 of file BasePXDResultFilter.h.

◆ BasePXDStateFilter

Initial value:

Base filter for CKF PXD states.

Definition at line 20 of file BasePXDStateFilter.h.

◆ BaseSVDPairFilter

Base filter for CKF SVD states.

Definition at line 19 of file BaseSVDPairFilter.h.

◆ BaseSVDResultFilter

Base filter for CKF SVD results (on overlap check)

Definition at line 19 of file BaseSVDResultFilter.h.

◆ BaseSVDStateFilter

Initial value:

Base filter for CKF SVD states.

Definition at line 21 of file BaseSVDStateFilter.h.

◆ BKLMBaseMeasurementCreator

Standard base class for BKLM measurement creators.

Definition at line 89 of file BaseMeasurementCreatorFromHit.h.

◆ BKLMCoordinateMeasurementCreator

Hit to reco hit measurement creator for the BKLM.

Definition at line 42 of file CoordinateMeasurementCreator.h.

◆ CDCBaseMeasurementCreator

Needed for templating.

Standard base class for CDC measurement creators.

Definition at line 83 of file BaseMeasurementCreatorFromHit.h.

◆ CDCCKFPath

using CDCCKFPath = std::vector<CDCCKFState>

Shortcut for the collection of CDC CKF-algorithm states.

Definition at line 19 of file CDCCKFPath.h.

◆ CDCCKFResult

Alias for the collection of CDC CKF-algorithm states.

Definition at line 18 of file CDCCKFResult.h.

◆ CDCCoordinateMeasurementCreator

Needed for templating.

Hit to reco hit measurement creator for the CDC.

Definition at line 36 of file CoordinateMeasurementCreator.h.

◆ ChooseableOnPXDStateApplier

Initial value:

Alias to apply the () operator to all items filtered by CKF PXD layer states.

Definition at line 24 of file ChooseableOnPXDStateApplier.h.

◆ ChooseableOnSVDStateApplier

Initial value:
Specialisation of the OnStateApplier, which (a) uses a filter for the () operator,...
Convenvience wrapper to setup a Chooseable filter from a specific factory object.

Alias to apply the () operator to all items filtered by CKF SVD layer states.

Definition at line 25 of file ChooseableOnSVDStateApplier.h.

◆ ChooseablePXDRelationFilter

A chooseable filter for picking out the relations between states.

Definition at line 22 of file ChooseablePXDRelationFilter.h.

◆ ChooseablePXDResultFilter

Alias for filter to weight the PXD clusters.

Definition at line 24 of file ChooseablePXDResultFilter.h.

◆ ChooseableSVDRelationFilter

A chooseable filter for picking out the relations between states.

Definition at line 20 of file ChooseableSVDRelationFilter.h.

◆ ChooseableSVDResultFilter

Alias for filter to weight the SVD clusters.

Definition at line 19 of file ChooseableSVDResultFilter.h.

◆ EKLMBaseMeasurementCreator

Standard base class for EKLM measurement creators.

Definition at line 91 of file BaseMeasurementCreatorFromHit.h.

◆ EKLMCoordinateMeasurementCreator

Hit to reco hit measurement creator for the EKLM.

Definition at line 44 of file CoordinateMeasurementCreator.h.

◆ EventTimeExtractorModule

template<class AFindlet>
using EventTimeExtractorModule
Initial value:
Adapter of a findlet to a module that exposes the parameters of the findlet and manages the IO with t...
Findlet which can wrap another Findlet and forward the contents of a StoreArray to the wrapped findle...

Alias for the event time extraction module.

Definition at line 50 of file BaseEventTimeExtractorModule.dcl.h.

◆ NonIPCrossingPXDStateFilter

Alias for filter to check direction of a new CKF PXD state.

Definition at line 20 of file NonIPCrossingPXDStateFilter.h.

◆ NonIPCrossingSVDStateFilter

Alias for filter to check direction of a new CKF SVD state.

Definition at line 20 of file NonIPCrossingSVDStateFilter.h.

◆ PXDAdvancer

The PXD advancer is just a synonym of the normal advancer (but may change in the future).

Definition at line 18 of file PXDAdvancer.h.

◆ PXDBaseMeasurementCreator

Standard base class for PXD measurement creators.

Definition at line 87 of file BaseMeasurementCreatorFromHit.h.

◆ PXDCoordinateMeasurementCreator

Hit to reco hit measurement creator for the PXD.

Definition at line 40 of file CoordinateMeasurementCreator.h.

◆ PXDMomentumMeasurementCreator

◆ PXDStateRejecter

Rejecter findlet for CKF PXD states.

Definition at line 22 of file PXDStateRejecter.h.

◆ SVDAdvancer

The PXD advancer is just a synonym of the normal advancer (but may change in the future).

Definition at line 18 of file SVDAdvancer.h.

◆ SVDBaseMeasurementCreator

Standard base class for SVD measurement creators.

Definition at line 85 of file BaseMeasurementCreatorFromHit.h.

◆ SVDCoordinateMeasurementCreator

Hit to reco hit measurement creator for the SVD.

Definition at line 38 of file CoordinateMeasurementCreator.h.

◆ SVDMomentumMeasurementCreator

◆ SVDStateRejecter

Rejecter findlet for CKF SVD states.

Definition at line 24 of file SVDStateRejecter.h.

Enumeration Type Documentation

◆ VolTypes

enum VolTypes

Enumeration for G4VPhysicalVolume sensitive-volume categories.

Enumerator
VOLTYPE_CDC 

CDC.

VOLTYPE_TOP1 

TOP container.

VOLTYPE_TOP2 

TOP quartz.

VOLTYPE_TOP3 

TOP glue.

VOLTYPE_ARICH1 

ARICH aerogel.

VOLTYPE_ARICH2 

ARICH Img plate.

VOLTYPE_ARICH3 

ARICH HAPD window.

VOLTYPE_ECL 

ECL.

VOLTYPE_BKLM1 

BKLM RPC.

VOLTYPE_BKLM2 

BKLM scintillator.

VOLTYPE_EKLM 

EKLM.

Definition at line 70 of file TrackExtrapolateG4e.h.

70 {
93 };
@ VOLTYPE_ARICH2
ARICH Img plate.
@ VOLTYPE_TOP2
TOP quartz.
@ VOLTYPE_TOP3
TOP glue.
@ VOLTYPE_ARICH3
ARICH HAPD window.
@ VOLTYPE_BKLM2
BKLM scintillator.
@ VOLTYPE_EKLM
EKLM.
@ VOLTYPE_BKLM1
BKLM RPC.
@ VOLTYPE_ARICH1
ARICH aerogel.
@ VOLTYPE_TOP1
TOP container.

Function Documentation

◆ analyze()

template<size_t Ndims>
double analyze ( const std::array< double, Ndims > & hits) const

calculate the output of the FastBDT.

At the moment fixed to 3 hits

Definition at line 96 of file FBDTClassifier.h.

97 {
98 std::vector<double> positions = m_decorrMat.decorrelate(hits);
99
100 std::vector<unsigned> bins(Ndims);
101 for (size_t i = 0; i < Ndims; ++i) {
102 bins[i] = m_featBins[i].ValueToBin(positions[i]);
103 }
104
105 return m_forest.Analyse(bins);
106 }

◆ AnalyzingAlgorithmFactoryDouble()

template<class DataType, class TCInfoType, class VectorType>
AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > * AnalyzingAlgorithmFactoryDouble ( AlgoritmType::Type algorithmID)

the analyzingAlgorithm factory for algorithms returning one double for each TC passed:

returns the algorithm matching the given ID.

residuals

values of single entries

Definition at line 34 of file AnalyzingAlgorithmFactory.h.

35 {
39
40 if (algorithmID == AnalyzingAlgorithmResidualPX<DataType, TCInfoType, VectorType>())
41 { return new AnalyzingAlgorithmResidualPX<DataType, TCInfoType, VectorType>(); }
42
45
48
51
54
57
60
63
66
69
72
73
77
80
83
86
89
92
95
98
101
104
107
108 if (!AlgoritmType::isValueDoubleType(algorithmID)
109 and !AlgoritmType::isResidualDoubleType(algorithmID)
111 or AlgoritmType::isHitValueIntType(algorithmID))) {
112 B2WARNING(" AnalyzingAlgorithmFactoryDouble: given algorithmID " << AlgoritmType::getTypeName(algorithmID) <<
113 " is no algorithm of double type but of another (valid) category. Please use the correct factory for your purpose. Returning non-functioning base-class instead!");
114 } else {
115 B2ERROR(" AnalyzingAlgorithmFactoryDouble: given algorithmID " << AlgoritmType::getTypeName(algorithmID) <<
116 " is not known, returning non-functioning base-class instead!");
117 }
118
120 }
static bool isHitValueIntType(AlgoritmType::Type aType)
returns true if given AlgoritmType is a an algorithm which calculates a value in int based on hits of...
static bool isValueDoubleType(AlgoritmType::Type aType)
returns true if given AlgoritmType is a an algorithm which calculates a value in double for each TC p...
static bool isResidualDoubleType(AlgoritmType::Type aType)
returns true if given AlgoritmType is a an algorithm which calculates a residual in double for each T...
static bool isHitValueVecDoubleType(AlgoritmType::Type aType)
returns true if given AlgoritmType is a an algorithm which calculates a value in vector< double> base...
static std::string getTypeName(AlgoritmType::Type type)
for given AlgoritmType the corresponding string-name will be returned.
Base class for storing an algorithm determining the data one wants to have.
Class for storing an algorithm determining the residual (ref-test) of momentum in its angle (directio...
Class for storing an algorithm determining the residual (ref-test) of momentum in phi (in degrees)
Class for storing an algorithm determining the residual (ref-test) of pT in angle (transverse directi...
Class for storing an algorithm determining the residual (ref-test) of momentum in pT.
Class for storing an algorithm determining the residual (ref-test) of momentum in theta (in degrees)
Class for storing an algorithm determining the residual (ref-test) of momentum in Y.
Class for storing an algorithm determining the residual (ref-test) of momentum in Z.
Class for storing an algorithm determining the residual (ref-test) of momentum in |p|.
Class for storing an algorithm determining the residual (ref-test) of the seed position in XY (=r)
Class for storing an algorithm determining the residual (ref-test) of the seed position in 3D.
Class for storing an algorithm determining the distance seedHit to IP in XY (=r)
Class for storing an algorithm determining the distance seedHit to IP in XY (=r)
Class for storing an algorithm determining the the distance seedHit to IP in 3D.
Class for storing an algorithm determining the momentum in phi (in degrees)
Class for storing an algorithm determining the momentum in pT.
Class for storing an algorithm determining the momentum in theta (in degrees)
INFO This file contains all the algorithms calculating a certain value of something.
Class for storing an algorithm determining the momentum in Y.
Class for storing an algorithm determining the momentum in Z.
Class for storing an algorithm determining the momentum in |p|.
Class for storing an algorithm determining the quality indicator of the TC.

◆ AnalyzingAlgorithmFactoryInt()

template<class DataType, class TCInfoType, class VectorType>
AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > * AnalyzingAlgorithmFactoryInt ( AlgoritmType::Type algorithmID)

the analyzingAlgorithm factory for algorithms returning one int for each TC passed:

returns the algorithm matching the given ID.

residuals

Definition at line 129 of file AnalyzingAlgorithmFactory.h.

130 {
134
135 if (algorithmID == AnalyzingAlgorithmLostUClusters<DataType, TCInfoType, VectorType>())
136 { return new AnalyzingAlgorithmLostUClusters<DataType, TCInfoType, VectorType>(); }
137
140
143
146
147 if (!AlgoritmType::isHitValueIntType(algorithmID)
148 and (AlgoritmType::isValueDoubleType(algorithmID)
150 or AlgoritmType::isHitValueVecDoubleType(algorithmID))) {
151 B2WARNING(" AnalyzingAlgorithmInt: given algorithmID " << AlgoritmType::getTypeName(algorithmID) <<
152 " is no algorithm of int type but of another (valid) category. Please use the correct factory for your purpose. Returning non-functioning base-class instead!");
153 } else {
154 B2ERROR(" AnalyzingAlgorithmInt: given algorithmID " << AlgoritmType::getTypeName(algorithmID) <<
155 " is not known, returning non-functioning base-class instead!");
156 }
157
159 }
Class for storing an algorithm to find out how many v-type-clusters the testTC lost compared to the r...
Class for storing an algorithm to find out how many u-type-clusters the given TC had.
Class for storing an algorithm to find out how many v-type-clusters the given TC had.

◆ AnalyzingAlgorithmFactoryVecDouble()

template<class DataType, class TCInfoType, class VectorType>
AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > * AnalyzingAlgorithmFactoryVecDouble ( AlgoritmType::Type algorithmID)

the analyzingAlgorithm factory for algorithms returning one vector< double> for each TC passed:

returns the algorithm matching the given ID.

residuals

Definition at line 168 of file AnalyzingAlgorithmFactory.h.

169 {
173
174 if (algorithmID == AnalyzingAlgorithmLostUEDep<DataType, TCInfoType, VectorType>())
175 { return new AnalyzingAlgorithmLostUEDep<DataType, TCInfoType, VectorType>(); }
176
179
182
185
186
188 and (AlgoritmType::isValueDoubleType(algorithmID)
190 or AlgoritmType::isHitValueIntType(algorithmID))) {
191 B2WARNING(" AnalyzingAlgorithmVecDouble: given algorithmID " << AlgoritmType::getTypeName(algorithmID) <<
192 " is no algorithm of vector<double> type but of another (valid) category. Please use the correct factory for your purpose. Returning non-functioning base-class instead!");
193 } else {
194 B2ERROR(" AnalyzingAlgorithmVecDouble: given algorithmID " << AlgoritmType::getTypeName(algorithmID) <<
195 " is not known, returning non-functioning base-class instead!");
196 }
197
199 }
Class for storing an algorithm to find out the energy deposit of v-type-clusters the testTC lost comp...
Class for storing an algorithm to find out the energy deposit of u-type-clusters the given TC had.
Class for storing an algorithm to find out the energy deposit of v-type-clusters the given TC had.

◆ appendIntercepts()

template<class aIntercept>
void appendIntercepts ( StoreArray< aIntercept > * interceptList,
std::list< ROIDetPlane > planeList,
genfit::MeasuredStateOnPlane state,
int recoTrackIndex,
RelationArray * recoTrackToIntercepts )
private

Append the Intercept infos related to the track theTrack to the listToBeFilled.

Definition at line 87 of file VXDInterceptor.templateDetails.h.

92 {
93 aIntercept tmpIntercept;
94
95 B2DEBUG(20, " ...-appendIntercepts, checking " << planeList.size() << " planes");
96
97 double lambda = 0;
98
99 std::list<ROIDetPlane>::iterator itPlanes = planeList.begin();
100 while (itPlanes != planeList.end()) {
101 B2DEBUG(20, " searching in appendIntercepts : " << (itPlanes->getVxdID()));
102
103 try {
104 lambda = state.extrapolateToPlane(itPlanes->getSharedPlanePtr());
105 } catch (...) {
106 B2DEBUG(20, " ...-extrapolation to plane failed");
107 ++itPlanes;
108 continue;
109 }
110
111 const TVectorD& predictedIntersect = state.getState();
112 const TMatrixDSym& covMatrix = state.getCov();
113
114 tmpIntercept.setCoorU(predictedIntersect[3]);
115 tmpIntercept.setCoorV(predictedIntersect[4]);
116 tmpIntercept.setSigmaU(sqrt(covMatrix(3, 3)));
117 tmpIntercept.setSigmaV(sqrt(covMatrix(4, 4)));
118 tmpIntercept.setSigmaUprime(sqrt(covMatrix(1, 1)));
119 tmpIntercept.setSigmaVprime(sqrt(covMatrix(2, 2)));
120 tmpIntercept.setLambda(lambda);
121 tmpIntercept.setVxdID(itPlanes->getVxdID());
122 tmpIntercept.setUprime(predictedIntersect[1]);
123 tmpIntercept.setVprime(predictedIntersect[2]);
124
125 B2DEBUG(20, "extrapolate to plane!!! >>> coordinates with getPos = " << state.getPos().X()
126 << ", " << state.getPos().Y()
127 << ", " << state.getPos().Z());
128 B2DEBUG(20, "coordinates with predInter = " << predictedIntersect[3]
129 << ", " << predictedIntersect[4]);
130 B2DEBUG(20, "momentum with getMom = " << state.getMom().X()
131 << ", " << state.getMom().Y()
132 << ", " << state.getMom().Z());
133 B2DEBUG(20, "U/V prime momentum with getMom = " << state.getMom().Z() / state.getMom().X()
134 << ", " << state.getMom().Z() / state.getMom().Y());
135 B2DEBUG(20, "U/V prime momentum with predInter = " << predictedIntersect[1]
136 << ", " << predictedIntersect[2]);
137
138 interceptList->appendNew(tmpIntercept);
139
140 recoTrackToIntercepts->add(recoTrackIndex, interceptList->getEntries() - 1);
141
142 ++itPlanes;
143
144 }
145
146 }
double sqrt(double a)
sqrt for double
Definition beamHelpers.h:28

◆ apply() [1/14]

template<class AFindlet>
void apply ( std::vector< RecoTrack * > & recoTracks)
finaloverride

Apply the findlets.

Definition at line 33 of file BaseEventTimeExtractorModule.icc.h.

34 {
35 std::vector<RecoTrack*> copiedRecoTracks = recoTracks;
36 m_trackSelector.apply(copiedRecoTracks);
37 m_findlet.apply(copiedRecoTracks);
38
39 for (RecoTrack* recoTrack : recoTracks) {
40 recoTrack->setDirtyFlag();
41 }
42 }

◆ apply() [2/14]

template<class AState, class ASeedRelationFilter, class AHitRelationFilter>
void apply ( std::vector< AState > & seedStates,
std::vector< AState > & states,
std::vector< TrackFindingCDC::WeightedRelation< AState > > & relations )
override

Apply both filters for creating state-hit and hit-hit relations.

Definition at line 57 of file CKFRelationCreator.icc.h.

60 {
61 const std::vector<AState*> seedStatePointers = TrackFindingCDC::as_pointers<AState>(seedStates);
62 const std::vector<AState*> statePointers = TrackFindingCDC::as_pointers<AState>(states);
63
64 // Just some arbitrary number...
65 relations.reserve(10000);
66
67 // relations += seed states -> states
68 TrackFindingCDC::RelationFilterUtil::appendUsing(m_seedFilter, seedStatePointers, statePointers, relations, 1000000);
69
70 // relations += states -> states
71 if (m_onlyUseHitStatesRelatedToSeeds) {
72 // only use subset of hit states for inter hit state relation creation
73 std::vector<AState*> selectedStatePointers;
74 selectedStatePointers.reserve(relations.size());
75
76 for (const auto& relation : relations) {
77 // hit state pointers are the "To"s in the relation, only take those
78 const auto it = std::find(selectedStatePointers.begin(), selectedStatePointers.end(), relation.getTo());
79 if (it == selectedStatePointers.end()) {
80 selectedStatePointers.push_back(relation.getTo());
81 }
82 }
83
84 if (m_onlyCombineRelatedHitStates) {
85 // Reduce combinatorics a lot by only combining selectedStatePointers with other selectedStatePointers
86 TrackFindingCDC::RelationFilterUtil::appendUsing(m_hitFilter, selectedStatePointers, selectedStatePointers, relations, 1000000);
87 } else {
88 // Reduce combinatorics a bit less by only combining selectedStatePointers essentially all statePointers
89 TrackFindingCDC::RelationFilterUtil::appendUsing(m_hitFilter, selectedStatePointers, statePointers, relations, 1000000);
90 }
91 } else {
92 // use all of hit states for inter hit state relation creation
93 TrackFindingCDC::RelationFilterUtil::appendUsing(m_hitFilter, statePointers, statePointers, relations, 1000000);
94 }
95 }

◆ apply() [3/14]

template<class AFindlet>
void apply ( std::vector< RecoTrack * > & recoTracks)
finaloverride

Timing extraction for this findlet.

Definition at line 29 of file GridEventTimeExtractor.icc.h.

30 {
31 m_wasSuccessful = false;
32
33 m_eventT0WithQuality.clear();
34
35 TimeExtractionUtils::addEventT0WithQuality(recoTracks, m_eventT0, m_eventT0WithQuality);
36
37 const double eventT0Delta = (m_param_maximalT0Value - m_param_minimalT0Value) / static_cast<double>(m_param_gridSteps);
38
39 for (unsigned int gridIndex = 0; gridIndex <= m_param_gridSteps; gridIndex++) {
40 const double eventT0Hypothesis = eventT0Delta * static_cast<double>(gridIndex) + m_param_minimalT0Value;
41
42 m_eventT0->setEventT0(EventT0::EventT0Component(eventT0Hypothesis, NAN, Const::CDC, "grid"));
43 TimeExtractionUtils::addEventT0WithQuality(recoTracks, m_eventT0, m_eventT0WithQuality);
44
45 for (unsigned int iteration = 0; iteration < m_param_iterations; iteration++) {
46 // The findlet will set the final event t0, but will probably not add any temporary event t0s, which is fine as we will do so.
47 m_findlet.apply(recoTracks);
48
49 if (m_findlet.wasSuccessful()) {
50 TimeExtractionUtils::addEventT0WithQuality(recoTracks, m_eventT0, m_eventT0WithQuality);
51 } else if (m_param_abortOnUnsuccessfulStep) {
52 B2DEBUG(25, "Aborting because time extraction was not successful.");
53 break;
54 }
55 }
56 }
57
58 if (not m_eventT0WithQuality.empty()) {
59 m_wasSuccessful = true;
60 // Look for the best event t0 (with the smallest chi2)
61 const auto& bestChi2 = std::max_element(m_eventT0WithQuality.begin(), m_eventT0WithQuality.end(),
62 [](const auto & lhs, const auto & rhs) {
63 return lhs.quality < rhs.quality;
64 });
65 m_eventT0->setEventT0(*bestChi2);
66 } else {
67 // We have changes the event t0, so lets switch it back
68 resetEventT0();
69 }
70 }

◆ apply() [4/14]

template<class AFindlet>
void apply ( std::vector< RecoTrack * > & recoTracks)
finaloverride

Timing extraction for this findlet.

Definition at line 29 of file IterativeEventTimeExtractor.icc.h.

30 {
31 m_wasSuccessful = false;
32
33 m_eventT0WithQuality.clear();
34
35 TimeExtractionUtils::addEventT0WithQuality(recoTracks, m_eventT0, m_eventT0WithQuality);
36
37 unsigned int iteration = 0;
38 for (; iteration < m_param_maxIterations; iteration++) {
39 // The findlet will set the final event t0, but will probably not add any temporary event t0s, which is fine as we will do so.
40 m_findlet.apply(recoTracks);
41
42 bool breakLoop = false;
43 if (m_findlet.wasSuccessful()) {
44
45 if (not m_eventT0WithQuality.empty()) {
46 const double deltaT0 = std::abs(m_eventT0->getEventT0() - m_eventT0WithQuality.back().eventT0);
47 if (deltaT0 < m_param_minimalDeltaT0 and iteration >= m_param_minIterations) {
48 breakLoop = true;
49 }
50 }
51 TimeExtractionUtils::addEventT0WithQuality(recoTracks, m_eventT0, m_eventT0WithQuality);
52 } else if (m_param_abortOnUnsuccessfulStep) {
53 B2DEBUG(25, "Aborting because time extraction was not successful.");
54 breakLoop = true;
55 }
56
57 if (breakLoop) {
58 break;
59 }
60 }
61
62 if (not m_eventT0WithQuality.empty() and iteration != m_param_maxIterations) {
63 if (m_param_useLastEventT0) {
64 m_eventT0->addTemporaryEventT0(m_eventT0WithQuality.back());
65 m_eventT0->setEventT0(m_eventT0WithQuality.back());
66 } else {
67 // Look for the best event t0 (with the smallest chi2)
68 const auto& bestEventT0 = std::max_element(m_eventT0WithQuality.begin(), m_eventT0WithQuality.end(),
69 [](const auto & lhs, const auto & rhs) {
70 return lhs.quality < rhs.quality;
71 });
72 m_eventT0->setEventT0(*bestEventT0);
73 }
74 m_wasSuccessful = true;
75 }
76 }

◆ apply() [5/14]

template<class AState, class AFindlet>
void apply ( const std::vector< TrackFindingCDC::WithWeight< const AState * > > & currentPath,
std::vector< TrackFindingCDC::WithWeight< AState * > > & childStates )
override

The weight is calculated using the subfilter based on the geometrical layer of the state.

Definition at line 45 of file LayerToggledApplier.icc.h.

47 {
48 const AState* previousState = currentPath.back();
49 const int layer = previousState->getGeometricalLayer();
50
51 if (layer > m_param_toggleOnLayer) {
52 m_highLayerFindlet.apply(currentPath, childStates);
53 } else if (layer == m_param_toggleOnLayer) {
54 m_equalLayerFindlet.apply(currentPath, childStates);
55 } else {
56 m_lowLayerFindlet.apply(currentPath, childStates);
57 }
58 }

◆ apply() [6/14]

template<class AState, class AFilter>
void apply ( const std::vector< TrackFindingCDC::WithWeight< const AState * > > & currentPath,
std::vector< TrackFindingCDC::WithWeight< AState * > > & childStates )
override

Apply the filter to each pair of states and current path and let only pass the best N states.

Definition at line 30 of file LimitedOnStateApplier.icc.h.

32 {
33 Super::apply(currentPath, childStates);
34
35 if (m_param_useNStates > 0 and childStates.size() > static_cast<unsigned int>(m_param_useNStates)) {
36 std::sort(childStates.begin(), childStates.end(), TrackFindingCDC::LessOf<TrackFindingCDC::GetWeight>());
37 childStates.erase(childStates.begin() + m_param_useNStates, childStates.end());
38 }
39 };

◆ apply() [7/14]

template<class AState>
void apply ( const std::vector< TrackFindingCDC::WithWeight< const AState * > > & currentPath,
std::vector< TrackFindingCDC::WithWeight< AState * > > & childStates )
override

Apply the () operator to all pairs of state and current path.

Definition at line 20 of file OnStateApplier.icc.h.

22 {
23 if (childStates.empty()) {
24 return;
25 }
26
27 for (TrackFindingCDC::WithWeight<AState*>& stateWithWeight : childStates) {
28 AState& state = *stateWithWeight;
29 const TrackFindingCDC::Weight& weight = this->operator()({currentPath, &state});
30 stateWithWeight.setWeight(weight);
31 }
32
33 TrackFindingCDC::erase_remove_if(childStates, TrackFindingCDC::HasNaNWeight());
34 };

◆ apply() [8/14]

template<class AFilter>
void apply ( std::vector< Object > & results,
std::vector< Object > & filteredResult )
override

For each seed, search for the best candidate and return it.

Definition at line 51 of file OverlapResolver.icc.h.

53 {
54 if (not m_param_enableOverlapResolving or results.empty()) {
55 std::swap(results, filteredResults);
56 return;
57 }
58
59 // Sort results by seed, as it makes the next operations faster
60 std::sort(results.begin(), results.end(), TrackFindingCDC::LessOf<SeedGetter>());
61
62 // resolve overlaps in each seed separately
63 const auto& groupedBySeed = TrackFindingCDC::adjacent_groupby(results.begin(), results.end(), SeedGetter());
64 for (const TrackFindingCDC::VectorRange<Object>& resultsWithSameSeed : groupedBySeed) {
65
66 m_resultsWithWeight.clear();
67 for (Object& result : resultsWithSameSeed) {
68 TrackFindingCDC::Weight weight = m_filter(result);
69 if (std::isnan(weight)) {
70 continue;
71 }
72 m_resultsWithWeight.emplace_back(&result, weight);
73 }
74
75 if (not m_resultsWithWeight.empty()) {
76 // sort results so that 'std::max' below picks path with highest weight if multiple paths have same size
77 std::sort(m_resultsWithWeight.begin(), m_resultsWithWeight.end(), TrackFindingCDC::GreaterWeight());
78
79 const unsigned int useBestNResults = std::min(m_resultsWithWeight.size(), m_param_useBestNInSeed);
80 const auto& lastItemToUse = std::next(m_resultsWithWeight.begin(), useBestNResults);
81 const auto& longestElement = *(std::max_element(m_resultsWithWeight.begin(), lastItemToUse,
82 TrackFindingCDC::LessOf<NumberOfHitsGetter>()));
83 filteredResults.push_back(*(longestElement));
84 }
85 }
86 }

◆ apply() [9/14]

template<class AResult>
void apply ( std::vector< AResult > & results)
override

Load in the reco tracks and the hits.

Store the reco tracks and the relations.

Definition at line 64 of file ResultStorer.icc.h.

65 {
66 if (not m_param_exportTracks) {
67 return;
68 }
69
70 for (const auto& result : results) {
71
72 const ROOT::Math::XYZVector& trackPosition = result.getPosition();
73 const ROOT::Math::XYZVector& trackMomentum = result.getMomentum();
74 const short& trackCharge = result.getCharge();
75
76 RecoTrack* newRecoTrack = m_outputRecoTracks.appendNew(trackPosition, trackMomentum, trackCharge);
77 result.addToRecoTrack(*newRecoTrack);
78
79 const RecoTrack* seed = result.getSeed();
80 if (not seed) {
81 continue;
82 }
83 seed->addRelationTo(newRecoTrack, m_param_writeOutDirection);
84 }
85 }

◆ apply() [10/14]

template<class AResult, class ACluster>
void apply ( const std::vector< AResult > & results,
const std::vector< const SpacePoint * > & spacePoints )
override

Mark all space points as used, that they share clusters if the given kind with the results.

Definition at line 52 of file SpacePointTagger.icc.h.

54 {
55 if (not m_param_markUsedSpacePoints) {
56 return;
57 }
58
59 for (const AResult& result : results) {
60 const std::vector<const SpacePoint*>& hits = result.getHits();
61 for (const SpacePoint* spacePoint : hits) {
62 m_usedSpacePoints.insert(spacePoint);
63
64 if (not m_param_singleClusterLevel) {
65 continue;
66 }
67
68 const auto& relatedClusters = spacePoint->getRelationsTo<ACluster>();
69 for (const ACluster& relatedCluster : relatedClusters) {
70 m_usedClusters.insert(&relatedCluster);
71 }
72 }
73 }
74
75 for (const SpacePoint* spacePoint : spacePoints) {
76 if (TrackFindingCDC::is_in(spacePoint, m_usedSpacePoints)) {
77 spacePoint->setAssignmentState(true);
78 continue;
79 }
80
81 if (not m_param_singleClusterLevel) {
82 continue;
83 }
84
85 const auto& relatedClusters = spacePoint->getRelationsTo<ACluster>();
86 for (const ACluster& relatedCluster : relatedClusters) {
87 if (TrackFindingCDC::is_in(&relatedCluster, m_usedClusters)) {
88 spacePoint->setAssignmentState(true);
89 break;
90 }
91 }
92 }
93 }

◆ apply() [11/14]

template<class AnObject, class AState>
void apply ( const std::vector< AnObject * > & objects,
std::vector< AState > & states )
override

Add new states to the list of states using all given objects.

Findlet for tagging all space points in the results vector as used.

Definition at line 19 of file StateCreator.icc.h.

21 {
22 states.reserve(states.size() + objects.size());
23
24 for (AnObject* object : objects) {
25 states.emplace_back(object);
26 }
27 }

◆ apply() [12/14]

template<class AState>
void apply ( const std::vector< RecoTrack * > & objects,
std::vector< AState > & states )
final

Create states from the space points, including a reverse flag or not.

Definition at line 20 of file StateCreatorWithReversal.icc.h.

21 {
22 for (const RecoTrack* object : objects) {
23 states.emplace_back(object, m_param_reverseSeed);
24 }
25 }

◆ apply() [13/14]

template<class AState, class AFindlet>
void apply ( const std::vector< TrackFindingCDC::WithWeight< const AState * > > & currentPath,
std::vector< TrackFindingCDC::WithWeight< AState * > > & childStates )
final

Apply all five filters to the child states.

Definition at line 42 of file StateRejecter.icc.h.

44 {
45 B2DEBUG(29, "Starting with " << childStates.size() << " states.");
46 m_firstFilter.apply(currentPath, childStates);
47 B2DEBUG(29, "After first filter " << childStates.size() << " states.");
48 // Nothing to do anymore
49 if (childStates.size() == 0) {
50 return;
51 }
52 m_advanceFilter.apply(currentPath, childStates);
53 B2DEBUG(29, "After advance filter " << childStates.size() << " states.");
54 // Nothing to do anymore
55 if (childStates.size() == 0) {
56 return;
57 }
58 m_secondFilter.apply(currentPath, childStates);
59 B2DEBUG(29, "After second filter " << childStates.size() << " states.");
60 // Nothing to do anymore
61 if (childStates.size() == 0) {
62 return;
63 }
64 m_updateFilter.apply(currentPath, childStates);
65 B2DEBUG(29, "After update filter " << childStates.size() << " states.");
66 // Nothing to do anymore
67 if (childStates.size() == 0) {
68 return;
69 }
70 m_thirdFilter.apply(currentPath, childStates);
71 B2DEBUG(29, "After third filter " << childStates.size() << " states.");
72 };

◆ apply() [14/14]

template<class AState, class AStateRejecter, class AResult>
void apply ( const std::vector< AState > & seededStates,
std::vector< AState > & hitStates,
const std::vector< TrackFindingCDC::WeightedRelation< AState > > & relations,
std::vector< AResult > & results )
final

Main function of this findlet: traverse a tree starting from a given seed states.

ATTENTION: As described above, the states themselves can be altered during the tree traversal.

Definition at line 42 of file TreeSearcher.icc.h.

46 {
47 B2ASSERT("Expected relation to be sorted",
48 std::is_sorted(relations.begin(), relations.end()));
49
50 // TODO: May be better to just do this for each seed separately
51 const std::vector<AState*>& statePointers = TrackFindingCDC::as_pointers<AState>(hitStates);
52 m_automaton.applyTo(statePointers, relations);
53
54 std::vector<TrackFindingCDC::WithWeight<const AState*>> path;
55 for (const AState& state : seededStates) {
56 B2DEBUG(29, "Starting with new seed...");
57
58 path.emplace_back(&state, 0);
59 traverseTree(path, relations, results);
60 path.pop_back();
61 B2ASSERT("Something went wrong during the path traversal", path.empty());
62
63 B2DEBUG(29, "... finished with seed");
64 }
65 }

◆ arcLengthInRightDirection()

bool arcLengthInRightDirection ( double arcLength2D,
TrackFindingCDC::EForwardBackward forwardBackward )
inlineconstexpr

Given the calculated arc length between a start point and an end point, checks if the travelled path is along the given direction or not.

If the arc length distance is negative, the end point has a higher arc length value than the start point meaning it is farther away -> the travelled distance is forward. If the arc length distance is positive, it is backward.

If it is 0 or the direction is unknown, true is always returned.

Definition at line 30 of file SearchDirection.h.

31 {
32 return static_cast<double>(forwardBackward) * arcLength2D >= 0;
33 }

◆ BaseEventTimeExtractorModuleFindlet()

template<class AFindlet>
BaseEventTimeExtractorModuleFindlet ( )

Add the subfindlet as listener.

Definition at line 19 of file BaseEventTimeExtractorModule.icc.h.

20 {
21 addProcessingSignalListener(&m_findlet);
22 addProcessingSignalListener(&m_trackSelector);
23 }

◆ beginEvent() [1/2]

template<class ... AIOTypes>
void beginEvent ( )
overridevirtual

Create the event t0 store obj ptr.

Reimplemented from ProcessingSignalListener.

Definition at line 45 of file BaseEventTimeExtractor.icc.h.

46 {
47 Super::beginEvent();
48
49 m_wasSuccessful = false;
50
51 if (not m_eventT0.isValid()) {
52 m_eventT0.create();
53 }
54
55 m_eventT0Before = m_eventT0->getEventT0Component();
56 }

◆ beginEvent() [2/2]

template<class AResult, class ACluster>
void beginEvent ( )
overridevirtual

Clear the used clusters.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 26 of file SpacePointTagger.icc.h.

27 {
28 Super::beginEvent();
29
30 m_usedClusters.clear();
31 m_usedSpacePoints.clear();
32 }

◆ beginRun() [1/3]

template<class AFilter, class APrefilter>
void beginRun ( )
overridevirtual

Receive and dispatch signal for the beginning of a new run.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 61 of file LayerPXDRelationFilter.icc.h.

62 {
63 Super::beginRun();
64
65 // use values from payload if parameter is set to -1
66 if (m_param_hitJumping == -1) {
67 if (m_ckfParameters->isValid()) {
68 m_layerJumpPtThreshold = (*m_ckfParameters)->getLayerJumpPtThreshold();
69 m_layerJumpLowPt = (*m_ckfParameters)->getLayerJumpLowPt();
70 m_layerJumpHighPt = (*m_ckfParameters)->getLayerJumpHighPt();
71 if (m_prefix == "hit" && m_layerJumpPtThreshold > 0.) {
72 // if we want to have this, some major restructure of the whole CKF code is necessary
73 // (CKF states from hits don't know anything about the seed track, i.e. you cannot access its momentum)
74 B2FATAL("pt dependence of layerJump parameter currently not implemented for hit->hit extrapolation.");
75 }
76 } else {
77 B2FATAL("Trying to read layerJump parameter from DB but payload '" << m_ckfParameters->getName() << "' not found.");
78 }
79 // we don't need all this if simple value from python config is to be used
80 } else {
81 m_layerJumpPtThreshold = -1;
82 m_layerJumpLowPt = m_param_hitJumping;
83 m_layerJumpHighPt = m_param_hitJumping;
84 }
85 }

◆ beginRun() [2/3]

template<class AFilter, class APrefilter>
void beginRun ( )
finalvirtual

Initialize the maximal ladder cache.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 33 of file LayerSVDRelationFilter.icc.h.

34 {
35 Super::beginRun();
36
37 // Fill maximum number cache
38 auto& geoCache = VXD::GeoCache::getInstance();
39 const auto& layers = geoCache.getLayers(VXD::SensorInfoBase::SensorType::SVD);
40 for (const auto& layerVXDID : layers) {
41 m_maximalLadderCache[layerVXDID.getLayerNumber()] = geoCache.getLadders(layerVXDID).size();
42 }
43 }

◆ beginRun() [3/3]

void beginRun ( )
finalvirtual

Initialize the sector map.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 22 of file SectorMapBasedSVDPairFilter.cc.

23 {
24 Super::beginRun();
25
26 m_vxdtfFilters = m_filtersContainer.getFilters(m_param_sectorMapName);
27 if (not m_vxdtfFilters) {
28 B2FATAL("Requested secMapName '" << m_param_sectorMapName << "' does not exist!");
29 }
30 }

◆ calcCurvatureSignum()

short calcCurvatureSignum ( std::vector< SpacePoint const * > const & measurements)
inline

Calculate curvature based on triplets of measurements.

Ignores uncertainties. Returns -1,0,1 depending on the sum of all triplets.

Definition at line 22 of file CalcCurvatureSignum.h.

23 {
24 if (measurements.size() < 3) return 0;
25 float sumOfCurvature = 0.;
26 for (unsigned int i = 0; i < measurements.size() - 2; ++i) {
27 B2Vector3D ab = measurements.at(i + 1)->getPosition() - measurements.at(i)->getPosition();
28 ab.SetZ(0.);
29 B2Vector3D bc = measurements.at(i + 2)->getPosition() - measurements.at(i + 1)->getPosition();
30 bc.SetZ(0.);
31 sumOfCurvature += bc.Orthogonal() * ab; //normal vector of m_vecBC times segment of ba
32 }
33 // signum
34 return (0 < sumOfCurvature) - (sumOfCurvature < 0);
35 }
B2Vector3< DataType > Orthogonal() const
Vector orthogonal to this one.
Definition B2Vector3.h:277
void SetZ(DataType z)
set Z/3rd-coordinate
Definition B2Vector3.h:461
B2Vector3< double > B2Vector3D
typedef for common usage with double
Definition B2Vector3.h:516

◆ calculateCovMatrix()

template<size_t Ndims>
const Eigen::Matrix< double, Ndims, Ndims, Eigen::RowMajor > calculateCovMatrix ( std::array< std::vector< double >, Ndims > inputData)

calculates the empirical covariance matrix from the inputData.

Parameters
inputDatadata "matrix", where each vector represents a column in the n x Ndims matrix, where n is the number of samples in the input data.

NOTE: if the input does not consist of an array of same-length vectors an error message is issued and the Ndims x Ndims identity matrix is returned.

Implements the calculation of the empirical covariance matrix: $\frac{1}{n} \sum_{i=1}^n (y_i - \bar{y})^T(y_i - \bar{y})$, where $ \bar{y}_i = \sum_{j=1}^n x_{ij}$ is the mean (row) vector containing the mean value of every "feature" in the data. Every (random) vector $y_i$ is a row vector containing one measurement.

Definition at line 37 of file DecorrelationMatrixHelper.h.

38 {
39 // typedefs used in function
40 using RVector = Eigen::Matrix<double, 1, Ndims, Eigen::RowMajor>; // typedef for row vector type of one measurement
41 using DMatrix = Eigen::Matrix<double, Eigen::Dynamic, Ndims, Eigen::ColMajor>; // typedef for dataMatrix type
42 using DVector = Eigen::Matrix<double, Eigen::Dynamic, 1>; // typedef for column vector in dataMatrix
43
44 // check if the inputData represent a "full" data matrix
45 size_t nSamples = inputData[0].size();
46 for (size_t i = 1; i < Ndims; ++i) {
47 if (inputData[i].size() != nSamples) {
48 B2ERROR("The input data is no MxN matrix, cannot calculate covariance matrix! Returning identity");
49 return Eigen::Matrix<double, Ndims, Ndims, Eigen::RowMajor>::Identity();
50 }
51 }
52
53 // calculate the mean of every column and store them in a row vector
54 RVector meanVector{};
55 for (size_t i = 0; i < Ndims; ++i) {
56 meanVector(i) = std::accumulate(inputData[i].begin(), inputData[i].end(), 0.0) / inputData[i].size();
57 }
58
59 // map the data to a more easily accessible Eigen::Matrix where each row is one measurement (consisting of Ndims values)
60 DMatrix dataMatrix(nSamples, Ndims);
61 for (size_t i = 0; i < Ndims; ++i) {
62 dataMatrix.col(i) = Eigen::Map<const DVector>(inputData[i].data(), inputData[i].size());
63 }
64
65 // define a matrix where each row holds the mean vector to be able to subtract the mean value from each column directly
66 DMatrix meanMatrix(nSamples, Ndims);
67 for (size_t i = 0; i < Ndims; ++i) {
68 meanMatrix.col(i) = DVector::Ones(nSamples) * meanVector(i);
69 }
70
71 // calculate the cov matrix as product of dataMatrix reduced by meanValues in order to (hopefully) utilize Eigens optimizations
72 // COULDDO: test if this can be accelerated by splitting the process in smaller matrices
73 return (dataMatrix - meanMatrix).transpose() * (dataMatrix - meanMatrix) / (nSamples);
74 }

◆ calculateDecorrMatrix()

template<size_t Ndims>
void calculateDecorrMatrix ( std::array< std::vector< double >, Ndims > inputData,
bool normalise = true )

calculate the transformation matrix that when applied to the input data yields linearly uncorrelated data.

Parameters
inputDatainput data, where each vector represents a column in the MxNdims matrix, where M is the number of samples in in the input data
normaliseif set to true the covariance matrix of the transformed data will be identity, else it will only be diagonal

Definition at line 98 of file DecorrelationMatrix.h.

99 {
100 calculateDecorrMatrix(calculateCovMatrix(inputData), normalise);
101 }
const Eigen::Matrix< double, Ndims, Ndims, Eigen::RowMajor > calculateCovMatrix(std::array< std::vector< double >, Ndims > inputData)
calculates the empirical covariance matrix from the inputData.

◆ checkResizeClear()

template<class T>
void checkResizeClear ( std::vector< T > & vectorToCheck,
uint limit )

Check capacity of a vector and create a fresh one if capacity too large If the capacity of a std::vector is very large without being used, it just allocates RAM for no reason, increasing the RAM usage unnecessarily.

In this case, start with a fresh one. Since std::vector.shrink() or std::vector.shrink_to_fit() not necessarily reduce the capacity in the desired way, create a temporary vector of the same type, swap them to use the vector at the new location afterwards, and clear the tempoary vector.

Definition at line 23 of file Helpers.h.

24 {
25
26 if (vectorToCheck.capacity() > limit) {
27 B2DEBUG(29, "Capacity of vector too large, create fresh vector and swap.");
28 std::vector<T> tmp;
29 std::swap(vectorToCheck, tmp);
30 tmp.clear();
31 }
32 vectorToCheck.clear();
33 vectorToCheck.reserve(limit / 4);
34 }

◆ CKFRelationCreator()

template<class AState, class ASeedRelationFilter, class AHitRelationFilter>
CKFRelationCreator ( )

Construct this findlet and add the subfindlet as listener.

Definition at line 27 of file CKFRelationCreator.icc.h.

27 : Super()
28 {
29 Super::addProcessingSignalListener(&m_seedFilter);
30 Super::addProcessingSignalListener(&m_hitFilter);
31 }

◆ constructMeasurementsOnPlane()

template<class HitType>
std::vector< genfit::MeasurementOnPlane * > constructMeasurementsOnPlane ( const genfit::StateOnPlane & state) const
overridevirtual

Construct the measurement on the plane set in the parent element.

Do the job: construct a measurement based on the estimator chosen by the parameters.

TODO: Implement better error handling and a smarter cut.

Definition at line 122 of file PlanarVXDMomentumMeasurement.h.

124 {
125 const VXDMomentumEstimation<HitType>& momentumEstimator = VXDMomentumEstimation<HitType>::getInstance();
126 const VXDMomentumEstimationTools<HitType>& momentumEstimationTools = VXDMomentumEstimationTools<HitType>::getInstance();
127
128 TVectorD rawHitCoordinates(1);
129 TMatrixDSym rawHitCovariance(1);
130
131 // Copy the information from the current state
132 const B2Vector3D& statePosition(state.getPos());
133 const B2Vector3D& stateMomentum(state.getMom());
134 short stateCharge = state.getCharge();
135
136
137 // Copy the information from the reco track.
138 const B2Vector3D& trackPosition(m_recoTrack->getPositionSeed());
139 const B2Vector3D& trackMomentum(m_recoTrack->getMomentumSeed());
140 short trackCharge = m_recoTrack->getChargeSeed();
141
142 // Copy the information from the mc particle (if there is one)
143 MCParticle* relatedMCParticle = m_hit->template getRelated<MCParticle>("MCParticles");
144
145 ROOT::Math::XYZVector mcMomentum;
146 ROOT::Math::XYZVector mcPosition;
147 short mcCharge;
148
149 if (relatedMCParticle == nullptr) {
150 mcMomentum = ROOT::Math::XYZVector(trackMomentum);
151 mcPosition = ROOT::Math::XYZVector(trackPosition);
152 mcCharge = trackCharge;
153 } else {
154 mcMomentum = relatedMCParticle->getMomentum();
155 mcPosition = relatedMCParticle->getProductionVertex();
156 mcCharge = relatedMCParticle->getCharge();
157 }
158
159 // Copy information from the mc hit
160 const ROOT::Math::XYZVector& hitMCMomentum = momentumEstimationTools.getEntryMomentumOfMCParticle(*m_hit);
161 const ROOT::Math::XYZVector& hitMCPosition = momentumEstimationTools.getEntryPositionOfMCParticle(*m_hit);
162
163
164 if (m_useThickness) {
165 rawHitCoordinates(0) = momentumEstimator.estimateQOverPWithThickness(*m_hit, stateCharge, m_fitParameters,
166 m_correctionFitParameters);
167 } else {
168 if (m_useTrackingSeeds) {
169 if (m_useMCInformation) {
170 rawHitCoordinates(0) = momentumEstimator.estimateQOverP(*m_hit, mcMomentum, mcPosition, mcCharge,
171 m_fitParameters,
172 m_correctionFitParameters);
173
174 } else {
175 rawHitCoordinates(0) = momentumEstimator.estimateQOverP(*m_hit, ROOT::Math::XYZVector(trackMomentum),
176 ROOT::Math::XYZVector(trackPosition), trackCharge,
177 m_fitParameters,
178 m_correctionFitParameters);
179 }
180 } else {
181 if (m_useMCInformation) {
182 rawHitCoordinates(0) = momentumEstimator.estimateQOverP(*m_hit, hitMCMomentum, hitMCPosition, stateCharge,
183 m_fitParameters,
184 m_correctionFitParameters);
185 } else {
186 rawHitCoordinates(0) = momentumEstimator.estimateQOverP(*m_hit, ROOT::Math::XYZVector(stateMomentum),
187 ROOT::Math::XYZVector(statePosition), stateCharge,
188 m_fitParameters,
189 m_correctionFitParameters);
190 }
191 }
192 }
193
194 rawHitCovariance(0, 0) = m_sigma;
195
196 genfit::MeasurementOnPlane* mop = new genfit::MeasurementOnPlane(rawHitCoordinates, rawHitCovariance,
197 state.getPlane(), state.getRep(), constructHMatrix(state.getRep()));
198 return {mop};
199 }

◆ convertFloatToInt()

long convertFloatToInt ( double value,
int power )
inline

Convert float or double to long int for more similarity to the FPGA implementation.

Parameters
valueto be converted
powermultiply value by 10^power

Definition at line 21 of file DATCONHelpers.h.

22 {
23 long factor = (long)pow(10, power);
24 return round(factor * value);
25 }

◆ convertNetworkPath()

template<class NetworkPath>
SpacePointTrackCand convertNetworkPath ( NetworkPath networkPath)
inline

Create new SPTC from network path.

Definition at line 24 of file NetworkPathConversion.h.

25 {
26 std::vector <const SpacePoint*> spVector;
27 spVector.reserve(networkPath.size());
28 if (networkPath.empty()) {
29 return SpacePointTrackCand();
30 }
31
32 auto family = networkPath[0]->getFamily();
33 for (auto aNodeIt = networkPath.rbegin(); aNodeIt != networkPath.rend(); ++aNodeIt) {
34 insertSpacePoints(spVector, (*aNodeIt)->getEntry());
35 }
36
37 auto sptc = SpacePointTrackCand(spVector);
38 sptc.setFamily(family);
39 return sptc;
40 }
Storage for (VXD) SpacePoint-based track candidates.
void insertSpacePoints(std::vector< const SpacePoint * > &target, const Segment< TrackNode > &source)
Insert of inner and outer TrackNodes of a Segment as SpacePoints into path of SpacePoints.

◆ convertToEigen() [1/2]

template<unsigned int NRows, unsigned int NCols, class AMatrix>
Eigen::Matrix< double, NRows, NCols, Eigen::RowMajor > convertToEigen ( const AMatrix & matrix)

Convert a ROOT matrix to Eigen. Checks for the correct row and column number.

Definition at line 21 of file EigenHelper.h.

22 {
23 B2ASSERT("Matrix should be in the form " << NRows << "x" << NCols << ", not " << matrix.GetNrows() << "x" << matrix.GetNcols(),
24 matrix.GetNcols() == NCols and matrix.GetNrows() == NRows);
25 return Eigen::Matrix<double, NRows, NCols, Eigen::RowMajor>(matrix.GetMatrixArray());
26 };

◆ convertToEigen() [2/2]

template<unsigned int NRows>
Eigen::Matrix< double, NRows, 1 > convertToEigen ( const TVectorD & matrix)

Convert a ROOT matrix to Eigen - TVector specialisation. Checks for the correct row number.

Definition at line 30 of file EigenHelper.h.

31 {
32 B2ASSERT("Matrix should be in the form " << NRows << "x" << 1 << ", not " << matrix.GetNrows() << "x" << 1,
33 matrix.GetNrows() == NRows);
34 return Eigen::Matrix<double, NRows, 1>(matrix.GetMatrixArray());
35 };

◆ createPurityInfos() [1/2]

template<typename SPContainer>
static std::vector< Belle2::MCVXDPurityInfo > createPurityInfos ( const SPContainer & container)
static
  • create a vector of MCVXDPurityInfos objects for any given container holding SpacePoints and providing a getHits() method each MCParticle that is in the container gets its own object NOTE: negative MCParticleIds are possible und used as follows:
  • -1 -> there was a TrueHit (i.e. Cluster) related to a SpacePoint in the container that did not have relation to a MCParticle
  • -2 -> there was a SpacePoint with a Cluster that was not related to a TrueHit (noise Cluster)
    Returns
    sorted vector of MCVXDPurityInfo (sorted by overall purity)
    wrapper taking a const reference instead of a const pointer for use in e.g. C++11 for loops

Definition at line 218 of file PurityCalculatorTools.h.

219 {
220 return createPurityInfos(&container);
221 }
static std::vector< Belle2::MCVXDPurityInfo > createPurityInfos(const SPContainer *container)
create a vector of MCVXDPurityInfos objects for any given container holding SpacePoints and providing...

◆ createPurityInfos() [2/2]

template<typename SPContainer>
static std::vector< Belle2::MCVXDPurityInfo > createPurityInfos ( const SPContainer * container)
static

create a vector of MCVXDPurityInfos objects for any given container holding SpacePoints and providing a getHits() method each MCParticle that is in the container gets its own object NOTE: negative MCParticleIds are possible und used as follows:

Definition at line 202 of file PurityCalculatorTools.h.

203 {
204 return createPurityInfosVec(container->getHits());
205 }
static std::vector< Belle2::MCVXDPurityInfo > createPurityInfosVec(const std::vector< const Belle2::SpacePoint * > &spacePoints)
create a vector of MCVXDPurityInfos objects for a std::vector<Belle2::SpacePoints>.

◆ createPurityInfosVec()

static std::vector< Belle2::MCVXDPurityInfo > createPurityInfosVec ( const std::vector< const Belle2::SpacePoint * > & spacePoints)
static

create a vector of MCVXDPurityInfos objects for a std::vector<Belle2::SpacePoints>.

each MCParticle that is in the vector gets its own object NOTE: negative MCParticleIds are possible and used as follows:

Definition at line 149 of file PurityCalculatorTools.h.

150 {
151 std::array<unsigned, 3> totalClusters = { {0, 0, 0 } };
152 // WARNING: relying on the fact here that all array entries will be initialized to 0
153 std::unordered_map<int, std::array<unsigned, 3> > mcClusters;
154
155 unsigned nClusters = 0; // NOTE: only needed for DEBUG output -> remove?
156
157 for (const Belle2::SpacePoint* spacePoint : spacePoints) {
158 B2DEBUG(29, "Now processing SpacePoint " << spacePoint->getArrayIndex() << " from Array " << spacePoint->getArrayName());
159 increaseClusterCounters(spacePoint, totalClusters);
160
161 nClusters += spacePoint->getNClustersAssigned();
162
163 std::vector<std::pair<int, double> > mcParticles;
164 if (spacePoint->getType() == VXD::SensorInfoBase::PXD) mcParticles = getMCParticles<PXDTrueHit>(spacePoint);
165 else if (spacePoint->getType() == VXD::SensorInfoBase::SVD) mcParticles = getMCParticles<SVDTrueHit>(spacePoint);
166 else if (spacePoint->getType() == VXD::SensorInfoBase::VXD) {B2DEBUG(25, "found generic spacePoint, treating it as virtualIP");}
167 else B2FATAL("Unknown DetectorType (" << spacePoint->getType() << ") in createPurityInfos! Skipping this SpacePoint " <<
168 spacePoint->getArrayIndex() << " from Array " << spacePoint->getArrayName());
169
170 for (const std::pair<int, double>& particle : mcParticles) {
171 std::vector<size_t> accessors = getAccessorsFromWeight(particle.second);
172 for (size_t acc : accessors) {
173 mcClusters[particle.first][acc]++;
174 }
175 }
176 }
177 B2DEBUG(29, "container contained " << spacePoints.size() << " SpacePoint with " << nClusters << " Clusters");
178
179 // create MCVXDPurityInfos and add them to the return vector
180 std::vector<Belle2::MCVXDPurityInfo> purityInfos;
181 for (int mcId : getUniqueKeys(mcClusters)) {
182 // cppcheck-suppress useStlAlgorithm
183 purityInfos.push_back(MCVXDPurityInfo(mcId, totalClusters, mcClusters[mcId]));
184 }
185
186 // sort in descending order before return
187 std::sort(purityInfos.begin(), purityInfos.end(),
188 [](const MCVXDPurityInfo & left, const MCVXDPurityInfo & right) { return left > right; }
189 );
190 return purityInfos;
191 }
The MC VXD Purity info container class.
@ VXD
Any type of VXD Sensor.
std::vector< typename MapType::key_type > getUniqueKeys(const MapType &aMap)
get the unique keys of a map (i.e.
static std::vector< std::pair< int, double > > getMCParticles(const Belle2::SpacePoint *spacePoint)
get the related MCParticles to the TrueHit.
static std::vector< size_t > getAccessorsFromWeight(double weight)
convert the relation weight (SpacePoint <-> TrueHit) to a type that can be used to access arrays
static void increaseClusterCounters(const Belle2::SpacePoint *spacePoint, std::array< unsigned, 3 > &clusterCtr)
increase the appropriate Cluster counter by asking the SpacePoint which type he has and which Cluster...

◆ decorrelate() [1/3]

template<size_t Ndims>
std::vector< double > decorrelate ( const std::array< double, Ndims > & inputs) const

"decorrelate" one measurement (i.e.

apply the transformation that has previously been determined).

Definition at line 136 of file DecorrelationMatrix.h.

137 {
138 return decorrelate(std::vector<double>(input.begin(), input.end()));
139 }

◆ decorrelate() [2/3]

template<size_t Ndims>
std::array< std::vector< double >, Ndims > decorrelate ( const std::array< std::vector< double >, Ndims > & inputMat) const

decorrelate M measurements (i.e.

apply the transformation that has previously been determined). NOTE: the transformation has to be calculated prior to the call of this function!

Definition at line 143 of file DecorrelationMatrix.h.

144 {
145 using DVector = Eigen::Matrix<double, Eigen::Dynamic, 1, Eigen::ColMajor>;
146 using DMatrix = Eigen::Matrix<double, Eigen::Dynamic, Ndims, Eigen::ColMajor>;
147
148 size_t nSamples = inputMat[0].size();
149 DMatrix dataMatrix(nSamples, Ndims);
150 for (size_t i = 0; i < Ndims; ++i) {
151 dataMatrix.col(i) = Eigen::Map<const DVector>(inputMat[i].data(), inputMat[i].size());
152 }
153
154 DMatrix transform = dataMatrix * m_matrix;
155
156 std::array<std::vector<double>, Ndims> output;
157 for (size_t i = 0; i < Ndims; ++i) {
158 output[i] = std::vector<double>(transform.col(i).data(), transform.col(i).data() + transform.col(i).size());
159 }
160
161 return output;
162 }

◆ decorrelate() [3/3]

template<size_t Ndims>
std::vector< double > decorrelate ( const std::vector< double > & inputVec) const

"decorrelate" one measurement (i.e.

apply the transformation that has previously been determined).

Definition at line 125 of file DecorrelationMatrix.h.

126 {
127 using RVector = Eigen::Matrix<double, 1, Ndims, Eigen::RowMajor>;
128 Eigen::Map<const RVector> input(inputVec.data(), Ndims);
129
130 const RVector transform = input * m_matrix;
131
132 return std::vector<double>(transform.data(), transform.data() + transform.size());
133 }

◆ exposeParameters() [1/17]

template<class ... AIOTypes>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
overridevirtual

◆ exposeParameters() [2/17]

template<class AFindlet>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
finaloverridevirtual

Expose our parameters to the super module.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 26 of file BaseEventTimeExtractorModule.icc.h.

27 {
28 m_trackSelector.exposeParameters(moduleParamList, prefix);
29 m_findlet.exposeParameters(moduleParamList, prefix);
30 }

◆ exposeParameters() [3/17]

template<class AState, class ASeedRelationFilter, class AHitRelationFilter>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
finalvirtual

Expose the parameters of the subfindlet.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 34 of file CKFRelationCreator.icc.h.

36 {
37 m_seedFilter.exposeParameters(moduleParamList, TrackFindingCDC::prefixed("seed", prefix));
38 m_hitFilter.exposeParameters(moduleParamList, TrackFindingCDC::prefixed("hit", prefix));
39
40 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "onlyUseHitStatesRelatedToSeeds"),
41 m_onlyUseHitStatesRelatedToSeeds,
42 "Only use hit states related to seed states to build the inter hit relations to reduce combinatorics. "\
43 "By default, only the \"FromStates\" will be the ones related to seeds. If also the \"ToStates\" should be "\
44 "related to the seeds, also m_onlyCombineRelatedHitStates (name in Python: " + \
45 TrackFindingCDC::prefixed(prefix, "onlyCombineRelatedHitStates") + ") should be set to true.",
46 m_onlyUseHitStatesRelatedToSeeds);
47 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "onlyCombineRelatedHitStates"),
48 m_onlyCombineRelatedHitStates,
49 "Only use hit states related to seed states to build the inter hit relations to reduce combinatorics. "\
50 "If true, both \"FromStates\" and \"ToStates\" will be those that are already related to seeds. "\
51 "Only works if also m_onlyUseHitStatesRelatedToSeeds (name in Python: " + \
52 TrackFindingCDC::prefixed(prefix, "onlyUseHitStatesRelatedToSeeds") + ") is set to true.",
53 m_onlyCombineRelatedHitStates);
54 }

◆ exposeParameters() [4/17]

template<class AFindlet>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
finaloverridevirtual

Expose the parameters.

Reimplemented from BaseEventTimeExtractor< RecoTrack * >.

Definition at line 73 of file GridEventTimeExtractor.icc.h.

74 {
75 Super::exposeParameters(moduleParamList, prefix);
76
77 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "iterations"),
78 m_param_iterations,
79 "How many iterations should be done?",
80 m_param_iterations);
81 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "abortOnUnsuccessfulStep"),
82 m_param_abortOnUnsuccessfulStep,
83 "Abort on a single unsuccessful step. Otherwise, the success is defined by the last step",
84 m_param_abortOnUnsuccessfulStep);
85 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "maximalT0Value"),
86 m_param_maximalT0Value,
87 "Maximal Grid Value of the T0 extraction",
88 m_param_maximalT0Value);
89 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "minimalT0Value"),
90 m_param_minimalT0Value,
91 "Maximal Grid Value of the T0 extraction",
92 m_param_minimalT0Value);
93 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "gridSteps"),
94 m_param_gridSteps,
95 "Number of steps in the grid",
96 m_param_gridSteps);
97
98 m_findlet.exposeParameters(moduleParamList, TrackFindingCDC::prefixed("sub", prefix));
99 }

◆ exposeParameters() [5/17]

template<class AFindlet>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
overridevirtual

Expose the parameters.

Reimplemented from BaseEventTimeExtractor< RecoTrack * >.

Definition at line 79 of file IterativeEventTimeExtractor.icc.h.

80 {
81 Super::exposeParameters(moduleParamList, prefix);
82
83 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "maxIterations"),
84 m_param_maxIterations,
85 "How many iterations should be done maximally?",
86 m_param_maxIterations);
87 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "minIterations"),
88 m_param_minIterations,
89 "How many iterations should be done minimally?",
90 m_param_minIterations);
91 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "minimalDeltaT0"),
92 m_param_minimalDeltaT0,
93 "What is the final precision?",
94 m_param_minimalDeltaT0);
95 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "useLastEventT0"),
96 m_param_useLastEventT0,
97 "Use the last event t0 instead of the best one.",
98 m_param_useLastEventT0);
99 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "abortOnUnsuccessfulStep"),
100 m_param_abortOnUnsuccessfulStep,
101 "Abort on a single unsuccessful step. Otherwise, the success is defined by the last step",
102 m_param_abortOnUnsuccessfulStep);
103
104 m_findlet.exposeParameters(moduleParamList, TrackFindingCDC::prefixed("sub", prefix));
105 }

◆ exposeParameters() [6/17]

template<class AFilter, class APrefilter>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
overridevirtual

Expose the parameters of the filter.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 34 of file LayerPXDRelationFilter.icc.h.

35 {
36 // use value from DB if parameter is set to -1
37 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "hitJumping"), m_param_hitJumping,
38 "Make it possible to jump over N layers.", m_param_hitJumping);
39
40 m_filter.exposeParameters(moduleParamList, prefix);
41 m_prefilter.exposeParameters(moduleParamList, TrackFindingCDC::prefixed("pre", prefix));
42
43 m_prefix = prefix;
44 }

◆ exposeParameters() [7/17]

template<class AFilter, class APrefilter>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
finalvirtual

Expose the parameters of the filter.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 122 of file LayerSVDRelationFilter.icc.h.

123 {
124 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "hitJumping"), m_param_hitJumping,
125 "Make it possible to jump over N layers.", m_param_hitJumping);
126
127 m_filter.exposeParameters(moduleParamList, prefix);
128 m_prefilter.exposeParameters(moduleParamList, TrackFindingCDC::prefixed("pre", prefix));
129 }

◆ exposeParameters() [8/17]

template<class AState, class AFindlet>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
finalvirtual

Expose parameters of the subfilters and the layer to change.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 31 of file LayerToggledApplier.icc.h.

33 {
34 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "toggleOnLayer"),
35 m_param_toggleOnLayer, "Where to toggle between low, equal and high filter",
36 m_param_toggleOnLayer);
37
38 m_highLayerFindlet.exposeParameters(moduleParamList, TrackFindingCDC::prefixed(prefix, "high"));
39 m_equalLayerFindlet.exposeParameters(moduleParamList, TrackFindingCDC::prefixed(prefix, "equal"));
40 m_lowLayerFindlet.exposeParameters(moduleParamList, TrackFindingCDC::prefixed(prefix, "low"));
41 }

◆ exposeParameters() [9/17]

template<class AState, class AFilter>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
overridevirtual

Expose the parameters of the subfindlet.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 48 of file LimitedOnStateApplier.icc.h.

49 {
50 m_filter.exposeParameters(moduleParamList, prefix);
51
52 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "useNStates"), m_param_useNStates, "Only use the best N states",
53 m_param_useNStates);
54 };

◆ exposeParameters() [10/17]

template<class AllStateFilter>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
override

Expose the direction parameter.

Definition at line 71 of file NonIPCrossingStateFilter.icc.h.

72 {
73 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "direction"), m_param_directionAsString,
74 "The direction where the extrapolation will happen.");
75 }

◆ exposeParameters() [11/17]

template<class AFilter>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
finalvirtual

Expose the parameters of the subfindlet.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 36 of file OverlapResolver.icc.h.

37 {
38 m_filter.exposeParameters(moduleParamList, prefix);
39
40 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "enableOverlapResolving"),
41 m_param_enableOverlapResolving,
42 "Enable the overlap resolving.",
43 m_param_enableOverlapResolving);
44 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "useBestNInSeed"),
45 m_param_useBestNInSeed,
46 "In seed mode, use only the best seeds.",
47 m_param_useBestNInSeed);
48 }

◆ exposeParameters() [12/17]

template<class AResult>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
overridevirtual

Expose the parameters of the sub findlets.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 25 of file ResultStorer.icc.h.

26 {
27 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "exportTracks"), m_param_exportTracks,
28 "Export the result tracks into a StoreArray.",
29 m_param_exportTracks);
30
31 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "outputRecoTrackStoreArrayName"),
32 m_param_outputRecoTrackStoreArrayName,
33 "StoreArray name of the output Track Store Array.");
34 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "outputRelationRecoTrackStoreArrayName"),
35 m_param_outputRelationRecoTrackStoreArrayName,
36 "StoreArray name of the tracks, the output reco tracks should be related to.");
37
38 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "writeOutDirection"),
39 m_param_writeOutDirectionAsString,
40 "Write out the relations with the direction of the VXD part as weight");
41 }

◆ exposeParameters() [13/17]

void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
finalvirtual

Expose the parameters of the filter.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 32 of file SectorMapBasedSVDPairFilter.cc.

33 {
34 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "sectorMapName"), m_param_sectorMapName,
35 "Name of the sector map to use.", m_param_sectorMapName);
36 }

◆ exposeParameters() [14/17]

template<class AResult, class ACluster>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
overridevirtual

Expose the parameters of the findlet.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 36 of file SpacePointTagger.icc.h.

38 {
39 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "singleClusterLevel"),
40 m_param_singleClusterLevel,
41 "Mark SP as used, if the share a single cluster with the results, or if they "
42 "share a whole SP.",
43 m_param_singleClusterLevel);
44 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "markUsedSpacePoints"),
45 m_param_markUsedSpacePoints,
46 "Mark used space points as assigned.",
47 m_param_markUsedSpacePoints);
48 }

◆ exposeParameters() [15/17]

template<class AState>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
finalvirtual

Expose the parameters.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 28 of file StateCreatorWithReversal.icc.h.

29 {
30 moduleParamList->addParameter("reverseSeed",
31 m_param_reverseSeed,
32 "Reverse the seed.");
33 }

◆ exposeParameters() [16/17]

template<class AState, class AFindlet>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
finalvirtual

Expose the parameters of the subfindlet.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 32 of file StateRejecter.icc.h.

33 {
34 m_firstFilter.exposeParameters(moduleParamList, TrackFindingCDC::prefixed("first", prefix));
35 m_advanceFilter.exposeParameters(moduleParamList, TrackFindingCDC::prefixed("advance", prefix));
36 m_secondFilter.exposeParameters(moduleParamList, TrackFindingCDC::prefixed("second", prefix));
37 m_updateFilter.exposeParameters(moduleParamList, TrackFindingCDC::prefixed("update", prefix));
38 m_thirdFilter.exposeParameters(moduleParamList, TrackFindingCDC::prefixed("third", prefix));
39 };

◆ exposeParameters() [17/17]

template<class AState, class AStateRejecter, class AResult>
void exposeParameters ( ModuleParamList * moduleParamList,
const std::string & prefix )
finalvirtual

Expose the parameters of the subfindlet.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 32 of file TreeSearcher.icc.h.

33 {
34 m_stateRejecter.exposeParameters(moduleParamList, prefix);
35
36 moduleParamList->addParameter(TrackFindingCDC::prefixed(prefix, "endEarly"), m_param_endEarly,
37 "Make it possible to have all subresults in the end result vector.",
38 m_param_endEarly);
39 }

◆ fillInterceptList()

template<class aIntercept>
void fillInterceptList ( StoreArray< aIntercept > * listToBeFilled,
const StoreArray< RecoTrack > & trackList,
RelationArray * recoTrackToIntercepts )

Fill the list of PXD intecepts corresponding to the list of track candidates.

Definition at line 26 of file VXDInterceptor.templateDetails.h.

29 {
30 for (int i = 0; i < trackList.getEntries(); ++i) { //loop over all tracks
31
32 B2DEBUG(20, " %%%%% track candidate Nr. : " << i + 1);
33
34 if (! trackList[i] ->wasFitSuccessful()) {
35 B2DEBUG(20, "%%%%% Fit not successful! discard this RecoTrack");
36 continue;
37 }
38
39 // extrapolate track to cylinders (VXD layers)
40 for (unsigned int layer = 0; layer < m_layerRadii.size(); layer++) {
41 const unsigned int layerOffset = (m_detector == VXD::SensorInfoBase::SVD ? 3 : 1);
42
43 B2DEBUG(20, " .fill intercept List, Layer: " << layer + layerOffset);
44 // if this ROI / intercept finding is for DQM, only extrapolate backwards, starting from first hit
45 // if it's for actual ROI finding (or any other case), extrapolate in both directions, once starting
46 // from the first hit extrapolating backwards, and once starting from the last hit extrapolating forwards
47 for (short direction : (m_ForDQM ? c_backwards : c_both)) {
48 std::list<ROIDetPlane> selectedPlanes;
49 genfit::MeasuredStateOnPlane gfTrackState;
50 switch (direction) {
51 case -1:
52 gfTrackState = trackList[i]->getMeasuredStateOnPlaneFromFirstHit();
53 break;
54 case 1:
55 gfTrackState = trackList[i]->getMeasuredStateOnPlaneFromLastHit();
56 gfTrackState.setPosMom(gfTrackState.getPos(), -gfTrackState.getMom());
57 gfTrackState.setChargeSign(-gfTrackState.getCharge());
58 break;
59 default:
60 break;
61 }
62
63 try {
64 gfTrackState.extrapolateToCylinder(m_layerRadii[layer]);
65 } catch (...) {
66 B2DEBUG(20, " .-extrapolation to cylinder failed");
67 continue;
68 }
69
70 B2DEBUG(20, " ..append selected planes, position " << gfTrackState.getPos().X() << ", " << gfTrackState.getPos().Y() << ", " <<
71 gfTrackState.getPos().Z());
72
73 m_theROIGeometry.appendSelectedPlanes(&selectedPlanes, ROOT::Math::XYZVector(gfTrackState.getPos()), layer + layerOffset);
74 B2DEBUG(20, " ...append intercepts for track " << i << "\n"\
75 " ...the size of the selectedPlanes : " << selectedPlanes.size() << "\n"\
76 " ...extrapolating in direction " << direction << " (-1 for backwards from first hit, +1 for forwards from last hit)");
77 appendIntercepts(interceptList, selectedPlanes, gfTrackState, i, recoTrackToIntercepts);
78 }
79
80 } //loop on layers
81 } //loop on the track list
82
83 } //fillInterceptList

◆ fillRoiIDList()

template<class aIntercept>
void fillRoiIDList ( StoreArray< aIntercept > * listOfIntercepts,
StoreArray< ROIid > * ROIidList )

Append the ROIid to the list listToBeFilled.

Definition at line 45 of file ROIToUnitTranslator.templateDetails.h.

46 {
47
48 const VXD::GeoCache& aGeometry = VXD::GeoCache::getInstance();
49
50 for (int i = 0; i < listOfIntercepts->getEntries(); i++) {
51
52 B2DEBUG(21, " --->> a NEW INTERCEPT!");
53
54
55 const VXD::SensorInfoBase& aSensorInfo = aGeometry.getSensorInfo((*listOfIntercepts)[i]->getSensorID());
56
57 double widthTotU = std::min(m_maxWidthU,
58 sqrt((*listOfIntercepts)[i]->getSigmaU() * (*listOfIntercepts)[i]->getSigmaU() + m_sigmaSystU * m_sigmaSystU) * m_numSigmaTotU);
59 double widthTotV = std::min(m_maxWidthV,
60 sqrt((*listOfIntercepts)[i]->getSigmaV() * (*listOfIntercepts)[i]->getSigmaV() + m_sigmaSystV * m_sigmaSystV) * m_numSigmaTotV);
61
62 double minU = (*listOfIntercepts)[i]->getCoorU() - widthTotU / 2 ;
63 double maxU = (*listOfIntercepts)[i]->getCoorU() + widthTotU / 2 ;
64 const int nUnitsU = aSensorInfo.getUCells() - 1;
65
66 double minV = (*listOfIntercepts)[i]->getCoorV() - widthTotV / 2;
67 double maxV = (*listOfIntercepts)[i]->getCoorV() + widthTotV / 2;
68 const int nUnitsV = aSensorInfo.getVCells() - 1;
69
70 const int firstPixelID = 0;
71
72 double bottomLeft_uID = aSensorInfo.getUCellID(minU, minV, false);
73 double bottomLeft_vID = aSensorInfo.getVCellID(minV, false);
74 double topRight_uID = aSensorInfo.getUCellID(maxU, maxV, false);
75 double topRight_vID = aSensorInfo.getVCellID(maxV, false);
76
77 B2DEBUG(21, " LAYER = " << VxdID((*listOfIntercepts)[i]->getSensorID()).getLayerNumber()
78 << " LADDER = " << VxdID((*listOfIntercepts)[i]->getSensorID()).getLadderNumber()
79 << " SENSOR = " << VxdID((*listOfIntercepts)[i]->getSensorID()).getSensorNumber()
80 );
81
82 B2DEBUG(21, " number of units (pixel or strip) (U,V) = (" << nUnitsU << "," << nUnitsV << ")");
83
84 B2DEBUG(21, " widthU = " << maxU - minU
85 << " minU = " << minU
86 << " maxU = " << maxU
87 << " lengthU = " << aSensorInfo.getUSize((*listOfIntercepts)[i]->getCoorV())
88 );
89
90 B2DEBUG(21, " widthV = " << maxV - minV
91 << " minV = " << minV
92 << " maxV = " << maxV
93 << " lengthV = " << aSensorInfo.getVSize());
94
95 B2DEBUG(21, " bottom left unit (pixel or strip) (U,V) = (" << bottomLeft_uID << "," << bottomLeft_vID << ")");
96 B2DEBUG(21, " top right unit (pixel or strip) (U,V) = (" << topRight_uID << "," << topRight_vID << ")");
97
98
99 //check that the pixel belong to the sensor
100 bool inside = true;
101 if (bottomLeft_uID > nUnitsU || topRight_uID < firstPixelID || bottomLeft_vID > nUnitsV || topRight_vID < firstPixelID) {
102 B2DEBUG(21, " OOOPS: this unit (pixel or strip) does NOT belong to the sensor");
103 inside = false;
104 }
105
106 ROIid tmpROIid;
107
108 if (inside) {
109 tmpROIid.setMinUid(aSensorInfo.getUCellID(minU, minV, true));
110 tmpROIid.setMinVid(aSensorInfo.getVCellID(minV, true));
111 tmpROIid.setMaxUid(aSensorInfo.getUCellID(maxU, maxV, true));
112 tmpROIid.setMaxVid(aSensorInfo.getVCellID(maxV, true));
113 tmpROIid.setSensorID((*listOfIntercepts)[i]->getSensorID()) ;
114
115 ROIidList->appendNew(tmpROIid);
116
117 // this is the pointer to the transient copy of tmpROIid
118 ROIid* transientROIid = (*ROIidList)[ROIidList->getEntries() - 1];
119
120 (*listOfIntercepts)[i]->addRelationTo(transientROIid);
121 }
122 }
123 }

◆ findWeightInVector()

static bool findWeightInVector ( std::vector< std::pair< int, double > > & vec,
double weight )
static

find the given weight in the given vector of pair<int,double> NOTE: the criteria for finding are rather loose (i.e.

actual value and desired value must not differ by more than 1e-4) as the values that are encountered lie rather far apart!

Definition at line 39 of file PurityCalculatorTools.h.

40 {
41 const double epsilon = 1e-4; // no real need for accuracy here since weights are rather far apart!
42 return (std::find_if(vec.begin(), vec.end(),
43 [&epsilon, &weight](const std::pair<int, double>& p)
44 { return fabs(p.second - weight) <= epsilon; })
45 != vec.end());
46 }

◆ fromString()

TrackFindingCDC::EForwardBackward fromString ( const std::string & directionString)
inline

Helper function to turn a direction string into a valid forward backward information.

Definition at line 36 of file SearchDirection.h.

37 {
38 if (directionString == "forward" or directionString == "above" or directionString == "after") {
39 return TrackFindingCDC::EForwardBackward::c_Forward;
40 } else if (directionString == "backward" or directionString == "below" or directionString == "before") {
41 return TrackFindingCDC::EForwardBackward::c_Backward;
42 } else if (directionString == "both" or directionString == "unknown") {
43 return TrackFindingCDC::EForwardBackward::c_Unknown;
44 } else if (directionString == "none" or directionString == "invalid") {
45 return TrackFindingCDC::EForwardBackward::c_Invalid;
46 } else {
47 B2FATAL("Do not understand direction " << directionString << ". Valid names are " <<
48 "forward/above/after, backward/below/before, both/unknown, none/invalid");
49 }
50 }

◆ getAccessorsFromWeight()

static std::vector< size_t > getAccessorsFromWeight ( double weight)
static

convert the relation weight (SpacePoint <-> TrueHit) to a type that can be used to access arrays

Definition at line 132 of file PurityCalculatorTools.h.

133 {
134 if (weight < 1.5 && weight > 0) return {0}; // weight 1 -> PXD
135 if (weight < 2.5 && weight > 0) return { 1, 2 }; // weight 2 -> both Clusters with relation to MCParticle
136 if (weight < 20 && weight > 0) return {1}; // weight 11 -> only U-Cluster related to MCParticle
137 if (weight > 20 && weight < 30) return {2}; // weight 21 -> only V-Cluster related to MCParticle
138
139 return std::vector<size_t>(); // empty vector else
140 }

◆ getAllValues()

template<typename MapType>
std::vector< typename MapType::mapped_type > getAllValues ( const MapType & aMap)

get all values in the map (i.e.

dump out all values that are stored in the map). The connection to the keys is lost! TODO: write test for this!!!!

Definition at line 133 of file MapHelperFunctions.h.

134 {
135 typedef typename MapType::key_type keyT;
136 std::vector<keyT> allKeys = getUniqueKeys(aMap);
137
138 typedef typename MapType::mapped_type valueT;
139 std::vector<valueT> allValues;
140 for (const keyT& key : allKeys) {
141 std::vector<valueT> keyValues = getValuesToKey(aMap, key);
142 for (const valueT& value : keyValues) {
143 allValues.push_back(value);
144 }
145 }
146
147 return allValues;
148 }
std::vector< typename MapType::mapped_type > getValuesToKey(const MapType &aMap, typename MapType::key_type aKey)
get all values stored in the map for a given key

◆ getClassMnemomicParameterDescription() [1/2]

std::string getClassMnemomicParameterDescription ( const RecoTrack * dispatchTag)
inline

Returns a short description for class RecoTrack to be used in descriptions of parameters.

Definition at line 31 of file ClassMnemomics.h.

32 {
33 return "Reco Track";
34 }

◆ getClassMnemomicParameterDescription() [2/2]

std::string getClassMnemomicParameterDescription ( const SpacePoint * dispatchTag)
inline

Returns a short description for class SpacePoint to be used in descriptions of parameters.

Definition at line 43 of file ClassMnemomics.h.

44 {
45 return "Space Point";
46 }

◆ getClassMnemomicParameterName() [1/2]

std::string getClassMnemomicParameterName ( const RecoTrack * dispatchTag)
inline

Returns a short name for class RecoTrack to be used in names of parameters.

Definition at line 25 of file ClassMnemomics.h.

26 {
27 return "recoTrack";
28 }

◆ getClassMnemomicParameterName() [2/2]

std::string getClassMnemomicParameterName ( const SpacePoint * dispatchTag)
inline

Returns a short name for class SpacePoint to be used in names of parameters.

Definition at line 37 of file ClassMnemomics.h.

38 {
39 return "spacePoint";
40 }

◆ getMatrix()

const TMatrixD & getMatrix ( ) const
override

Return the underlying matrix.

Definition at line 23 of file HMatrixQP.cc.

24 {
25 static const double HMatrixContent[5] = {1, 0, 0, 0, 0};
26
27 static const TMatrixD HMatrix(1, 5, HMatrixContent);
28
29 return HMatrix;
30 }

◆ getMCParticles()

template<typename TrueHitType>
static std::vector< std::pair< int, double > > getMCParticles ( const Belle2::SpacePoint * spacePoint)
static

get the related MCParticles to the TrueHit.

Returns
vector of pairs, where .first is the MCParticleId, which is -1 if there was no MCParticle related to a TrueHit and -2 if there is a Cluster without a relation to a TrueHit (probably a noise Cluster then) .second is the relation weight between SpacePoint and TrueHit (encodes additional information that is needed afterwards)

Definition at line 55 of file PurityCalculatorTools.h.

56 {
57 // CAUTION: getting all TrueHits here (i.e. from all StoreArrays)
58 Belle2::RelationVector<TrueHitType> trueHits = spacePoint->getRelationsTo<TrueHitType>("ALL");
59 std::vector<std::pair<int, double> > mcParticles;
60 B2DEBUG(29, "Found " << trueHits.size() << " TrueHits related to SpacePoint " << spacePoint->getArrayIndex());
61
62 for (size_t iTH = 0; iTH < trueHits.size(); ++iTH) {
63 B2DEBUG(29, "Trying to get MCParticles from TrueHit " << trueHits[iTH]->getArrayIndex() <<
64 " from Array " << trueHits[iTH]->getArrayName());
65 Belle2::MCParticle* mcPart = trueHits[iTH]->template getRelatedFrom<Belle2::MCParticle>("ALL");
66
67 int mcPartId = -1; // default value for MCPartId (not found)
68 if (mcPart != nullptr) {
69 mcPartId = mcPart->getArrayIndex();
70 B2DEBUG(29, "TrueHit is related to MCParticle " << mcPartId);
71 } else {
72 B2DEBUG(20, "Found no MCParticle related to TrueHit " << trueHits[iTH]->getArrayIndex() <<
73 " from Array " << trueHits[iTH]->getArrayName());
74 }
75 mcParticles.push_back(std::make_pair(mcPartId, trueHits.weight(iTH)));
76 }
77
78 // sort & unique to filter out double MCIds (if the relations are set correct, this only happens if more than one TrueHits point to the same MCParticle)
79 std::sort(mcParticles.begin(), mcParticles.end());
80 auto newEnd = std::unique(mcParticles.begin(), mcParticles.end(),
81 [](const std::pair<int, double>& a, const std::pair<int, double>& b) { return a.first == b.first; }
82 );
83 if (newEnd != mcParticles.end()) B2DEBUG(20,
84 "More than one TrueHits (related to one SpacePoint) are related to the same MCParticle!");
85 mcParticles.resize(std::distance(mcParticles.begin(), newEnd));
86
87 // check if there were noise Clusters in the SpacePoint
88 // only case left for PXD is missing TrueHit for underlying Cluster, everything else is covered!
89 if (spacePoint->getType() == VXD::SensorInfoBase::PXD) {
90 if (mcParticles.empty()) mcParticles.push_back(std::make_pair(-2, 1)); // if no Id in vector there is no relation to TrueHit
91 } else if (spacePoint->getType() == VXD::SensorInfoBase::SVD) { // for SVD some more tests are needed!
92 // check if there is one MCParticle that is related to both Clusters of the SpacePoint
93 if (!findWeightInVector(mcParticles, 2)) { // if not both related check which ones should have a relation and act accordingly
94 const std::pair<bool, bool>& clusters = spacePoint->getIfClustersAssigned();
95 bool uGood = clusters.first && findWeightInVector(mcParticles, 11);
96 bool vGood = clusters.second && findWeightInVector(mcParticles, 21);
97 if (!uGood && !vGood) mcParticles.push_back(std::make_pair(-2, 2)); // if both Clusters are not related -> weight is 2
98 else if (uGood && !vGood) mcParticles.push_back(std::make_pair(-2, 21)); // if only V-Cluster is not related -> weight is 21
99 else if (!uGood && vGood) mcParticles.push_back(std::make_pair(-2, 11)); // if only U-Cluster is not related -> weight is 11
100 }
101 } else {
102 B2ERROR("Unknown DetectorType in getMCParticles! This is just a notification! Needs to be handled!"); // should not happen
103 }
104
105 return mcParticles;
106 }
A Class to store the Monte Carlo particle information.
Definition MCParticle.h:32
int getArrayIndex() const
Get 0-based index of the particle in the corresponding MCParticle list.
Definition MCParticle.h:233
Class for type safe access to objects that are referred to in relations.
size_t size() const
Get number of relations.
float weight(int index) const
Get weight with index.
int getArrayIndex() const
Returns this object's array index (in StoreArray), or -1 if not found.
RelationVector< TO > getRelationsTo(const std::string &name="", const std::string &namedRelation="") const
Get the relations that point from this object to another store array.
std::pair< bool, bool > getIfClustersAssigned() const
Returns, if u(v)-coordinate is based on cluster information.
Definition SpacePoint.h:162
Belle2::VXD::SensorInfoBase::SensorType getType() const
Return SensorType (PXD, SVD, ...) on which the SpacePoint lives.
Definition SpacePoint.h:145
static bool findWeightInVector(std::vector< std::pair< int, double > > &vec, double weight)
find the given weight in the given vector of pair<int,double> NOTE: the criteria for finding are rath...

◆ getNValuesPerKey()

template<typename MapType>
std::vector< std::pair< typename MapType::key_type, unsigned int > > getNValuesPerKey ( const MapType & aMap)

get the unique keys of a map together with the number of values associated to each key.

first elements are keys, second are number of values NOTE: for a non-multimap this returns all keys with a .second of 1!

Definition at line 58 of file MapHelperFunctions.h.

59 {
60 typedef typename MapType::key_type keyT;
61 typedef typename MapType::const_iterator mapIter;
62
63 std::vector<std::pair<keyT, unsigned int> > valuesPerKey;
64 if (aMap.empty()) return valuesPerKey; // return empty vector if map is empty
65
66 std::vector<keyT> uniqueKeys = getUniqueKeys<MapType>(aMap);
67
68 for (keyT key : uniqueKeys) {
69 std::pair<mapIter, mapIter> keyRange = aMap.equal_range(key);
70 valuesPerKey.push_back(std::make_pair(key, std::distance(keyRange.first, keyRange.second)));
71 }
72 return valuesPerKey;
73 }

◆ getPossibleTos() [1/2]

template<class AFilter, class APrefilter>
std::vector< CKFToPXDState * > getPossibleTos ( CKFToPXDState * from,
const std::vector< CKFToPXDState * > & states ) const
overridevirtual

Return all states the given state is possible related to.

Reimplemented from RelationFilter< CKFToPXDState >.

Definition at line 89 of file LayerPXDRelationFilter.icc.h.

91 {
92 std::vector<CKFToPXDState*> possibleNextStates;
93
94 const CKFToPXDState::stateCache& currentStateCache = currentState->getStateCache();
95 const unsigned int& currentLayer = currentStateCache.geoLayer;
96
97 // this is the parameter value set in the python config
98 int m_hitJump = m_param_hitJumping;
99 // if it is set to -1 we want to use the values in the payload
100 if (m_hitJump == -1) {
101 m_hitJump = currentStateCache.ptSeed < m_layerJumpPtThreshold ? m_layerJumpLowPt : m_layerJumpHighPt;
102 }
103
104 const unsigned int& nextPossibleLayer = std::max(static_cast<int>(currentLayer) - 1 - m_hitJump, 0);
105
106 // Patch for the PXD layer 2 overlap inefficiency fix
107 // previous implementation of maximumLadderNumber was calculated using GeoCache gave incorrect value for exp1003
108 // Geometrically, PXD layer 1 has 8 ladders, pxd layer 2 has 12 ladder
109 int numberOfLaddersForLayer[2] = {8, 12};
110
111 for (CKFToPXDState* nextState : states) {
112 const CKFToPXDState::stateCache& nextStateCache = nextState->getStateCache();
113 const unsigned int nextLayer = nextStateCache.geoLayer;
114 if (nextLayer < std::min(currentLayer, nextPossibleLayer) or std::max(currentLayer, nextPossibleLayer) < nextLayer) {
115 continue;
116 }
117
118 if (currentLayer == nextLayer) {
119 // next layer is an overlap one, so lets return all hits from the same layer, that are on a
120 // ladder which is below the last added hit.
121 const unsigned int fromLadderNumber = currentStateCache.ladder;
122 const unsigned int maximumLadderNumber = numberOfLaddersForLayer[currentLayer - 1];
123
124 // the reason for this strange formula is the numbering scheme in the VXD.
125 // we first subtract 1 from the ladder number to have a ladder counting from 0 to N - 1,
126 // then we add (PXD)/subtract(PXD) one to get to the next (overlapping) ladder and do a % N to also cope for the
127 // highest number. Then we add 1 again, to go from the counting from 0 .. N-1 to 1 .. N.
128 // The + maximumLadderNumber in between makes sure, we are not ending with negative numbers
129 const int direction = 1;
130 const unsigned int overlappingLadder =
131 ((fromLadderNumber + maximumLadderNumber - 1) + direction) % maximumLadderNumber + 1;
132
133 if (nextStateCache.ladder != overlappingLadder) {
134 continue;
135 }
136
137 // Next we make sure to not have any cycles in our graph: we do this by defining only the halves of the
138 // sensor as overlapping. So if the first hit is coming from sensor 1 and the second from sensor 2,
139 // they are only related if the one from sensor 1 is on the half, that is pointing towards sensor 2
140 // and the one on sensor 2 is on the half that is pointing towards sensor 1.
141 //
142 // X X X
143 // ----|---- ----|---- ----|----
144 // This is fine: X This not: X This not: X
145 // ----|---- ----|---- ----|----
146
147 // for PXD its the other way round!
148 if (currentStateCache.localNormalizedu <= 0.8f) {
149 continue;
150 }
151
152 if (nextStateCache.localNormalizedu > 0.2f) {
153 continue;
154 }
155 }
156
157 // Some loose prefiltering of possible states
158 TrackFindingCDC::Weight weight = m_prefilter(std::make_pair(currentState, nextState));
159 if (std::isnan(weight)) {
160 continue;
161 }
162
163 possibleNextStates.push_back(nextState);
164 }
165
166 return possibleNextStates;
167 }

◆ getPossibleTos() [2/2]

template<class AFilter, class APrefilter>
std::vector< CKFToSVDState * > getPossibleTos ( CKFToSVDState * from,
const std::vector< CKFToSVDState * > & states ) const
finalvirtual

Return all states the given state is possible related to.

Reimplemented from RelationFilter< CKFToSVDState >.

Definition at line 50 of file LayerSVDRelationFilter.icc.h.

52 {
53 std::vector<CKFToSVDState*> possibleNextStates;
54 possibleNextStates.reserve(states.size());
55
56 const CKFToSVDState::stateCache& currentStateCache = currentState->getStateCache();
57 const unsigned int currentLayer = currentStateCache.geoLayer;
58 const unsigned int nextPossibleLayer = std::max(static_cast<int>(currentLayer) - 1 - m_param_hitJumping, 0);
59
60 for (CKFToSVDState* nextState : states) {
61 if (currentState == nextState) {
62 continue;
63 }
64
65 const CKFToSVDState::stateCache& nextStateCache = nextState->getStateCache();
66 const unsigned int nextLayer = nextStateCache.geoLayer;
67
68 if (std::max(currentLayer, nextPossibleLayer) >= nextLayer and nextLayer >= std::min(currentLayer, nextPossibleLayer)) {
69
70 if (currentLayer == nextLayer) {
71 // next layer is an overlap one, so lets return all hits from the same layer, that are on a
72 // ladder which is below the last added hit.
73 const unsigned int fromLadderNumber = currentStateCache.ladder;
74 const unsigned int maximumLadderNumber = m_maximalLadderCache.find(currentLayer)->second;
75
76 // the reason for this strange formula is the numbering scheme in the VXD.
77 // we first subtract 1 from the ladder number to have a ladder counting from 0 to N - 1,
78 // then we add (PXD)/subtract(SVD) one to get to the next (overlapping) ladder and do a % N to also cope for the
79 // highest number. Then we add 1 again, to go from the counting from 0 .. N-1 to 1 .. N.
80 // The + maximumLadderNumber in between makes sure, we are not ending with negative numbers
81 const int direction = -1;
82 const unsigned int overlappingLadder =
83 ((fromLadderNumber + maximumLadderNumber - 1) + direction) % maximumLadderNumber + 1;
84
85 if (nextStateCache.ladder != overlappingLadder) {
86 continue;
87 }
88
89 // Next we make sure to not have any cycles in our graph: we do this by defining only the halves of the
90 // sensor as overlapping. So if the first hit is coming from sensor 1 and the second from sensor 2,
91 // they are only related if the one from sensor 1 is on the half, that is pointing towards sensor 2
92 // and the one on sensor 2 is on the half that is pointing towards sensor 1.
93 //
94 // X X X
95 // ----|---- ----|---- ----|----
96 // This is fine: X This not: X This not: X
97 // ----|---- ----|---- ----|----
98 if (currentStateCache.localNormalizedu > 0.2f) {
99 continue;
100 }
101
102 if (nextStateCache.localNormalizedu <= 0.8f) {
103 continue;
104 }
105 }
106
107 // Some loose prefiltering of possible states
108 TrackFindingCDC::Weight weight = m_prefilter(std::make_pair(currentState, nextState));
109 if (std::isnan(weight)) {
110 continue;
111 }
112
113
114 possibleNextStates.push_back(nextState);
115 }
116 }
117
118 return possibleNextStates;
119 }

◆ getSortedKeyValueTuples()

template<typename MapType>
std::vector< std::tuple< typename MapType::key_type, typename MapType::mapped_type, unsigned int > > getSortedKeyValueTuples ( const MapType & aMap)

get the (key, value, number of values) tuples stored in the map, sorted after the following scheme (descending order) 1) the number of associated values to one key 2) the sum of the associated values to that key NOTE: for a non-multimap this returns the content of the map ordered by valued CAUTION: if one of the values to a key is NaN this key will be the first (of the ones with the same number of associated values)

Returns
a vector of tuples where get<0> is the key, get<1> is the sum of the values to the key and get<2> is the number of values to the key

Definition at line 102 of file MapHelperFunctions.h.

103 {
104 typedef typename MapType::key_type keyT;
105 typedef typename MapType::mapped_type mapT;
106
107 std::vector<std::tuple<keyT, mapT, unsigned int> > keyValuePairs;
108 if (aMap.empty()) return keyValuePairs; // return empty vector if nothing is stored in map
109
110 std::vector<std::pair<keyT, unsigned int> > nValuesPerKey = getNValuesPerKey(aMap);
111
112 for (std::pair<keyT, unsigned int> keyValues : nValuesPerKey) {
113 std::vector<mapT> valuesToKey = getValuesToKey(aMap, keyValues.first);
114
115 mapT valueSum = std::accumulate(valuesToKey.begin(), valuesToKey.end(), 0.0);
116 keyValuePairs.push_back(std::make_tuple(keyValues.first, valueSum, keyValues.second));
117 }
118
119 // sort using a lambda function (using std::tie as std::tuple has a defined operator < that ensures strict weak ordering)
120 std::sort(keyValuePairs.begin(), keyValuePairs.end(),
121 [](const std::tuple<keyT, mapT, unsigned int>& lTuple, const std::tuple<keyT, mapT, unsigned int>& rTuple)
122 { return std::tie(std::get<2>(rTuple), std::get<1>(rTuple)) < std::tie(std::get<2>(lTuple), std::get<1>(lTuple)); }
123 );
124
125 return keyValuePairs;
126 }
std::vector< std::pair< typename MapType::key_type, unsigned int > > getNValuesPerKey(const MapType &aMap)
get the unique keys of a map together with the number of values associated to each key.

◆ getUniqueKeys()

template<typename MapType>
std::vector< typename MapType::key_type > getUniqueKeys ( const MapType & aMap)

get the unique keys of a map (i.e.

if no multimap is passed all keys are returned) NOTE: for this to work the keys have to have a defined operator < () as std::sort is used! NOTE: as a side effect the keys are returned sorted!

Definition at line 32 of file MapHelperFunctions.h.

33 {
34 std::vector<typename MapType::key_type> allKeys; // collect all keys of the map -> then sort & unique (+resize)
35 if (aMap.empty()) { return allKeys; }
36
37 typedef typename MapType::const_iterator mapIter;
38 for (mapIter it = aMap.begin(); it != aMap.end(); ++it) { allKeys.push_back(it->first); }
39 std::sort(allKeys.begin(), allKeys.end());
40 auto newEnd = std::unique(allKeys.begin(), allKeys.end());
41 allKeys.resize(std::distance(allKeys.begin(), newEnd));
42
43 return allKeys;
44 }

◆ getUniqueSize()

template<typename MapType>
unsigned int getUniqueSize ( const MapType & aMap)

get the number of unique keys inside the map NOTE: for non-multimap this is the same as .size()

Definition at line 51 of file MapHelperFunctions.h.

51{ return getUniqueKeys<MapType>(aMap).size(); }

◆ getValuesToKey()

template<typename MapType>
std::vector< typename MapType::mapped_type > getValuesToKey ( const MapType & aMap,
typename MapType::key_type aKey )

get all values stored in the map for a given key

Definition at line 79 of file MapHelperFunctions.h.

80 {
81 typedef typename MapType::const_iterator mapIter;
82
83 std::vector<typename MapType::mapped_type> values;
84 if (aMap.empty()) return values;
85
86 std::pair<mapIter, mapIter> keyRange = aMap.equal_range(aKey);
87 for (mapIter it = keyRange.first; it != keyRange.second; ++it) { values.push_back(it->second); }
88
89 return values;
90 }

◆ GridEventTimeExtractor()

template<class AFindlet>
GridEventTimeExtractor ( )

Add the subfindlet as listener.

Definition at line 23 of file GridEventTimeExtractor.icc.h.

24 {
25 Super::addProcessingSignalListener(&m_findlet);
26 }

◆ HMHt()

void HMHt ( TMatrixDSym & M) const
override

Calculate H * M * H^T = M_00.

Definition at line 73 of file HMatrixQP.cc.

74 {
75 assert(M.GetNrows() == 5);
76 // Just use the 0,0 entry
77 M.ResizeTo(1, 1);
78 }

◆ Hv()

TVectorD Hv ( const TVectorD & v) const
override

Calculate H * v = v_0.

Definition at line 33 of file HMatrixQP.cc.

34 {
35 assert(v.GetNrows() == 5);
36
37 TVectorD returnValue(1);
38
39 returnValue(0) = v(0);
40
41 return returnValue;
42 }

◆ increaseClusterCounters()

static void increaseClusterCounters ( const Belle2::SpacePoint * spacePoint,
std::array< unsigned, 3 > & clusterCtr )
static

increase the appropriate Cluster counter by asking the SpacePoint which type he has and which Clusters are assigned

Definition at line 111 of file PurityCalculatorTools.h.

112 {
113 if (spacePoint->getType() == Belle2::VXD::SensorInfoBase::PXD) {
114 clusterCtr[0]++;
115 B2DEBUG(29, "SpacePoint contains PXDCluster");
116 } else {
117 std::pair<bool, bool> setClusters = spacePoint->getIfClustersAssigned();
118 if (setClusters.first) {
119 clusterCtr[1]++;
120 B2DEBUG(29, "SpacePoint contains U SVDCluster");
121 }
122 if (setClusters.second) {
123 clusterCtr[2]++;
124 B2DEBUG(29, "SpacePoint contains V SVDCluster");
125 }
126 }
127 }

◆ initialize() [1/4]

template<class ... AIOTypes>
void initialize ( )
overridevirtual

Initialize the event t0 store obj ptr.

Reimplemented from ProcessingSignalListener.

Reimplemented in HitBasedT0Extractor.

Definition at line 38 of file BaseEventTimeExtractor.icc.h.

39 {
40 Super::initialize();
41 m_eventT0.registerInDataStore();
42 }

◆ initialize() [2/4]

template<class AFilter, class APrefilter>
void initialize ( )
overridevirtual

Receive and dispatch signal before the start of the event processing.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 47 of file LayerPXDRelationFilter.icc.h.

48 {
49 Super::initialize();
50
51 if (m_prefix == "seed") {
52 m_ckfParameters = std::make_unique<OptionalDBObjPtr<CKFParameters>>("PXDCKFSeedHitParameters");
53 } else if (m_prefix == "hit") {
54 m_ckfParameters = std::make_unique<OptionalDBObjPtr<CKFParameters>>("PXDCKFHitHitParameters");
55 } else {
56 B2ERROR("Unknown prefix. Apparently, some non-trivial changes to code were done.");
57 }
58 }

◆ initialize() [3/4]

template<class AllStateFilter>
void initialize ( )
final

Copy the string direction parameter to the enum.

Definition at line 78 of file NonIPCrossingStateFilter.icc.h.

79 {
80 Super::initialize();
81 m_param_direction = fromString(m_param_directionAsString);
82 }
TrackFindingCDC::EForwardBackward fromString(const std::string &directionString)
Helper function to turn a direction string into a valid forward backward information.

◆ initialize() [4/4]

template<class AResult>
void initialize ( )
overridevirtual

Create the store arrays.

Reimplemented from CompositeProcessingSignalListener.

Definition at line 45 of file ResultStorer.icc.h.

46 {
47 Super::initialize();
48
49 if (not m_param_exportTracks) {
50 return;
51 }
52
53 m_outputRecoTracks.registerInDataStore(m_param_outputRecoTrackStoreArrayName);
54 RecoTrack::registerRequiredRelations(m_outputRecoTracks);
55
56 StoreArray<RecoTrack> relationRecoTracks(m_param_outputRelationRecoTrackStoreArrayName);
57 relationRecoTracks.registerRelationTo(m_outputRecoTracks);
58
59 m_param_writeOutDirection = fromString(m_param_writeOutDirectionAsString);
60 }

◆ initializeObservers() [1/3]

template<class Variable, class RangeType, class observer, typename ... argsTypes>
bool initializeObservers ( const Belle2::Filter< Variable, RangeType, observer > & filter,
argsTypes ... args )

Initialize the observer of a RangeType Filter.

Template Parameters
Variable: Filter variable type
RangeType: range type
observer: observer type to be used
argsTypes: argument types of the filter
Parameters
filter: Filter for which the observer shall be initialized
args: arguments of the filter
Returns
boolean to indicate if the observer has been initialized

Definition at line 985 of file Filter.h.

986 {
987 return observer::initialize(Variable(), filter.getRange(), args ...);
988 }
std::map< ExpRun, std::pair< double, double > > filter(const std::map< ExpRun, std::pair< double, double > > &runs, double cut, std::map< ExpRun, std::pair< double, double > > &runsRemoved)
filter events to remove runs shorter than cut, it stores removed runs in runsRemoved
Definition Splitter.cc:38

◆ initializeObservers() [2/3]

template<class booleanBinaryOperator, typename ... types1, typename ... types2, class observer, typename ... argsTypes>
bool initializeObservers ( const Filter< booleanBinaryOperator, Belle2::Filter< types1... >, Belle2::Filter< types2... >, observer > & ,
argsTypes ... args )

Observer Stuff ///.

Recursive function to initialize all the observers in a binary boolean Filter.

Template Parameters
booleanBinaryOperator: Tag Class to identify the Filter operator
types1: template pack of a filter
types2: template pack of another filter
observer: observer type to be used
argsTypes: argument types of the filter
Parameters
args: arguments of the filter
Returns
boolean to indicate if the observer has been initialized

Definition at line 947 of file Filter.h.

950 {
951 return observer::initialize(args ...)
954 }
This class is used to select pairs, triplets... of objects.
Definition Filter.h:34
bool initializeObservers(const Filter< booleanBinaryOperator, Belle2::Filter< types1... >, Belle2::Filter< types2... >, observer > &, argsTypes ... args)
Observer Stuff ///.
Definition Filter.h:947

◆ initializeObservers() [3/3]

template<class booleanUnaryOperator, typename ... types1, class observer, typename ... argsTypes>
bool initializeObservers ( const Filter< booleanUnaryOperator, Belle2::Filter< types1... >, observer > & ,
argsTypes ... args )

Recursive function to initialize all the observers in a unary boolean Filter.

Template Parameters
booleanUnaryOperator: Tag Class to identify the Filter operator
types1: template pack of the filter
observer: observer type to be used
argsTypes: argument types of the filter
Parameters
args: arguments of the filter
Returns
boolean to indicate if the observer has been initialized

Definition at line 969 of file Filter.h.

970 {
971 return observer::initialize(args ...) && initializeObservers(Belle2::Filter<types1...>(), args...);
972 }

◆ insertSpacePoint()

void insertSpacePoint ( std::vector< const SpacePoint * > & target,
TrackNode source )
inline

Convert TrackNode to SpaePoint an add to a SpacePoint path.

Definition at line 44 of file NetworkPathConversion.h.

45 {
46 target.push_back(source.m_spacePoint);
47 }

◆ insertSpacePoints()

void insertSpacePoints ( std::vector< const SpacePoint * > & target,
const Segment< TrackNode > & source )
inline

Insert of inner and outer TrackNodes of a Segment as SpacePoints into path of SpacePoints.

Definition at line 51 of file NetworkPathConversion.h.

52 {
53 if (target.empty()) {
54 insertSpacePoint(target, *(source.getInnerHit()));
55 insertSpacePoint(target, *(source.getOuterHit()));
56 } else {
57 insertSpacePoint(target, *(source.getOuterHit()));
58 }
59 }
void insertSpacePoint(std::vector< const SpacePoint * > &target, TrackNode source)
Convert TrackNode to SpaePoint an add to a SpacePoint path.

◆ IterativeEventTimeExtractor()

template<class AFindlet>
IterativeEventTimeExtractor ( )

Add the subfindlet as listener.

Definition at line 23 of file IterativeEventTimeExtractor.icc.h.

24 {
25 Super::addProcessingSignalListener(&m_findlet);
26 }

◆ LayerPXDRelationFilter()

template<class AFilter, class APrefilter>
LayerPXDRelationFilter ( )

Add the filter as listener.

Definition at line 24 of file LayerPXDRelationFilter.icc.h.

24 : Super()
25 {
26 Super::addProcessingSignalListener(&m_filter);
27 Super::addProcessingSignalListener(&m_prefilter);
28 }

◆ LayerSVDRelationFilter()

template<class AFilter, class APrefilter>
LayerSVDRelationFilter ( )

Add the filter as listener.

Definition at line 26 of file LayerSVDRelationFilter.icc.h.

26 : Super()
27 {
28 Super::addProcessingSignalListener(&m_filter);
29 Super::addProcessingSignalListener(&m_prefilter);
30 }

◆ LayerToggledApplier()

template<class AState, class AFindlet>
LayerToggledApplier ( )

Add the subfilters as listeners.

Definition at line 22 of file LayerToggledApplier.icc.h.

22 : Super()
23 {
24 Super::addProcessingSignalListener(&m_highLayerFindlet);
25 Super::addProcessingSignalListener(&m_equalLayerFindlet);
26 Super::addProcessingSignalListener(&m_lowLayerFindlet);
27 }

◆ LimitedOnStateApplier()

template<class AState, class AFilter>
LimitedOnStateApplier ( )

Constructor adding the findlet as a listener.

Definition at line 24 of file LimitedOnStateApplier.icc.h.

25 {
26 this->addProcessingSignalListener(&m_filter);
27 };

◆ MHt() [1/2]

TMatrixD MHt ( const TMatrixD & M) const
override

Calculate M * H^T = first column of M.

Definition at line 59 of file HMatrixQP.cc.

60 {
61 assert(M.GetNcols() == 5);
62
63 TMatrixD returnMatrix(M.GetNrows(), 1);
64
65 for (int i = 0; i < M.GetNrows(); ++i) {
66 returnMatrix(i, 0) = M(0, i);
67 }
68
69 return returnMatrix;
70 }

◆ MHt() [2/2]

TMatrixD MHt ( const TMatrixDSym & M) const
override

Calculate M * H^T = first column of M.

Definition at line 45 of file HMatrixQP.cc.

46 {
47 assert(M.GetNcols() == 5);
48
49 TMatrixD returnVector(5, 1);
50
51 for (unsigned int i = 0; i < 5; ++i) {
52 returnVector(i, 0) = M(0, i);
53 }
54
55 return returnVector;
56 }

◆ operator!()

template<typename ... types>
Filter< OperatorNot, Filter< types... >, VoidObserver > operator! ( const Filter< types... > & filter)

Definition of the NOT operator !

for the Filter class

Template Parameters
types: template pack defining the filter
Parameters
filter: filter to which the NOT operator shall be added
Returns
!filter, so a filter with NOT operator attached

Definition at line 583 of file Filter.h.

584 {
585 return Filter<OperatorNot, Filter<types...>, VoidObserver>(filter);
586 }
The most CPU efficient Observer for the VXDTF filter tools (even if useless).

◆ operator&&()

template<typename ... types1, typename ... types2>
Filter< Belle2::OperatorAnd, Belle2::Filter< types1... >, Belle2::Filter< types2... >, Belle2::VoidObserver > operator&& ( const Filter< types1... > & filter1,
const Filter< types2... > & filter2 )

Definition of the boolean AND operator && of the Filter class.

Template Parameters
types1: template pack of filter A
types2: template pack of filter B
Parameters
filter1: filter A
filter2: filter B
Returns
Boolean AND combination of the two filters

Definition at line 753 of file Filter.h.

754 {
755 return Filter<OperatorAnd, Filter<types1...>, Filter<types2...>, VoidObserver> (filter1, filter2);
756 }

◆ operator()() [1/6]

template<class AFilter, class APrefilter>
TrackFindingCDC::Weight operator() ( const CKFToPXDState & from,
const CKFToPXDState & to )
overridevirtual

Give a final weight to the possibilities by asking the filter.

Reimplemented from RelationFilter< CKFToPXDState >.

Definition at line 170 of file LayerPXDRelationFilter.icc.h.

171 {
172 return m_filter(std::make_pair(&from, &to));
173 }

◆ operator()() [2/6]

template<class AFilter, class APrefilter>
TrackFindingCDC::Weight operator() ( const CKFToSVDState & from,
const CKFToSVDState & to )
finalvirtual

Give a final weight to the possibilities by asking the filter.

Reimplemented from RelationFilter< CKFToSVDState >.

Definition at line 132 of file LayerSVDRelationFilter.icc.h.

133 {
134 return m_filter(std::make_pair(&from, &to));
135 }

◆ operator()() [3/6]

template<class AState, class AFilter>
TrackFindingCDC::Weight operator() ( const Object & object)
overridevirtual

Copy the filter operator to this method.

Reimplemented from OnStateApplier< AState >.

Definition at line 42 of file LimitedOnStateApplier.icc.h.

43 {
44 return m_filter(object);
45 };

◆ operator()() [4/6]

template<class AllStateFilter>
TrackFindingCDC::Weight operator() ( const Object & pair)
final

Main function testing the object for the direction.

Definition at line 27 of file NonIPCrossingStateFilter.icc.h.

28 {
29 if (std::isnan(AllStateFilter::operator()(pair))) {
30 return NAN;
31 }
32
33 const auto& previousStates = pair.first;
34 auto* state = pair.second;
35
36 const RecoTrack* cdcTrack = previousStates.front()->getSeed();
37 B2ASSERT("Path without seed?", cdcTrack);
38
39 const SpacePoint* spacePoint = state->getHit();
40 B2ASSERT("Path without hit?", spacePoint);
41
42 const genfit::MeasuredStateOnPlane& firstMeasurement = [&state, &previousStates]() {
43 if (state->mSoPSet()) {
44 return state->getMeasuredStateOnPlane();
45 } else {
46 B2ASSERT("Previous state was not fitted?", previousStates.back()->mSoPSet());
47 return previousStates.back()->getMeasuredStateOnPlane();
48 }
49 }();
50
51 const TrackFindingCDC::Vector3D& position = static_cast<TrackFindingCDC::Vector3D>(firstMeasurement.getPos());
52 const TrackFindingCDC::Vector3D& momentum = static_cast<TrackFindingCDC::Vector3D>(firstMeasurement.getMom());
53
54 const TrackFindingCDC::CDCTrajectory2D trajectory2D(position.xy(), 0, momentum.xy(), cdcTrack->getChargeSeed());
55
56 const TrackFindingCDC::Vector3D& hitPosition = static_cast<TrackFindingCDC::Vector3D>(spacePoint->getPosition());
57 const TrackFindingCDC::Vector2D origin(0, 0);
58
59 const double deltaArcLengthHitOrigin = trajectory2D.calcArcLength2DBetween(hitPosition.xy(), origin);
60 const double deltaArcLengthTrackHit = trajectory2D.calcArcLength2D(hitPosition.xy());
61
62 if (not arcLengthInRightDirection(deltaArcLengthTrackHit, m_param_direction) or
63 not arcLengthInRightDirection(deltaArcLengthHitOrigin, m_param_direction)) {
64 return NAN;
65 }
66
67 return 1.0;
68 }
constexpr bool arcLengthInRightDirection(double arcLength2D, TrackFindingCDC::EForwardBackward forwardBackward)
Given the calculated arc length between a start point and an end point, checks if the travelled path ...

◆ operator()() [5/6]

template<class AState>
TrackFindingCDC::Weight operator() ( const Object & object)
virtual

The filter operator for this class.

Reimplemented in LimitedOnStateApplier< AState, AFilter >.

Definition at line 37 of file OnStateApplier.icc.h.

38 {
39 return NAN;
40 };

◆ operator()() [6/6]

TrackFindingCDC::Weight operator() ( const std::pair< const CKFToSVDState *, const CKFToSVDState * > & relation)
override

Give a final weight to the possibilities by asking the filter.

Definition at line 38 of file SectorMapBasedSVDPairFilter.cc.

40 {
41 const CKFToSVDState* fromState = relation.first;
42 const CKFToSVDState* toState = relation.second;
43
44 B2ASSERT("From and to state must be set", fromState and toState);
45
46 const CKFToSVDState::stateCache& outerStateCache = fromState->getStateCache();
47 const CKFToSVDState::stateCache& innerStateCache = toState->getStateCache();
48
49 B2ASSERT("Both hits must be present!", outerStateCache.isHitState and innerStateCache.isHitState);
50
51 // TODO maybe it would be better to look for the full IDs first; maybe not
52 B2ASSERT("Outer hit is invalid",
53 m_vxdtfFilters->areCoordinatesValid(outerStateCache.sensorID, outerStateCache.localNormalizedu, outerStateCache.localNormalizedv));
54 B2ASSERT("Inner hit is invalid",
55 m_vxdtfFilters->areCoordinatesValid(innerStateCache.sensorID, innerStateCache.localNormalizedu, innerStateCache.localNormalizedv));
56
57 FullSecID outerSecID = m_vxdtfFilters->getFullID(outerStateCache.sensorID, outerStateCache.localNormalizedu,
58 outerStateCache.localNormalizedv);
59 FullSecID innerSecID = m_vxdtfFilters->getFullID(innerStateCache.sensorID, innerStateCache.localNormalizedu,
60 innerStateCache.localNormalizedv);
61
62 const auto* outerStaticSector = m_vxdtfFilters->getStaticSector(outerSecID);
63
64 const auto* filter = outerStaticSector->getFilter2sp(innerSecID);
65 if (not filter) {
66 return NAN;
67 }
68
69 const SpacePoint* outerHit = fromState->getHit();
70 const SpacePoint* innerHit = toState->getHit();
71
72 if (not filter->accept(*outerHit, *innerHit)) {
73 return NAN;
74 }
75
76 B2INFO(outerSecID.getVxdID() << " -> " << innerSecID.getVxdID());
77 return 1;
78 }

◆ operator<() [1/3]

template<class Var, class Arithmetic>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, LowerBoundedSet< Arithmetic >, VoidObserver > >::type operator< ( Arithmetic lowerBound,
const Var &  )

Creates a Filters with an lower bound > on the provided variable lowerBound < Var.

Template Parameters
Var: variable type to use for the filter
Arithmetic: type of the return value of the variable function
Parameters
lowerBound: lower bound value to be checked by the filter
Returns
the created filter

Definition at line 171 of file Shortcuts.h.

173 {
175 }
Represents a lower bounded set of arithmetic types.

◆ operator<() [2/3]

template<class Var, class ArithmeticLower, class ArithmeticUpper, class Observer>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< ArithmeticLower >::value &&std::is_arithmetic< ArithmeticUpper >::value, Filter< Var, Range< ArithmeticLower, ArithmeticUpper >, Observer > >::type operator< ( const Filter< Var, LowerBoundedSet< ArithmeticLower >, Observer > & filter,
ArithmeticUpper upperBound )

Adding upper bound to filter with lower bound to create a filter with an allowed range between lower and upper bound.

(Var with lowerBound) < upperBound

Template Parameters
Var: variable type to be used for the filter
ArithmeticLower: type of lower bound
ArithmeticUpper: type of upper bound
Observer: observer type
Parameters
filter: filter with lower bound to which the upper bound shall be added
upperBound: value of upper bound
Returns
filter with range allowing values between lower and upper bound

Definition at line 255 of file Shortcuts.h.

257 {
259 (Range<ArithmeticLower, ArithmeticUpper> (filter.getRange().getInf(), upperBound));
260 }
Observer base class which can be used to evaluate the VXDTF2's Filters.
Definition Observer.h:19
Represents a range of arithmetic types.
Definition Range.h:29

◆ operator<() [3/3]

template<class Var, class Arithmetic, typename ... types>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, UpperBoundedSet< Arithmetic >, VoidObserver > >::type operator< ( const Var & ,
Arithmetic upperBound )

Creates a Filters with an upper bound < on the provided variable Var < lowerBound.

Template Parameters
Var: variable type to use for the filter
Arithmetic: type of the return value of the variable function
types: other types
Parameters
upperBound: upper bound value to be checked by the filter
Returns
the created filter

Definition at line 48 of file Shortcuts.h.

50 {
52 }
Represents an upper bounded set of arithmetic types.

◆ operator<<() [1/2]

std::ostream & operator<< ( std::ostream & output,
const CDCCKFPath & path )

Output operator for the collection of CDC CKF-algorithm states.

Definition at line 15 of file CDCCKFPath.cc.

16 {
17 output << "[";
18 for (const auto& state : path) {
19 output << state << ", ";
20 }
21 output << "]";
22 return output;
23 }

◆ operator<<() [2/2]

std::ostream & operator<< ( std::ostream & output,
const CDCCKFState & state )

print state info

Definition at line 16 of file CDCCKFState.cc.

17 {
18 if (state.isSeed()) {
19 output << "seed";
20 } else {
21 const auto* wireHit = state.getWireHit();
22 const auto& wire = wireHit->getWire();
23 output << wire.getICLayer() << " " << wire.getIWire();
24 }
25 return output;
26 }
const TrackFindingCDC::CDCWireHit * getWireHit() const
Get CDCWireHit corresponding to the state.
Definition CDCCKFState.h:34
bool isSeed() const
Returns true if the state corresponds to the seed track.
Definition CDCCKFState.h:55

◆ operator<=() [1/3]

template<class Var, class Arithmetic>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, ClosedLowerBoundedSet< Arithmetic >, VoidObserver > >::type operator<= ( Arithmetic lowerBound,
const Var &  )

Creates a Filters with a closed lower bound >= on the provided variable lowerBound <= Var.

Template Parameters
Var: variable type to use for the filter
Arithmetic: type of the return value of the variable function
Parameters
lowerBound: lower bound value to be checked by the filter
Returns
the created filter

Definition at line 191 of file Shortcuts.h.

193 {
195 }
Represents a closed lower bounded set of arithmetic types.

◆ operator<=() [2/3]

template<class Var, class ArithmeticLower, class ArithmeticUpper, class Observer>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< ArithmeticLower >::value &&std::is_arithmetic< ArithmeticUpper >::value, Filter< Var, ClosedRange< ArithmeticLower, ArithmeticUpper >, Observer > >::type operator<= ( const Filter< Var, ClosedLowerBoundedSet< ArithmeticLower >, Observer > & filter,
ArithmeticUpper upperBound )

Adding closed upper bound to filter with closed lower bound to create a filter with an allowed closed range between lower and upper bound.

(Var with closed lowerBound) <= upperBound

Template Parameters
Var: variable type to be used for the filter
ArithmeticLower: type of lower bound
ArithmeticUpper: type of upper bound
Observer: observer type
Parameters
filter: filter with lower bound to which the upper bound shall be added
upperBound: value of upper bound
Returns
filter with closed range allowing values between lower and upper bound

Definition at line 307 of file Shortcuts.h.

309 {
311 (ClosedRange<ArithmeticLower, ArithmeticUpper> (filter.getRange().getInf(), upperBound));
312 }
Represents a closed set of arithmetic types.
Definition ClosedRange.h:32

◆ operator<=() [3/3]

template<class Var, class Arithmetic, typename ... types>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, ClosedUpperBoundedSet< Arithmetic >, VoidObserver > >::type operator<= ( const Var & ,
Arithmetic upperBound )

Creates a Filters with a closed upper bound <= on the provided variable Var <= lowerBound.

Template Parameters
Var: variable type to use for the filter
Arithmetic: type of the return value of the variable function
types: other types
Parameters
upperBound: upper bound value to be checked by the filter
Returns
the created filter

Definition at line 71 of file Shortcuts.h.

73 {
75 }
Represents an upper bounded set of arithmetic types.

◆ operator==() [1/7]

template<class DataType, class TCInfoType, class VectorType>
bool operator== ( const AlgoritmType::Type & a,
const AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > & b )
inline

non-memberfunction Comparison for equality with a AlgoritmType::Type

Definition at line 191 of file AnalyzingAlgorithmBase.h.

192 { return (a == b.getID()); }

◆ operator==() [2/7]

template<class DataType, class TCInfoType, class VectorType>
bool operator== ( const AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > & a,
const AlgoritmType::Type & b )
inline

non-memberfunction Comparison for equality with a AlgoritmType::Type

Definition at line 185 of file AnalyzingAlgorithmBase.h.

186 { return (a.getID() == b); }

◆ operator==() [3/7]

template<class DataType, class TCInfoType, class VectorType>
bool operator== ( const AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > & a,
const std::string & b )
inline

non-memberfunction Comparison for equality with a std::string

Definition at line 173 of file AnalyzingAlgorithmBase.h.

174 { return (a.getIDName() == b); }

◆ operator==() [4/7]

template<class EntryType, class MetaInfoType>
bool operator== ( const EntryType & a,
const DirectedNode< EntryType, MetaInfoType > & b )

************************* NON-MEMBER FUNCTIONS *************************

Non-memberfunction Comparison for equality with EntryType <-> DirectedNode< EntryType >

Definition at line 131 of file DirectedNode.h.

132 {
133 return (a == b.getConstEntry());
134 }

◆ operator==() [5/7]

template<class DataType, class TCInfoType, class VectorType>
bool operator== ( const std::string & a,
const AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType > & b )
inline

non-memberfunction Comparison for equality with a std::string

Definition at line 179 of file AnalyzingAlgorithmBase.h.

180 { return (a == b.getIDName()); }

◆ operator==() [6/7]

template<class Var, class Val>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value, Filter< Var, SingleElementSet< Val >, VoidObserver > >::type operator== ( const Var & ,
Val v )

Creates a Filters to compare a variable against a given value Var == Val;.

Template Parameters
Var: variable type to use for the filter
Val: value type to compare variable against
Parameters
v: value to compare variable against
Returns
the created filter

Definition at line 211 of file Shortcuts.h.

212 {
214 }
Represents a set containing a single element;.

◆ operator==() [7/7]

template<class Var, class Val>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value, Filter< Var, SingleElementSet< Val >, VoidObserver > >::type operator== ( Val val,
const Var & var )

Creates a Filters to compare a variable against a given value Val == Var;.

Template Parameters
Var: variable type to be used for the filter
Val: value type to compare variable against
Parameters
val: value to compare variable against
var: variable
Returns
the created filter

Definition at line 231 of file Shortcuts.h.

232 {
233 return var == val;
234 }

◆ operator>() [1/3]

template<class Var, class Arithmetic>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, UpperBoundedSet< Arithmetic >, VoidObserver > >::type operator> ( Arithmetic upperBound,
const Var &  )

Creates a Filters with an upper bound < on the provided variable upperBound > Var.

Template Parameters
Var: variable type to use for the filter
Arithmetic: type of the return value of the variable function
Parameters
upperBound: upper bound value to be checked by the filter
Returns
the created filter

Definition at line 132 of file Shortcuts.h.

◆ operator>() [2/3]

template<class Var, class ArithmeticLower, class ArithmeticUpper, class Observer>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< ArithmeticLower >::value &&std::is_arithmetic< ArithmeticUpper >::value, Filter< Var, Range< ArithmeticLower, ArithmeticUpper >, Observer > >::type operator> ( const Filter< Var, UpperBoundedSet< ArithmeticUpper >, Observer > & filter,
ArithmeticLower lowerBound )

Adding lower bound to filter with upper bound to create a filter with an allowed range between lower and upper bound.

(Var with upperBound) > lowerBound

Template Parameters
Var: variable type to be used for the filter
ArithmeticLower: type of lower bound
ArithmeticUpper: type of upper bound
Observer: observer type
Parameters
filter: filter with lower bound to which the upper bound shall be added
lowerBound: value of lower bound
Returns
filter with range allowing values between lower and upper bound

Definition at line 282 of file Shortcuts.h.

283 {
285 (Range<ArithmeticLower, ArithmeticUpper> (lowerBound, filter.getRange().getSup()));
286 }

◆ operator>() [3/3]

template<class Var, class Arithmetic>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, LowerBoundedSet< Arithmetic >, VoidObserver > >::type operator> ( const Var & ,
Arithmetic lowerBound )

Creates a Filters with an lower bound > on the provided variable Var > lowerBound.

Template Parameters
Var: variable type to use for the filter
Arithmetic: type of the return value of the variable function
Parameters
lowerBound: lower bound value to be checked by the filter
Returns
the created filter

Definition at line 92 of file Shortcuts.h.

◆ operator>=() [1/3]

template<class Var, class Arithmetic>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, ClosedUpperBoundedSet< Arithmetic >, VoidObserver > >::type operator>= ( Arithmetic upperBound,
const Var &  )

Creates a Filters with a closed upper bound <= on the provided variable upperBound >= Var.

Template Parameters
Var: variable type to use for the filter
Arithmetic: type of the return value of the variable function
Parameters
upperBound: upper bound value to be checked by the filter
Returns
the created filter

Definition at line 152 of file Shortcuts.h.

◆ operator>=() [2/3]

template<class Var, class ArithmeticLower, class ArithmeticUpper, class Observer>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< ArithmeticLower >::value &&std::is_arithmetic< ArithmeticUpper >::value, Filter< Var, ClosedRange< ArithmeticLower, ArithmeticUpper >, Observer > >::type operator>= ( const Filter< Var, ClosedUpperBoundedSet< ArithmeticUpper >, Observer > & filter,
ArithmeticLower lowerBound )

Adding closed lower bound to filter with closed upper bound to create a filter with an allowed closed range between lower and upper bound.

(Var with closed upperBound) >= lowerBound

Template Parameters
Var: variable type to be used for the filter
ArithmeticLower: type of lower bound
ArithmeticUpper: type of upper bound
Observer: observer type
Parameters
filter: filter with lower bound to which the upper bound shall be added
lowerBound: value of lower bound
Returns
filter with closed range allowing values between lower and upper bound

Definition at line 334 of file Shortcuts.h.

◆ operator>=() [3/3]

template<class Var, class Arithmetic>
std::enable_if< std::is_base_of< SelectionVariable< typenameVar::argumentType, Var::c_Nargs, typenameVar::variableType >, Var >::value &&std::is_arithmetic< Arithmetic >::value, Filter< Var, ClosedLowerBoundedSet< Arithmetic >, VoidObserver > >::type operator>= ( const Var & ,
Arithmetic lowerBound )

Creates a Filters with a closed lower bound >= on the provided variable Var >= lowerBound.

Template Parameters
Var: variable type to use for the filter
Arithmetic: type of the return value of the variable function
Parameters
lowerBound: lower bound value to be checked by the filter
Returns
the created filter

Definition at line 112 of file Shortcuts.h.

◆ operator||()

template<typename ... types1, typename ... types2>
Filter< Belle2::OperatorOr, Belle2::Filter< types1... >, Belle2::Filter< types2... >, Belle2::VoidObserver > operator|| ( const Filter< types1... > & filter1,
const Filter< types2... > & filter2 )

Definition of the boolean OR operator || of the Filter class.

Template Parameters
types1: template pack of filter A
types2: template pack of filter B
Parameters
filter1: filter A
filter2: filter B
Returns
Boolean OR combination of the two filters

Definition at line 925 of file Filter.h.

926 {
927 return Filter<OperatorOr, Filter<types1...>, Filter<types2...>, VoidObserver> (filter1, filter2);
928 }

◆ OverlapResolver()

template<class AFilter>
OverlapResolver ( )

Construct this findlet and add the subfindlet as listener.

Definition at line 29 of file OverlapResolver.icc.h.

29 : Super()
30 {
31 Super::addProcessingSignalListener(&m_filter);
32 }

◆ Print()

void Print ( const Option_t * = "") const
overridevirtual

Print a symbol for the matrix for debugging.

Definition at line 81 of file HMatrixQP.cc.

82 {
83 std::cout << "V" << std::endl;
84 }

◆ print()

template<size_t Ndims>
std::string print ( ) const

print the matrix to a string.

Format: a row, a line, elements of rows delimited by a space. No trailing newline after last row!

Definition at line 165 of file DecorrelationMatrix.h.

166 {
167 std::stringstream sstr{};
168 sstr << std::setprecision(std::numeric_limits<double>::digits10 + 1) << m_matrix; // ensure precision at write-out
169 return sstr.str();
170 }

◆ printMap()

template<typename MapType>
std::string printMap ( const MapType & aMap)

get the contents of the map as string.

NOTE: should compile without warning for any map (e.g. map, multimap, unordered_map,...) with key and values of a type that have a defined stream insertion operator (only tested for multimap and unordered_multimap!)

Definition at line 154 of file MapHelperFunctions.h.

155 {
156 if (aMap.empty()) return std::string("passed map is empty!");
157
158 typedef typename MapType::key_type keyT;
159 typedef typename MapType::mapped_type mapT;
160
161 std::stringstream mapContent;
162 mapContent << "content of map:\n";
163 for (keyT key : getUniqueKeys(aMap)) {
164 mapContent << "key: " << key << " -> value(s):";
165 for (mapT value : getValuesToKey(aMap, key)) { mapContent << " " << value; }
166 mapContent << "\n";
167 }
168
169 return mapContent.str() + "\n"; // terminate with endline
170 }

◆ readFromStream()

template<size_t Ndims>
bool readFromStream ( std::istream & is)

read from stream.

Expected format: a row per line, elements of rows delimited by a space. returns true if operation was successful, false otherwise

NOTE: it is only checked if enough elements are present in each row and column. However, any superfluous values are ignored.

Definition at line 173 of file DecorrelationMatrix.h.

174 {
175 MatrixT inMat{};
176 using RVector = Eigen::Matrix<double, 1, Ndims, Eigen::RowMajor>; // typedef for row vector
177
178 size_t iRow = 0;
179 while (iRow < Ndims) { // read only as many lines as needed
180 std::string line{};
181 if (is.eof()) return false;
182 std::getline(is, line);
183 if (line.empty()) continue; // skip empty lines
184 std::stringstream lstr(line);
185 std::array<double, Ndims> linevalues;
186 for (double& value : linevalues) { // read only as many values in the line as needed
187 if (lstr.eof()) return false;
188 lstr >> value;
189 }
190 inMat.row(iRow) = Eigen::Map<const RVector>(linevalues.data(), linevalues.size());
191 ++iRow;
192 }
193
194 m_matrix = inMat;
195 return true;
196 }

◆ readSamplesFromStream()

template<size_t Ndims>
static void readSamplesFromStream ( std::istream & is,
std::vector< FBDTTrainSample< Ndims > > & samples )
static

read samples from stream and append them to samples

Definition at line 42 of file FBDTClassifierHelper.h.

43 {
44 size_t nSamplesBefore = samples.size();
45 std::string line;
46 while (!is.eof()) {
47 getline(is, line);
48 if (line.empty()) continue; // ignore empty lines
49 std::stringstream ss(line);
50 std::array<double, 9> coords;
51 for (double& c : coords) ss >> c;
52 bool sig; ss >> sig;
53
54 samples.push_back(FBDTTrainSample<9>(coords, sig));
55 }
56
57 B2INFO("Read in " << (samples.size() - nSamplesBefore) << " samples.");
58 }
bundle together the classifier input and the target value into one struct for easier passing around.

◆ resetEventT0()

template<class ... AIOTypes>
void resetEventT0 ( ) const
protected

Reset the t0 value to cached value if it exists or clear it otherwise.

Definition at line 59 of file BaseEventTimeExtractor.icc.h.

60 {
61 if (m_eventT0Before) {
62 m_eventT0->setEventT0(*m_eventT0Before);
63 } else {
64 m_eventT0->clearEventT0();
65 }
66 }

◆ ROIToUnitTranslator() [1/2]

template<class aIntercept>
ROIToUnitTranslator ( const ROIinfo * theROIinfo)
explicit

Constructor.

Definition at line 23 of file ROIToUnitTranslator.templateDetails.h.

24 : m_sigmaSystU(theROIinfo->sigmaSystU)
25 , m_sigmaSystV(theROIinfo->sigmaSystV)
26 , m_numSigmaTotU(theROIinfo->numSigmaTotU)
27 , m_numSigmaTotV(theROIinfo->numSigmaTotV)
28 , m_maxWidthU(theROIinfo->maxWidthU)
29 , m_maxWidthV(theROIinfo->maxWidthV)
30 {};
double sigmaSystV
fixed width to add in quadrature to the extrapolation error and obtain the ROI V width
Definition ROIinfo.h:17
double numSigmaTotU
number of sigma (stat+syst) determining the U width of the ROI
Definition ROIinfo.h:18
double maxWidthU
maximum U width of the ROI
Definition ROIinfo.h:20
double sigmaSystU
fixed width to add in quadrature to the extrapolation error and obtain the ROI U width
Definition ROIinfo.h:16
double numSigmaTotV
number of sigma (stat+syst) determining the U width of the ROI
Definition ROIinfo.h:19
double maxWidthV
maximum U width of the ROI
Definition ROIinfo.h:21

◆ ROIToUnitTranslator() [2/2]

template<class aIntercept>
ROIToUnitTranslator ( double sigmaSystU,
double sigmaSystV,
double numSigmaTotU,
double numSigmaTotV,
double maxWidthU,
double maxWidthV )

Second Constructor.

Definition at line 33 of file ROIToUnitTranslator.templateDetails.h.

36 : m_sigmaSystU(sigmaSystU)
37 , m_sigmaSystV(sigmaSystV)
38 , m_numSigmaTotU(numSigmaTotU)
39 , m_numSigmaTotV(numSigmaTotV)
40 , m_maxWidthU(maxWidthU)
41 , m_maxWidthV(maxWidthV)
42 {};

◆ SelectionVariableNamesToFunctions() [1/4]

template<class FilterA, class FilterB, class ... options>
std::unordered_map< std::string, typename FilterA::functionType > SelectionVariableNamesToFunctions ( Belle2::Filter< Belle2::OperatorAnd, FilterA, FilterB, options... > )

Wrapper for filters with AND Operator tag.

Template Parameters
FilterA: a Filter variable type
FilterB: another Filter variable type
options: optional types
Returns
unordered map relating strings to the filter variable functions

Definition at line 71 of file SelectionVariableNamesToFunctions.h.

73 {
74 auto result = SelectionVariableNamesToFunctions(FilterA());
75 auto resultB = SelectionVariableNamesToFunctions(FilterB());
76 result.insert(resultB.begin(), resultB.end());
77 return result;
78 }
std::unordered_map< std::string, typename Variable::functionType > SelectionVariableNamesToFunctions(Belle2::Filter< Variable, Range, Options... >)
Return a map from the SelectionVariable name to the SelectionVariable function of the Variable used i...

◆ SelectionVariableNamesToFunctions() [2/4]

template<class someFilter, class ... options>
std::unordered_map< std::string, typename someFilter::functionType > SelectionVariableNamesToFunctions ( Belle2::Filter< Belle2::OperatorNot, someFilter, options... > )

Wrapper for filters with NOT Operator tag.

Template Parameters
someFilter: Filter variable type
options: optional types
Returns
unordered map relating strings to the filter variable functions

Definition at line 52 of file SelectionVariableNamesToFunctions.h.

54 {
55 return SelectionVariableNamesToFunctions(someFilter());
56 }

◆ SelectionVariableNamesToFunctions() [3/4]

template<class FilterA, class FilterB, class ... options>
std::unordered_map< std::string, typename FilterA::functionType > SelectionVariableNamesToFunctions ( Belle2::Filter< Belle2::OperatorOr, FilterA, FilterB, options... > )

Wrapper for filters with OR Operator tag.

Template Parameters
FilterA: a Filter variable type
FilterB: another Filter variable type
options: optional types
Returns
unordered map relating strings to the filter variable functions

Definition at line 93 of file SelectionVariableNamesToFunctions.h.

95 {
96 auto result = SelectionVariableNamesToFunctions(FilterA());
97 auto resultB = SelectionVariableNamesToFunctions(FilterB());
98 result.insert(resultB.begin(), resultB.end());
99 return result;
100 }

◆ SelectionVariableNamesToFunctions() [4/4]

template<class Variable, class Range, class ... Options>
std::unordered_map< std::string, typename Variable::functionType > SelectionVariableNamesToFunctions ( Belle2::Filter< Variable, Range, Options... > )

Return a map from the SelectionVariable name to the SelectionVariable function of the Variable used in the filter that is the template argument parameter.

This is the basic building block we will exploit later

Template Parameters
Variable: Filter variable type
Range: range type
Options: optional types
Returns
unordered map relating strings to the filter variable functions

Definition at line 35 of file SelectionVariableNamesToFunctions.h.

36 {
37 // Note: Variable::value is the pointer to the function that return the values
38 return std::unordered_map< std::string, typename Variable::functionType>
39 ({ {Variable::name(), Variable::value } });
40 };

◆ StateRejecter()

template<class AState, class AFindlet>
StateRejecter ( )

Construct this findlet and add the subfindlet as listener.

Definition at line 21 of file StateRejecter.icc.h.

21 : Super()
22 {
23 Super::addProcessingSignalListener(&m_firstFilter);
24 Super::addProcessingSignalListener(&m_advanceFilter);
25 Super::addProcessingSignalListener(&m_secondFilter);
26 Super::addProcessingSignalListener(&m_updateFilter);
27 Super::addProcessingSignalListener(&m_thirdFilter);
28 };

◆ TBranchLeafType() [1/12]

char TBranchLeafType ( const bool & )
inline

Overloading TBranchLeafType to be able to get identifier 'O' for type bool.

Definition at line 52 of file TBranchLeafType.h.

52{ return 'O'; };

◆ TBranchLeafType() [2/12]

char TBranchLeafType ( const char * )
inline

Overloading TBranchLeafType to be able to get identifier 'C' for type char*.

Definition at line 19 of file TBranchLeafType.h.

19{ return 'C'; };

◆ TBranchLeafType() [3/12]

char TBranchLeafType ( const Char_t & )
inline

Overloading TBranchLeafType to be able to get identifier 'B' for type Char_t.

Definition at line 22 of file TBranchLeafType.h.

22{ return 'B'; };

◆ TBranchLeafType() [4/12]

char TBranchLeafType ( const Double_t & )
inline

Overloading TBranchLeafType to be able to get identifier 'D' for type Double_t.

Definition at line 43 of file TBranchLeafType.h.

43{ return 'D'; };

◆ TBranchLeafType() [5/12]

char TBranchLeafType ( const Float_t & )
inline

Overloading TBranchLeafType to be able to get identifier 'F' for type Float_t.

Definition at line 40 of file TBranchLeafType.h.

40{ return 'F'; };

◆ TBranchLeafType() [6/12]

char TBranchLeafType ( const Int_t & )
inline

Overloading TBranchLeafType to be able to get identifier 'I' for type Int_t.

Definition at line 34 of file TBranchLeafType.h.

34{ return 'I'; };

◆ TBranchLeafType() [7/12]

char TBranchLeafType ( const long int & )
inline

Overloading TBranchLeafType to be able to get identifier 'L' for type long int.

Definition at line 46 of file TBranchLeafType.h.

46{ return 'L'; };

◆ TBranchLeafType() [8/12]

char TBranchLeafType ( const short & )
inline

Overloading TBranchLeafType to be able to get identifier 'S' for type short.

Definition at line 28 of file TBranchLeafType.h.

28{ return 'S'; };

◆ TBranchLeafType() [9/12]

char TBranchLeafType ( const UInt_t & )
inline

Overloading TBranchLeafType to be able to get identifier 'i' for type UInt_t.

Definition at line 37 of file TBranchLeafType.h.

37{ return 'i'; };

◆ TBranchLeafType() [10/12]

char TBranchLeafType ( const unsigned char & )
inline

Overloading TBranchLeafType to be able to get identifier 'b' for type unsigned char.

Definition at line 25 of file TBranchLeafType.h.

25{ return 'b'; };

◆ TBranchLeafType() [11/12]

char TBranchLeafType ( const unsigned long int & )
inline

Overloading TBranchLeafType to be able to get identifier 'l' for type unsigned long int.

Definition at line 49 of file TBranchLeafType.h.

49{ return 'l'; };

◆ TBranchLeafType() [12/12]

char TBranchLeafType ( const unsigned short & )
inline

Overloading TBranchLeafType to be able to get identifier 's' for type unsigned short.

Definition at line 31 of file TBranchLeafType.h.

31{ return 's'; };

◆ traverseTree()

template<class AState, class AStateRejecter, class AResult>
void traverseTree ( std::vector< TrackFindingCDC::WithWeight< const AState * > > & path,
const std::vector< TrackFindingCDC::WeightedRelation< AState > > & relations,
std::vector< AResult > & results )
private

Implementation of the traverseTree function.

Definition at line 68 of file TreeSearcher.icc.h.

71 {
72 if (m_param_endEarly) {
73 // Make it possible to end earlier (with less hits)
74 results.emplace_back(path);
75 }
76
77 // Implement only graph traversal logic and leave the extrapolation and selection to the
78 // rejecter.
79 const AState* currentState = path.back();
80 auto continuations =
81 TrackFindingCDC::asRange(std::equal_range(relations.begin(), relations.end(), currentState));
82
83 std::vector<TrackFindingCDC::WithWeight<AState*>> childStates;
84 for (const TrackFindingCDC::WeightedRelation<AState>& continuation : continuations) {
85 AState* childState = continuation.getTo();
86 TrackFindingCDC::Weight weight = continuation.getWeight();
87 // the state may still include information from an other round of processing, so lets set it back
88
89 if (std::count(path.begin(), path.end(), childState)) {
90 // Cycle detected -- is this the best handling?
91 // Other options: Raise an exception and bail out of this seed
92 B2FATAL("Cycle detected!");
93 }
94
95 childState->reset();
96 childStates.emplace_back(childState, weight);
97 }
98
99 if (childStates.empty()) {
100 B2DEBUG(29, "Terminating this route, as there are no possible child states.");
101 if (not m_param_endEarly) {
102 results.emplace_back(path);
103 }
104 return;
105 }
106
107 // Do everything with child states, linking, extrapolation, teaching, discarding, what have
108 // you.
109 const std::vector<TrackFindingCDC::WithWeight<const AState*>>& constPath = path;
110 m_stateRejecter.apply(constPath, childStates);
111
112 if (childStates.empty()) {
113 B2DEBUG(29, "Terminating this route, as there are no possible child states.");
114 if (not m_param_endEarly) {
115 results.emplace_back(path);
116 }
117 return;
118 }
119
120 // Traverse the tree from each new state on
121 const auto stateLess = [](const auto & lhs, const auto & rhs) {
122 return lhs->getAutomatonCell().getCellState() < rhs->getAutomatonCell().getCellState();
123 };
124 std::sort(childStates.begin(), childStates.end(), stateLess);
125
126 B2DEBUG(29, "Having found " << childStates.size() << " child states.");
127 for (const TrackFindingCDC::WithWeight<AState*>& childState : childStates) {
128 path.emplace_back(childState, childState.getWeight());
129 traverseTree(path, relations, results);
130 path.pop_back();
131 }
132 }

◆ TreeSearcher()

template<class AState, class AStateRejecter, class AResult>
TreeSearcher ( )

Construct this findlet and add the subfindlet as listener.

Definition at line 26 of file TreeSearcher.icc.h.

26 : Super()
27 {
28 Super::addProcessingSignalListener(&m_stateRejecter);
29 };

◆ VariableTBranch()

template<class Variable>
VariableTBranch ( TTree * tree)
explicit

Add to the TTree.

Constructor specialized for arithmetic types.

Parameters
treea branch whose name and type are inferred from parameter var

Definition at line 53 of file VariableTBranch.h.

54 {
55 if (tree != nullptr && tree -> GetBranch(Variable::name().c_str()) == nullptr)
56 m_branch = tree->Branch(Variable::name().c_str(), & m_storedValue,
57 TBranchLeafType(m_storedValue));
58 }
char TBranchLeafType(const char *)
Overloading TBranchLeafType to be able to get identifier 'C' for type char*.

◆ wasSuccessful()

template<class ... AIOTypes>
bool wasSuccessful ( ) const

Returns true if the last run t0 extraction was successful.

Definition at line 21 of file BaseEventTimeExtractor.icc.h.

22 {
23 return m_wasSuccessful;
24 }

◆ writeSamplesToStream()

template<size_t Ndims>
static void writeSamplesToStream ( std::ostream & os,
const std::vector< FBDTTrainSample< Ndims > > & samples )
static

write all samples to stream

Definition at line 62 of file FBDTClassifierHelper.h.

63 {
64 for (const auto& event : samples) {
65 for (const auto& val : event.hits) {
66 os << val << " ";
67 }
68 os << event.signal << std::endl;
69 }
70 B2INFO("Wrote out " << samples.size() << " samples.");
71 }

Variable Documentation

◆ AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType >::m_storeRefTCDataForTestTC

template<class DataType, class TCInfoType, class VectorType>
bool AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType >::m_storeRefTCDataForTestTC = false

setting the static storeRefTCDataForTestTC to a standard value

Definition at line 168 of file AnalyzingAlgorithmBase.h.

◆ AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType >::s_origin

template<class DataType, class TCInfoType, class VectorType>
VectorType AnalyzingAlgorithmBase< DataType, TCInfoType, VectorType >::s_origin = VectorType(0, 0, 0)

setting the static origin to a standard value

Definition at line 163 of file AnalyzingAlgorithmBase.h.

◆ cdcfromEclPathTruthVarNames

char const* const cdcfromEclPathTruthVarNames[]
staticconstexpr
Initial value:
= {
"matched",
"daughters",
"PDG",
"mcTrackHits",
"seed_p_truth",
"seed_theta_truth",
"seed_pt_truth",
"seed_pz_truth",
"seed_px_truth",
"seed_py_truth"
}

Names of the variables to be generated.

Definition at line 22 of file CDCfromEclPathTruthVarSet.h.

22 {
23 "matched",
24 "daughters",
25 "PDG",
26 "mcTrackHits",
27 "seed_p_truth",
28 "seed_theta_truth",
29 "seed_pt_truth",
30 "seed_pz_truth",
31 "seed_px_truth",
32 "seed_py_truth"
33 };

◆ cdcfromEclStateTruthVarNames

char const* const cdcfromEclStateTruthVarNames[]
staticconstexpr
Initial value:
= {
"match",
"PDG",
"seed_p_truth",
"seed_theta_truth",
"seed_pt_truth",
"seed_pz_truth",
"seed_px_truth",
"seed_py_truth"
}

Names of the variables to be generated.

Definition at line 22 of file CDCfromEclStateTruthVarSet.h.

22 {
23 "match",
24 "PDG",
25 "seed_p_truth",
26 "seed_theta_truth",
27 "seed_pt_truth",
28 "seed_pz_truth",
29 "seed_px_truth",
30 "seed_py_truth"
31 };

◆ cdcPathBasicVarNames

char const* const cdcPathBasicVarNames[]
staticconstexpr

Names of the variables to be generated.

Definition at line 25 of file CDCPathBasicVarSet.h.

25 {
26 "eventNumber",
27 "totalHits",
28 "reachedEnd",
29 "totalHitsSeedTrack",
30 "firstChi2",
31 "lastChi2",
32 "seedICLayer",
33 "firstICLayer",
34 "lastICLayer",
35 "seed_r",
36 "seed_z",
37 "seed_x",
38 "seed_y",
39 "seed_p",
40 "seed_theta",
41 "seed_pt",
42 "seed_pz",
43 "seed_px",
44 "seed_py",
45 "seed_charge",
46 "track_theta",
47 "track_p",
48 "track_pt",
49 "track_pz",
50 "track_px",
51 "track_py",
52 "track_charge",
53 "chargeFlip",
54 "ICLayerLast0",
55 "ICLayerLast1",
56 "ICLayerLast2",
57 "IWireLast0",
58 "IWireLast1",
59 "IWireLast2",
60 "flipPos0",
61 "flipPos1",
62 "flipPos2",
63 "flipPos3",
64 "arcLength0",
65 "arcLength1",
66 "arcLength2",
67 "arcLength3",
68 "arcLength4",
69 "arcLength5",
70 "arcLength6",
71 "arcLength7",
72 "arcLength8",
73 "arcLength9",
74 "hitDistance0",
75 "hitDistance1",
76 "hitDistance2",
77 "hitDistance3",
78 "hitDistance4",
79 "hitDistance5",
80 "hitDistance6",
81 "hitDistance7",
82 "hitDistance8",
83 "hitDistance9"
84 };

◆ cdcPathTruthVarNames

char const* const cdcPathTruthVarNames[]
staticconstexpr
Initial value:
= {
"mcTrackHits",
"daughters",
"PDG",
"seed_p_truth",
"seed_theta_truth",
"seed_pt_truth",
"seed_pz_truth",
"seed_px_truth",
"seed_py_truth"
}

Names of the variables to be generated.

Definition at line 22 of file CDCPathTruthVarSet.h.

22 {
23 "mcTrackHits",
24 "daughters",
25 "PDG",
26 "seed_p_truth",
27 "seed_theta_truth",
28 "seed_pt_truth",
29 "seed_pz_truth",
30 "seed_px_truth",
31 "seed_py_truth"
32 };

◆ cdcStateBasicVarNames

char const* const cdcStateBasicVarNames[]
staticconstexpr

Names of the variables to be generated.

Definition at line 25 of file CDCStateBasicVarSet.h.

25 {
26 "eventNumber",
27 "i_hit",
28 "firstHit",
29 "iCLayer_lastState",
30 "iCLayer",
31 "arcLength",
32 "hitDistance",
33 "seed_theta",
34 "seed_r",
35 "seed_z",
36 "seed_x",
37 "seed_y",
38 "seed_p",
39 "seed_pt",
40 "seed_pz",
41 "seed_px",
42 "seed_py",
43 "seed_charge",
44 "track_momTheta",
45 "track_p",
46 "track_pt",
47 "track_pz",
48 "track_px",
49 "track_py",
50 "track_posTheta",
51 "track_r",
52 "track_z",
53 "track_x",
54 "track_y",
55 "track_charge",
56 "track_pt_firstHit",
57 "track_pz_firstHit",
58 "track_r_firstHit",
59 "track_z_firstHit",
60 "wire_r",
61 "wire_z",
62 "wire_x",
63 "wire_y"
64 };

◆ cdcStateTruthVarNames

char const* const cdcStateTruthVarNames[]
staticconstexpr
Initial value:
= {
"match",
"PDG"
}

Names of the variables to be generated.

Definition at line 22 of file CDCStateTruthVarSet.h.

22 {
23 "match",
24 "PDG"
25 };

◆ pxdResultTruthNames

char const* const pxdResultTruthNames[]
staticconstexpr
Initial value:
= {
"truth",
"truth_number_of_correct_hits",
"truth_number_of_mc_pxd_hits",
"truth_number_of_mc_svd_hits",
"truth_number_of_mc_cdc_hits",
"truth_event_number",
"truth_seed_number",
}

Names of the variables to be generated.

Definition at line 28 of file PXDResultTruthVarSet.h.

28 {
29 "truth",
30 "truth_number_of_correct_hits",
31 "truth_number_of_mc_pxd_hits",
32 "truth_number_of_mc_svd_hits",
33 "truth_number_of_mc_cdc_hits",
34 "truth_event_number",
35 "truth_seed_number",
36 };

◆ pxdResultVarNames

char const* const pxdResultVarNames[]
staticconstexpr
Initial value:
= {
"chi2_vxd_max",
"chi2_vxd_min",
"chi2_seed",
"chi2",
"number_of_hits",
"pt",
"theta",
"number_of_holes",
"last_hit_layer",
"first_hit_layer",
"weight_sum",
"has_missing_layer_1",
"has_missing_layer_2",
"has_missing_layer_3",
"has_missing_layer_4",
"has_missing_layer_5",
"has_missing_layer_6",
"number_of_overlap_hits",
"distance_to_seed_track",
"distance_to_seed_track_xy",
}

Names of the variables to be generated.

Definition at line 25 of file PXDResultVarSet.h.

25 {
26 "chi2_vxd_max",
27 "chi2_vxd_min",
28 "chi2_seed",
29 "chi2",
30
31 "number_of_hits",
32
33 "pt",
34 "theta",
35
36 "number_of_holes",
37
38 "last_hit_layer",
39 "first_hit_layer",
40
41 "weight_sum",
42
43 "has_missing_layer_1",
44 "has_missing_layer_2",
45 "has_missing_layer_3",
46 "has_missing_layer_4",
47 "has_missing_layer_5",
48 "has_missing_layer_6",
49
50 "number_of_overlap_hits",
51
52 "distance_to_seed_track",
53 "distance_to_seed_track_xy",
54 };

◆ pxdStateBasicVarNames

char const* const pxdStateBasicVarNames[]
staticconstexpr

Names of the variables to be generated.

Definition at line 23 of file PXDStateBasicVarSet.h.

23 {
24 "distance",
25 "xy_distance",
26 "z_distance",
27
28 "mSoP_distance",
29 "mSoP_xy_distance",
30 "mSoP_z_distance",
31
32 "same_hemisphere",
33
34 "layer",
35 "number",
36
37 "arcLengthOfHitPosition",
38 "arcLengthOfCenterPosition",
39
40 "pt",
41 "tan_lambda",
42 "phi",
43
44 "sigma_uv",
45 "residual_over_sigma",
46
47 "residual",
48
49 "chi2",
50
51 "cluster_charge",
52 "cluster_seed_charge",
53 "cluster_size",
54 "cluster_size_u",
55 "cluster_size_v",
56
57 "ladder",
58 "sensor",
59 "segment",
60 "id",
61
62 "last_layer",
63 "last_ladder",
64 "last_sensor",
65 "last_segment",
66 "last_id",
67
68 "last_cluster_charge",
69 "last_cluster_seed_charge",
70 "last_cluster_size",
71 "last_cluster_size_u",
72 "last_cluster_size_v",
73 };

◆ pxdStateTruthVarNames

char const* const pxdStateTruthVarNames[]
staticconstexpr
Initial value:
= {
"truth",
"truth_position_x",
"truth_position_y",
"truth_position_z",
"truth_momentum_x",
"truth_momentum_y",
"truth_momentum_z",
"truth_event_id",
"truth_seed_number"
}

Names of the variables to be generated.

Definition at line 27 of file PXDStateTruthVarSet.h.

27 {
28 "truth",
29 "truth_position_x",
30 "truth_position_y",
31 "truth_position_z",
32 "truth_momentum_x",
33 "truth_momentum_y",
34 "truth_momentum_z",
35 "truth_event_id",
36 "truth_seed_number"
37 };

◆ relationSVDResultVarNames

char const* const relationSVDResultVarNames[]
staticconstexpr
Initial value:
= {
"svd_highest_layer",
"number_of_hits_related_svd_track",
}

Names of the variables to be generated.

Definition at line 23 of file RelationSVDResultVarSet.h.

23 {
24 "svd_highest_layer",
25 "number_of_hits_related_svd_track",
26 };

◆ SelVarHelper< PointType, DataType >::s_MagneticFieldFactor

template<typename PointType, typename DataType>
DataType SelVarHelper< PointType, DataType >::s_MagneticFieldFactor
Initial value:
= 1.5 *
0.00299710

magnetic field factor

Definition at line 75 of file SelectionVariableHelper.h.

◆ svdResultTruthNames

char const* const svdResultTruthNames[]
staticconstexpr
Initial value:
= {
"truth",
"truth_svd_cdc_relation",
"truth_number_of_correct_hits",
"truth_number_of_mc_pxd_hits",
"truth_number_of_mc_svd_hits",
"truth_number_of_mc_cdc_hits",
"truth_event_number",
"truth_seed_number",
}

Names of the variables to be generated.

Definition at line 28 of file SVDResultTruthVarSet.h.

28 {
29 "truth",
30 "truth_svd_cdc_relation",
31 "truth_number_of_correct_hits",
32 "truth_number_of_mc_pxd_hits",
33 "truth_number_of_mc_svd_hits",
34 "truth_number_of_mc_cdc_hits",
35 "truth_event_number",
36 "truth_seed_number",
37 };

◆ svdResultVarNames

char const* const svdResultVarNames[]
staticconstexpr
Initial value:
= {
"chi2_vxd_max",
"chi2_vxd_min",
"chi2_cdc",
"chi2",
"number_of_hits",
"pt",
"theta",
"number_of_holes",
"cdc_lowest_layer",
"last_hit_layer",
"first_hit_layer",
"weight_sum",
"has_missing_layer_1",
"has_missing_layer_2",
"has_missing_layer_3",
"has_missing_layer_4",
"has_missing_layer_5",
"has_missing_layer_6",
"distance_to_cdc_track",
"distance_to_cdc_track_xy",
}

Names of the variables to be generated.

Definition at line 25 of file SVDResultVarSet.h.

25 {
26 "chi2_vxd_max",
27 "chi2_vxd_min",
28 "chi2_cdc",
29 "chi2",
30
31 "number_of_hits",
32
33 "pt",
34 "theta",
35
36 "number_of_holes",
37
38 "cdc_lowest_layer",
39
40 "last_hit_layer",
41 "first_hit_layer",
42
43 "weight_sum",
44
45 "has_missing_layer_1",
46 "has_missing_layer_2",
47 "has_missing_layer_3",
48 "has_missing_layer_4",
49 "has_missing_layer_5",
50 "has_missing_layer_6",
51
52 "distance_to_cdc_track",
53 "distance_to_cdc_track_xy",
54 };

◆ svdStateBasicVarNames

char const* const svdStateBasicVarNames[]
staticconstexpr

Names of the variables to be generated.

Definition at line 23 of file SVDStateBasicVarSet.h.

23 {
24 "distance",
25 "xy_distance",
26 "z_distance",
27
28 "mSoP_distance",
29 "mSoP_xy_distance",
30 "mSoP_z_distance",
31
32 "same_hemisphere",
33
34 "layer",
35 "number",
36 "ladder",
37 "sensor",
38 "segment",
39 "id",
40
41 "cluster_1_time",
42 "cluster_2_time",
43
44 "arcLengthOfHitPosition",
45 "arcLengthOfCenterPosition",
46
47 "pt",
48 "tan_lambda",
49 "phi",
50
51 "sigma_uv",
52 "residual_over_sigma",
53
54 "residual",
55
56 "chi2",
57
58 "last_layer",
59 "last_ladder",
60 "last_sensor",
61 "last_segment",
62 "last_id",
63
64 "last_cluster_1_time",
65 "last_cluster_2_time",
66 };

◆ svdStateTruthVarNames

char const* const svdStateTruthVarNames[]
staticconstexpr
Initial value:
= {
"truth",
"truth_position_x",
"truth_position_y",
"truth_position_z",
"truth_momentum_x",
"truth_momentum_y",
"truth_momentum_z",
"truth_event_id",
"truth_seed_number"
}

Names of the variables to be generated.

Definition at line 27 of file SVDStateTruthVarSet.h.

27 {
28 "truth",
29 "truth_position_x",
30 "truth_position_y",
31 "truth_position_z",
32 "truth_momentum_x",
33 "truth_momentum_y",
34 "truth_momentum_z",
35 "truth_event_id",
36 "truth_seed_number"
37 };

◆ svdStateVarNames

char const* const svdStateVarNames[]
staticconstexpr

Names of the variables to be generated.

Definition at line 27 of file SVDStateVarSet.h.

27 {
28 "seed_cdc_hits",
29 "seed_svd_hits",
30 "seed_lowest_svd_layer",
31 "seed_lowest_cdc_layer",
32
33 "quality_index_triplet",
34 "quality_index_circle",
35 "quality_index_helix",
36
37 "cluster_1_charge",
38 "cluster_2_charge",
39 "mean_rest_cluster_charge",
40 "min_rest_cluster_charge",
41 "std_rest_cluster_charge",
42
43 "cluster_1_seed_charge",
44 "cluster_2_seed_charge",
45 "mean_rest_cluster_seed_charge",
46 "min_rest_cluster_seed_charge",
47 "std_rest_cluster_seed_charge",
48
49 "cluster_1_size",
50 "cluster_2_size",
51 "mean_rest_cluster_size",
52 "min_rest_cluster_size",
53 "std_rest_cluster_size",
54
55 "cluster_1_snr",
56 "cluster_2_snr",
57 "mean_rest_cluster_snr",
58 "min_rest_cluster_snr",
59 "std_rest_cluster_snr",
60
61 "cluster_1_charge_over_size",
62 "cluster_2_charge_over_size",
63 "mean_rest_cluster_charge_over_size",
64 "min_rest_cluster_charge_over_size",
65 "std_rest_cluster_charge_over_size",
66 };