Algorithm for Calorimeter Shower Axis reconstruction based on Principal Component Analysis (PCA) method.
More...
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. It works either on the whole set of calorimeter hits or on calorimeter clusters ar reconstructed by another algorithm. The algorithm searches for the eigenvectors of the calorimeter energy deposit covariance 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 axis is defined by the sign of the skewness for the energy deposits along the first eigenvector, so it is related to the shower development direction (although this reconstruction method might yield the wrong direction for showers with significant leakage). The Center-Of-Gravity (COG) of the cluster is used as the anchor point of the track.
The algorithm produces a Tracks object with all the reconstructed axes and a vector of PcaTrackingInfo objects whose elements contain the PCA variables (eigenvalues etc.) used to reconstruct each axis. The tracks and PCA info containers are aligned, e.g. the first PCA info is related to the first axis.
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 event objects:
name | -type- | alias | store | description |
caloAxes_pca | Tracks | caloAxes | evStore | The collection of CALO axes. |
caloHitsRefFrames_pca | std::vector<CaloHitsRefFrame> | caloHitsRefFrames | evStore | The reference frame of each CALO hits (cluster) object. |
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.020 | 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. |