LCOV - code coverage report
Current view: top level - TEvtGen/EvtGen/EvtGenBase - EvtVector3C.hh (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 14 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 10 0.0 %

          Line data    Source code
       1             : //--------------------------------------------------------------------------
       2             : //
       3             : // Environment:
       4             : //      This software is part of the EvtGen package developed jointly
       5             : //      for the BaBar and CLEO collaborations.  If you use all or part
       6             : //      of it, please give an appropriate acknowledgement.
       7             : //
       8             : // Copyright Information: See EvtGen/COPYRIGHT
       9             : //      Copyright (C) 1998      Caltech, UCSB
      10             : //
      11             : // Module: EvtGen/EvtVector3C.hh
      12             : //
      13             : // Description: Class for complex 3 vectors
      14             : //
      15             : // Modification history:
      16             : //
      17             : //    RYD     September 6, 1997         Module created
      18             : //
      19             : //------------------------------------------------------------------------
      20             : 
      21             : #ifndef EVTVECTOR3C_N
      22             : #define EVTVECTOR3C_N
      23             : 
      24             : #include "EvtGenBase/EvtComplex.hh"
      25             : #include "EvtGenBase/EvtVector3R.hh"
      26             : #include <iosfwd>
      27             : 
      28           0 : class EvtVector3C {
      29             : 
      30             :   friend EvtVector3C rotateEuler(const EvtVector3C& v,
      31             :                                  double phi,double theta,double ksi);
      32             :   
      33             :   inline friend EvtVector3C operator*(const EvtComplex& c,const EvtVector3C& v2); 
      34             :   inline friend EvtVector3C operator*(const EvtComplex& c,const EvtVector3R& v2); 
      35             :   inline friend EvtComplex operator*(const EvtVector3R& v1,const EvtVector3C& v2); 
      36             :   inline friend EvtComplex operator*(const EvtVector3C& v1,const EvtVector3R& v2); 
      37             :   inline friend EvtComplex operator*(const EvtVector3C& v1,const EvtVector3C& v2); 
      38             :   inline friend EvtVector3C operator+(const EvtVector3C& v1,const EvtVector3C& v2);
      39             :   inline friend EvtVector3C operator-(const EvtVector3C& v1,const EvtVector3C& v2);
      40             :   inline friend EvtVector3C operator*(const EvtVector3C& v1,const EvtComplex& c);
      41             :   
      42             : 
      43             : public:
      44             : 
      45             :   EvtVector3C();
      46             :   EvtVector3C(const EvtComplex&,const EvtComplex&,const EvtComplex&);
      47             :   virtual ~EvtVector3C();
      48             :   inline void set(const int,const EvtComplex&);
      49             :   inline void set(const EvtComplex&,const EvtComplex&,const EvtComplex&);
      50             :   inline void set(double,double,double);
      51             :   inline EvtVector3C& operator*=(const EvtComplex& c);
      52             :   inline EvtVector3C& operator/=(const EvtComplex& c);
      53             :   inline EvtVector3C& operator+=(const EvtVector3C& v2);
      54             :   inline EvtVector3C& operator-=(const EvtVector3C& v2);
      55             :   inline EvtVector3C(const EvtVector3R& v1); 
      56             :   void applyRotateEuler(double phi,double theta,double ksi);
      57             :   inline const EvtComplex& get(int) const;
      58             :   inline EvtVector3C conj() const;
      59             :   EvtVector3C cross(const EvtVector3C& v2);
      60             :   friend std::ostream& operator<<(std::ostream& c,const EvtVector3C& v); 
      61             :   double dot( const EvtVector3C& p2 );  
      62             : private:
      63             : 
      64             :   EvtComplex v[3];
      65             : };
      66             : 
      67             : inline EvtVector3C::EvtVector3C(const EvtVector3R& v1){
      68             : 
      69             :   v[0]=EvtComplex(v1.get(0),0.0);
      70             :   v[1]=EvtComplex(v1.get(1),0.0);
      71             :   v[2]=EvtComplex(v1.get(2),0.0);
      72             : 
      73             : } 
      74             : 
      75             : inline void EvtVector3C::set(const int i,const EvtComplex& c){
      76             : 
      77           0 :   v[i]=c;
      78             :   
      79           0 : }
      80             : 
      81             : inline void EvtVector3C::set(const EvtComplex& x,const EvtComplex& y, 
      82             :                              const EvtComplex& z){
      83             : 
      84             :    v[0]=x; v[1]=y; v[2]=z; 
      85             : }
      86             : 
      87             : inline void EvtVector3C::set(double x,
      88             :                           double y,double z){
      89             : 
      90             :      v[0]=EvtComplex(x); v[1]=EvtComplex(y); v[2]=EvtComplex(z);
      91             : }
      92             : 
      93             : inline const EvtComplex& EvtVector3C::get(int i) const {
      94             : 
      95           0 :    return v[i];
      96             : }
      97             : 
      98             : inline EvtVector3C& EvtVector3C::operator*=(const EvtComplex& c){
      99             : 
     100           0 :   v[0]*=c;
     101           0 :   v[1]*=c;
     102           0 :   v[2]*=c;
     103           0 :   return *this;
     104             : }
     105             : 
     106             : inline EvtVector3C& EvtVector3C::operator/=(const EvtComplex& c){
     107             : 
     108             :   v[0]/=c;
     109             :   v[1]/=c;
     110             :   v[2]/=c;
     111             :   return *this;
     112             : }
     113             : 
     114             : inline EvtVector3C& EvtVector3C::operator+=(const EvtVector3C& v2){
     115             : 
     116             :   v[0]+=v2.v[0];
     117             :   v[1]+=v2.v[1];
     118             :   v[2]+=v2.v[2];
     119             :   return *this;
     120             : }
     121             : 
     122             : inline EvtVector3C& EvtVector3C::operator-=(const EvtVector3C& v2){
     123             : 
     124             :   v[0]-=v2.v[0];
     125             :   v[1]-=v2.v[1];
     126             :   v[2]-=v2.v[2];
     127             :   return *this;
     128             : }
     129             : 
     130             : inline EvtVector3C operator+(const EvtVector3C& v1,const EvtVector3C& v2) {
     131             : 
     132             :   return EvtVector3C(v1)+=v2;
     133             : }
     134             : 
     135             : inline EvtVector3C operator-(const EvtVector3C& v1,const EvtVector3C& v2) {
     136             : 
     137             :   return EvtVector3C(v1)-=v2;
     138             : }
     139             : 
     140             : inline EvtVector3C operator*(const EvtVector3C& v1,const EvtComplex& c) {
     141             : 
     142             :   return EvtVector3C(v1)*=c;
     143             : }
     144             : 
     145             : inline EvtVector3C operator*(const EvtComplex& c,const EvtVector3C& v2){
     146             : 
     147           0 :   return EvtVector3C(v2)*=c;
     148           0 : }
     149             : 
     150             : inline EvtVector3C operator*(const EvtComplex& c,const EvtVector3R& v2){
     151             : 
     152             :   return EvtVector3C(v2)*=c;
     153             : }
     154             : 
     155             : inline EvtComplex operator*(const EvtVector3R& v1,const EvtVector3C& v2){
     156             :  
     157             :   return v1.get(0)*v2.v[0]+v1.get(1)*v2.v[1]+v1.get(2)*v2.v[2];
     158             : }
     159             : 
     160             : inline EvtComplex operator*(const EvtVector3C& v1,const EvtVector3R& v2){
     161             :  
     162           0 :   return v1.v[0]*v2.get(0)+v1.v[1]*v2.get(1)+v1.v[2]*v2.get(2);
     163             : }
     164             : 
     165             : inline EvtComplex operator*(const EvtVector3C& v1,const EvtVector3C& v2){
     166             :  
     167           0 :   return v1.v[0]*v2.v[0]+v1.v[1]*v2.v[1]+v1.v[2]*v2.v[2];
     168             : }
     169             : 
     170             : inline EvtVector3C EvtVector3C::conj() const { 
     171             : 
     172           0 :   return EvtVector3C(::conj(v[0]),::conj(v[1]),
     173           0 :                   ::conj(v[2]));
     174             : }
     175             : 
     176             : #endif
     177             : 

Generated by: LCOV version 1.11