Grouped Ckf Trajectory Builder

Complete: 5

Goal of the page

This page is intended to explain the user the most relevant features of the Ctf Grouped Trajetory Building, including the working principles, the classes involved and the parameter configuration.


BorisMangano, WolfgangAdam, GiuseppeCerati, GiovanniPetrucciani


The Grouped Ckf Trajectory Builder is the algorithm used by default in the pattern recognition step of the Combinatorial Track Finder: it is the responsible for the search of the tracker hits associated to a track. Its additional features with respect to CkfTrajectoryBuilder are here described. Main scope of the "grouped" version of the trajectory builder, is to be able to collect more than one hit per tracker layer, i.e. accounting for overlapping modules.

ALERT! Read the page SWGuideCkfTrajectoryBuilder before!

Software architecture

The generic trajectory builder is defined in two base, abstract classes, TrajectoryBuilder and BaseCkfTrajectoryBuilder. There are two concrete implementations of such classes: CkfTrajectoryBuilder and GroupedCkfTrajectoryBuilder. The first one is described in SWGuideCkfTrajectoryBuilder page and includes most of the features used in the second.

Usage of the algorithm

The GroupedCkfTrajectoryBuilder includes all the functionalities of the standard CkfTrajectoryBuilder, allowing also for the collection of hits in the tracker overlapping modules. The main algorithmic difference is that the track candidates are not updated with simple hits but with hit "segments" as explained below. Since most main features are the same, in the rest of this page we assume that the reader has already read SWGuideCkfTrajectoryBuilder.

In the GroupedCkfTrajectoryBuilder, the hit search is performed in two different stages.

  1. First, starting from the seed, the track hits in the rest of the tracker are added, usually proceeding outwards (inwards if the seed is on outer layers). When the compatible detectors are looked for, they are divided into "groups" of mutually exclusive detectors. For example, two modules at the same radius will be in the same group since the track cannot have crossed both of them at the same time. Every group collects all the hits from its detectors plus an invalid hit.
    Hit "segments" are then built taking one hit per group. If the parameter bestHit is "True" (default), only the hit with the lowest chi2 in the group is considered; if it is "False", a segment is built per each combination of group hits.
    For every segment, a new track candidate is then created and the search continues on the next layer. If alwaysUseInvalidHits is true (dafault) a new candidate is always created adding an invalid hit only.
  2. Second, a new hit search is performed in the seed layers looking for hits in the overlaps. This step is performed if the number of track hits exceeds the value of the minNrOfHitsForRebuild parameter (default = 5).
    Excluding the seed hits, a fit is made in reverse direction with respect to the pattern recognition; starting from the resulting state on the first hit after the seed, an inward (outward) search in the seeding region is performed with the same algorithm described in 1..
    When the seeding region rebuild is completed, if requireSeedHitsInRebuild is "False" the new trajectory is returned regardless of the presence of the original seed hit in the new trajectory; if it is "True" (default) the new trajectory is returned only if it contains the seed hits, otherwise the one obtained after the step 1. is returned.

All the configuration parameters are defined in

Review status

Reviewer/Editor and Date (copy from screen) Comments
GiuseppeCerati - 17 Mar 2009 created template page

Responsible: BorisMangano
Last reviewed by: Most recent reviewer

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r3 - 2009-11-16 - GiuseppeCerati
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    CMSPublic All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback