TrackInCaloTools is an ATHENA package that handles energy deposition measurements in the calorimeters, and calorimetric isolation for muons. It is part of the official ATLAS software and provides the isolation variables attached to muons - etcore. Under the Athena framework scope, TrackInCaloTools is a tool that can be used by reconstruction algorithms many times in each event.

The code has been restructured in release 15. Since rel. 15.1.0 a new interface, a dedicated tool to handle extrapolations, and new functionalities have been put in place. This is the link to the old page, that corresponds to the old code.

Measurement principle

The principle of TrackInCaloTools is illustrated by the following figure: (right) a track is extrapolated to each calorimeter layer, (center) an internal cone is used to define the muon energy loss ($E^T_{core}$) and its energy is subtracted from the energy inside an outer cone, defined by (left) the cells collected on each compartment, above a noise threshold.

NEW: $E^T_{core}$ is now configurable, check this link


The principle of extrapolation resides in the update of the track position information at each calorimeter layer taking into account effects of multiple scattering from the detector material and of the magnetic field. The position information in $\eta $ and $\phi $ at each calorimeter layer is used as the centre of a cone with radius $ \Delta R = \sqrt{{\Delta\eta}^2 + {\Delta\phi}^2} $. The energy or transverse energy deposited is calculated from the cells that lie inside this cone around the muon track in each or all the calorimeter layers.

Framework, inputs, outputs and algorithmic flow

Framework NEW

Since release 15.1.0 (or tags TrackInCaloTools-01-*), a new tool was created to handle the extrapolations: TrackExtrapolatorToCalo.


  • TrackInCaloTools
    • Energy (Et or E) measured per layer for a given cone (or cones)
    • Cells around the track for a given cone
    • Cells on track (1 per layer)
    • Cells crossed by the track (can be more than one per layer)
    • N x M cells in $\eta \times \phi$ for a given layer
    • Measured energy loss (core energy)
  • TrackExtrapolatorToCalo
    • Parameters and positions of the track extrapolation on each calorimeter layer
    • Path length traversed by the track on each layer
    • Parametrized energy loss


Description Variable Default Obs
Noise threshold used to collect cells *cellsNoiseRMSCut 3.4 default noise threshold. Does not include negative energies (unless useNegativeCells is set)
cellNoiseRMSCutLoose 2.0 used by MuonIsolationTools to collect and store the cells around the track. Includes negative energies. Should be lower than the above, as the cells collected for the last given track are kept internally using this value
Use cells with negative energies? useNegativeCells false Always true for loose cut
Use the extrapolation or straight track? useExtrapolation true
Definition of the core energy on each layer EcoreDefinition cone 0.05 See TrackInCaloTools#EcoreDefinition
Calibration factor for LArEM calibFactorEM 1.0 Used when getting energy loss
Calibration factor for TileCal calibFactorTile 1.0 Used when getting energy loss
Name of CaloCellContainer CaloCellContainer AllCalo AllCalo for ESD, AODCellContainer for AOD
Name of CaloNoiseTool NoiseTool CaloNoiseTool/CaloNoiseToolDefault  

Algorithmic flow

  • TrackInCaloTools
    1. A track must be given as input for every method, and the last track used is kept internally. If they are not the same (new_track), the extrapolations are computed (getExtrapolations is called) by TrackExtrapolatorToCalo
    2. The calorimeter cells are collected: only the ones whose center is closer than the given dR with respect to the extrapolation point on that layer, and above the noise threshold defined by the user are kept (the cells above the loose threshold are kept internally).
    3. If an energy calculation was requested, the sum is performed from the output of step 2
    4. If the given cone is greater than the last one used to collect the cells, step 2 is repeated

  • TrackExtrapolatorToCalo
    1. A track is given as input to be extrapolated to each calorimeter layer in all subcalos: EM, Tile and HEC. The process starts from the perigee.
    2. The $\eta$ coordinate of the track is retrieved from the corresponding TrackParameters set. Based on this and the pseudo-rapidity coverage of the calorimeter layer, it is decided the region, barrel / gap / end-cap, to be used as the first destination surface of the track extrapolation. If the extrapolation fails, the next surface is used.
      • Actually, only the adjacent surface should be used...
    3. The track parameters from the last valid extrapolation are used as input to the extrapolation on the next layer, repeating step 2. For the first layers of the Tile and the HEC, the last extrapolation to the EM is used as starting point.
    4. The set of track parameters are kept internally. If the extrapolations for another track is requested, we go back to step 1.
    5. The extrapolation to the exit of each layer can be requested (getExtrapolationsToLayerExit, used to get the path lenghts, the positions at the middle of each layer and the parametrized energy loss). For the adjacent layers, the parameters at the entrance of the next is used as the exit of the previous. For the pre-sampler and the outer layers of each subcalo, another extrapolation step is performed starting from the entrance of the layer.

Configuration / definition of core energy

Since release 15.1.0, the user can choose what to consider for $E^T_{core}$ per layer using strings. For the moment, the standard definition (cone 0.05) is kept.

  • Possibilities:
    • Cone size
    • Cells crossed
    • NxM cells in $\eta \times \phi$ (up to 3 3)
    • Parametrization (from Atlas Extrapolator)
    • Can be changed via jobOptions or at runtime
      • Use case: apply isolation criteria and then use more cells for energy loss measurement

  • How to use:
    • jobOptions:
      ToolSvc.TrackInCaloTools.EcoreDefinition = ["0.1", "1x2", "crossed", "param", ... ] 
    • C++:
    • If one value is given, it is used for all the layers

Clients for TrackInCaloTools

Reconstruction/RecoTools/TrackIsolationTools (TrackIsolationTool.cxx)
Reconstruction/MuonIdentification/MuonIsolationTools (MuonIsolationTool.cxx)
PhysicsAnalysis/MuonID/MuonSelectionTools (SelectedMuon.cxx)

PhysicsAnalysis/PrimaryDPDMaker ( /
PhysicsAnalysis/HiggsPhys/HiggsToFourLeptons ( /
Reconstruction/RecoTools/CaloMaterialEffectsOnTrackProvider (


  • Whenever a layer is passed or returned in a vector, the following convention is adopted:
    • ps=0,em1=1,em2=2,em3=3,tile1=4,tile2=5,tile3=6,hec0=7,hec1=8,hec2=9,hec3=10
  • For collecting the cells, the mid-point between the extrapolation to the entrance and the exit of each layer is used
    • No big difference w.r.t. position at the entrance. If extrapolation is not used, a significant impact can be seen at low pT ([[][this plot]])

Major updates:
-- BrunoLenzi - 04 May 2009 -- KonstantinosBachas - 23 Jul 2008
Edit | Attach | Watch | Print version | History: r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r1 - 2009-05-03 - BrunoLenzi
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Sandbox 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.
or Ideas, requests, problems regarding TWiki? use Discourse or Send feedback