8#ifndef PANDORA_CALO_HIT_H
9#define PANDORA_CALO_HIT_H 1
17template<
typename T>
class InputObjectManager;
18template<
typename T,
typename S>
class PandoraObjectFactory;
345 friend class
PandoraObjectFactory<object_creation::CaloHitFragment::Parameters, object_creation::CaloHitFragment::Object>;
352 return m_positionVector;
Header file for pandora object creation classes.
Header file defining status codes and relevant preprocessor macros.
float GetElectromagneticEnergy() const
Get the calibrated electromagnetic energy measure.
void GetPointingCellCorners(CartesianPointVector &cartesianPointVector) const
Get the list of cartesian coordinates for pointing cell corners.
HitType GetHitType() const
Get the calorimeter hit type.
CellGeometry GetCellGeometry() const
Get the cell geometry.
const float m_hadronicEnergy
The calibrated hadronic energy measure, units GeV.
bool IsInOuterSamplingLayer() const
Whether cell is in one of the outermost detector sampling layers.
void SetAvailability(bool isAvailable)
Set availability of calo hit to be added to a cluster.
const CellGeometry m_cellGeometry
The cell geometry type, pointing or rectangular.
unsigned int GetPseudoLayer() const
Get pseudo layer for the calo hit.
const CartesianVector m_cellNormalVector
Unit normal to the sampling layer, pointing outwards from the origin.
HitRegion GetHitRegion() const
Get the region of the detector in which the calo hit is located.
const MCParticleWeightMap & GetMCParticleWeightMap() const
Get mc particle weight map for the calo hit.
const CartesianVector & GetPositionVector() const
Get the position vector of center of calorimeter cell, units mm.
const bool m_isDigital
Whether cell should be treated as digital (implies constant cell energy)
bool m_isIsolated
Whether the calo hit is isolated.
bool m_isAvailable
Whether the calo hit is available to be added to a cluster.
virtual ~CaloHit()
Destructor.
float CalculateCellLengthScale() const
Calculate the typical length scale of the cell, units mm.
float GetWeight() const
Get the calo hit weight, which may not be unity if the hit has been fragmented.
const CartesianVector m_expectedDirection
Unit vector in direction of expected hit propagation.
bool IsIsolated() const
Whether the calo hit is flagged as isolated.
void SetMCParticleWeightMap(const MCParticleWeightMap &mcParticleWeightMap)
Set the mc particles associated with the calo hit.
const float m_time
Time of (earliest) energy deposition in this cell, units ns.
float GetX0() const
For LArTPC usage, the x-coordinate shift associated with a drift time t0 shift, units mm.
const float m_cellSize1
Cell size 1 [pointing: azimuthal angle, phi, rectangular: perpendicular to size 0 and thickness,...
CartesianVector m_positionVector
Position vector of center of calorimeter cell, units mm.
unsigned int GetLayer() const
Get the subdetector readout layer number.
float GetMipEquivalentEnergy() const
Get the calibrated mip equivalent energy.
const float m_cellSize0
Cell size 0 [pointing: pseudo rapidity, eta, rectangular: up in ENDCAP, along beam in BARREL,...
const float m_nCellRadiationLengths
Absorber material in front of cell, units radiation lengths.
float m_weight
The calo hit weight, which may not be unity if the hit has been fragmented.
const float m_electromagneticEnergy
The calibrated electromagnetic energy measure, units GeV.
const HitRegion m_hitRegion
Region of the detector in which the calo hit is located.
InputUInt m_pseudoLayer
The pseudo layer to which the calo hit has been assigned.
float GetNCellRadiationLengths() const
Get the absorber material in front of cell, units radiation lengths.
void GetCellCorners(CartesianPointVector &cartesianPointVector) const
Get the list of cartesian coordinates for the cell corners.
const float m_inputEnergy
Corrected energy of calorimeter cell in user framework, units GeV.
const bool m_isInOuterSamplingLayer
Whether cell is in one of the outermost detector sampling layers.
float GetNCellInteractionLengths() const
Get the absorber material in front of cell, units interaction lengths.
float m_x0
For LArTPC usage, the x-coordinate shift associated with a drift time t0 shift, units mm.
bool IsPossibleMip() const
Whether the calo hit is flagged as a possible mip hit.
bool m_isPossibleMip
Whether the calo hit is a possible mip hit.
float GetCellThickness() const
Get the thickness of cell, units mm.
float GetCellSize1() const
Get the cell size 1 [pointing: phi, rectangular: perpendicular to size 0 and thickness,...
void GetRectangularCellCorners(CartesianPointVector &cartesianPointVector) const
Get the list of cartesian coordinates for rectangular cell corners.
StatusCode AlterMetadata(const object_creation::CaloHit::Metadata &metadata)
Alter the metadata information stored in a calo hit.
float GetCellLengthScale() const
Get the typical length scale of cell, units mm.
bool IsDigital() const
Whether cell should be treated as digital.
const unsigned int m_layer
The subdetector readout layer number.
const void * m_pParentAddress
The address of the parent calo hit in the user framework.
float GetCellSize0() const
Get the cell size 0 [pointing: eta, rectangular: up in ENDCAP, along beam in BARREL,...
bool operator<(const CaloHit &rhs) const
operator< sorting by position, then energy
bool IsAvailable() const
Whether the calo hit is available to be added to a cluster (access this function via PandoraContentAP...
const float m_mipEquivalentEnergy
The calibrated mip equivalent energy, units mip.
const CartesianVector & GetCellNormalVector() const
Get the unit vector normal to the sampling layer, pointing outwards from the origin.
float GetHadronicEnergy() const
Get the calibrated hadronic energy measure.
float GetInputEnergy() const
Get the corrected energy of the calorimeter cell, units GeV, as supplied by the user.
float GetTime() const
Get the time of (earliest) energy deposition in this cell, units ns.
float m_cellLengthScale
Typical length scale [pointing: measured at cell mid-point, rectangular: std::sqrt(cellSize0 * cellSi...
const void * GetParentAddress() const
Get the address of the parent calo hit in the user framework.
MCParticleWeightMap m_mcParticleWeightMap
The mc particle weight map.
const HitType m_hitType
The type of calorimeter hit.
void RemoveMCParticles()
Remove the mc particles associated with the calo hit.
const float m_nCellInteractionLengths
Absorber material in front of cell, units interaction lengths.
const float m_cellThickness
Thickness of cell, units mm.
const CartesianVector & GetExpectedDirection() const
Get the unit vector in direction of expected hit propagation.
StatusCode SetPseudoLayer(const unsigned int pseudoLayer)
Set the mc pseudo layer for the calo hit.
PandoraObjectFactory class.
HitType
Calorimeter hit type enum.
HitRegion
Calorimeter hit region enum.
std::unordered_map< const MCParticle *, float > MCParticleWeightMap
std::vector< CartesianVector > CartesianPointVector
CellGeometry
Cell geometry enum.
StatusCode
The StatusCode enum.