Add new Muon PIDs object in SOA format
This merge request builds on top of !2095 (merged).
Adds LHCb::Pr::Muon::PIDs
object which mainly consists of
class PIDs {
std::vector<int> m_statuses;
std::vector<float> m_chi2Corrs;
Zipping::ZipFamilyNumber m_zipIdentifier;
and follows a similar structure as https://gitlab.cern.ch/lhcb/Rec/blob/master/Phys/SelKernel/SelKernel/VertexRelation.h.
Only the IsMuon
flag is implemented for now, more can be added later. Checking the IsMuon
flag is vectorized.
The version to iterate over muon ids is defined PrIterableMuonIDs.h
.
Additionally a transform
function which can operate with PrTracks
and PrMuonIDs
is introduced. This allows to write
auto muonPIDs = Zipping::transform<MuonPIDs>( tracks, ismuon );
where tracks
are iterable and ismuon
is a lambda which calculates one muon id per track. No attempt to vectorize this has been made.
Additional changes
- Move some helper function from
PrZip.h
toZipUtils.h
- Add iterable forward tracks used in muon id algorithm.
- Added
endScifiState
accessors used in muon id algorithm.
Tests of the Pr::Muon::PIDs
class are implemented in Event/RecEvent/tests/src/TestMuonZipInfrastructure
See Rec!1689 (merged) for the adaption of the MuonID algorithm and Moore!240 (merged) for a test.