LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
LArTrackPfo.h
Go to the documentation of this file.
1 
8 #ifndef LAR_TRACK_PFO_H
9 #define LAR_TRACK_PFO_H 1
10 
11 #include "Objects/CartesianVector.h"
12 #include "Objects/ParticleFlowObject.h"
13 #include "Objects/TrackState.h"
14 
15 #include "Pandora/ObjectCreation.h"
16 #include "Pandora/ObjectFactory.h"
17 
19 
20 namespace pandora
21 {
22 class CaloHit;
23 }
24 
25 //------------------------------------------------------------------------------------------------------------------------------------------
26 
27 namespace lar_content
28 {
29 
33 class LArTrackPfoParameters : public object_creation::ParticleFlowObject::Parameters
34 {
35 public:
37 };
38 
39 //------------------------------------------------------------------------------------------------------------------------------------------
40 
44 class LArTrackPfo : public pandora::ParticleFlowObject
45 {
46 public:
50  LArTrackPfo(const LArTrackPfoParameters &parameters);
51 
55  const pandora::CartesianVector &GetVertexPosition() const;
56 
60  const pandora::CartesianVector &GetEndPosition() const;
61 
65  const pandora::CartesianVector &GetVertexDirection() const;
66 
70  const pandora::CartesianVector &GetEndDirection() const;
71 
72 public:
74 
75 private:
76  // OTHER MEMBER VARIABLES GO HERE
77 };
78 
79 //------------------------------------------------------------------------------------------------------------------------------------------
80 
84 class LArTrackPfoFactory : public pandora::ObjectFactory<object_creation::ParticleFlowObject::Parameters, pandora::ParticleFlowObject>
85 {
86 public:
92  Parameters *NewParameters() const;
93 
100  pandora::StatusCode Read(Parameters &parameters, pandora::FileReader &fileReader) const;
101 
108  pandora::StatusCode Write(const pandora::ParticleFlowObject *const pObject, pandora::FileWriter &fileWriter) const;
109 
116  pandora::StatusCode Create(const object_creation::ParticleFlowObject::Parameters &parameters, const pandora::ParticleFlowObject *&pObject) const;
117 };
118 
119 //------------------------------------------------------------------------------------------------------------------------------------------
120 //------------------------------------------------------------------------------------------------------------------------------------------
121 
122 inline LArTrackPfoFactory::Parameters *LArTrackPfoFactory::NewParameters() const
123 {
124  return (new LArTrackPfoParameters);
125 }
126 
127 //------------------------------------------------------------------------------------------------------------------------------------------
128 
129 inline pandora::StatusCode LArTrackPfoFactory::Create(const Parameters &parameters, const pandora::ParticleFlowObject *&pObject) const
130 {
131  const LArTrackPfoParameters &larPfoParameters(dynamic_cast<const LArTrackPfoParameters &>(parameters));
132  pObject = new LArTrackPfo(larPfoParameters);
133 
134  return pandora::STATUS_CODE_SUCCESS;
135 }
136 
137 //------------------------------------------------------------------------------------------------------------------------------------------
138 
139 inline pandora::StatusCode LArTrackPfoFactory::Read(Parameters &, pandora::FileReader &) const
140 {
141  // TODO: Provide this functionality when necessary
142 
143  return pandora::STATUS_CODE_SUCCESS;
144 }
145 
146 //------------------------------------------------------------------------------------------------------------------------------------------
147 
148 inline pandora::StatusCode LArTrackPfoFactory::Write(const pandora::ParticleFlowObject *, pandora::FileWriter &) const
149 {
150  // TODO: Provide this functionality when necessary
151 
152  return pandora::STATUS_CODE_SUCCESS;
153 }
154 
155 } // namespace lar_content
156 
157 #endif // #ifndef LAR_TRACK_PFO_H
lar pfo object
Definition: LArTrackPfo.h:44
Read("Flexi","livermore")
Header file for lar pfo objects.
const LArTrackStateVector m_trackStateVector
The vector of track states.
Definition: LArTrackPfo.h:73
LArTrackStateVector m_trackStateVector
Definition: LArTrackPfo.h:36
lar pfo object factory responsible for pfo creation
Definition: LArTrackPfo.h:84
std::vector< LArTrackState > LArTrackStateVector
Definition: LArPfoObjects.h:67