10 #include "cetlib_except/exception.h" 30 std::vector<double>
const&
dEdx,
31 std::vector<double>
const&
dQdx,
32 std::vector<double>
const& resRange,
33 std::vector<double>
const& deadwire,
41 for(
size_t i=0; i!=dQdx.size(); ++i){
43 TVector3 v(-999,-999,-999);
46 if(dEdx.size() != resRange.size())
47 throw cet::exception(
"anab::Calorimetry") <<
"dE/dx and residual range vectors " 48 <<
"have different sizes, this is a problem.\n";
49 fdEdx.resize(dEdx.size());
50 fdQdx.resize(dQdx.size());
52 for(
size_t i = 0; i < dEdx.size(); ++i){
59 for(
size_t i = 0; i<deadwire.size(); ++i){
69 std::vector<double>
const&
dEdx,
70 std::vector<double>
const&
dQdx,
71 std::vector<double>
const& resRange,
72 std::vector<double>
const& deadwire,
74 std::vector<double>
const& TrkPitch,
82 if(dEdx.size() != resRange.size())
83 throw cet::exception(
"anab::Calorimetry") <<
"dE/dx and residual range vectors " 84 <<
"have different sizes, this is a problem.\n";
85 for(
size_t i=0; i!=dQdx.size(); ++i){
86 TVector3 v(-999,-999,-999);
89 fdEdx.resize(dEdx.size());
90 fdQdx.resize(dQdx.size());
92 for(
size_t i = 0; i < dEdx.size(); ++i){
99 for(
size_t i = 0; i<deadwire.size(); ++i){
107 std::vector<double>
const&
dEdx,
108 std::vector<double>
const&
dQdx,
109 std::vector<double>
const& resRange,
110 std::vector<double>
const& deadwire,
112 std::vector<double>
const& TrkPitch,
113 std::vector<TVector3>
const&
XYZ,
121 if(dEdx.size() != resRange.size())
122 throw cet::exception(
"anab::Calorimetry") <<
"dE/dx and residual range vectors " 123 <<
"have different sizes, this is a problem.\n";
124 for(
size_t i=0; i!=dQdx.size(); ++i){
125 fXYZ.push_back(TVector3(-999,-999,-999));
127 fdEdx.resize(dEdx.size());
128 fdQdx.resize(dQdx.size());
130 fXYZ.resize(XYZ.size());
131 for(
size_t i = 0; i < dEdx.size(); ++i){
139 for(
size_t i = 0; i<deadwire.size(); ++i){
151 <<
"\n Range: " << a.
fRange << std::endl;
153 for(
size_t n = 0;
n < a.
fdEdx.size(); ++
n)
154 o <<
"dE/dx=" << a.
fdEdx[
n]
156 <<
" dQ/dx=" << a.
fdQdx[
n]
157 <<
" (x,y,z)=(" << a.
fXYZ[
n].X() <<
"," << a.
fXYZ[
n].Y() <<
"," << a.
fXYZ[
n].Z() <<
")" friend std::ostream & operator<<(std::ostream &o, Calorimetry const &a)
double fRange
total range of track
std::vector< TVector3 > fXYZ
coordinates of space points
const double & KineticEnergy() const
The data type to uniquely identify a Plane.
std::vector< double > fdQdx
dQ/dx
CryostatID_t Cryostat
Index of cryostat.
const std::vector< TVector3 > & XYZ() const
std::vector< double > fdEdx
dE/dx, should be same size as fResidualRange
std::vector< double > fResidualRange
range from end of track
double fKineticEnergy
determined kinetic energy
const std::vector< double > & dQdx() const
PlaneID_t Plane
Index of the plane within its TPC.
std::vector< double > fTrkPitch
track pitch on collection plane
std::vector< double > fDeadWireResR
dead wire residual range, collection plane
const double & Range() const
TPCID_t TPC
Index of the TPC within its cryostat.
const std::vector< double > & dEdx() const
cet::coded_exception< error, detail::translate > exception