HerdSoftware
0.1.1
|
Algorithm for Calorimeter Shower Axis reconstruction based on Principal Component Analysis (PCA) method. More...
#include <algorithms/tracking/CaloAxis/PcaCaloAxisTrackingAlgo.h>
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 |
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.
Herd::PcaCaloAxisTrackingAlgo::PcaCaloAxisTrackingAlgo | ( | const std::string & | name | ) |
Constructor.
name | The name of the algorithm |
|
private |
Build Shower Axis.
bool Herd::PcaCaloAxisTrackingAlgo::Finalize | ( | ) |
Post processing part.
bool Herd::PcaCaloAxisTrackingAlgo::Initialize | ( | ) |
Initialization of the algorithm.
bool Herd::PcaCaloAxisTrackingAlgo::Process | ( | ) |
Process a single event.
|
private |
Pointer to CaloAxis objects.
|
private |
Name of the CaloHits collections to be used for reconstruction.
|
private |
Threshold (in GeV) for energy deposit in CALO hits. Only hits above threshold are used to build the CALO axis.
|
private |
|
private |
|
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
|
private |
Flag variable to instruct the algorithm to process the whole calo hit collection instead of separate CaloClusters.