Pandora
Pandora source code navigator
Loading...
Searching...
No Matches
ObjectCreation.h
Go to the documentation of this file.
1
8#ifndef PANDORA_OBJECT_CREATION_H
9#define PANDORA_OBJECT_CREATION_H 1
10
13#include "Pandora/StatusCodes.h"
14
15namespace pandora
16{
17 class Algorithm; class Pandora;
18 template <typename Parameters, typename Object> class ObjectFactory;
19 template <typename Parameters, typename Object> class PandoraObjectFactory;
20}
21
22//------------------------------------------------------------------------------------------------------------------------------------------
23
25{
26
34template <typename PARAMETERS, typename METADATA, typename OBJECT>
36{
37public:
38 typedef PARAMETERS Parameters;
39 typedef METADATA Metadata;
40 typedef OBJECT Object;
41
51
60 static pandora::StatusCode Create(const pandora::Algorithm &algorithm, const Parameters &parameters,
62
70 static pandora::StatusCode AlterMetadata(const pandora::Algorithm &algorithm, const Object *const pObject, const Metadata &metadata);
71};
72
73//------------------------------------------------------------------------------------------------------------------------------------------
74
79{
80public:
84 virtual ~ObjectMetadata();
85};
86
87//------------------------------------------------------------------------------------------------------------------------------------------
88
93{
94public:
98 virtual ~ObjectParameters();
99};
100
101//------------------------------------------------------------------------------------------------------------------------------------------
102
113
141
143
144//------------------------------------------------------------------------------------------------------------------------------------------
145
160
162
163//------------------------------------------------------------------------------------------------------------------------------------------
164
187
189
190//------------------------------------------------------------------------------------------------------------------------------------------
191
196{
197public:
208
209 typedef std::vector<LayerParameters> LayerParametersVector;
210
231
233
256
258
271
273
285
287
303
305};
306
307//------------------------------------------------------------------------------------------------------------------------------------------
308
317
328
330
331//------------------------------------------------------------------------------------------------------------------------------------------
332
347
358
360
361//------------------------------------------------------------------------------------------------------------------------------------------
362
373
382
384
385//------------------------------------------------------------------------------------------------------------------------------------------
386
393template <typename PARAMETERS, typename OBJECT>
395{
396public:
397 typedef PARAMETERS Parameters;
398 typedef OBJECT Object;
399};
400
401//------------------------------------------------------------------------------------------------------------------------------------------
402
412
414
415//------------------------------------------------------------------------------------------------------------------------------------------
416//------------------------------------------------------------------------------------------------------------------------------------------
417
421
422//------------------------------------------------------------------------------------------------------------------------------------------
423//------------------------------------------------------------------------------------------------------------------------------------------
424
428
429} // namespace object_creation
430
431#endif // #ifndef PANDORA_OBJECT_CREATION_H
Header file for pandora input types and associated external typedefs exposed via the PandoraApi.
Header file defining relevant internal typedefs, sort and string conversion functions.
Header file defining status codes and relevant preprocessor macros.
Parameters class.
Definition Validation.h:20
CaloHit fragment creation class.
const pandora::CaloHit * m_pOriginalCaloHit
The address of the original calo hit.
pandora::InputFloat m_weight
The weight to be assigned to the fragment.
pandora::InputFloat m_x0
For LArTPC usage, the x-coordinate shift associated with a drift time t0 shift, units mm.
pandora::InputBool m_isPossibleMip
The calo hit minimum ionising particle flag.
pandora::InputBool m_isIsolated
The calo hit isolation flag.
pandora::InputCellGeometry m_cellGeometry
The cell geometry type, pointing or rectangular.
pandora::InputCartesianVector m_cellNormalVector
Unit normal to sampling layer, pointing outwards from the origin.
pandora::InputFloat m_electromagneticEnergy
The calibrated electromagnetic energy measure, units GeV.
pandora::InputUInt m_layer
The subdetector readout layer number.
pandora::InputFloat m_cellSize1
Cell size 1 [pointing: phi, rectangular: perpendicular to size 0 and thickness, units mm].
pandora::InputBool m_isDigital
Whether cell should be treated as digital.
pandora::InputFloat m_nCellInteractionLengths
Absorber material in front of cell, units interaction lengths.
pandora::InputHitType m_hitType
The type of calorimeter hit.
pandora::InputHitRegion m_hitRegion
Region of the detector in which the calo hit is located.
pandora::InputAddress m_pParentAddress
Address of the parent calo hit in the user framework.
pandora::InputBool m_isInOuterSamplingLayer
Whether cell is in one of the outermost detector sampling layers.
pandora::InputFloat m_mipEquivalentEnergy
The calibrated mip equivalent energy, units mip.
pandora::InputFloat m_hadronicEnergy
The calibrated hadronic energy measure, units GeV.
pandora::InputFloat m_inputEnergy
Corrected energy of calorimeter cell in user framework, units GeV.
pandora::InputFloat m_nCellRadiationLengths
Absorber material in front of cell, units radiation lengths.
pandora::InputFloat m_cellSize0
Cell size 0 [pointing: eta, rectangular: up in ENDCAP, along beam in BARREL, units mm].
pandora::InputCartesianVector m_positionVector
Position vector of center of calorimeter cell, units mm.
pandora::InputCartesianVector m_expectedDirection
Unit vector in direction of expected hit propagation.
pandora::InputFloat m_time
Time of (earliest) energy deposition in this cell, units ns.
pandora::InputFloat m_cellThickness
Cell thickness, units mm.
pandora::InputInt m_particleId
The cluster id (PDG code)
ClusterParameters class. To build a cluster must provide at least one hit (which may be isolated) or ...
pandora::InputTrackAddress m_pTrack
The address of the track seeding the cluster.
pandora::CaloHitList m_isolatedCaloHitList
The isolated calo hit(s) to include.
pandora::CaloHitList m_caloHitList
The calo hit(s) to include.
pandora::InputCartesianVector m_side2
Cartesian vector describing second side meeting vertex, units mm.
pandora::InputCartesianVector m_side1
Cartesian vector describing first side meeting vertex, units mm.
pandora::InputCartesianVector m_side3
Cartesian vector describing third side meeting vertex, units mm.
pandora::InputCartesianVector m_vertex
Cartesian coordinates of a gap vertex, units mm.
pandora::InputFloat m_innerPhiCoordinate
Inner cylindrical polar phi coordinate (angle wrt cartesian x axis)
pandora::InputUInt m_outerSymmetryOrder
Order of symmetry of the outermost edge of gap.
pandora::InputFloat m_maxZCoordinate
Max cylindrical polar z coordinate, origin interaction point, units mm.
pandora::InputFloat m_innerRCoordinate
Inner cylindrical polar r coordinate, origin interaction point, units mm.
pandora::InputFloat m_outerRCoordinate
Outer cylindrical polar r coordinate, origin interaction point, units mm.
pandora::InputFloat m_outerPhiCoordinate
Outer cylindrical polar phi coordinate (angle wrt cartesian x axis)
pandora::InputFloat m_minZCoordinate
Min cylindrical polar z coordinate, origin interaction point, units mm.
pandora::InputUInt m_innerSymmetryOrder
Order of symmetry of the innermost edge of gap.
pandora::InputFloat m_widthX
The width in x, units mm.
pandora::InputFloat m_widthY
The width in y, units mm.
pandora::InputBool m_isDriftInPositiveX
Whether the electron drift is in the positive x direction.
pandora::InputFloat m_centerY
The center in y, units mm.
pandora::InputFloat m_centerZ
The center in z, units mm.
pandora::InputFloat m_centerX
The center in x, units mm.
pandora::InputFloat m_widthZ
The width in z, units mm.
pandora::InputFloat m_wireAngleW
The w wire angle to the vertical, units radians.
pandora::InputFloat m_wirePitchV
The v wire pitch, units mm.
pandora::InputUInt m_larTPCVolumeId
The lar tpc volume id, must uniquely specify a single lar tpc.
pandora::InputFloat m_wireAngleV
The v wire angle to the vertical, units radians.
pandora::InputFloat m_sigmaUVW
The u, v, w resolution, units mm.
pandora::InputFloat m_wirePitchU
The u wire pitch, units mm.
pandora::InputFloat m_wirePitchW
The w wire pitch, units mm.
pandora::InputFloat m_wireAngleU
The u wire angle to the vertical, units radians.
pandora::InputFloat m_closestDistanceToIp
Closest distance of the layer from the interaction point, units mm.
pandora::InputFloat m_nRadiationLengths
Absorber material in front of layer, units radiation lengths.
pandora::InputFloat m_nInteractionLengths
Absorber material in front of layer, units interaction lengths.
pandora::InputFloat m_lineEndZ
The line end z coordinate, units mm.
pandora::InputFloat m_lineStartX
The line start x coordinate, units mm.
pandora::InputFloat m_lineEndX
The line end x coordinate, units mm.
pandora::InputLineGapType m_lineGapType
The type of line gap, e.g. TPC wire-type gap (u, v, w), or drift-type gap.
pandora::InputFloat m_lineStartZ
The line start z coordinate, units mm.
pandora::InputFloat m_innerRCoordinate
Inner cylindrical polar r coordinate, origin interaction point, units mm.
pandora::InputString m_subDetectorName
The sub detector name, must uniquely specify a single sub detector.
pandora::InputUInt m_innerSymmetryOrder
Order of symmetry of the innermost edge of subdetector.
pandora::InputUInt m_outerSymmetryOrder
Order of symmetry of the outermost edge of subdetector.
pandora::InputSubDetectorType m_subDetectorType
The sub detector type, e.g. ECAL_BARREL, HCAL_ENDCAP, TPC, etc.
pandora::InputFloat m_innerPhiCoordinate
Inner cylindrical polar phi coordinate (angle wrt cartesian x axis)
pandora::InputFloat m_outerRCoordinate
Outer cylindrical polar r coordinate, origin interaction point, units mm.
pandora::InputFloat m_outerPhiCoordinate
Outer cylindrical polar phi coordinate (angle wrt cartesian x axis)
pandora::InputUInt m_nLayers
The number of layers in the detector section.
pandora::InputFloat m_outerZCoordinate
Outer cylindrical polar z coordinate, origin interaction point, units mm.
pandora::InputFloat m_innerZCoordinate
Inner cylindrical polar z coordinate, origin interaction point, units mm.
LayerParametersVector m_layerParametersVector
The vector of layer parameters for the detector section.
pandora::InputBool m_isMirroredInZ
Whether to construct a second subdetector, via reflection in z=0 plane.
MCParticleParameters class.
pandora::InputFloat m_energy
The energy of the MC particle, units GeV.
pandora::InputAddress m_pParentAddress
Address of the parent MC particle in the user framework.
pandora::InputCartesianVector m_momentum
The momentum of the MC particle, units GeV.
pandora::InputMCParticleType m_mcParticleType
The type of mc particle, e.g. vertex, 2D-projection, etc.
pandora::InputCartesianVector m_vertex
The production vertex of the MC particle, units mm.
pandora::InputCartesianVector m_endpoint
The endpoint of the MC particle, units mm.
pandora::InputInt m_particleId
The MC particle's ID (PDG code)
Object creation helper class.
static pandora::StatusCode Create(const pandora::Algorithm &algorithm, const Parameters &parameters, const Object *&pObject, const pandora::ObjectFactory< Parameters, Object > &factory=pandora::PandoraObjectFactory< Parameters, Object >())
Create a new object from a user factory, receiving the address of the object created.
static pandora::StatusCode Create(const pandora::Pandora &pandora, const Parameters &parameters, const pandora::ObjectFactory< Parameters, Object > &factory=pandora::PandoraObjectFactory< Parameters, Object >())
Create a new object from a user factory.
static pandora::StatusCode AlterMetadata(const pandora::Algorithm &algorithm, const Object *const pObject, const Metadata &metadata)
Alter the metadata information stored in an object.
ParticleFlowObjectCreation class.
pandora::VertexList m_vertexList
The vertices in the particle flow object.
pandora::ClusterList m_clusterList
The clusters in the particle flow object.
pandora::TrackList m_trackList
The tracks in the particle flow object.
ParticleFlowObjectMetadata class.
pandora::InputFloat m_mass
The particle flow object mass.
pandora::StringVector m_propertiesToRemove
The vector of pfo property names to remove.
pandora::InputInt m_particleId
The particle flow object id (PDG code)
pandora::InputFloat m_energy
The particle flow object energy.
pandora::PropertiesMap m_propertiesToAdd
The mapping from pfo property names to new values.
pandora::InputCartesianVector m_momentum
The particle flow object momentum.
pandora::InputInt m_charge
The particle flow object charge.
pandora::InputInt m_particleId
The PDG code of the tracked particle.
pandora::InputBool m_reachesCalorimeter
Whether the track actually reaches the calorimeter.
pandora::InputInt m_charge
The charge of the tracked particle.
pandora::InputFloat m_mass
The mass of the tracked particle, units GeV.
pandora::InputBool m_canFormPfo
Whether track should form a pfo, if it has an associated cluster.
pandora::InputBool m_canFormClusterlessPfo
Whether track should form a pfo, even if it has no associated cluster.
pandora::InputTrackState m_trackStateAtEnd
Track state at the end of the track, units mm and GeV.
pandora::InputTrackState m_trackStateAtStart
Track state at the start of the track, units mm and GeV.
pandora::InputFloat m_z0
The z coordinate at the 2D distance of closest approach, units mm.
pandora::InputCartesianVector m_momentumAtDca
Track momentum at the 2D distance of closest approach, units GeV.
pandora::InputBool m_isProjectedToEndCap
Whether the calorimeter projection is to an endcap.
pandora::InputFloat m_timeAtCalorimeter
The (sometimes projected) time at the calorimeter, units ns.
pandora::InputTrackState m_trackStateAtCalorimeter
The (sometimes projected) track state at the calorimeter, units mm and GeV.
pandora::InputFloat m_d0
The 2D impact parameter wrt (0,0), units mm.
pandora::InputAddress m_pParentAddress
Address of the parent track in the user framework.
pandora::InputFloat m_x0
For LArTPC usage, the x-coordinate shift associated with a drift time t0 shift, units mm.
pandora::InputVertexLabel m_vertexLabel
The vertex label (interaction, start, end, etc.)
pandora::InputVertexType m_vertexType
The vertex type (3d, view u, v, w, etc.)
pandora::InputCartesianVector m_position
The vertex position.
Algorithm class. Algorithm addresses are held only by the algorithm manager. They have a fully define...
Definition Algorithm.h:21
CaloHit class.
Definition CaloHit.h:26
CaloHitMetadata class.
Definition Metadata.h:39
Cluster class.
Definition Cluster.h:31
MCParticle class.
Definition MCParticle.h:26
ObjectFactory class responsible for extended pandora object creation.
Pandora class.
Definition Pandora.h:40
PandoraObjectFactory class.
ParticleFlowObject class.
Track class.
Definition Track.h:26
Vertex class.
Definition Vertex.h:26
ObjectCreationHelper< ConcentricGapParameters, ObjectMetadata, pandora::ConcentricGap > ConcentricGap
ObjectCreationHelper< BoxGapParameters, ObjectMetadata, pandora::BoxGap > BoxGap
std::vector< LayerParameters > LayerParametersVector
ObjectCreationHelper< SubDetectorParameters, ObjectMetadata, pandora::SubDetector > SubDetector
TypedefHelper< CaloHitFragmentParameters, pandora::CaloHit > CaloHitFragment
ObjectCreationHelper< LineGapParameters, ObjectMetadata, pandora::LineGap > LineGap
ObjectCreationHelper< LArTPCParameters, ObjectMetadata, pandora::LArTPC > LArTPC
Type definition helper class.
MANAGED_CONTAINER< const Cluster * > ClusterList
std::vector< std::string > StringVector
MANAGED_CONTAINER< const CaloHit * > CaloHitList
MANAGED_CONTAINER< const Track * > TrackList
MANAGED_CONTAINER< const Vertex * > VertexList
std::map< std::string, float > PropertiesMap
StatusCode
The StatusCode enum.