Jpp 20.0.0-27-g39925593c-D
the software that should make you happy
Loading...
Searching...
No Matches
Classes | Functions
reconstruction.hh File Reference

Auxiliary methods for selection of reconstructed tracks. More...

#include <limits>
#include <algorithm>
#include "km3net-dataformat/offline/Hit.hh"
#include "km3net-dataformat/offline/Vec.hh"
#include "km3net-dataformat/offline/Trk.hh"
#include "km3net-dataformat/offline/Evt.hh"
#include "km3net-dataformat/offline/Exception.hh"
#include "km3net-dataformat/definitions/reconstruction.hh"

Go to the source code of this file.

Classes

struct  rec_stages_range
 Range of reconstruction stages. More...
 
struct  quality_sorter< reconstruction_type >
 Reconstruction type dependent comparison of track quality. More...
 
struct  has_history
 Auxiliary class to test whether given track has specified history. More...
 

Functions

bool has_jppmuon_prefit (const Trk &track)
 Test whether given track has muon prefit in history.
 
bool has_jppmuon_simplex (const Trk &track)
 Test whether given track has muon simplex fit in history.
 
bool has_jppmuon_gandalf (const Trk &track)
 Test whether given track has muon gandalf fit in history.
 
bool has_jppmuon_energy (const Trk &track)
 Test whether given track has muon energy fit in history.
 
bool has_jppmuon_start (const Trk &track)
 Test whether given track has muon start fit in history.
 
bool has_jppmuon_fit (const Trk &track)
 Test whether given track has default muon fit in history.
 
bool has_shower_prefit (const Trk &track)
 Test whether given track has shower prefit in history.
 
bool has_shower_positionfit (const Trk &track)
 Test whether given track has shower position fit in history.
 
bool has_shower_completefit (const Trk &track)
 Test whether given track has shower complete fit in history.
 
bool has_shower_fit (const Trk &track)
 Test whether given track has default shower fit in history.
 
bool has_aashower_fit (const Trk &track)
 Test whether given track has default shower fit in history.
 
template<class JTrackSelector_t >
bool has_reconstructed_track (const Evt &evt, JTrackSelector_t selector)
 Test whether given event has a track according selection.
 
template<int reconstruction_type>
bool has_reconstructed_track (const Evt &evt, const rec_stages_range range=rec_stages_range())
 Test whether given event has a track according selection.
 
bool has_reconstructed_jppmuon (const Evt &evt)
 Test whether given event has a track with muon reconstruction.
 
bool has_reconstructed_jppshower (const Evt &evt)
 Test whether given event has a track with shower reconstruction.
 
bool has_reconstructed_aashower (const Evt &evt)
 Test whether given event has a track with aashower reconstruction.
 
template<class JTrackSelector_t , class JQualitySorter_t >
const Trkget_best_reconstructed_track (const Evt &evt, JTrackSelector_t selector, JQualitySorter_t comparator)
 Get best reconstructed track.
 
template<int reconstruction_type>
const Trkget_best_reconstructed_track (const Evt &evt, const rec_stages_range range=rec_stages_range())
 Get best reconstructed track.
 
const Trkget_best_reconstructed_jppmuon (const Evt &evt)
 Get best reconstructed muon.
 
const Trkget_best_reconstructed_jppshower (const Evt &evt)
 Get best reconstructed shower.
 
const Trkget_best_reconstructed_aashower (const Evt &evt)
 Get best reconstructed aashower.
 

Detailed Description

Auxiliary methods for selection of reconstructed tracks.

Author
mdejong

Definition in file tools/reconstruction.hh.

Function Documentation

◆ has_jppmuon_prefit()

bool has_jppmuon_prefit ( const Trk & track)
inline

Test whether given track has muon prefit in history.

Parameters
tracktrack
Returns
true if muon prefit in history; else false

Definition at line 144 of file tools/reconstruction.hh.

145{
146 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONPREFIT)(track);
147}
static const int JPP_RECONSTRUCTION_TYPE
ile KM3NeT Data Definitions v3.6.2 https://git.km3net.de/common/km3net-dataformat

◆ has_jppmuon_simplex()

bool has_jppmuon_simplex ( const Trk & track)
inline

Test whether given track has muon simplex fit in history.

Parameters
tracktrack
Returns
true if muon simplex fit in history; else false

Definition at line 156 of file tools/reconstruction.hh.

157{
158 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONSIMPLEX)(track);
159}

◆ has_jppmuon_gandalf()

bool has_jppmuon_gandalf ( const Trk & track)
inline

Test whether given track has muon gandalf fit in history.

Parameters
tracktrack
Returns
true if muon gandalf fit in history; else false

Definition at line 168 of file tools/reconstruction.hh.

169{
170 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONGANDALF)(track);
171}

◆ has_jppmuon_energy()

bool has_jppmuon_energy ( const Trk & track)
inline

Test whether given track has muon energy fit in history.

Parameters
tracktrack
Returns
true if muon energy fit in history; else false

Definition at line 180 of file tools/reconstruction.hh.

181{
182 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONENERGY)(track);
183}

◆ has_jppmuon_start()

bool has_jppmuon_start ( const Trk & track)
inline

Test whether given track has muon start fit in history.

Parameters
tracktrack
Returns
true if muon start fit in history; else false

Definition at line 192 of file tools/reconstruction.hh.

193{
194 return ::has_history(JPP_RECONSTRUCTION_TYPE, JMUONSTART)(track);
195}

◆ has_jppmuon_fit()

bool has_jppmuon_fit ( const Trk & track)
inline

Test whether given track has default muon fit in history.

Parameters
tracktrack
Returns
true if muon fit in history; else false

Definition at line 204 of file tools/reconstruction.hh.

205{
206 return ::has_history(JPP_RECONSTRUCTION_TYPE, rec_stages_range(JMUONBEGIN, JMUONEND))(track);
207}
static const int JMUONBEGIN
begin range of reconstruction stages
static const int JMUONEND
end range of reconstruction stages
Range of reconstruction stages.

◆ has_shower_prefit()

bool has_shower_prefit ( const Trk & track)
inline

Test whether given track has shower prefit in history.

Parameters
tracktrack
Returns
true if shower prefit in history; else false

Definition at line 216 of file tools/reconstruction.hh.

217{
218 return ::has_history(JPP_RECONSTRUCTION_TYPE, JSHOWERPREFIT)(track);
219}

◆ has_shower_positionfit()

bool has_shower_positionfit ( const Trk & track)
inline

Test whether given track has shower position fit in history.

Parameters
tracktrack
Returns
true if shower position fit in history; else false

Definition at line 228 of file tools/reconstruction.hh.

229{
230 return ::has_history(JPP_RECONSTRUCTION_TYPE, JSHOWERPOSITIONFIT)(track);
231}

◆ has_shower_completefit()

bool has_shower_completefit ( const Trk & track)
inline

Test whether given track has shower complete fit in history.

Parameters
tracktrack
Returns
true if shower complete fit in history; else false

Definition at line 240 of file tools/reconstruction.hh.

241{
242 return ::has_history(JPP_RECONSTRUCTION_TYPE, JSHOWERCOMPLETEFIT)(track);
243}

◆ has_shower_fit()

bool has_shower_fit ( const Trk & track)
inline

Test whether given track has default shower fit in history.

Parameters
tracktrack
Returns
true if shower fit in history; else false

Definition at line 252 of file tools/reconstruction.hh.

253{
254 return ::has_history(JPP_RECONSTRUCTION_TYPE, rec_stages_range(JSHOWERBEGIN, JSHOWEREND))(track);
255}
static const int JSHOWEREND
end range of reconstruction stages
static const int JSHOWERBEGIN
begin range of reconstruction stages

◆ has_aashower_fit()

bool has_aashower_fit ( const Trk & track)
inline

Test whether given track has default shower fit in history.

Parameters
tracktrack
Returns
true if shower fit in history; else false

Definition at line 264 of file tools/reconstruction.hh.

265{
267}
static const int AASHOWERBEGIN
begin range of reconstruction stages
static const int AASHOWEREND
end range of reconstruction stages
static const int AANET_RECONSTRUCTION_TYPE
aanet reconstruction type

◆ has_reconstructed_track() [1/2]

template<class JTrackSelector_t >
bool has_reconstructed_track ( const Evt & evt,
JTrackSelector_t selector )
inline

Test whether given event has a track according selection.


The track selector corresponds to the function operator bool selector(const Trk&);.

Parameters
evtevent
selectortrack selector
Returns
true if at least one corresponding track; else false

Definition at line 279 of file tools/reconstruction.hh.

280{
281 return std::find_if(evt.trks.begin(), evt.trks.end(), selector) != evt.trks.end();
282}
std::vector< Trk > trks
list of reconstructed tracks (can be several because of prefits,showers, etc).
Definition Evt.hh:39

◆ has_reconstructed_track() [2/2]

template<int reconstruction_type>
bool has_reconstructed_track ( const Evt & evt,
const rec_stages_range range = rec_stages_range() )
inline

Test whether given event has a track according selection.

Parameters
evtevent
rangerange of application types
Returns
true if at least one corresponding track; else false

Definition at line 293 of file tools/reconstruction.hh.

294{
295 return ::has_reconstructed_track(evt, ::has_history(reconstruction_type, range));
296}
Auxiliary class to test whether given track has specified history.

◆ has_reconstructed_jppmuon()

bool has_reconstructed_jppmuon ( const Evt & evt)
inline

Test whether given event has a track with muon reconstruction.

Parameters
evtevent
Returns
true if at least one reconstructed muon; else false

Definition at line 305 of file tools/reconstruction.hh.

306{
307 return ::has_reconstructed_track(evt, has_jppmuon_fit);
308}
bool has_jppmuon_fit(const Trk &track)
Test whether given track has default muon fit in history.

◆ has_reconstructed_jppshower()

bool has_reconstructed_jppshower ( const Evt & evt)
inline

Test whether given event has a track with shower reconstruction.

Parameters
evtevent
Returns
true if at least one reconstructed shower; else false

Definition at line 317 of file tools/reconstruction.hh.

318{
319 return ::has_reconstructed_track(evt, ::has_shower_fit);
320}
bool has_shower_fit(const Trk &track)
Test whether given track has default shower fit in history.

◆ has_reconstructed_aashower()

bool has_reconstructed_aashower ( const Evt & evt)
inline

Test whether given event has a track with aashower reconstruction.

Parameters
evtevent
Returns
true if at least one reconstructed shower; else false

Definition at line 329 of file tools/reconstruction.hh.

330{
331 return ::has_reconstructed_track(evt, has_aashower_fit);
332}
bool has_aashower_fit(const Trk &track)
Test whether given track has default shower fit in history.

◆ get_best_reconstructed_track() [1/2]

template<class JTrackSelector_t , class JQualitySorter_t >
const Trk & get_best_reconstructed_track ( const Evt & evt,
JTrackSelector_t selector,
JQualitySorter_t comparator )
inline

Get best reconstructed track.


The track selector corresponds to the function operator bool selector(const Trk&); and the track comparator to bool comparator(const Trk&, const Trk&);.
This method throws an exception in case no track is present.
The method has_reconstructed_track can be used to avoid this exception.

Parameters
evtevent
selectortrack selector
comparatortrack comparator
Returns
track

Definition at line 348 of file tools/reconstruction.hh.

351{
352 std::vector<Trk>::const_iterator p = std::find_if(evt.trks.begin(), evt.trks.end(), selector);
353
354 for (std::vector<Trk>::const_iterator i = p; i != evt.trks.end(); ++i) {
355 if (selector(*i) && comparator(*i, *p)) {
356 p = i;
357 }
358 }
359
360 if (p != evt.trks.end())
361 return *p;
362 else
363 THROW(Exception, "This event has no reconstructed track with given selector.");
364}
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
General exception.
Definition Exception.hh:13

◆ get_best_reconstructed_track() [2/2]

template<int reconstruction_type>
const Trk & get_best_reconstructed_track ( const Evt & evt,
const rec_stages_range range = rec_stages_range() )
inline

Get best reconstructed track.

Parameters
evtevent
rangerange of application types
Returns
track

Definition at line 375 of file tools/reconstruction.hh.

376{
377 return get_best_reconstructed_track(evt, ::has_history(reconstruction_type, range), quality_sorter<reconstruction_type>());
378}
const JFit & get_best_reconstructed_track(const JEvt &evt, JTrackSelector_t selector, JQualitySorter_t comparator)
Get best reconstructed track.
Reconstruction type dependent comparison of track quality.

◆ get_best_reconstructed_jppmuon()

const Trk & get_best_reconstructed_jppmuon ( const Evt & evt)
inline

Get best reconstructed muon.

Parameters
evtevent
Returns
track

Definition at line 387 of file tools/reconstruction.hh.

◆ get_best_reconstructed_jppshower()

const Trk & get_best_reconstructed_jppshower ( const Evt & evt)
inline

Get best reconstructed shower.

Parameters
evtevent
Returns
track

Definition at line 399 of file tools/reconstruction.hh.

◆ get_best_reconstructed_aashower()

const Trk & get_best_reconstructed_aashower ( const Evt & evt)
inline

Get best reconstructed aashower.

Parameters
evtevent
Returns
track

Definition at line 411 of file tools/reconstruction.hh.