Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
ShowerProfilePlugin.h
Go to the documentation of this file.
1
8#ifndef PANDORA_SHOWER_PROFILE_PLUGIN_H
9#define PANDORA_SHOWER_PROFILE_PLUGIN_H 1
10
12#include "Pandora/Process.h"
13
14namespace pandora
15{
16
21{
22public:
27 {
28 public:
37 ShowerPeak(const float peakEnergy, const float peakRms, const float rmsXYRatio, const CaloHitList &peakCaloHitList);
38
44 float GetPeakEnergy() const;
45
51 float GetPeakRms() const;
52
58 float GetRmsXYRatio() const;
59
65 const CaloHitList &GetPeakCaloHitList() const;
66
67 private:
69 float m_peakRms;
72 };
73
74 typedef std::vector<ShowerPeak> ShowerPeakList;
75
83 virtual void CalculateShowerStartLayer(const Cluster *const pCluster, unsigned int &showerStartLayer) const = 0;
84
92 virtual void CalculateLongitudinalProfile(const Cluster *const pCluster, float &profileStart, float &profileDiscrepancy) const = 0;
93
101 virtual void CalculateTransverseProfile(const Cluster *const pCluster, const unsigned int maxPseudoLayer, ShowerPeakList &showerPeakList) const = 0;
102
111 virtual void CalculateTransverseProfile(const Cluster *const pCluster, const unsigned int maxPseudoLayer, ShowerPeakList &showerPeakList,
112 const bool inclusiveMode) const = 0;
113
124 virtual void CalculateTrackBasedTransverseProfile(const Cluster *const pCluster, const unsigned int maxPseudoLayer, const Track *const pClosestTrack,
125 const TrackVector &trackVector, ShowerPeakList &showerPeakListPhoton, ShowerPeakList &showerPeakListNonPhoton) const = 0;
126
127protected:
128 friend class PluginManager;
129};
130
131//------------------------------------------------------------------------------------------------------------------------------------------
132
133inline ShowerProfilePlugin::ShowerPeak::ShowerPeak(const float peakEnergy, const float peakRms, const float rmsXYRatio, const CaloHitList &peakCaloHitList) :
134 m_peakEnergy(peakEnergy),
135 m_peakRms(peakRms),
136 m_rmsXYRatio(rmsXYRatio),
137 m_peakCaloHitList(peakCaloHitList)
138{
139}
140
141//------------------------------------------------------------------------------------------------------------------------------------------
142
144{
145 return m_peakEnergy;
146}
147
148//------------------------------------------------------------------------------------------------------------------------------------------
149
151{
152 return m_peakRms;
153}
154
155//------------------------------------------------------------------------------------------------------------------------------------------
156
158{
159 return m_rmsXYRatio;
160}
161
162//------------------------------------------------------------------------------------------------------------------------------------------
163
165{
166 return m_peakCaloHitList;
167}
168
169} // namespace pandora
170
171#endif // #ifndef PANDORA_SHOWER_PROFILE_PLUGIN_H
Header file defining relevant internal typedefs, sort and string conversion functions.
Header file for the process class.
Cluster class.
Definition Cluster.h:31
PluginManager class.
Process class.
Definition Process.h:27
ShowerPeak(const float peakEnergy, const float peakRms, const float rmsXYRatio, const CaloHitList &peakCaloHitList)
Constructor.
float m_rmsXYRatio
The peak x-rms / y-rms ratio (larger rms over smaller rms)
float GetPeakEnergy() const
Get peak energy.
CaloHitList m_peakCaloHitList
The peak calo hit list.
const CaloHitList & GetPeakCaloHitList() const
Get peak calo hit list.
float GetRmsXYRatio() const
Get rms x-y ratio.
ShowerProfilePlugin class.
virtual void CalculateTransverseProfile(const Cluster *const pCluster, const unsigned int maxPseudoLayer, ShowerPeakList &showerPeakList, const bool inclusiveMode) const =0
Calculate transverse shower profile for a cluster and get the list of peaks identified in the profile...
std::vector< ShowerPeak > ShowerPeakList
virtual void CalculateShowerStartLayer(const Cluster *const pCluster, unsigned int &showerStartLayer) const =0
Get the layer at which shower can be considered to start; this function evaluates the the starting po...
virtual void CalculateTrackBasedTransverseProfile(const Cluster *const pCluster, const unsigned int maxPseudoLayer, const Track *const pClosestTrack, const TrackVector &trackVector, ShowerPeakList &showerPeakListPhoton, ShowerPeakList &showerPeakListNonPhoton) const =0
Calculate transverse shower profile for a cluster and get the list of peaks identified in the profile...
virtual void CalculateLongitudinalProfile(const Cluster *const pCluster, float &profileStart, float &profileDiscrepancy) const =0
Calculate longitudinal shower profile for a cluster and compare it with the expected profile for a ph...
virtual void CalculateTransverseProfile(const Cluster *const pCluster, const unsigned int maxPseudoLayer, ShowerPeakList &showerPeakList) const =0
Calculate transverse shower profile for a cluster and get the list of peaks identified in the profile...
Track class.
Definition Track.h:26
std::vector< const Track * > TrackVector
MANAGED_CONTAINER< const CaloHit * > CaloHitList