diff --git a/Database/AtlasSealCLHEP/AtlasSealCLHEP/AtlasSealCLHEPDict.h b/Database/AtlasSealCLHEP/AtlasSealCLHEP/AtlasSealCLHEPDict.h new file mode 100755 index 0000000000000000000000000000000000000000..beffd6f97da61da7fad5bfc4387ca0ba64ed3805 --- /dev/null +++ b/Database/AtlasSealCLHEP/AtlasSealCLHEP/AtlasSealCLHEPDict.h @@ -0,0 +1,45 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +/*************************************************************************** + Temporary package for CLHEP SEAL dictionary + ------------------------------------------- + Copyright (C) 2004 by ATLAS Collaboration + ***************************************************************************/ + +//<doc><file> $Id: AtlasSealCLHEPDict.h,v 1.3 2006-03-10 22:22:20 mnowak Exp $ +//<version> $Name: not supported by cvs2svn $ + +#ifndef ATLASSEALCLHEP_ATLASSEALCLHEPDICT_H +# define ATLASSEALCLHEP_ATLASSEALCLHEPDICT_H + +//<<<<<< INCLUDES >>>>>> +#include "AtlasSealCLHEP/CLHEP_Vector.h" +#include "AtlasSealCLHEP/CLHEP_Random.h" +#include "AtlasSealCLHEP/CLHEP_Geometry.h" +#include "AtlasSealCLHEP/CLHEP_Matrix.h" +// #include " AtlasSealCLHEP/CLHEP_Vector.h " +// #include " AtlasSealCLHEP/CLHEP_Random.h " +// #include " AtlasSealCLHEP/CLHEP_Geometry.h " +// #include " AtlasSealCLHEP/CLHEP_Matrix.h " +// #include " AtlasSealCLHEPDict/CLHEP_Vector.h " +// #include " AtlasSealCLHEPDict/CLHEP_Random.h " +// #include " AtlasSealCLHEPDict/CLHEP_Geometry.h " +// #include " AtlasSealCLHEPDict/CLHEP_Matrix.h " +// #include " AtlasSealCLHEPDict/CLHEP_HepMC.h " +// #include " AtlasSealCLHEPDict/CLHEP_HepPDT.h " +// #include " AtlasSealCLHEPDict/CLHEP_GenericFunctions.h " + +#include "AtlasSealCLHEP/OldCLHEP.h" +#include "AtlasSealCLHEP/OldCLHEPStreamers.h" + + +//<<<<<< CLASS DECLARATIONS >>>>>> + + + +//<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> +//<<<<<< INLINE MEMBER FUNCTIONS >>>>>> + +#endif // ATLASSEALCLHEP_ATLASSEALCLHEPDICT_H diff --git a/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_GenericFunctions.h b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_GenericFunctions.h new file mode 100755 index 0000000000000000000000000000000000000000..884cc29573a5b64cbef3b1a7b4a67b8b9df5991d --- /dev/null +++ b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_GenericFunctions.h @@ -0,0 +1,86 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + + +#include "CLHEP/GenericFunctions/ACos.hh" +#include "CLHEP/GenericFunctions/ASin.hh" +#include "CLHEP/GenericFunctions/ATan.hh" +#include "CLHEP/GenericFunctions/Abs.hh" +#include "CLHEP/GenericFunctions/AbsFunction.hh" +#include "CLHEP/GenericFunctions/AbsFunctional.hh" +#include "CLHEP/GenericFunctions/AbsParameter.hh" +#include "CLHEP/GenericFunctions/AnalyticConvolution.hh" +#include "CLHEP/GenericFunctions/Argument.hh" +#include "CLHEP/GenericFunctions/ArrayFunction.hh" +#include "CLHEP/GenericFunctions/AssociatedLaguerre.hh" +#include "CLHEP/GenericFunctions/BivariateGaussian.hh" +#include "CLHEP/GenericFunctions/ConstMinusFunction.hh" +#include "CLHEP/GenericFunctions/ConstMinusParameter.hh" +#include "CLHEP/GenericFunctions/ConstOverFunction.hh" +#include "CLHEP/GenericFunctions/ConstOverParameter.hh" +#include "CLHEP/GenericFunctions/ConstPlusFunction.hh" +#include "CLHEP/GenericFunctions/ConstPlusParameter.hh" +#include "CLHEP/GenericFunctions/ConstTimesFunction.hh" +#include "CLHEP/GenericFunctions/ConstTimesParameter.hh" +#include "CLHEP/GenericFunctions/Cos.hh" +#include "CLHEP/GenericFunctions/CumulativeChiSquare.hh" +#include "CLHEP/GenericFunctions/DefiniteIntegral.hh" +#include "CLHEP/GenericFunctions/Erf.hh" +#include "CLHEP/GenericFunctions/Exp.hh" +#include "CLHEP/GenericFunctions/Exponential.hh" +#include "CLHEP/GenericFunctions/FixedConstant.hh" +#include "CLHEP/GenericFunctions/FloatingConstant.hh" +#include "CLHEP/GenericFunctions/FunctionComposition.hh" +#include "CLHEP/GenericFunctions/FunctionConvolution.hh" +#include "CLHEP/GenericFunctions/FunctionDifference.hh" +#include "CLHEP/GenericFunctions/FunctionDirectProduct.hh" +#include "CLHEP/GenericFunctions/FunctionNegation.hh" +#include "CLHEP/GenericFunctions/FunctionNoop.hh" +#include "CLHEP/GenericFunctions/FunctionNumDeriv.hh" +#include "CLHEP/GenericFunctions/FunctionPlusParameter.hh" +#include "CLHEP/GenericFunctions/FunctionProduct.hh" +#include "CLHEP/GenericFunctions/FunctionQuotient.hh" +#include "CLHEP/GenericFunctions/FunctionSum.hh" +#include "CLHEP/GenericFunctions/FunctionTimesParameter.hh" +#include "CLHEP/GenericFunctions/Gaussian.hh" +#include "CLHEP/GenericFunctions/IncompleteGamma.hh" +#include "CLHEP/GenericFunctions/Landau.hh" +#include "CLHEP/GenericFunctions/LikelihoodFunctional.hh" +#include "CLHEP/GenericFunctions/Ln.hh" +#include "CLHEP/GenericFunctions/LogGamma.hh" +#include "CLHEP/GenericFunctions/LogisticFunction.hh" +#include "CLHEP/GenericFunctions/Mod.hh" +#include "CLHEP/GenericFunctions/Parameter.hh" +#include "CLHEP/GenericFunctions/ParameterDifference.hh" +#include "CLHEP/GenericFunctions/ParameterNegation.hh" +#include "CLHEP/GenericFunctions/ParameterProduct.hh" +#include "CLHEP/GenericFunctions/ParameterQuotient.hh" +#include "CLHEP/GenericFunctions/ParameterSum.hh" +#include "CLHEP/GenericFunctions/PeriodicRectangular.hh" +#include "CLHEP/GenericFunctions/Power.hh" +#include "CLHEP/GenericFunctions/Psi2Hydrogen.hh" +#include "CLHEP/GenericFunctions/PtRelFcn.hh" +#include "CLHEP/GenericFunctions/RCBase.hh" +#include "CLHEP/GenericFunctions/RKIntegrator.hh" +#include "CLHEP/GenericFunctions/Rectangular.hh" +#include "CLHEP/GenericFunctions/ReverseExponential.hh" +#include "CLHEP/GenericFunctions/Sigma.hh" +#include "CLHEP/GenericFunctions/Sin.hh" +#include "CLHEP/GenericFunctions/Sqrt.hh" +#include "CLHEP/GenericFunctions/Square.hh" +#include "CLHEP/GenericFunctions/Tan.hh" +#include "CLHEP/GenericFunctions/TrivariateGaussian.hh" +#include "CLHEP/GenericFunctions/Variable.hh" +#include "CLHEP/GenericFunctions/X.hh" + +/* excluded because of multipe defined symbols + problem with *.icc files defining non inline functions +#include "CLHEP/GenericFunctions/Bessel.hh" +#include "CLHEP/GenericFunctions/EllipticIntegral.hh" +#include "CLHEP/GenericFunctions/SphericalBessel.hh" +#include "CLHEP/GenericFunctions/SphericalNeumann.hh" +*/ + +// not implemented functions in clhep 1.8.1.0 +inline Genfun::Parameter& Genfun::LogGamma::sigma() { return *(new Parameter("dummy",1.0)); }; diff --git a/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_Geometry.h b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_Geometry.h new file mode 100755 index 0000000000000000000000000000000000000000..31f060be14065e451437695121d92d320ae8c1d4 --- /dev/null +++ b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_Geometry.h @@ -0,0 +1,18 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#include "CLHEP/Geometry/BasicVector3D.h" +#include "CLHEP/Geometry/Normal3D.h" +#include "CLHEP/Geometry/Plane3D.h" +#include "CLHEP/Geometry/Point3D.h" +#include "CLHEP/Geometry/Transform3D.h" +#include "CLHEP/Geometry/Vector3D.h" + +namespace AtlasSealCLHEP +{ +// HepGeom::Plane3D<double> m_pld; +// HepGeom::Plane3D<float> m_plf; +} + + diff --git a/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_HepMC.h b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_HepMC.h new file mode 100755 index 0000000000000000000000000000000000000000..1e4d66eacd340b73962dc1dc2f9b23d061649898 --- /dev/null +++ b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_HepMC.h @@ -0,0 +1,14 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#include "CLHEP/HepMC/Flow.h" +#include "CLHEP/HepMC/GenEvent.h" +#include "CLHEP/HepMC/GenEventConvert.h" +#include "CLHEP/HepMC/GenParticle.h" +#include "CLHEP/HepMC/GenVertex.h" +#include "CLHEP/HepMC/Polarization.h" +#include "CLHEP/HepMC/WeightContainer.h" + +// functions declared but not defined in 1.8.1.0 +inline void HepMC::GenParticle::setParticleID(HepPDT::ParticleID pid) { int i = pid.pid(); ++i; } diff --git a/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_HepPDT.h b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_HepPDT.h new file mode 100755 index 0000000000000000000000000000000000000000..8f224e2607f16471a949165bff7e4634b72c8354 --- /dev/null +++ b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_HepPDT.h @@ -0,0 +1,22 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#include "CLHEP/HepPDT/CommonParticleData.hh" +#include "CLHEP/HepPDT/Constituent.hh" +#include "CLHEP/HepPDT/DefTable.hh" +#include "CLHEP/HepPDT/Measurement.hh" +#include "CLHEP/HepPDT/PDGtoQQTable.hh" +#include "CLHEP/HepPDT/ParticleID.hh" +#include "CLHEP/HepPDT/QQChannel.hh" +#include "CLHEP/HepPDT/QQDecay.hh" +#include "CLHEP/HepPDT/QQDecayTable.hh" +#include "CLHEP/HepPDT/ResonanceStructure.hh" +#include "CLHEP/HepPDT/SimpleDecayModel.hh" +#include "CLHEP/HepPDT/SimpleParticle.hh" +#include "CLHEP/HepPDT/SpinState.hh" + +// functions declared in HepPDT but not defined +inline void HepPDT::QQDecayTable::writeTable(std::ostream& os) const { os << "1"; } +inline void HepPDT::QQChannel::write(std::ostream & os) const { os << "1"; } +inline void HepPDT::QQDecay::write(std::ostream & os) const { os << "1"; } diff --git a/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_Matrix.h b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_Matrix.h new file mode 100755 index 0000000000000000000000000000000000000000..1227252ce77feeb34eb1a8ce2616209e534bfa7f --- /dev/null +++ b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_Matrix.h @@ -0,0 +1,27 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#include "CLHEP/Matrix/DiagMatrix.h" +#include "CLHEP/Matrix/GenMatrix.h" +#include "CLHEP/Matrix/Matrix.h" +#include "CLHEP/Matrix/Pile.h" +#include "CLHEP/Matrix/SymMatrix.h" +#include "CLHEP/Matrix/Vector.h" + +// not implemented functions in CLHEP 1.8.1.0 +inline void CLHEP::HepSymMatrix::invertHaywood4(int& ) {} +inline void CLHEP::HepMatrix::invertHaywood4(int& ) {} +inline void CLHEP::HepMatrix::invertHaywood5(int& ) {} +inline void CLHEP::HepMatrix::invertHaywood6(int& ) {} +inline CLHEP::HepMatrix& CLHEP::HepMatrix::operator=(const CLHEP::HepRotation &) {return *(new CLHEP::HepMatrix()); } + +// must instatiate some templates + +namespace AtlasSealCLHEP { +// CLHEP::HepGenMatrix::Alloc<double,25> m_alloc; +// CLHEP::HepGenMatrix::Alloc<double,25> m_all; +// CLHEP::GenMatrix::Alloc<double,25> m_alloc; +// CLHEP::HepMatrix m_matrix; +// std::vector<double, CLHEP::HepGenMatrix::Alloc<double,25> > m_allocVec; +} diff --git a/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_Random.h b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_Random.h new file mode 100755 index 0000000000000000000000000000000000000000..d0eda76f9e79874550a7693796af13768a2330fe --- /dev/null +++ b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_Random.h @@ -0,0 +1,16 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#include "CLHEP/Random/Randomize.h" + +//----Functions missing in the implementation and required by the dictionary +// [ Bug #1806 ] Missing method implementations + +inline void CLHEP::RandPoissonT::shootArray(class CLHEP::HepRandomEngine *,int,long *,double) {} +inline void CLHEP::RandPoissonT::fireArray(int,long *) {} +inline void CLHEP::RandPoissonQ::shootArray(class CLHEP::HepRandomEngine *,int,long *,double){} +inline void CLHEP::RandPoissonQ::fireArray(int,long *) {} +//// DRQ: The following function was removed in CLHEP 1.9.2.1 +////inline void HepRandomEngine::getTableSeeds(long *,int)const {} + diff --git a/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_Vector.h b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_Vector.h new file mode 100755 index 0000000000000000000000000000000000000000..f99ef5528ed07a70a9760fe6ab160b1d37d44624 --- /dev/null +++ b/Database/AtlasSealCLHEP/AtlasSealCLHEP/CLHEP_Vector.h @@ -0,0 +1,10 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#include "CLHEP/Vector/Rotation.h" +#include "CLHEP/Vector/EulerAngles.h" +#include "CLHEP/Vector/LorentzRotation.h" +#include "CLHEP/Vector/ThreeVector.h" +#include "CLHEP/Vector/TwoVector.h" + diff --git a/Database/AtlasSealCLHEP/AtlasSealCLHEP/OldCLHEP.h b/Database/AtlasSealCLHEP/AtlasSealCLHEP/OldCLHEP.h new file mode 100755 index 0000000000000000000000000000000000000000..3b775b701131f7750704c51b4a81b57d28858cb7 --- /dev/null +++ b/Database/AtlasSealCLHEP/AtlasSealCLHEP/OldCLHEP.h @@ -0,0 +1,153 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef OLDHepVector3D_H +#define OLDHepVector3D_H + +/* + 2006 CERN Marcin Nowak + + Set of classes identical (hopefully) to CLHEP v.1.8.2 classes, but with different names. + Only persistent data members are important, inheritance and the presence of virtual table. + Methods are not needed. + +*/ + +class OldHep3Vector { +public: + OldHep3Vector() : dx(0), dy(0), dz(0) {} + + inline double x() const { return dx; } + inline double y() const { return dy; } + inline double z() const { return dz; } + + double dx, dy, dz; +}; + + +class OldHepTransform3D { + public: + double m1, m2, m3, m4, + m5, m6, m7, m8, + m9, m10, m11, m12; + + OldHepTransform3D() : + m1(0), m2(0), m3(0), m4(0), + m5(0), m6(0), m7(0), m8(0), + m9(0), m10(0), m11(0), m12(0) {} + virtual ~OldHepTransform3D() {} +}; + + +class OldHepRotation { +public: + OldHepRotation() : + rxx(0), rxy(0), rxz(0), ryx(0), ryy(0), ryz(0), rzx(0), rzy(0), rzz(0) {} + + double rxx, rxy, rxz, ryx, ryy, ryz, rzx, rzy, rzz; +}; + + +#include "CLHEP/Vector/ThreeVector.h" +class OldBasicVector3D { +public: + OldBasicVector3D() {} + virtual ~OldBasicVector3D() {} + + inline double x() const { return vec.x(); } + inline double y() const { return vec.y(); } + inline double z() const { return vec.z(); } + + CLHEP::Hep3Vector vec; +}; + + + + + +class OldHepVector3D : public OldBasicVector3D { +public: + OldHepVector3D() {} + virtual ~OldHepVector3D() {} +}; + + + +#include "CLHEP/Geometry/BasicVector3D.h" +typedef HepGeom::BasicVector3D<double> MyBasicVector3D; +class OldHepPoint3D + : public MyBasicVector3D +{ +public: + OldHepPoint3D() {} + virtual ~OldHepPoint3D() {} + + inline double x() const { return MyBasicVector3D::x(); } + inline double y() const { return MyBasicVector3D::y(); } + inline double z() const { return MyBasicVector3D::z(); } +}; + + + + + +class OldHepLorentzVector +{ +public: + OldHepLorentzVector() : ee(0) {} + + inline double x() const { return pp.x(); } + inline double y() const { return pp.y(); } + inline double z() const { return pp.z(); } + inline double t() const { return ee; } + + double ee; + CLHEP::Hep3Vector pp; +}; + + + + +#include "CLHEP/Matrix/GenMatrix.h" + +class OldHepGenMatrix { +public : + OldHepGenMatrix() {}; + virtual ~OldHepGenMatrix() {} +}; + + +class OldHepMatrix : public CLHEP::HepGenMatrix +{ +public: + OldHepMatrix() : nrow(0), ncol(0), size(0) {} + virtual ~OldHepMatrix() {} + + virtual int num_row() const { return nrow; } + virtual int num_col() const { return ncol; } + virtual int num_size() const { return size; } + + virtual void invert(int&) {} + virtual const double& operator()(int x, int y) const { return m[x*ncol+y]; } // <- FIXME hack + virtual double& operator()(int x, int y) { return m[x*ncol+y]; } // <- FIXME hack + +// std::vector<double,Alloc<double,25> > m; + std::vector<double> m; + int nrow, ncol; + int size; +}; + + + + + + +#endif + + + + + + + diff --git a/Database/AtlasSealCLHEP/AtlasSealCLHEP/OldCLHEPStreamers.h b/Database/AtlasSealCLHEP/AtlasSealCLHEP/OldCLHEPStreamers.h new file mode 100755 index 0000000000000000000000000000000000000000..a775c3eea99bc8c227e164e21293f5399e0d3e87 --- /dev/null +++ b/Database/AtlasSealCLHEP/AtlasSealCLHEP/OldCLHEPStreamers.h @@ -0,0 +1,121 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#ifndef OLD_CLHEP_STREAMERS_H_ +#define OLD_CLHEP_STREAMERS_H_ + +/* + 2006 CERN Marcin Nowak + + Athena/ROOT custom streamers for CLHEP v.1.8.2 classes + +*/ + +#include "AthenaPoolServices/T_AthenaRootConverter.h" +#include "CLHEP/Geometry/Vector3D.h" +#include "CLHEP/Geometry/Point3D.h" +#include "CLHEP/Vector/LorentzVector.h" +#include "OldCLHEP.h" + + +class CLHEPVec3dStreamer : public T_AthenaRootConverter<HepGeom::Vector3D<double>, OldHepVector3D > { +public: + CLHEPVec3dStreamer() { + SetClassNameAndChecksum("HepVector3D", 358881035U); + } + void CopyOldToNew(const OldHepVector3D &old_vec, HepGeom::Vector3D<double> &new_vec ) + { + HepGeom::Vector3D<double> vec( old_vec.x(), old_vec.y(), old_vec.z() ); + new_vec = vec; + } +}; + + + +class CLHEPPoint3dStreamer : public T_AthenaRootConverter<HepGeom::Point3D<double>, OldHepPoint3D > { +public: + CLHEPPoint3dStreamer() { + SetClassNameAndChecksum("HepPoint3D", 1634550480U); + } + void CopyOldToNew(const OldHepPoint3D &old_point, HepGeom::Point3D<double> &new_point ); +}; + + + +class CLHEPRotationStreamer : public T_AthenaRootConverter<CLHEP::HepRotation, OldHepRotation > +{ +public: + CLHEPRotationStreamer() { + SetClassNameAndChecksum("HepRotation", 4141898558U); + } +}; + + +template<> +void +T_AthenaRootConverter<CLHEP::HepGenMatrix, OldHepGenMatrix > +::CopyOldToNew(const OldHepGenMatrix &, CLHEP::HepGenMatrix & ) {} + +class CLHEPGenMatrixStreamer : public T_AthenaRootConverter<CLHEP::HepGenMatrix, OldHepGenMatrix > +{ +public: + CLHEPGenMatrixStreamer() { SetClassNameAndChecksum("HepGenMatrix", 21721098U); } +}; + + + +class CLHEPMatrixStreamer : public T_AthenaRootConverter<CLHEP::HepMatrix, OldHepMatrix > +{ +public: + CLHEPMatrixStreamer() { + SetClassNameAndChecksum("HepMatrix", 3811046672U); + } + void CopyOldToNew(const OldHepMatrix &old_matx, CLHEP::HepMatrix &new_matx ); +}; + + +class CLHEPLorVecStreamer : public T_AthenaRootConverter<CLHEP::HepLorentzVector, OldHepLorentzVector > +{ +public: + CLHEPLorVecStreamer() { + SetClassNameAndChecksum("HepLorentzVector", 3077056266U); + } + void CopyOldToNew(const OldHepLorentzVector &old_vec, CLHEP::HepLorentzVector &new_vec ); +}; + + +class CLHEP3VectorStreamer : public T_AthenaRootConverter<CLHEP::Hep3Vector, OldHep3Vector > +{ +public: + CLHEP3VectorStreamer() { + SetClassNameAndChecksum("Hep3Vector", 760000369U); + } + void CopyOldToNew(const OldHep3Vector &old_vec, CLHEP::Hep3Vector &new_vec ); +}; + + + +class CLHEPBasicVectorStreamer : public T_AthenaRootConverter<HepGeom::BasicVector3D<double>, OldBasicVector3D > +{ +public: + CLHEPBasicVectorStreamer() { + SetClassNameAndChecksum("BasicVector3D", 2681080162U); + } + void CopyOldToNew(const OldBasicVector3D &old_vec, HepGeom::BasicVector3D<double> &new_vec ); +}; + + + + +namespace HepGeom { class Transform3D; } +class CLHEPTransform3DStreamer : public T_AthenaRootConverter<HepGeom::Transform3D, OldHepTransform3D > +{ +public: + CLHEPTransform3DStreamer() { + SetClassNameAndChecksum("HepTransform3D", 520750269U); + } + void CopyOldToNew(const OldHepTransform3D &old_, HepGeom::Transform3D &new_); +}; + +#endif diff --git a/Database/AtlasSealCLHEP/AtlasSealCLHEP/selection.xml b/Database/AtlasSealCLHEP/AtlasSealCLHEP/selection.xml new file mode 100755 index 0000000000000000000000000000000000000000..745570f72814f86b40db95adbcc36d82ec2a265a --- /dev/null +++ b/Database/AtlasSealCLHEP/AtlasSealCLHEP/selection.xml @@ -0,0 +1,110 @@ +<lcgdict> + + <!-- Vector --> + <class name="CLHEP::Hep2Vector"/> + <!-- rotation interface do not compile with reflex/gcc344 RDS 2006/03 + <class name="CLHEP::Hep3RotationInterface"/> + <class name="CLHEP::Hep4RotationInterface"/> + --> + <class name="CLHEP::HepBoostZ"/> + <class name="CLHEP::HepBoostY"/> + <class name="CLHEP::HepBoostX"/> + <class name="CLHEP::HepBoost"/> + <class name="CLHEP::HepRotationZ"/> + <class name="CLHEP::HepRotationY"/> + <class name="CLHEP::HepRotationX"/> + <class name="CLHEP::HepRep4x4Symmetric"/> + <class name="CLHEP::HepRep4x4"/> + <class name="CLHEP::HepRep3x3"/> + <class name="CLHEP::HepLorentzVector"/> + <class name="CLHEP::HepLorentzRotation"/> + <class name="CLHEP::Hep3Vector"/> + <class name="CLHEP::HepAxisAngle"/> + <class name="CLHEP::HepEulerAngles"/> + <class name="CLHEP::HepRotation"/> + + <!-- Random` --> + <class name="CLHEP::RandStudentT"/> + <class name="CLHEP::RandPoissonT"/> + <class name="CLHEP::RandPoissonQ"/> + <class name="CLHEP::RandPoisson"/> + <class name="CLHEP::RandLandau"/> + <class name="CLHEP::RandGeneral"/> + <class name="CLHEP::RandGaussT"/> + <class name="CLHEP::HepStat"/> + <class name="CLHEP::RandGaussQ"/> + <class name="CLHEP::RandGauss"/> + <class name="CLHEP::RandGamma"/> + <class name="CLHEP::RandBit"/> + <class name="CLHEP::RandExponential"/> + <class name="CLHEP::RandChiSquare"/> + <class name="CLHEP::RandBreitWigner"/> + <class name="CLHEP::RandFlat"/> + <class name="CLHEP::RandBinomial"/> + <class name="CLHEP::HepRandom"/> + <class name="CLHEP::RandEngine"/> + <class name="CLHEP::HepJamesRandom"/> + <class name="CLHEP::HepRandomEngine"/> + + <!-- Geometry --> + <class name="HepGeom::BasicVector3D<double>"/> + <class name="HepGeom::BasicVector3D<float>"/> + <class name="HepGeom::Normal3D<double>"/> + <class name="HepGeom::Normal3D<float>"/> + <class name="HepGeom::Point3D<double>"/> + <class name="HepGeom::Point3D<float>"/> + <class name="HepGeom::Transform3D"/> +<!-- <class name="HepTransform3D"/> --> + <class name="HepGeom::Rotate3D"/> + <class name="HepGeom::RotateX3D"/> + <class name="HepGeom::RotateY3D"/> + <class name="HepGeom::RotateZ3D"/> + <class name="HepGeom::Translate3D"/> + <class name="HepGeom::TranslateX3D"/> + <class name="HepGeom::TranslateY3D"/> + <class name="HepGeom::TranslateZ3D"/> + <class name="HepGeom::Reflect3D"/> + <class name="HepGeom::ReflectX3D"/> + <class name="HepGeom::ReflectY3D"/> + <class name="HepGeom::ReflectZ3D"/> + <class name="HepGeom::Scale3D"/> + <class name="HepGeom::ScaleX3D"/> + <class name="HepGeom::ScaleY3D"/> + <class name="HepGeom::ScaleZ3D"/> + <class name="HepGeom::Vector3D<double>"/> + <class name="HepGeom::Vector3D<float>"/> + + <!-- Matrix --> + <class name="CLHEP::HepDiagMatrix"/> + <class name="CLHEP::HepGenMatrix" /> + <class name="CLHEP::HepMatrix"/> + <class name="CLHEP::HepSymMatrix"/> + <class name="CLHEP::HepVector"/> + + <!-- GenericFunctions --> + + + <!-- OLD CLHEP --> + + <class name="OldHepPoint3D" /> + <class name="OldHepVector3D" /> + <class name="OldBasicVector3D" /> + <class name="OldHep3Vector" /> + <class name="OldHepMatrix" /> + <class name="OldHepGenMatrix" /> + <class name="OldHepLorentzVector" /> + <class name="OldHepTransform3D" /> + + <!-- OLD CLHEP Streamers --> + + <class name="CLHEPVec3dStreamer" /> + <class name="CLHEPPoint3dStreamer" /> + <class name="CLHEPGenMatrixStreamer" /> + <class name="CLHEPMatrixStreamer" /> + <class name="CLHEPRotationStreamer" /> + <class name="CLHEPLorVecStreamer" /> + <class name="CLHEP3VectorStreamer" /> + <class name="CLHEPBasicVectorStreamer" /> + <class name="CLHEPTransform3DStreamer" /> + +</lcgdict> diff --git a/Database/AtlasSealCLHEP/cmt/requirements b/Database/AtlasSealCLHEP/cmt/requirements new file mode 100755 index 0000000000000000000000000000000000000000..ec04bbac8e25b7b1618e35c3196b09d8f0c7ec3c --- /dev/null +++ b/Database/AtlasSealCLHEP/cmt/requirements @@ -0,0 +1,38 @@ +package AtlasSealCLHEP + +author RD Schaffer <R.D.Schaffer@cern.ch> + +use AtlasPolicy AtlasPolicy-01-* +use AtlasCLHEP AtlasCLHEP-00-* External +use AthenaPoolServices AthenaPoolServices-00-* Database/AthenaPOOL + + +private +use AtlasReflex AtlasReflex-00-* External -no_auto_imports + + +apply_pattern installed_library +library AtlasSealCLHEP OldCLHEPStreamers.cxx + +# Pattern to build the dict lib. User should create a single header +# file: <package>Dict.h which includes all other .h files. See MissingETDict +# A selection file must be created by hand. This file lists the +# classes to be added to the dictionary, and which fields are +# transient. It should be put in ../<package> dir and is conventionally called +# selection.xml. + +macro_append lcgdict_options ' -I.. ' +macro_append AtlasSealCLHEPDict_shlibflags " -lAtlasSealCLHEP " +apply_pattern lcgdict dict=AtlasSealCLHEP selectionfile=selection.xml headerfiles="../AtlasSealCLHEP/AtlasSealCLHEPDict.h" + + +#apply_tag no_extra_dict_deps +#macro QUICK "1" + +# Now build a special (hand-written) library to build a dictionary for HepTransform3D +#apply_pattern lcgdictfix libname=AtlasSealCLHEP dictfiles="AtlasSealCLHEPDict_dict_fixes.cxx" + +apply_pattern declare_joboptions files="*.py" +apply_pattern declare_python_modules files="*.py" + + diff --git a/Database/AtlasSealCLHEP/doc/mainpage.h b/Database/AtlasSealCLHEP/doc/mainpage.h new file mode 100755 index 0000000000000000000000000000000000000000..3cb52d97eacefa3566d54d4d86aea26e4aef89bd --- /dev/null +++ b/Database/AtlasSealCLHEP/doc/mainpage.h @@ -0,0 +1,35 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +/** +@mainpage AtlasSealCLHEP Package + +This package contains Reflex dictionary definitions for some CLHEP classes used within ATLAS. + +@author R.D.Schaffer@cern.ch, Marcin.Nowak@cern.ch + +@section IntroductionAtlasSealCLHEP Introduction + +CLHEP classes used in ATLAS are defined in this package. This package +was originally needed when CLHEP classes were being written out +directly. This has mostly changed with the transient/persistent +separation so that this dictionary is only needed for python +interaction with CLHEP classes. + +There is also some ROOT streamers classes which allow reading old data +with schema evolved CLHEP classes in the data. This is no longer +needed with data written with from release 13 and beyond. + +*/ + +/** +@page UsedAtlasSealCLHEP Used Packages +@htmlinclude used_packages.html +*/ + +/** +@page RequirementsAtlasSealCLHEP Requirements +@include requirements +*/ + diff --git a/Database/AtlasSealCLHEP/python/OldCLHEPStreamers.py b/Database/AtlasSealCLHEP/python/OldCLHEPStreamers.py new file mode 100755 index 0000000000000000000000000000000000000000..ffeff73ae0b7da1cb2dcd362300eb70d040504e5 --- /dev/null +++ b/Database/AtlasSealCLHEP/python/OldCLHEPStreamers.py @@ -0,0 +1,47 @@ +# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + + +def loadOldCLHEPStreamers(): + """ + Helper method to load and configure the AthenaRootStreamerSvc to be able + to read Old CLHEP classes (v1.8) + """ + from AthenaCommon.Logging import logging + from AthenaCommon.AppMgr import ServiceMgr as svcMgr + from AthenaCommon import CfgMgr + + msg = logging.getLogger( 'loadOldCLHEPStreamers' ) + msg.debug( "Loading Old CLHEP streamers..." ) + + # Seal services: for loading dictionaries + if not hasattr (svcMgr, 'AthenaSealSvc'): + svcMgr += CfgMgr.AthenaSealSvc() + + # Reguest loading CLHEP dictionary + svcMgr.AthenaSealSvc.DictNames += [ "AtlasSealCLHEPDict" ] + + + # ROOT streaming service + if not hasattr (svcMgr, 'AthenaRootStreamerSvc'): + svcMgr += CfgMgr.AthenaRootStreamerSvc() + streamerSvc = svcMgr.AthenaRootStreamerSvc + + # active ROOT streamers list + streamerSvc.Streamers += [ "CLHEPVec3dStreamer" ] + streamerSvc.Streamers += [ "CLHEPPoint3dStreamer" ] + streamerSvc.Streamers += [ "CLHEPRotationStreamer" ] + streamerSvc.Streamers += [ "CLHEPGenMatrixStreamer" ] + streamerSvc.Streamers += [ "CLHEPMatrixStreamer" ] + streamerSvc.Streamers += [ "CLHEPLorVecStreamer" ] + streamerSvc.Streamers += [ "CLHEPTransform3DStreamer" ] + streamerSvc.Streamers += [ "CLHEP3VectorStreamer" ] + streamerSvc.Streamers += [ "CLHEPBasicVectorStreamer" ] + + msg.debug( "Loading Old CLHEP streamers... [DONE]" ) + return + +## load streamer configuration at module import +loadOldCLHEPStreamers() + +## clean-up: avoid running multiple times this method +del loadOldCLHEPStreamers diff --git a/Database/AtlasSealCLHEP/python/__init__.py b/Database/AtlasSealCLHEP/python/__init__.py new file mode 100755 index 0000000000000000000000000000000000000000..74583d364ec2ca794156596c7254d9b234a940c6 --- /dev/null +++ b/Database/AtlasSealCLHEP/python/__init__.py @@ -0,0 +1,2 @@ +# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + diff --git a/Database/AtlasSealCLHEP/share/OldCLHEPStreamers_jobOptions.py b/Database/AtlasSealCLHEP/share/OldCLHEPStreamers_jobOptions.py new file mode 100755 index 0000000000000000000000000000000000000000..8877090a70ea7dea5650f88cd69fd3d74cdad60e --- /dev/null +++ b/Database/AtlasSealCLHEP/share/OldCLHEPStreamers_jobOptions.py @@ -0,0 +1,3 @@ +## load the Old CLHEP streamers by importing the appropriate py-module +## It configures the AthenaRootStreamerSvc +import AtlasSealCLHEP.OldCLHEPStreamers diff --git a/Database/AtlasSealCLHEP/src/AtlasSealCLHEPDict_dict_fixes.cxx b/Database/AtlasSealCLHEP/src/AtlasSealCLHEPDict_dict_fixes.cxx new file mode 100755 index 0000000000000000000000000000000000000000..f17f74bb10f299967841b4f814e85835b156df77 --- /dev/null +++ b/Database/AtlasSealCLHEP/src/AtlasSealCLHEPDict_dict_fixes.cxx @@ -0,0 +1,132 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +// Generated at Mon Jul 11 17:45:44 2005. Do not modify it + +#ifdef _WIN32 +#pragma warning ( disable : 4786 ) +#ifndef LCGDICT_STRING +#include <string> // Included here since it is sensitive to private->public trick +#endif +#endif +#define private public +#define protected public +#include "../AtlasSealCLHEP/AtlasSealCLHEPDict.h" +#undef private +#undef protected +#include "ReflectionBuilder/ReflectionBuilder.h" +#include "ReflectionBuilder/CollectionProxy.h" +#include <typeinfo> +using namespace seal::reflect; + +//------Dictionary for class Transform3D ------------------------------- +class HepTransform3D_dict { + public: + HepTransform3D_dict(); + static void* constructor_2212( void* ); + static void destructor( void* o ) { ((HepGeom::Transform3D*)o)->~Transform3D(); } +}; +HepTransform3D_dict::HepTransform3D_dict() { + ClassBuilder _c_("HepTransform3D", "", typeid(HepGeom::Transform3D), sizeof(HepGeom::Transform3D),std::vector<const std::type_info*>(), false, NOCONTAINER, 0, PUBLIC); + _c_.addField("xx", "double", "", (size_t)(&((HepGeom::Transform3D*)64)->xx_)-64, PROTECTED ); + _c_.addField("xy", "double", "", (size_t)(&((HepGeom::Transform3D*)64)->xy_)-64, PROTECTED ); + _c_.addField("xz", "double", "", (size_t)(&((HepGeom::Transform3D*)64)->xz_)-64, PROTECTED ); + _c_.addField("dx", "double", "", (size_t)(&((HepGeom::Transform3D*)64)->dx_)-64, PROTECTED ); + _c_.addField("yx", "double", "", (size_t)(&((HepGeom::Transform3D*)64)->yx_)-64, PROTECTED ); + _c_.addField("yy", "double", "", (size_t)(&((HepGeom::Transform3D*)64)->yy_)-64, PROTECTED ); + _c_.addField("yz", "double", "", (size_t)(&((HepGeom::Transform3D*)64)->yz_)-64, PROTECTED ); + _c_.addField("dy", "double", "", (size_t)(&((HepGeom::Transform3D*)64)->dy_)-64, PROTECTED ); + _c_.addField("zx", "double", "", (size_t)(&((HepGeom::Transform3D*)64)->zx_)-64, PROTECTED ); + _c_.addField("zy", "double", "", (size_t)(&((HepGeom::Transform3D*)64)->zy_)-64, PROTECTED ); + _c_.addField("zz", "double", "", (size_t)(&((HepGeom::Transform3D*)64)->zz_)-64, PROTECTED ); + _c_.addField("dz", "double", "", (size_t)(&((HepGeom::Transform3D*)64)->dz_)-64, PROTECTED ); + _c_.addMethod("HepTransform3D", "", "HepTransform3D", constructor_2212, PUBLIC); + _c_.addMethod("~HepTransform3D", "", destructor, PUBLIC); + _c_.build(); +} + +//------Stub functions for class Transform3D ------------------------------- +void* HepTransform3D_dict::constructor_2212( void* mem) { + return ::new(mem) HepGeom::Transform3D(); +} + +//------Dictionary for class HepLorentzVector ------------------------------- +class HepLorentzVector_dict { + public: + HepLorentzVector_dict(); + static void* constructor_7008( void* ); + static void destructor( void* o ) { ((CLHEP::HepLorentzVector*)o)->~HepLorentzVector(); } +}; +HepLorentzVector_dict::HepLorentzVector_dict() { + ClassBuilder _c_("HepLorentzVector", "", typeid(CLHEP::HepLorentzVector), sizeof(CLHEP::HepLorentzVector),std::vector<const std::type_info*>(), false, NOCONTAINER, 0, PUBLIC); + _c_.addField("pp", "Hep3Vector", "", (size_t)(&((CLHEP::HepLorentzVector*)64)->pp)-64, PRIVATE ); + _c_.addField("ee", "double", "", (size_t)(&((CLHEP::HepLorentzVector*)64)->ee)-64, PRIVATE ); + _c_.addMethod("HepLorentzVector", "", "HepLorentzVector", constructor_7008, PUBLIC); + _c_.addMethod("~HepLorentzVector", "", destructor, PUBLIC); + _c_.build(); +} + +//------Stub functions for class HepLorentzVector ------------------------------- +void* HepLorentzVector_dict::constructor_7008( void* mem) { + return ::new(mem) CLHEP::HepLorentzVector(); +} + + +//------Dictionary for class Hep3Vector ------------------------------- +class Hep3Vector_dict { + public: + Hep3Vector_dict(); + static void* constructor_x46( void* ); + static void destructor( void* o ) { ((CLHEP::Hep3Vector*)o)->~Hep3Vector(); } +}; +Hep3Vector_dict::Hep3Vector_dict() { + ClassBuilder _c_("Hep3Vector", "", typeid(CLHEP::Hep3Vector), sizeof(CLHEP::Hep3Vector),std::vector<const std::type_info*>(), false, NOCONTAINER, 0, PUBLIC); + _c_.addField("dx", "double", "", (size_t)(&((CLHEP::Hep3Vector*)64)->dx)-64, PROTECTED ); + _c_.addField("dy", "double", "", (size_t)(&((CLHEP::Hep3Vector*)64)->dy)-64, PROTECTED ); + _c_.addField("dz", "double", "", (size_t)(&((CLHEP::Hep3Vector*)64)->dz)-64, PROTECTED ); + _c_.addMethod("Hep3Vector", "", "CLHEP::Hep3Vector", constructor_x46, PUBLIC); + _c_.addMethod("~Hep3Vector", "", destructor, PUBLIC); + _c_.build(); +} + +//------Stub functions for class Hep3Vector ------------------------------- + +void* Hep3Vector_dict::constructor_x46( void* mem) { + return ::new(mem) CLHEP::Hep3Vector(); +} + +//--------- Bootstrap for building classes ------ + +namespace { + struct Dictionaries { + Dictionaries() { + HepTransform3D_dict(); + HepLorentzVector_dict(); + Hep3Vector_dict(); + Class::resolvePending(); + } + }; + static Dictionaries instance; +} + + +//--------- Capabilities specification ------ + + +// This file has been generated by lcgdict with the --capabilities option +static const char* clnames[] = { +//--Begin AtlasSealCLHEPDictFix + "LCGDict/HepTransform3D", + "LCGDict/HepLorentzVector", + "LCGDict/Hep3Vector" +//--End AtlasSealCLHEPDict +//--Final End +}; + +extern "C" void SEAL_CAPABILITIES (const char**& names, int& n ) +{ + names = clnames; + n = sizeof(clnames)/sizeof(char*); +} + diff --git a/Database/AtlasSealCLHEP/src/OldCLHEPStreamers.cxx b/Database/AtlasSealCLHEP/src/OldCLHEPStreamers.cxx new file mode 100755 index 0000000000000000000000000000000000000000..97b059c5ae4e87d7ac0894d42a3458aa06a7d189 --- /dev/null +++ b/Database/AtlasSealCLHEP/src/OldCLHEPStreamers.cxx @@ -0,0 +1,110 @@ +/* + Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration +*/ + +#define private public +#define protected public +#include "CLHEP/Matrix/Matrix.h" +#include "CLHEP/Geometry/Transform3D.h" +#undef private +#undef protected + +#include "AtlasSealCLHEP/OldCLHEPStreamers.h" + +#include <iostream> + + +void +CLHEPMatrixStreamer::CopyOldToNew(const OldHepMatrix &old_matx, CLHEP::HepMatrix &new_matx ) +{ +// std::cout << " **** CLHEPMatrixStreamer::CopyOldToNew() " << std::endl; +// std::cout << " matrix size="<< old_matx.size << std::endl; +// std::cout << " matrix nrow="<< old_matx.nrow << std::endl; +// std::cout << " matrix ncol="<< old_matx.ncol << std::endl; +// std::cout << " matrix m-size="<< old_matx.m.size() << std::endl; + new_matx.m = old_matx.m; // ---- FIXME + new_matx.size_ = old_matx.size; + // intentional swap! somehow necessary for reading root3 data + new_matx.nrow = old_matx.ncol; + new_matx.ncol = old_matx.nrow; +} + + + +void +CLHEPPoint3dStreamer::CopyOldToNew(const OldHepPoint3D &old_point, HepGeom::Point3D<double> &new_point ) +{ +// std::cout << " **** CLHEPPoint3dStreamer::CopyOldToNew() " << std::endl; +// std::cout << " Point(x,y,z) = " << old_point.x() << "," << old_point.y() << "," << old_point.z() << std::endl; + HepGeom::Point3D<double> point( old_point.x(), old_point.y(), old_point.z() ); + new_point = point; +} + + + +void +CLHEPLorVecStreamer::CopyOldToNew(const OldHepLorentzVector &old_vec, CLHEP::HepLorentzVector &new_vec ) +{ +// std::cout << " **** CLHEPLorVecStreamer::CopyOldToNew() " << std::endl; +// std::cout << " LVec(x,y,z,t) = " << old_vec.x() << "," << old_vec.y() << "," << old_vec.z() << "," << old_vec.t() << std::endl; + CLHEP::HepLorentzVector vector( old_vec.x(), old_vec.y(), old_vec.z(), old_vec.t() ); + new_vec = vector; +} + + +void +CLHEP3VectorStreamer::CopyOldToNew(const OldHep3Vector &old_vec, CLHEP::Hep3Vector &new_vec ) +{ +// std::cout << " **** CLHEP3VectorStreamer::CopyOldToNew() " << std::endl; +// std::cout << " Vec(x,y,z) = " << old_vec.x() << "," << old_vec.y() << "," << old_vec.z() << std::endl; + CLHEP::Hep3Vector vector( old_vec.x(), old_vec.y(), old_vec.z() ); + new_vec = vector; +} + + +void +CLHEPBasicVectorStreamer::CopyOldToNew(const OldBasicVector3D &old_vec, HepGeom::BasicVector3D<double> &new_vec ) +{ +// std::cout << " **** CLHEPBasicVectorStreamer::CopyOldToNew() " << std::endl; +// std::cout << " Vec(x,y,z) = " << old_vec.x() << "," << old_vec.y() << "," << old_vec.z() << std::endl; + HepGeom::BasicVector3D<double> vector( old_vec.x(), old_vec.y(), old_vec.z() ); + new_vec = vector; +} + + + + + + +#define TRANSF_DBGL 0 +void +CLHEPTransform3DStreamer::CopyOldToNew(const OldHepTransform3D &old_tr, HepGeom::Transform3D &new_tr ) +{ +#if( TRANSF_DBGL > 0 ) + std::cout << " **** CLHEPTransform3DStreamer::CopyOldToNew() " << std::endl; +#endif +#if( TRANSF_DBGL > 1 ) + std::cout << " TRFM= " << old_tr.m1 <<"," << old_tr.m2 <<"," << old_tr.m3 <<"," << old_tr.m4 << std::endl; + std::cout << " TRFM= " << old_tr.m5 <<"," << old_tr.m6 <<"," << old_tr.m7 <<"," << old_tr.m8 << std::endl; + std::cout << " TRFM= " << old_tr.m9 <<"," << old_tr.m10<<"," << old_tr.m11<<"," << old_tr.m12<< std::endl; +#endif + new_tr.xx_ = old_tr.m4; + new_tr.xy_ = old_tr.m5; + new_tr.xz_ = old_tr.m6; + new_tr.dx_ = old_tr.m1; + + new_tr.yx_ = old_tr.m7; + new_tr.yy_ = old_tr.m8; + new_tr.yz_ = old_tr.m9; + new_tr.dy_ = old_tr.m2; + + new_tr.zx_ = old_tr.m10; + new_tr.zy_ = old_tr.m11; + new_tr.zz_ = old_tr.m12; + new_tr.dz_ = old_tr.m3; +#if( TRANSF_DBGL > 1 ) + std::cout << " TRFM new= " << new_tr.xx() <<"," << new_tr.xy() <<"," << new_tr.xz() <<"," << new_tr.dx() << std::endl; + std::cout << " TRFM new= " << new_tr.yx() <<"," << new_tr.yy() <<"," << new_tr.yz() <<"," << new_tr.dy() << std::endl; + std::cout << " TRFM new= " << new_tr.zx() <<"," << new_tr.zy() <<"," << new_tr.zz() <<"," << new_tr.dz() << std::endl; +#endif +}