update Calo/CaloPIDs algorithms to the new Gaudi framework (charged PIDs only)
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 toTrackLocation
with tracks from only one location allowed. -
CaloPIDs/Configuration and CaloPIDs/PIDs property
TrackLocations
changed toTrackLocation
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:
- Phys see lhcb/Phys!401
- Hlt see lhcb/Hlt!594
Another change is made to the definition of Table2D in class CaloTrackMatchAlg:
- old:
LHCb::RelationWeighted2D<LHCb::CaloCluster, LHCb::Track, float>
andLHCb::RelationWeighted2D<LHCb::Track, LHCb::CaloHypo, float>
- new:
LHCb::RelationWeighted2D<LHCb::CaloCluster, LHCb::Track, float>
andLHCb::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.