Cheater processors construct tracks or clusters by combining hits, produced by the full detector simulation with Monte Carlo information. These processors can be used to benchmark and test existing algorithms or as replacement for yet to be written parts of the reconstruction.

At the moment there are two cheaters available:

Track Cheater

It constructs true tracks by comprising all the TrackerHits? attributable to the same (Monte Carlo) particle.

The code is in MarlinReco?/v00-15/Tracking/TrackCheater.

If a track has more than a given number of hits and if the particle producing it carries at least a certain energy it is considered. The Monte Carlo information (momentum and vertex) is used to define the track parameters namely D0, Z0, Phi, TanLambda? and Omega. Optional a fit can be performed to the TrackerHits? assigned to a track to extract the track parameters.

Track Cheater Processor

Constructs true tracks. The TrackCheater? processor is designed to construct true Monte Carlo tracks from the hits attributable to the same Monte Carlo particles. Thus, this processor just emulates perfect pattern recognition. An user can optionally set track parameters, using generated values of the 4-momentum of charged particles or perform a fit of the cheated tracks. The TrackCheater? processor requires as an input collections of TrackerHits? in various subdetectors and produces collections of true Monte Carlo tracks and track − MC Particle relations.

For each SimTrackerHit? in charged tracking devices, the TrackingCheater? finds the MCParticle giving rise to the hits and creates a corresponding CheatTrack?. It uses the MCParticle's momentum vector to provide the track momentum required to satisfy the FoundTrack? (and Track) interface. The TrackingCheater? finds combined tracks in all tracking devices that have SimTrackerHit?'s from the same MCParticle. The CombinedTrack? object is similar to the CheatTrack? except that it has additional methods to add and get CheatTracks? from its internal list.

To add the TrackingCheater? to a process, use:

add(new org.lcsim.recon.ztracking.cheater.TrackingCheater());

To access tracks use


True track is considered to comprise all the TrackerHits? attributable to the same particle.

  • Input:An user has to provide the names of TrackerHit? collections via processor parameter TrackerHitCollections?.
  • Output: An output collection of tracks is specified with processor parameter TrueTrackCollection?.
MCParticle - True Track relations are stored in the collection with name TrueTrackToMCP?. True track is stored in the corresponding collection if the number of TrackerHits? is greater than certain value.

  • Parameters:
    • The latter is specified with processor parameter MinimalHits.
    • Magnetic field is defined with processor parameter BField.
    • There is an option to perform a fit of TrackerHits? assigned to track. This is done if processor parameter FitTrueTrack is set to 1.
      • In this case parameters extracted from the fit are used to define track parameters, namely D0, Z0, Phi, TanLambda and Omega.
      • If FitTrueTrack is set to 0 then true Monte Carlo information, namely MCParticle momentum and vertex, is used to define track parameters.
    • Processor parameter HitToHelixInFit defines the maximal allowed distance from TrackerHit to the helix derived from true particle momentum and vertex.
      • If distance between hit and true helicoidal track is greater than HitToHelixInFit, hit is not assigned to track.
    • If the chi2 of the fit is greater that certain predefined value (processor parameter Chi2Cut), then true MC information is used to define track parameters.
    • Only tracks with energy greater than certain threshold, defined with processor parameter ECut, are retained.

Cluster Cheater

This processor constructs true clusters, where a true cluster comprises all hits attributed to the same generator particle entering the calorimeter. Hits produced by back-scattered particles are assigned to the primary which initiated this back-scattered particle. Clusters are considered only if they have at least a predefined number of hits. To avoid collecting remote hits produced by neutrons or backscattered particles, a proximity criterion is introduced in terms of a particle-to-hit distance cut. A hit is assigned to the cluster produced by a neutral particle if the following condition is fulfilled: hit-to-vertex is the distance of the hit to the point where the neutral particle has been produced, and is the angle between the particle momentum vector and the vector connecting the particle vertex and the hit. For charged particles, the distance from the hit to the helix associated with the particle trajectory should not exceed the proximity cut.

Cluster Cheater Processor

This processor constructs true clusters. All the hits are collected. Uses gear to get inner radius and z of ecal.

For each SimCalorimeterHit? in calorimeter devices, the ClusterCheater? finds the MCParticle giving rise to the hits and creates a corresponding CheatCluster?. The CheatCluster? extends a BasicCluster? class by adding a method to get the MCParticle that gave rise to the simulated hits. The BasicCluster? itself adds the raw energy for each hit and provides methods required to satisfy the Cluster interface. It has additional methods to add and get individual Clusters from its internal list.

The ClusterCheater? combines clusters from different calorimeters that have SimCalorimeterHit?'s from the same MCParticle. The resulting RefinedCluster? collection is added to the event.

To add the ClusterCheater? to a process, use

add(new org.lcsim.recon.cluster.cheater.CheatClusterDriver());

To access reconstructed clusters use


If more than one MCParticle is associated with a single hit, the entire hit is associated with the cluster belonging to the MCParticle that contributed the most energy to the hit. Note that there is currently no attempt to merge clusters that would in fact be impossible to resolve.

Options and parameter settings for ReconCheater? are contained in a file. The currently supported properties are:

  • Property Default setting Description
  • FullTruth false Use Monte Carlo particles only.
  • Truth false Use true energy for reconstructed particles.
  • ECalParameterization false Use a parameterization of ECal energy for found clusters.
  • ReconPhotons true Use reconstructed ECal energy for found clusters.
  • HCalParameterization false Use a parameterization of HCal energy for found clusters.
  • ReconNeutralHadrons true Use reconstructed ECal energy for found clusters.
  • Decays true Allow long-lived particles to decay.
  • DecayDistance 100. Distance [mm] defines long-lived particles.
  • NuclearInteractions true Allow particles to interact.
  • NuclearInteractionProducts true Use charged particles from nuclear interactions.
  • NuclearInteractionNeutrals true Use neutral particles from nuclear interactions.
  • Radiation false Allow particles to radiate.
  • ECalResolution 0.18 Parameterized ECal resolution.
  • ECalSampling 0.012 Simulated ECal sampling fraction.
  • HCalResolution 0.60 Parameterized HCal resolution.
  • HCalSampling 0. Simulated HCal sampling fraction.
  • HCalDigital 11.7 Simulated digital HCal response.
  • pTrackMin 0.100 Minimum reconstructed track momentum.
  • EClusterMin 0.100 Minimum reconstructed cluster energy.
  • NDigitalMin 4 Minimum number of digital HCal hits.

-- Main.iglesias - 02 Feb 2009

Revision: r1.1 - 02 Feb 2009 - 16:30 - Main.iglesias
ILC > Cheaters
Copyright © 1999-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding this material Send feedback