Skip to content

update Calo/CaloPIDs algorithms to the new Gaudi framework (charged PIDs only)

Zhirui Xu requested to merge calopids_charged_algos into master

Cluster-tracking matching (CaloTrackMatchAlg) is the most important algorithm in separating charged/neutral clusters. All the following modifications are based on the changes made to the Match algorithms.

A change in interfaces to access Data Stores is made as follows in class CaloTrackMatchAlg:

  • old: vector<LHCb::Tracks> + vector<CALOTYPEs> + Table1D --> Table2D
  • new: LHCb::Tracks + CALOTYPEs + Table1D --> Table2D because the Transformer algorithm is not defined to read a vector as input type, i.e. a vector of data locations.

As a result of this change, the following modifications are made:

  • CaloReco/Configuration and CaloReco/Reconstruction property TrackLocations changed to TrackLocation with tracks from only one location allowed.

  • CaloPIDs/Configuration and CaloPIDs/PIDs property TrackLocations changed to TrackLocation with tracks from only one location allowed.

  • InCaloAcceptanceAlg.{h,cpp} changed from MergingTransformer to Transformer to read tracks from one location.

  • CaloTrack2IDAlg.{h,cpp} moved to Transformer with tracks read from one location.

Changes made in other packages related to this change:

Another change is made to the definition of Table2D in class CaloTrackMatchAlg:

  • old: LHCb::RelationWeighted2D<LHCb::CaloCluster, LHCb::Track, float> and LHCb::RelationWeighted2D<LHCb::Track, LHCb::CaloHypo, float>
  • new: LHCb::RelationWeighted2D<LHCb::CaloCluster, LHCb::Track, float> and LHCb::RelationWeighted2D<LHCb::CaloHypo, LHCb::Track, float>

This caused the problem in the following algorithms which uses these tables. A change is made:

  • CaloChi22ID.{h,cpp} reads the new table.

New counters are introduced in all the algorithms mentioned above.

To fix Brunel test error due to the change of Table2D definition, the following classes are modified (a temporary patch, all of these classes will need to updated to the new framework and thread-safe if they are going to be kept for the upgrade):

  • CaloTools/CaloRelationsGetter.{h,cpp}
  • CaloMoniDst/CaloHypoMatchMonitor.cpp
  • Rec/GlobalReco/ChargedProtoParticleAdd{Brem,Ecal}Info.{h,cpp}

All the above changes are related to the charged PIDs (neutral PIDs not working with no PS/SPD setting). All tools used in these algorithms will be updated in separate branches.

Edited by Marco Cattaneo

Merge request reports