LArSoft  v06_85_00
Liquid Argon Software toolkit - http://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/TrackState.h"
12 #include "Objects/CartesianVector.h"
13 #include "Objects/ParticleFlowObject.h"
14 
15 #include "Pandora/ObjectCreation.h"
16 #include "Pandora/ObjectFactory.h"
17 
19 
20 namespace pandora {class CaloHit;}
21 
22 //------------------------------------------------------------------------------------------------------------------------------------------
23 
24 namespace lar_content
25 {
26 
30 class LArTrackPfoParameters : public object_creation::ParticleFlowObject::Parameters
31 {
32 public:
34 };
35 
36 //------------------------------------------------------------------------------------------------------------------------------------------
37 
41 class LArTrackPfo : public pandora::ParticleFlowObject
42 {
43 public:
47  LArTrackPfo(const LArTrackPfoParameters &parameters);
48 
52  const pandora::CartesianVector &GetVertexPosition() const;
53 
57  const pandora::CartesianVector &GetEndPosition() const;
58 
62  const pandora::CartesianVector &GetVertexDirection() const;
63 
67  const pandora::CartesianVector &GetEndDirection() const;
68 
69 public:
71 
72 private:
73  // OTHER MEMBER VARIABLES GO HERE
74 };
75 
76 //------------------------------------------------------------------------------------------------------------------------------------------
77 
81 class LArTrackPfoFactory : public pandora::ObjectFactory<object_creation::ParticleFlowObject::Parameters, pandora::ParticleFlowObject>
82 {
83 public:
89  Parameters *NewParameters() const;
90 
97  pandora::StatusCode Read(Parameters &parameters, pandora::FileReader &fileReader) const;
98 
105  pandora::StatusCode Write(const pandora::ParticleFlowObject *const pObject, pandora::FileWriter &fileWriter) const;
106 
113  pandora::StatusCode Create(const object_creation::ParticleFlowObject::Parameters &parameters, const pandora::ParticleFlowObject *&pObject) const;
114 };
115 
116 //------------------------------------------------------------------------------------------------------------------------------------------
117 //------------------------------------------------------------------------------------------------------------------------------------------
118 
119 inline LArTrackPfoFactory::Parameters *LArTrackPfoFactory::NewParameters() const
120 {
121  return (new LArTrackPfoParameters);
122 }
123 
124 //------------------------------------------------------------------------------------------------------------------------------------------
125 
126 inline pandora::StatusCode LArTrackPfoFactory::Create(const Parameters &parameters, const pandora::ParticleFlowObject *&pObject) const
127 {
128  const LArTrackPfoParameters &larPfoParameters(dynamic_cast<const LArTrackPfoParameters&>(parameters));
129  pObject = new LArTrackPfo(larPfoParameters);
130 
131  return pandora::STATUS_CODE_SUCCESS;
132 }
133 
134 //------------------------------------------------------------------------------------------------------------------------------------------
135 
136 inline pandora::StatusCode LArTrackPfoFactory::Read(Parameters&, pandora::FileReader&) const
137 {
138  // TODO: Provide this functionality when necessary
139 
140  return pandora::STATUS_CODE_SUCCESS;
141 }
142 
143 //------------------------------------------------------------------------------------------------------------------------------------------
144 
145 inline pandora::StatusCode LArTrackPfoFactory::Write(const pandora::ParticleFlowObject*, pandora::FileWriter&) const
146 {
147  // TODO: Provide this functionality when necessary
148 
149  return pandora::STATUS_CODE_SUCCESS;
150 }
151 
152 } // namespace lar_content
153 
154 #endif // #ifndef LAR_TRACK_PFO_H
lar pfo object
Definition: LArTrackPfo.h:41
Header file for lar pfo objects.
const LArTrackStateVector m_trackStateVector
The vector of track states.
Definition: LArTrackPfo.h:70
LArTrackStateVector m_trackStateVector
Definition: LArTrackPfo.h:33
lar pfo object factory responsible for pfo creation
Definition: LArTrackPfo.h:81
std::vector< LArTrackState > LArTrackStateVector
Definition: LArPfoObjects.h:64