LArSoft  v07_13_02
Liquid Argon Software toolkit - http://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 <vector>
13 #include <iosfwd>
14 #include <iostream>
15 #include <iomanip>
16 #include <TVector3.h>
17 
20 
21 namespace anab {
22 
24 
25  class Calorimetry{
26  public:
27 
28  Calorimetry();
29 
31  std::vector<float> fdEdx;
32  std::vector<float> fdQdx;
33  std::vector<float> fResidualRange;
34  std::vector<float> fDeadWireResR;
35  float fRange;
36  std::vector<float> fTrkPitch;
37  std::vector<Point_t> fXYZ;
38  std::vector<size_t> fTpIndices;
39 
40  private:
42 
43  public:
44 
45  Calorimetry(float KinematicEnergy,
46  std::vector<float> const& dEdx,
47  std::vector<float> const& dQdx,
48  std::vector<float> const& resRange,
49  std::vector<float> const& deadwire,
50  float Range,
51  float TrkPitch,
52  geo::PlaneID planeID);
53 
55  std::vector<float> const& dEdx,
56  std::vector<float> const& dQdx,
57  std::vector<float> const& resRange,
58  std::vector<float> const& deadwire,
59  float Range,
60  std::vector<float> const& TrkPitch,
61  geo::PlaneID planeID);
62 
64  std::vector<float> const& dEdx,
65  std::vector<float> const& dQdx,
66  std::vector<float> const& resRange,
67  std::vector<float> const& deadwire,
68  float Range,
69  std::vector<float> const& TrkPitch,
70  std::vector<Point_t> const& XYZ,
71  geo::PlaneID planeID);
72 
74  std::vector<float> const& dEdx,
75  std::vector<float> const& dQdx,
76  std::vector<float> const& resRange,
77  std::vector<float> const& deadwire,
78  float Range,
79  std::vector<float> const& TrkPitch,
80  std::vector<Point_t> const& XYZ,
81  std::vector<size_t> const& TpIndices,
82  geo::PlaneID planeID);
83 
84  friend std::ostream& operator << (std::ostream &o, Calorimetry const& a);
85 
86  const std::vector<float>& dEdx() const;
87  const std::vector<float>& dQdx() const;
88  const std::vector<float>& ResidualRange() const;
89  const std::vector<float>& DeadWireResRC() const;
90  const float& KineticEnergy() const;
91  const float& Range() const;
92  float TrkPitchC() const;
93  const std::vector<float>& TrkPitchVec() const;
94  const std::vector<Point_t>& XYZ() const;
95  const std::vector<size_t>& TpIndices() const;
96  const geo::PlaneID& PlaneID() const;
97 
98 
99  };
100 
101 }
102 
103 
104 inline const std::vector<float>& anab::Calorimetry::dEdx() const { return fdEdx; }
105 inline const std::vector<float>& anab::Calorimetry::dQdx() const { return fdQdx; }
106 inline const std::vector<float>& anab::Calorimetry::ResidualRange() const { return fResidualRange; }
107 inline const std::vector<float>& anab::Calorimetry::DeadWireResRC() const { return fDeadWireResR; }
108 inline const float& anab::Calorimetry::KineticEnergy() const { return fKineticEnergy; }
109 inline const float& anab::Calorimetry::Range() const { return fRange; }
110 inline const std::vector<float>& anab::Calorimetry::TrkPitchVec() const { return fTrkPitch; }
111 inline float anab::Calorimetry::TrkPitchC() const
112 {
113  if (fTrkPitch.size())
114  return fTrkPitch[0];
115  else return 0;
116 }
117 inline const std::vector<anab::Point_t>& anab::Calorimetry::XYZ() const { return fXYZ; }
118 inline const std::vector<size_t>& anab::Calorimetry::TpIndices() const { return fTpIndices;}
119 inline const geo::PlaneID& anab::Calorimetry::PlaneID() const { return fPlaneID; }
120 
121 #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:34
std::vector< size_t > fTpIndices
indices of original trajectory points on track
Definition: Calorimetry.h:38
std::vector< float > fdEdx
dE/dx, should be same size as fResidualRange
Definition: Calorimetry.h:31
float fKineticEnergy
determined kinetic energy
Definition: Calorimetry.h:30
recob::tracking::Point_t Point_t
Definition: Calorimetry.h:23
The data type to uniquely identify a Plane.
Definition: geo_types.h:250
const geo::PlaneID & PlaneID() const
Definition: Calorimetry.h:119
std::vector< float > fdQdx
dQ/dx
Definition: Calorimetry.h:32
const std::vector< Point_t > & XYZ() const
Definition: Calorimetry.h:117
const std::vector< float > & DeadWireResRC() const
Definition: Calorimetry.h:107
const std::vector< float > & ResidualRange() const
Definition: Calorimetry.h:106
std::vector< float > fTrkPitch
track pitch on collection plane
Definition: Calorimetry.h:36
const std::vector< float > & dQdx() const
Definition: Calorimetry.h:105
std::vector< float > fResidualRange
range from end of track
Definition: Calorimetry.h:33
Definition of data types for geometry description.
const std::vector< float > & dEdx() const
Definition: Calorimetry.h:104
float TrkPitchC() const
Definition: Calorimetry.h:111
const std::vector< size_t > & TpIndices() const
Definition: Calorimetry.h:118
const std::vector< float > & TrkPitchVec() const
Definition: Calorimetry.h:110
float fRange
total range of track
Definition: Calorimetry.h:35
std::vector< Point_t > fXYZ
coordinates of space points; for a discussion on the object type for coordinates see recob::tracking:...
Definition: Calorimetry.h:37
const float & KineticEnergy() const
Definition: Calorimetry.h:108
geo::PlaneID fPlaneID
Definition: Calorimetry.h:41
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:26
const float & Range() const
Definition: Calorimetry.h:109