12#ifndef CLHEP_HELPERS_H
13#define CLHEP_HELPERS_H
15#include "CLHEP/Geometry/Transform3D.h"
16#include "CLHEP/Matrix/Vector.h"
22class SetTransform3D :
public HepGeom::Transform3D
25 void setTransform (
double XX,
double XY,
double XZ,
double DX,
26 double YX,
double YY,
double YZ,
double DY,
27 double ZX,
double ZY,
double ZZ,
double DZ)
29 HepGeom::Transform3D::setTransform (XX, XY, XZ, DX,
47 vec.push_back( trans.xx() );
48 vec.push_back( trans.xy() );
49 vec.push_back( trans.xz() );
50 vec.push_back( trans.dx() );
52 vec.push_back( trans.yx() );
53 vec.push_back( trans.yy() );
54 vec.push_back( trans.yz() );
55 vec.push_back( trans.dy() );
57 vec.push_back( trans.zx() );
58 vec.push_back( trans.zy() );
59 vec.push_back( trans.zz() );
60 vec.push_back( trans.dz() );
66 HepGeom::Transform3D &trans )
68 static_cast<SetTransform3D&
> (trans).setTransform (
86 std :: vector<double> &
vec )
89 vec.push_back( bvec.x() );
90 vec.push_back( bvec.y() );
91 vec.push_back( bvec.z() );
107 std :: vector<double> &
vec )
109 vec.reserve(hvec.num_row());
110 for(
int i = 0; i < hvec.num_row(); i++ )
111 vec.push_back( hvec[i] );
115 CLHEP::HepVector &hvec )
117 for(
unsigned i = 0; i <
vec.size(); i++ )
std::vector< size_t > vec
static void vectorToHepVector(const std ::vector< double > &vec, CLHEP::HepVector &hvec)
static void hepTransform3DToVector(const HepGeom::Transform3D &trans, T &vec)
Convert HepGeom::Transform3D to std :: vector<double>
static void hepVectorToVector(const CLHEP::HepVector &hvec, std ::vector< double > &vec)
static void basicVector3DToVector(const T &bvec, std ::vector< double > &vec)
Convert HepGeom::BasicVector3D<double> to std :: vector<double> and vice versa.
static void vectorToHepTransform3D(const T &vec, HepGeom::Transform3D &trans)
Convert std :: vector<double> to HepGeom::Transform3D.
static void vectorToBasicVector3D(const std ::vector< double > &vec, T &bvec)