Skip to content

Commit

Permalink
Add a utility function to return a leading track of the Reconstructed…
Browse files Browse the repository at this point in the history
…Particle
  • Loading branch information
dudarboh committed Aug 31, 2022
1 parent 4668a95 commit fdbd6b7
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions src/cpp/include/UTIL/ReconstructedParticleTools.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#ifndef UTIL_ReconstructedParticleTools_H
#define UTIL_ReconstructedParticleTools_H 1

#include "EVENT/ReconstructedParticle.h"
#include "EVENT/Track.h"
#include "TrackTools.h"

namespace UTIL{
/** Extract the leading track in case of multiple tracks attached to a single ReconstructedParticle.
* @author Bohdan Dudar
* @version August 2022
*/
EVENT::Track* getLeadingTrack(const EVENT::ReconstructedParticle* particle, double bz){
const TrackVec& tracks = particle->getTracks();
if ( tracks.empty() ) return nullptr;
auto sortByMomentum = [&bz, &getTrackMomentum](const EVENT::Track* a, const EVENT::Track* b) { return getTrackMomentum(a, bz) < getTrackMomentum(b, bz) };
EVENT::Track* leadingTrack = *std::max_element(tracks.begin(), tracks.end(), sortByMomentum);

return leadingTrack;
}

#endif

0 comments on commit fdbd6b7

Please sign in to comment.