2// Authors: W. Brown, M. Fischler, L. Moneta 2005
3
4
5// for template PositionVector3D functions
6
7#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::operator=(const ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> > &);
8#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::operator=(const ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> > &);
9#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::operator=(const ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> > &);
10#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::operator=(const ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> > &);
11#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::operator=(const ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> > &);
12#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::operator=(const ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> > &);
13
14//dot product
15
16#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::Dot(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &) const;
17#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::Dot(const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
18#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::Dot(const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
19
20#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::Dot(const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
21#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::Dot(const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
22#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::Dot(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
23
24#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::Dot(const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
25#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::Dot(const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
26#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::Dot(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
27
28
29// Cross product
30
31#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::Cross(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &) const;
32#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::Cross(const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
33#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::Cross(const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
34
35#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::Cross(const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
36#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::Cross(const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
37#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::Cross(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
38
39#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::Cross(const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
40#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::Cross(const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
41#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::Cross(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
42
43
44// operator +=
45
46#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::operator-=(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
47#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::operator-=(const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
48#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::operator-=(const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
49
50#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::operator-=(const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
51#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::operator-=(const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
52#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::operator-=(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
53
54#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::operator-=(const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
55#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::operator-=(const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
56#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::operator-=(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
57
58
59// operator -=
60
61#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::operator+=(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
62#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::operator+=(const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
63#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> >::operator+=(const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
64
65#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::operator+=(const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
66#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::operator+=(const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
67#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >::operator+=(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
68
69#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::operator+=(const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
70#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::operator+=(const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
71#pragma link C++ function ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >::operator+=(const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
72
73
74// operator P = P + V returning point
75#pragma link C++ function ROOT::Math::operator+( ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> > , const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
76#pragma link C++ function ROOT::Math::operator+( ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> > , const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
77#pragma link C++ function ROOT::Math::operator+( ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> > , const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
78
79#pragma link C++ function ROOT::Math::operator+( ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >, const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
80#pragma link C++ function ROOT::Math::operator+(ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >, const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
81#pragma link C++ function ROOT::Math::operator+(ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >, const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
82
83#pragma link C++ function ROOT::Math::operator+(ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >, const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
84#pragma link C++ function ROOT::Math::operator+(ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >, const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
85#pragma link C++ function ROOT::Math::operator+(ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >, const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
86
87
88// operator P = V + P returning point
89// these will not wok since CINT will instantiate those like V = V + P
90#pragma link C++ function ROOT::Math::operator+( const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > & , ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> > );
91#pragma link C++ function ROOT::Math::operator+( const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &, ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> > );
92#pragma link C++ function ROOT::Math::operator+( const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &, ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> > );
93
94
95
96
97// operator V = P-P (cannot work in CINT if I can have V = V-V
98#pragma link C++ function ROOT::Math::operator-( const ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> > &, const ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> > &);
99#pragma link C++ function ROOT::Math::operator-( ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> > , const ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> > &);
100#pragma link C++ function ROOT::Math::operator-( ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> > , const ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> > &);
101
102
103
104// // operator P = P-V
105
106#pragma link C++ function ROOT::Math::operator-( ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> > , const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
107#pragma link C++ function ROOT::Math::operator-( ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> > , const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
108#pragma link C++ function ROOT::Math::operator-( ROOT::Math::PositionVector3D<ROOT::Math::Cartesian3D<double> > , const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
109
110#pragma link C++ function ROOT::Math::operator-( ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >, const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
111#pragma link C++ function ROOT::Math::operator-(ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >, const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
112#pragma link C++ function ROOT::Math::operator-(ROOT::Math::PositionVector3D<ROOT::Math::Polar3D<double> >, const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
113
114#pragma link C++ function ROOT::Math::operator-(ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >, const ROOT::Math::DisplacementVector3D<ROOT::Math::CylindricalEta3D<double> > &);
115#pragma link C++ function ROOT::Math::operator-(ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >, const ROOT::Math::DisplacementVector3D<ROOT::Math::Polar3D<double> > &);
116#pragma link C++ function ROOT::Math::operator-(ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >, const ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double> > &);
117
118
119// utility functions
120
121// delta Phi
122#pragma link C++ function ROOT::Math::VectorUtil::DeltaPhi ( const ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double> > &, const ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double> > &);
123#pragma link C++ function ROOT::Math::VectorUtil::DeltaPhi ( const ROOT::Math::PositionVector3D< ROOT::Math::Polar3D< double> > &, const ROOT::Math::PositionVector3D< ROOT::Math::Polar3D< double> > &);
124#pragma link C++ function ROOT::Math::VectorUtil::DeltaPhi ( const ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double> > &, const ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double> > &);
125
126// deltaR
127
128#pragma link C++ function ROOT::Math::VectorUtil::DeltaR ( const ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double> > &, const ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double> > &);
129#pragma link C++ function ROOT::Math::VectorUtil::DeltaR ( const ROOT::Math::PositionVector3D< ROOT::Math::Polar3D< double> > &, const ROOT::Math::PositionVector3D< ROOT::Math::Polar3D< double> > &);
130#pragma link C++ function ROOT::Math::VectorUtil::DeltaR ( const ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double> > &, const ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double> > &);
131
132// cosTheta
133
134#pragma link C++ function ROOT::Math::VectorUtil::CosTheta ( const ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double> > &, const ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double> > &);
135#pragma link C++ function ROOT::Math::VectorUtil::CosTheta ( const ROOT::Math::PositionVector3D< ROOT::Math::Polar3D< double> > &, const ROOT::Math::PositionVector3D< ROOT::Math::Polar3D< double> > &);
136#pragma link C++ function ROOT::Math::VectorUtil::CosTheta ( const ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double> > &, const ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double> > &);
137
138// angle
139
140#pragma link C++ function ROOT::Math::VectorUtil::Angle ( const ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double> > &, const ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double> > &);
141#pragma link C++ function ROOT::Math::VectorUtil::Angle ( const ROOT::Math::PositionVector3D< ROOT::Math::Polar3D< double> > &, const ROOT::Math::PositionVector3D< ROOT::Math::Polar3D< double> > &);
142#pragma link C++ function ROOT::Math::VectorUtil::Angle ( const ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double> > &, const ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double> > &);