HerdSoftware  0.1.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Herd::PcaCaloAxisTrackingAlgo Class Reference

Algorithm for Calorimeter Shower Axis reconstruction based on Principal Component Analysis (PCA) method. More...

#include <algorithms/tracking/CaloAxis/PcaCaloAxisTrackingAlgo.h>

Inheritance diagram for Herd::PcaCaloAxisTrackingAlgo:

Public Member Functions

 PcaCaloAxisTrackingAlgo (const std::string &name)
 Constructor. More...
 
bool Initialize ()
 Initialization of the algorithm. More...
 
bool Process ()
 Process a single event. More...
 
bool Finalize ()
 Post processing part. More...
 

Private Member Functions

bool BuildAxis (const CaloHits &)
 Build Shower Axis. More...
 

Private Attributes

bool _processcalo
 Flag variable to instruct the algorithm to process the whole calo hit collection instead of separate CaloClusters. More...
 
float _edepthreshold
 Threshold (in GeV) for energy deposit in CALO hits. Only hits above threshold are used to build the CALO axis. More...
 
unsigned short _minhits
 Minimum number of hits above threshold to reconstruct the axis. More...
 
std::string _caloHitsName
 Name of the CaloHits collections to be used for reconstruction. More...
 
std::shared_ptr< CaloAxes_caloAxes
 Pointer to CaloAxis objects. More...
 
observer_ptr< EventDataStore > _evStore
 
observer_ptr< GlobalDataStore > _globStore
 

Detailed Description

Algorithm for Calorimeter Shower Axis reconstruction based on Principal Component Analysis (PCA) method.

This algorithm reconstructs the Calorimeter Shower Axis based on Principal Component Analysis (PCA) method. The algorithm searches for the eigenvectors of the Calorimeter energy deposit coveriance matrix and the corresponding eigenvalues. Eigenvectors are sorted from largest eigenvalue to smallest eigenvalue. The first eigenvector represents the main longitudinal axis. The remaining two eigenvectors represent the main lateral axes. The direction of the shower development is defined by the sign of the skewness for the energy deposits along the first eigenvector.

Needed event objects:

name type store required description
caloGeoParams CaloGeoParams globStore if processcalo=false Calorimeter Geometrical Parameters
caloClusters CaloClusters evStore if processcalo=false Calorimeter clusters
caloHits<X> CaloHits evStore if processcalo=true Calorimeter hit collection

Produced global objects:

name -type- store description
caloAxes CaloAxes evStore The collection of CaloAxis objects.

Parameters:

name type default value description
processCalo bool false If true, neglect CaloClusters and process the collection of CaloHits of the

whole Calo edepThreshold | float | 0.20 | Energy deposit threshold (in GeV) for CaloHits to enter the reconstruction algorithm minHits | int | 4 | Minimum number of hit above threshold to reconstruct CaloAxis caloHitsName | string | caloHitsGeV | Name of the CaloHits collection used for reconstruction. Possible suggested solutions are: caloHitsGeV; caloHitsGGS.

Constructor & Destructor Documentation

◆ PcaCaloAxisTrackingAlgo()

Herd::PcaCaloAxisTrackingAlgo::PcaCaloAxisTrackingAlgo ( const std::string &  name)

Constructor.

Parameters
nameThe name of the algorithm

Member Function Documentation

◆ BuildAxis()

bool Herd::PcaCaloAxisTrackingAlgo::BuildAxis ( const CaloHits calohits)
private

Build Shower Axis.

◆ Finalize()

bool Herd::PcaCaloAxisTrackingAlgo::Finalize ( )

Post processing part.

Returns
If post-processing is successful.

◆ Initialize()

bool Herd::PcaCaloAxisTrackingAlgo::Initialize ( )

Initialization of the algorithm.

Returns
true if the initialization procedure is successful.

◆ Process()

bool Herd::PcaCaloAxisTrackingAlgo::Process ( )

Process a single event.

Returns
If event processing is successful.

Member Data Documentation

◆ _caloAxes

std::shared_ptr<CaloAxes> Herd::PcaCaloAxisTrackingAlgo::_caloAxes
private

Pointer to CaloAxis objects.

◆ _caloHitsName

std::string Herd::PcaCaloAxisTrackingAlgo::_caloHitsName
private

Name of the CaloHits collections to be used for reconstruction.

◆ _edepthreshold

float Herd::PcaCaloAxisTrackingAlgo::_edepthreshold
private

Threshold (in GeV) for energy deposit in CALO hits. Only hits above threshold are used to build the CALO axis.

◆ _evStore

observer_ptr<EventDataStore> Herd::PcaCaloAxisTrackingAlgo::_evStore
private

◆ _globStore

observer_ptr<GlobalDataStore> Herd::PcaCaloAxisTrackingAlgo::_globStore
private

◆ _minhits

unsigned short Herd::PcaCaloAxisTrackingAlgo::_minhits
private

Minimum number of hits above threshold to reconstruct the axis.

If below, reconstruction is not completed and no CaloAxis object is added to the collection

◆ _processcalo

bool Herd::PcaCaloAxisTrackingAlgo::_processcalo
private

Flag variable to instruct the algorithm to process the whole calo hit collection instead of separate CaloClusters.


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