LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
Calorimetry.h
Go to the documentation of this file.
1 // \version
3 //
4 // \brief Definition of data product to hold Calorimetry information
5 //
6 // \author brebel@fnal.gov, tjyang@fnal.gov
7 //
9 #ifndef ANAB_CALORIMETRY_H
10 #define ANAB_CALORIMETRY_H
11 
12 #include <iosfwd>
13 #include <vector>
14 
17 
18 namespace anab {
19 
21 
22  class Calorimetry {
23  public:
24  Calorimetry();
25 
27  std::vector<float> fdEdx;
28  std::vector<float> fdQdx;
29  std::vector<float> fResidualRange;
30  std::vector<float> fDeadWireResR;
31  float fRange;
32  std::vector<float> fTrkPitch;
33  std::vector<Point_t>
34  fXYZ;
35  std::vector<size_t> fTpIndices;
36 
37  private:
39 
40  public:
41  Calorimetry(float KinematicEnergy,
42  std::vector<float> const& dEdx,
43  std::vector<float> const& dQdx,
44  std::vector<float> const& resRange,
45  std::vector<float> const& deadwire,
46  float Range,
47  float TrkPitch,
48  geo::PlaneID planeID);
49 
51  std::vector<float> const& dEdx,
52  std::vector<float> const& dQdx,
53  std::vector<float> const& resRange,
54  std::vector<float> const& deadwire,
55  float Range,
56  std::vector<float> const& TrkPitch,
57  geo::PlaneID planeID);
58 
60  std::vector<float> const& dEdx,
61  std::vector<float> const& dQdx,
62  std::vector<float> const& resRange,
63  std::vector<float> const& deadwire,
64  float Range,
65  std::vector<float> const& TrkPitch,
66  std::vector<Point_t> const& XYZ,
67  geo::PlaneID planeID);
68 
70  std::vector<float> const& dEdx,
71  std::vector<float> const& dQdx,
72  std::vector<float> const& resRange,
73  std::vector<float> const& deadwire,
74  float Range,
75  std::vector<float> const& TrkPitch,
76  std::vector<Point_t> const& XYZ,
77  std::vector<size_t> const& TpIndices,
78  geo::PlaneID planeID);
79 
80  friend std::ostream& operator<<(std::ostream& o, Calorimetry const& a);
81 
82  const std::vector<float>& dEdx() const;
83  const std::vector<float>& dQdx() const;
84  const std::vector<float>& ResidualRange() const;
85  const std::vector<float>& DeadWireResRC() const;
86  const float& KineticEnergy() const;
87  const float& Range() const;
88  float TrkPitchC() const;
89  const std::vector<float>& TrkPitchVec() const;
90  const std::vector<Point_t>& XYZ() const;
91  const std::vector<size_t>& TpIndices() const;
92  const geo::PlaneID& PlaneID() const;
93  };
94 
95 }
96 
97 inline const std::vector<float>& anab::Calorimetry::dEdx() const
98 {
99  return fdEdx;
100 }
101 inline const std::vector<float>& anab::Calorimetry::dQdx() const
102 {
103  return fdQdx;
104 }
105 inline const std::vector<float>& anab::Calorimetry::ResidualRange() const
106 {
107  return fResidualRange;
108 }
109 inline const std::vector<float>& anab::Calorimetry::DeadWireResRC() const
110 {
111  return fDeadWireResR;
112 }
113 inline const float& anab::Calorimetry::KineticEnergy() const
114 {
115  return fKineticEnergy;
116 }
117 inline const float& anab::Calorimetry::Range() const
118 {
119  return fRange;
120 }
121 inline const std::vector<float>& anab::Calorimetry::TrkPitchVec() const
122 {
123  return fTrkPitch;
124 }
125 inline float anab::Calorimetry::TrkPitchC() const
126 {
127  if (fTrkPitch.size())
128  return fTrkPitch[0];
129  else
130  return 0;
131 }
132 inline const std::vector<anab::Point_t>& anab::Calorimetry::XYZ() const
133 {
134  return fXYZ;
135 }
136 inline const std::vector<size_t>& anab::Calorimetry::TpIndices() const
137 {
138  return fTpIndices;
139 }
141 {
142  return fPlaneID;
143 }
144 
145 #endif //ANAB_CALORIMETRY_H
friend std::ostream & operator<<(std::ostream &o, Calorimetry const &a)
std::vector< float > fDeadWireResR
dead wire residual range, collection plane
Definition: Calorimetry.h:30
std::vector< size_t > fTpIndices
indices of original trajectory points on track
Definition: Calorimetry.h:35
std::vector< float > fdEdx
dE/dx, should be same size as fResidualRange
Definition: Calorimetry.h:27
float fKineticEnergy
determined kinetic energy
Definition: Calorimetry.h:26
recob::tracking::Point_t Point_t
Definition: Calorimetry.h:20
The data type to uniquely identify a Plane.
Definition: geo_types.h:463
const geo::PlaneID & PlaneID() const
Definition: Calorimetry.h:140
std::vector< float > fdQdx
dQ/dx
Definition: Calorimetry.h:28
const std::vector< Point_t > & XYZ() const
Definition: Calorimetry.h:132
const std::vector< float > & DeadWireResRC() const
Definition: Calorimetry.h:109
const std::vector< float > & ResidualRange() const
Definition: Calorimetry.h:105
std::vector< float > fTrkPitch
track pitch on collection plane
Definition: Calorimetry.h:32
const std::vector< float > & dQdx() const
Definition: Calorimetry.h:101
std::vector< float > fResidualRange
range from end of track
Definition: Calorimetry.h:29
Definition of data types for geometry description.
const std::vector< float > & dEdx() const
Definition: Calorimetry.h:97
float TrkPitchC() const
Definition: Calorimetry.h:125
const std::vector< size_t > & TpIndices() const
Definition: Calorimetry.h:136
const std::vector< float > & TrkPitchVec() const
Definition: Calorimetry.h:121
float fRange
total range of track
Definition: Calorimetry.h:31
std::vector< Point_t > fXYZ
coordinates of space points; for a discussion on the object type for coordinates see recob::tracking:...
Definition: Calorimetry.h:34
const float & KineticEnergy() const
Definition: Calorimetry.h:113
geo::PlaneID fPlaneID
Definition: Calorimetry.h:38
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< Coord_t >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space. See recob::tracking::Coord_t for more detai...
Definition: TrackingTypes.h:27
const float & Range() const
Definition: Calorimetry.h:117