ant
A2 ant: class-based analysis framework
ant::Reconstruct Class Reference

#include <Reconstruct.h>

+ Inheritance diagram for ant::Reconstruct:
+ Collaboration diagram for ant::Reconstruct:

Classes

struct  detector_ptr_t
 
class  Exception
 
struct  sorted_detectors_t
 

Public Types

using clustering_t = std::unique_ptr< const reconstruct::Clustering_traits >
 
using candidatebuilder_t = std::unique_ptr< const reconstruct::CandidateBuilder_traits >
 

Public Member Functions

 Reconstruct (clustering_t clustering_=GetDefaultClustering(), candidatebuilder_t candidatebuilder_=GetDefaultCandidateBuilder())
 
virtual void DoReconstruct (TEventData &reconstructed) const override
 DoReconstruct shall convert the given TDetectorRead to TEvent. More...
 
virtual ~Reconstruct ()
 
- Public Member Functions inherited from ant::Reconstruct_traits
virtual ~Reconstruct_traits ()=default
 

Static Public Member Functions

static clustering_t GetDefaultClustering ()
 
static candidatebuilder_t GetDefaultCandidateBuilder ()
 

Protected Types

using sorted_readhits_t = ReconstructHook::Base::readhits_t
 
template<typename T >
using sorted_bydetectortype_t = std::map< Detector_t::Type_t, std::vector< T > >
 
using sorted_clusterhits_t = ReconstructHook::Base::clusterhits_t
 
using sorted_clusters_t = ReconstructHook::Base::clusters_t
 
template<typename T >
using shared_ptr_list = std::list< std::shared_ptr< T > >
 

Protected Member Functions

void ApplyHooksToReadHits (std::vector< TDetectorReadHit > &detectorReadHits) const
 
void BuildHits (sorted_bydetectortype_t< TClusterHit > &sorted_clusterhits, std::vector< TTaggerHit > &taggerhits) const
 
void HandleTagger (const std::shared_ptr< TaggerDetector_t > &taggerdetector, const std::vector< std::reference_wrapper< TDetectorReadHit >> &readhits, std::vector< TTaggerHit > &taggerhits) const
 
void BuildClusters (const sorted_clusterhits_t &sorted_clusterhits, sorted_clusters_t &sorted_clusters) const
 

Protected Attributes

const bool includeIgnoredElements = false
 
sorted_readhits_t sorted_readhits
 
const sorted_detectors_t sorted_detectors
 
const shared_ptr_list< ReconstructHook::DetectorReadHitshooks_readhits
 
const shared_ptr_list< ReconstructHook::ClusterHitshooks_clusterhits
 
const shared_ptr_list< ReconstructHook::Clustershooks_clusters
 
const shared_ptr_list< ReconstructHook::EventDatahooks_eventdata
 
const clustering_t clustering
 
const candidatebuilder_t candidatebuilder
 
const std::unique_ptr< reconstruct::UpdateableManagerupdateablemanager
 

Member Typedef Documentation

◆ candidatebuilder_t

◆ clustering_t

◆ shared_ptr_list

template<typename T >
using ant::Reconstruct::shared_ptr_list = std::list< std::shared_ptr<T> >
protected

◆ sorted_bydetectortype_t

template<typename T >
using ant::Reconstruct::sorted_bydetectortype_t = std::map<Detector_t::Type_t, std::vector< T > >
protected

◆ sorted_clusterhits_t

◆ sorted_clusters_t

◆ sorted_readhits_t

Constructor & Destructor Documentation

◆ Reconstruct()

Reconstruct::Reconstruct ( clustering_t  clustering_ = GetDefaultClustering(),
candidatebuilder_t  candidatebuilder_ = GetDefaultCandidateBuilder() 
)

◆ ~Reconstruct()

Reconstruct::~Reconstruct ( )
virtualdefault

Member Function Documentation

◆ ApplyHooksToReadHits()

void Reconstruct::ApplyHooksToReadHits ( std::vector< TDetectorReadHit > &  detectorReadHits) const
protected

◆ BuildClusters()

void Reconstruct::BuildClusters ( const sorted_clusterhits_t sorted_clusterhits,
sorted_clusters_t sorted_clusters 
) const
protected

◆ BuildHits()

void Reconstruct::BuildHits ( sorted_bydetectortype_t< TClusterHit > &  sorted_clusterhits,
std::vector< TTaggerHit > &  taggerhits 
) const
protected

◆ DoReconstruct()

void Reconstruct::DoReconstruct ( TEventData reconstructed) const
overridevirtual

DoReconstruct shall convert the given TDetectorRead to TEvent.

Parameters
detectorRead
Returns
the reconstructed TEvent
Todo:
it would be better if a seperate "simple" candidatebuilder was used here

Implements ant::Reconstruct_traits.

Reimplemented in ReconstructTester.

◆ GetDefaultCandidateBuilder()

Reconstruct::candidatebuilder_t Reconstruct::GetDefaultCandidateBuilder ( )
static
Todo:
instead of using the full-blown CandidateBuilder here, it would be better to compose it out of smaller parts this might get important if using the MWPCs...

◆ GetDefaultClustering()

Reconstruct::clustering_t Reconstruct::GetDefaultClustering ( )
static

◆ HandleTagger()

void Reconstruct::HandleTagger ( const std::shared_ptr< TaggerDetector_t > &  taggerdetector,
const std::vector< std::reference_wrapper< TDetectorReadHit >> &  readhits,
std::vector< TTaggerHit > &  taggerhits 
) const
protected
Todo:
handle double hits here?
Todo:
handle energies here better? (actually test with appropiate QDC run)

Member Data Documentation

◆ candidatebuilder

const candidatebuilder_t ant::Reconstruct::candidatebuilder
protected

◆ clustering

const clustering_t ant::Reconstruct::clustering
protected

◆ hooks_clusterhits

const shared_ptr_list<ReconstructHook::ClusterHits> ant::Reconstruct::hooks_clusterhits
protected

◆ hooks_clusters

const shared_ptr_list<ReconstructHook::Clusters> ant::Reconstruct::hooks_clusters
protected

◆ hooks_eventdata

const shared_ptr_list<ReconstructHook::EventData> ant::Reconstruct::hooks_eventdata
protected

◆ hooks_readhits

const shared_ptr_list<ReconstructHook::DetectorReadHits> ant::Reconstruct::hooks_readhits
protected

◆ includeIgnoredElements

const bool ant::Reconstruct::includeIgnoredElements = false
protected

◆ sorted_detectors

const sorted_detectors_t ant::Reconstruct::sorted_detectors
protected

◆ sorted_readhits

sorted_readhits_t ant::Reconstruct::sorted_readhits
mutableprotected

◆ updateablemanager

const std::unique_ptr<reconstruct::UpdateableManager> ant::Reconstruct::updateablemanager
protected

The documentation for this class was generated from the following files: