```// @(#)root/eve:\$Id\$

/*************************************************************************
*                                                                       *
* For the licensing terms see \$ROOTSYS/LICENSE.                         *
* For the list of contributors see \$ROOTSYS/README/CREDITS.             *
*************************************************************************/

#ifndef ROOT_TEveVector
#define ROOT_TEveVector

#include "TMath.h"

class TVector3;

//==============================================================================
// TEveVectorT
//==============================================================================

template <typename TT>
class TEveVectorT
{
public:
TT fX, fY, fZ; // Components of the vector.

TEveVectorT() : fX(0), fY(0), fZ(0) {}
template <typename OO>
TEveVectorT(const TEveVectorT<OO>& v) : fX(v.fX), fY(v.fY), fZ(v.fZ) {}
TEveVectorT(const Float_t*  v) : fX(v[0]), fY(v[1]), fZ(v[2]) {}
TEveVectorT(const Double_t* v) : fX(v[0]), fY(v[1]), fZ(v[2]) {}
TEveVectorT(TT x, TT y, TT  z) : fX(x), fY(y), fZ(z) {}

void Dump() const;

operator const TT*() const { return &fX; }
operator       TT*()       { return &fX; }

TT  operator [] (Int_t idx) const { return (&fX)[idx]; }
TT& operator [] (Int_t idx)       { return (&fX)[idx]; }

const TT* Arr() const { return &fX; }
TT* Arr()             { return &fX; }

TEveVectorT& operator*=(TT s)                 { fX *= s;    fY *= s;    fZ *= s;    return *this; }
TEveVectorT& operator+=(const TEveVectorT& v) { fX += v.fX; fY += v.fY; fZ += v.fZ; return *this; }
TEveVectorT& operator-=(const TEveVectorT& v) { fX -= v.fX; fY -= v.fY; fZ -= v.fZ; return *this; }

void Set(const Float_t*  v) { fX = v[0]; fY = v[1]; fZ = v[2]; }
void Set(const Double_t* v) { fX = v[0]; fY = v[1]; fZ = v[2]; }
void Set(TT x, TT  y, TT z) { fX = x; fY = y; fZ = z; }
void Set(const TVector3& v);

template <typename OO>
void Set(const TEveVectorT<OO>& v) { fX = v.fX;  fY = v.fY;  fZ = v.fZ; }

void NegateXYZ() { fX = - fX; fY = -fY; fZ = -fZ; }
TT   Normalize(TT length=1);

TT   Phi()      const;
TT   Theta()    const;
TT   CosTheta() const;
TT   Eta()      const;

TT   Mag2()  const { return fX*fX + fY*fY + fZ*fZ; }
TT   Mag()   const { return TMath::Sqrt(Mag2());   }

TT   Perp2() const { return fX*fX + fY*fY;        }
TT   Perp()  const { return TMath::Sqrt(Perp2()); }
TT   R()     const { return Perp();               }

TT   Distance(const TEveVectorT& v) const;
TT   SquareDistance(const TEveVectorT& v) const;

TT   Dot(const TEveVectorT& a) const;

TEveVectorT  Cross(const TEveVectorT& a) const;

TEveVectorT& Sub(const TEveVectorT& a, const TEveVectorT& b);
TEveVectorT& Mult(const TEveVectorT& a, TT af);

TEveVectorT  Orthogonal() const;
void         OrthoNormBase(TEveVectorT& a, TEveVectorT& b) const;

Bool_t       IsZero() const { return fX == 0 && fY == 0 && fZ == 0; }

ClassDefNV(TEveVectorT, 2); // A three-vector template without TObject inheritance and virtual functions.
};

typedef TEveVectorT<Float_t>  TEveVector;
typedef TEveVectorT<Float_t>  TEveVectorF;
typedef TEveVectorT<Double_t> TEveVectorD;

//______________________________________________________________________________
template<typename TT>
inline TT TEveVectorT<TT>::Phi() const
{
return fX == 0 && fY == 0 ? 0 : TMath::ATan2(fY, fX);
}

//______________________________________________________________________________
template<typename TT>
inline TT TEveVectorT<TT>::Theta() const
{
return fX == 0 && fY == 0 && fZ == 0 ? 0 : TMath::ATan2(Perp(), fZ);
}

//______________________________________________________________________________
template<typename TT>
inline TT TEveVectorT<TT>::CosTheta() const
{
Float_t ptot = Mag(); return ptot == 0 ? 1 : fZ/ptot;
}

//______________________________________________________________________________
template<typename TT>
inline TT TEveVectorT<TT>::Distance(const TEveVectorT& b) const
{
return TMath::Sqrt((fX - b.fX)*(fX - b.fX) +
(fY - b.fY)*(fY - b.fY) +
(fZ - b.fZ)*(fZ - b.fZ));
}

//______________________________________________________________________________
template<typename TT>
inline TT TEveVectorT<TT>::SquareDistance(const TEveVectorT& b) const
{
return ((fX - b.fX) * (fX - b.fX) +
(fY - b.fY) * (fY - b.fY) +
(fZ - b.fZ) * (fZ - b.fZ));
}

//______________________________________________________________________________
template<typename TT>
inline TT TEveVectorT<TT>::Dot(const TEveVectorT& a) const
{
return a.fX*fX + a.fY*fY + a.fZ*fZ;
}

//______________________________________________________________________________
template<typename TT>
inline TEveVectorT<TT> TEveVectorT<TT>::Cross(const TEveVectorT<TT>& a) const
{
TEveVectorT<TT> r;
r.fX = fY * a.fZ - fZ * a.fY;
r.fY = fZ * a.fX - fX * a.fZ;
r.fZ = fX * a.fY - fY * a.fX;
return r;
}

//______________________________________________________________________________
template<typename TT>
inline TEveVectorT<TT>& TEveVectorT<TT>::Sub(const TEveVectorT<TT>& a, const TEveVectorT<TT>& b)
{
fX = a.fX - b.fX;
fY = a.fY - b.fY;
fZ = a.fZ - b.fZ;
return *this;
}

//______________________________________________________________________________
template<typename TT>
inline TEveVectorT<TT>& TEveVectorT<TT>::Mult(const TEveVectorT<TT>& a, TT af)
{
fX = a.fX * af;
fY = a.fY * af;
fZ = a.fZ * af;
return *this;
}

//______________________________________________________________________________
template<typename TT>
inline TEveVectorT<TT> operator+(const TEveVectorT<TT>& a, const TEveVectorT<TT>& b)
{
TEveVectorT<TT> r(a);
return r += b;
}

//______________________________________________________________________________
template<typename TT>
inline TEveVectorT<TT> operator-(const TEveVectorT<TT>& a, const TEveVectorT<TT>& b)
{
TEveVectorT<TT> r(a);
return r -= b;
}

//______________________________________________________________________________
template<typename TT>
inline TEveVectorT<TT> operator*(const TEveVectorT<TT>& a, TT b)
{
TEveVectorT<TT> r(a);
return r *= b;
}

//______________________________________________________________________________
template<typename TT>
inline TEveVectorT<TT> operator*(TT b, const TEveVectorT<TT>& a)
{
TEveVectorT<TT> r(a);
return r *= b;
}

//==============================================================================
// TEveVector4T
//==============================================================================

template <typename TT>
class TEveVector4T : public TEveVectorT<TT>
{
typedef TEveVectorT<TT> TP;

public:
TT fT;

TEveVector4T() : TP(),  fT(0) {}
template <typename OO>
TEveVector4T(const TEveVectorT<OO>& v) : TP(v.fX, v.fY, v.fZ), fT(0) {}
template <typename OO>
TEveVector4T(const TEveVectorT<OO>& v, Float_t t) : TP(v.fX, v.fY, v.fZ), fT(t) {}
template <typename OO>
TEveVector4T(const TEveVector4T<OO>& v) : TP(v.fX, v.fY, v.fZ), fT(v.fT) {}
TEveVector4T(const Float_t*  v) : TP(v), fT(v[3]) {}
TEveVector4T(const Double_t* v) : TP(v), fT(v[3]) {}
TEveVector4T(TT x, TT y, TT z, TT t=0) : TP(x, y, z), fT(t) {}

void Dump() const;

TEveVector4T& operator*=(TT s)                  { TP::operator*=(s); fT *= s;    return *this; }
TEveVector4T& operator+=(const TEveVector4T& v) { TP::operator+=(v); fT += v.fT; return *this; }
TEveVector4T& operator-=(const TEveVector4T& v) { TP::operator-=(v); fT -= v.fT; return *this; }

using TP::operator+=;
using TP::operator-=;

ClassDefNV(TEveVector4T, 1); // A four-vector template without TObject inheritance and virtual functions.
};

typedef TEveVector4T<Float_t>  TEveVector4;
typedef TEveVector4T<Float_t>  TEveVector4F;
typedef TEveVector4T<Double_t> TEveVector4D;

//______________________________________________________________________________
template<typename TT>
inline TEveVector4T<TT> operator+(const TEveVector4T<TT>& a, const TEveVector4T<TT>& b)
{
return TEveVector4T<TT>(a.fX + b.fX, a.fY + b.fY, a.fZ + b.fZ, a.fT + b.fT);
}

//______________________________________________________________________________
template<typename TT>
inline TEveVector4T<TT> operator-(const TEveVector4T<TT>& a, const TEveVector4T<TT>& b)
{
return TEveVector4T<TT>(a.fX - b.fX, a.fY - b.fY, a.fZ - b.fZ, a.fT - b.fT);
}

//______________________________________________________________________________
template<typename TT>
inline TEveVector4T<TT> operator*(const TEveVector4T<TT>& a, TT b)
{
return TEveVector4T<TT>(a.fX*b, a.fY*b, a.fZ*b, a.fT*b);
}

//______________________________________________________________________________
template<typename TT>
inline TEveVector4T<TT> operator*(TT b, const TEveVector4T<TT>& a)
{
return TEveVector4T<TT>(a.fX*b, a.fY*b, a.fZ*b, a.fT*b);
}

//==============================================================================
// TEveVector2T
//==============================================================================

template <typename TT>
class TEveVector2T
{
public:
TT fX, fY; // Components of the point.

TEveVector2T() : fX(0), fY(0) {}
template <typename OO>
TEveVector2T(const TEveVector2T<OO>& v) : fX(v.fX), fY(v.fY) {}
TEveVector2T(const Float_t* v)  : fX(v[0]), fY(v[1]) {}
TEveVector2T(const Double_t* v) : fX(v[0]), fY(v[1]) {}
TEveVector2T(TT x, TT y) : fX(x), fY(y)    {}

void Dump() const;

operator const TT*() const { return &fX; }
operator       TT*()       { return &fX; }

TEveVector2T& operator*=(TT s)                  { fX *= s;    fY *= s;    return *this; }
TEveVector2T& operator+=(const TEveVector2T& v) { fX += v.fX; fY += v.fY; return *this; }
TEveVector2T& operator-=(const TEveVector2T& v) { fX -= v.fX; fY -= v.fY; return *this; }

TT& operator[](Int_t idx)       { return (&fX)[idx]; }
TT  operator[](Int_t idx) const { return (&fX)[idx]; }

const TT* Arr() const { return &fX; }
TT* Arr()             { return &fX; }

void Set(const Float_t*  v) { fX = v[0]; fY = v[1]; }
void Set(const Double_t* v) { fX = v[0]; fY = v[1]; }
void Set(TT x, TT y) { fX = x; fY = y; }

template <typename OO>
void Set(const TEveVector2T<OO>& v) { fX = v.fX; fY = v.fY; }

void NegateXY() { fX = - fX; fY = -fY; }
void Normalize(TT length=1);

TT Phi()  const;

TT Mag2() const { return fX*fX + fY*fY;}
TT Mag()  const { return TMath::Sqrt(Mag2());}

TT Distance(const TEveVector2T& v) const;
TT SquareDistance(const TEveVector2T& v) const;

TT Dot(const TEveVector2T& a) const;
TT Cross(const TEveVector2T& a) const;

TEveVector2T& Sub(const TEveVector2T& p, const TEveVector2T& q);

TEveVector2T& Mult(const TEveVector2T& a, TT af);

ClassDefNV(TEveVector2T, 1); // // A two-vector template without TObject inheritance and virtual functions.
};

typedef TEveVector2T<Float_t>  TEveVector2;
typedef TEveVector2T<Float_t>  TEveVector2F;
typedef TEveVector2T<Double_t> TEveVector2D;

//______________________________________________________________________________
template<typename TT>
inline TT TEveVector2T<TT>::Phi() const
{
return fX == 0.0 && fY == 0.0 ? 0.0 : TMath::ATan2(fY, fX);
}

//______________________________________________________________________________
template<typename TT>
inline TT TEveVector2T<TT>::Distance( const TEveVector2T<TT>& b) const
{
return TMath::Sqrt((fX - b.fX)*(fX - b.fX) +
(fY - b.fY)*(fY - b.fY));
}

//______________________________________________________________________________
template<typename TT>
inline TT TEveVector2T<TT>::SquareDistance(const TEveVector2T<TT>& b) const
{
return ((fX - b.fX) * (fX - b.fX) +
(fY - b.fY) * (fY - b.fY));
}

//______________________________________________________________________________
template<typename TT>
inline TT TEveVector2T<TT>::Dot(const TEveVector2T<TT>& a) const
{
return a.fX*fX + a.fY*fY;
}

//______________________________________________________________________________
template<typename TT>
inline TT TEveVector2T<TT>::Cross(const TEveVector2T<TT>& a) const
{
return fX * a.fY - fY * a.fX;
}

//______________________________________________________________________________
template<typename TT>
inline TEveVector2T<TT>& TEveVector2T<TT>::Sub(const TEveVector2T<TT>& p, const TEveVector2T<TT>& q)
{
fX = p.fX - q.fX;
fY = p.fY - q.fY;
return *this;
}

//______________________________________________________________________________
template<typename TT>
inline TEveVector2T<TT>& TEveVector2T<TT>::Mult(const TEveVector2T<TT>& a, TT af)
{
fX = a.fX * af;
fY = a.fY * af;
return *this;
}

//______________________________________________________________________________
template<typename TT>
inline TEveVector2T<TT> operator+(const TEveVector2T<TT>& a, const TEveVector2T<TT>& b)
{
TEveVector2T<TT> r(a);
return r += b;
}

//______________________________________________________________________________
template<typename TT>
inline TEveVector2T<TT> operator-(const TEveVector2T<TT>& a, const TEveVector2T<TT>& b)
{
TEveVector2T<TT> r(a);
return r -= b;
}

//______________________________________________________________________________
template<typename TT>
inline TEveVector2T<TT> operator*(const TEveVector2T<TT>& a, TT b)
{
TEveVector2T<TT> r(a);
return r *= b;
}

//______________________________________________________________________________
template<typename TT>
inline TEveVector2T<TT> operator*(TT b, const TEveVector2T<TT>& a)
{
TEveVector2T<TT> r(a);
return r *= b;
}

#endif
```
TEveVector.h:1
TEveVector.h:2
TEveVector.h:3
TEveVector.h:4
TEveVector.h:5
TEveVector.h:6
TEveVector.h:7
TEveVector.h:8
TEveVector.h:9
TEveVector.h:10
TEveVector.h:11
TEveVector.h:12
TEveVector.h:13
TEveVector.h:14
TEveVector.h:15
TEveVector.h:16
TEveVector.h:17
TEveVector.h:18
TEveVector.h:19
TEveVector.h:20
TEveVector.h:21
TEveVector.h:22
TEveVector.h:23
TEveVector.h:24
TEveVector.h:25
TEveVector.h:26
TEveVector.h:27
TEveVector.h:28
TEveVector.h:29
TEveVector.h:30
TEveVector.h:31
TEveVector.h:32
TEveVector.h:33
TEveVector.h:34
TEveVector.h:35
TEveVector.h:36
TEveVector.h:37
TEveVector.h:38
TEveVector.h:39
TEveVector.h:40
TEveVector.h:41
TEveVector.h:42
TEveVector.h:43
TEveVector.h:44
TEveVector.h:45
TEveVector.h:46
TEveVector.h:47
TEveVector.h:48
TEveVector.h:49
TEveVector.h:50
TEveVector.h:51
TEveVector.h:52
TEveVector.h:53
TEveVector.h:54
TEveVector.h:55
TEveVector.h:56
TEveVector.h:57
TEveVector.h:58
TEveVector.h:59
TEveVector.h:60
TEveVector.h:61
TEveVector.h:62
TEveVector.h:63
TEveVector.h:64
TEveVector.h:65
TEveVector.h:66
TEveVector.h:67
TEveVector.h:68
TEveVector.h:69
TEveVector.h:70
TEveVector.h:71
TEveVector.h:72
TEveVector.h:73
TEveVector.h:74
TEveVector.h:75
TEveVector.h:76
TEveVector.h:77
TEveVector.h:78
TEveVector.h:79
TEveVector.h:80
TEveVector.h:81
TEveVector.h:82
TEveVector.h:83
TEveVector.h:84
TEveVector.h:85
TEveVector.h:86
TEveVector.h:87
TEveVector.h:88
TEveVector.h:89
TEveVector.h:90
TEveVector.h:91
TEveVector.h:92
TEveVector.h:93
TEveVector.h:94
TEveVector.h:95
TEveVector.h:96
TEveVector.h:97
TEveVector.h:98
TEveVector.h:99
TEveVector.h:100
TEveVector.h:101
TEveVector.h:102
TEveVector.h:103
TEveVector.h:104
TEveVector.h:105
TEveVector.h:106
TEveVector.h:107
TEveVector.h:108
TEveVector.h:109
TEveVector.h:110
TEveVector.h:111
TEveVector.h:112
TEveVector.h:113
TEveVector.h:114
TEveVector.h:115
TEveVector.h:116
TEveVector.h:117
TEveVector.h:118
TEveVector.h:119
TEveVector.h:120
TEveVector.h:121
TEveVector.h:122
TEveVector.h:123
TEveVector.h:124
TEveVector.h:125
TEveVector.h:126
TEveVector.h:127
TEveVector.h:128
TEveVector.h:129
TEveVector.h:130
TEveVector.h:131
TEveVector.h:132
TEveVector.h:133
TEveVector.h:134
TEveVector.h:135
TEveVector.h:136
TEveVector.h:137
TEveVector.h:138
TEveVector.h:139
TEveVector.h:140
TEveVector.h:141
TEveVector.h:142
TEveVector.h:143
TEveVector.h:144
TEveVector.h:145
TEveVector.h:146
TEveVector.h:147
TEveVector.h:148
TEveVector.h:149
TEveVector.h:150
TEveVector.h:151
TEveVector.h:152
TEveVector.h:153
TEveVector.h:154
TEveVector.h:155
TEveVector.h:156
TEveVector.h:157
TEveVector.h:158
TEveVector.h:159
TEveVector.h:160
TEveVector.h:161
TEveVector.h:162
TEveVector.h:163
TEveVector.h:164
TEveVector.h:165
TEveVector.h:166
TEveVector.h:167
TEveVector.h:168
TEveVector.h:169
TEveVector.h:170
TEveVector.h:171
TEveVector.h:172
TEveVector.h:173
TEveVector.h:174
TEveVector.h:175
TEveVector.h:176
TEveVector.h:177
TEveVector.h:178
TEveVector.h:179
TEveVector.h:180
TEveVector.h:181
TEveVector.h:182
TEveVector.h:183
TEveVector.h:184
TEveVector.h:185
TEveVector.h:186
TEveVector.h:187
TEveVector.h:188
TEveVector.h:189
TEveVector.h:190
TEveVector.h:191
TEveVector.h:192
TEveVector.h:193
TEveVector.h:194
TEveVector.h:195
TEveVector.h:196
TEveVector.h:197
TEveVector.h:198
TEveVector.h:199
TEveVector.h:200
TEveVector.h:201
TEveVector.h:202
TEveVector.h:203
TEveVector.h:204
TEveVector.h:205
TEveVector.h:206
TEveVector.h:207
TEveVector.h:208
TEveVector.h:209
TEveVector.h:210
TEveVector.h:211
TEveVector.h:212
TEveVector.h:213
TEveVector.h:214
TEveVector.h:215
TEveVector.h:216
TEveVector.h:217
TEveVector.h:218
TEveVector.h:219
TEveVector.h:220
TEveVector.h:221
TEveVector.h:222
TEveVector.h:223
TEveVector.h:224
TEveVector.h:225
TEveVector.h:226
TEveVector.h:227
TEveVector.h:228
TEveVector.h:229
TEveVector.h:230
TEveVector.h:231
TEveVector.h:232
TEveVector.h:233
TEveVector.h:234
TEveVector.h:235
TEveVector.h:236
TEveVector.h:237
TEveVector.h:238
TEveVector.h:239
TEveVector.h:240
TEveVector.h:241
TEveVector.h:242
TEveVector.h:243
TEveVector.h:244
TEveVector.h:245
TEveVector.h:246
TEveVector.h:247
TEveVector.h:248
TEveVector.h:249
TEveVector.h:250
TEveVector.h:251
TEveVector.h:252
TEveVector.h:253
TEveVector.h:254
TEveVector.h:255
TEveVector.h:256
TEveVector.h:257
TEveVector.h:258
TEveVector.h:259
TEveVector.h:260
TEveVector.h:261
TEveVector.h:262
TEveVector.h:263
TEveVector.h:264
TEveVector.h:265
TEveVector.h:266
TEveVector.h:267
TEveVector.h:268
TEveVector.h:269
TEveVector.h:270
TEveVector.h:271
TEveVector.h:272
TEveVector.h:273
TEveVector.h:274
TEveVector.h:275
TEveVector.h:276
TEveVector.h:277
TEveVector.h:278
TEveVector.h:279
TEveVector.h:280
TEveVector.h:281
TEveVector.h:282
TEveVector.h:283
TEveVector.h:284
TEveVector.h:285
TEveVector.h:286
TEveVector.h:287
TEveVector.h:288
TEveVector.h:289
TEveVector.h:290
TEveVector.h:291
TEveVector.h:292
TEveVector.h:293
TEveVector.h:294
TEveVector.h:295
TEveVector.h:296
TEveVector.h:297
TEveVector.h:298
TEveVector.h:299
TEveVector.h:300
TEveVector.h:301
TEveVector.h:302
TEveVector.h:303
TEveVector.h:304
TEveVector.h:305
TEveVector.h:306
TEveVector.h:307
TEveVector.h:308
TEveVector.h:309
TEveVector.h:310
TEveVector.h:311
TEveVector.h:312
TEveVector.h:313
TEveVector.h:314
TEveVector.h:315
TEveVector.h:316
TEveVector.h:317
TEveVector.h:318
TEveVector.h:319
TEveVector.h:320
TEveVector.h:321
TEveVector.h:322
TEveVector.h:323
TEveVector.h:324
TEveVector.h:325
TEveVector.h:326
TEveVector.h:327
TEveVector.h:328
TEveVector.h:329
TEveVector.h:330
TEveVector.h:331
TEveVector.h:332
TEveVector.h:333
TEveVector.h:334
TEveVector.h:335
TEveVector.h:336
TEveVector.h:337
TEveVector.h:338
TEveVector.h:339
TEveVector.h:340
TEveVector.h:341
TEveVector.h:342
TEveVector.h:343
TEveVector.h:344
TEveVector.h:345
TEveVector.h:346
TEveVector.h:347
TEveVector.h:348
TEveVector.h:349
TEveVector.h:350
TEveVector.h:351
TEveVector.h:352
TEveVector.h:353
TEveVector.h:354
TEveVector.h:355
TEveVector.h:356
TEveVector.h:357
TEveVector.h:358
TEveVector.h:359
TEveVector.h:360
TEveVector.h:361
TEveVector.h:362
TEveVector.h:363
TEveVector.h:364
TEveVector.h:365
TEveVector.h:366
TEveVector.h:367
TEveVector.h:368
TEveVector.h:369
TEveVector.h:370
TEveVector.h:371
TEveVector.h:372
TEveVector.h:373
TEveVector.h:374
TEveVector.h:375
TEveVector.h:376
TEveVector.h:377
TEveVector.h:378
TEveVector.h:379
TEveVector.h:380
TEveVector.h:381
TEveVector.h:382
TEveVector.h:383
TEveVector.h:384
TEveVector.h:385
TEveVector.h:386
TEveVector.h:387
TEveVector.h:388
TEveVector.h:389
TEveVector.h:390
TEveVector.h:391
TEveVector.h:392
TEveVector.h:393
TEveVector.h:394
TEveVector.h:395
TEveVector.h:396
TEveVector.h:397
TEveVector.h:398
TEveVector.h:399
TEveVector.h:400
TEveVector.h:401
TEveVector.h:402
TEveVector.h:403
TEveVector.h:404
TEveVector.h:405
TEveVector.h:406
TEveVector.h:407
TEveVector.h:408
TEveVector.h:409
TEveVector.h:410
TEveVector.h:411
TEveVector.h:412
TEveVector.h:413
TEveVector.h:414
TEveVector.h:415
TEveVector.h:416
TEveVector.h:417
TEveVector.h:418
TEveVector.h:419
TEveVector.h:420
TEveVector.h:421
TEveVector.h:422
TEveVector.h:423
TEveVector.h:424
TEveVector.h:425
TEveVector.h:426