CMS 3D CMS Logo

TrajectoryStateOnSurfacePrint.cc
Go to the documentation of this file.
2 #include <ostream>
3 
4 using namespace std;
5 
6 ostream &operator<<(std::ostream &os, const TrajectoryStateOnSurface &tsos) {
7  os << "global parameters" << endl;
8  {
9  const AlgebraicVector6 &v = tsos.globalParameters().vector();
10  os << "x = ";
11  {
12  for (int i = 0; i < 3; i++) {
13  os.precision(6);
14  os.width(13);
15  os << v[i];
16  }
17  }
18  os << endl;
19  os << "p = ";
20  {
21  for (int i = 3; i < 6; i++) {
22  os.precision(6);
23  os.width(13);
24  os << v[i];
25  }
26  }
27  os << endl;
28  }
29  if (tsos.hasError()) {
30  os << "global error" << endl;
31  {
33  for (int i = 0; i < 5; i++) {
34  for (int j = 0; j < 5; j++) {
35  os.precision(6);
36  os.width(13);
37  os << m(i, j);
38  }
39  os << endl;
40  }
41  }
42  }
43  if (tsos.localParameters().charge() != 0)
44  os << "local parameters (q/p,v',w',v,w)" << endl;
45  else
46  os << "local parameters for neutral (1/p,v',w',v,w)" << endl;
47  {
49  for (int i = 0; i < 5; i++) {
50  os.precision(6);
51  os.width(13);
52  os << v[i];
53  }
54  os << endl;
55  }
56  if (tsos.hasError()) {
57  os << "local error" << endl;
58  {
59  const AlgebraicSymMatrix55 &m = tsos.localError().matrix();
60  for (int i = 0; i < 5; i++) {
61  for (int j = 0; j < 5; j++) {
62  os.precision(6);
63  os.width(13);
64  os << m(i, j);
65  }
66  os << endl;
67  }
68  }
69  }
70  os << "Defined at ";
72  os << "beforeSurface";
74  os << "afterSurface";
75  else
76  os << "atCenterOfSurface";
77  os << endl;
78 
79  // magnetic field
80  os << "Magnetic field in inverse GeV: " << tsos.globalParameters().magneticFieldInInverseGeV(tsos.globalPosition());
81  os << endl;
82 
83  return os;
84 }
SurfaceSide surfaceSide() const
Position relative to material, defined relative to momentum vector.
const LocalTrajectoryError & localError() const
const GlobalTrajectoryParameters & globalParameters() const
const LocalTrajectoryParameters & localParameters() const
GlobalPoint globalPosition() const
ROOT::Math::SVector< double, 5 > AlgebraicVector5
std::ostream & operator<<(std::ostream &out, const std::tuple< Types... > &value)
Definition: Utilities.h:32
GlobalVector magneticFieldInInverseGeV(const GlobalPoint &x) const
TrackCharge charge() const
Charge (-1, 0 or 1)
AlgebraicVector5 mixedFormatVector() const
const CurvilinearTrajectoryError & curvilinearError() const
const AlgebraicSymMatrix55 & matrix() const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
const AlgebraicSymMatrix55 & matrix() const
ROOT::Math::SVector< double, 6 > AlgebraicVector6