BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/MdcPatRec/MdcRecoUtil/include/MdcRecoUtil/DifPoint.h
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2// File and Version Information:
3// $Id: DifPoint.h,v 1.2 2009/12/23 02:59:56 zhangy Exp $
4//
5// Description:
6// Class Header for |DifPoint|
7// What i do ?
8//
9// Environment:
10// Software developed for the BaBar Detector at the SLAC B-Factory.
11//
12// Author List:
13// A. Snyder
14//
15// Copyright Information:
16// Copyright (C) 1996 SLAC
17//
18// History:
19// Migration for BESIII MDC
20//
21//------------------------------------------------------------------------
22
23#ifndef DifPoint_H
24#define DifPoint_H
25
26#include "CLHEP/Geometry/Point3D.h"
27#include "MdcRecoUtil/DifVector.h"
28#include <assert.h>
29#ifndef ENABLE_BACKWARDS_COMPATIBILITY
30typedef HepGeom::Point3D<double> HepPoint3D;
31#endif
32
33class DifPoint : public DifVector {
34
35public:
36 DifPoint( const DifPoint& p ) : DifVector( p ) {}
38 DifPoint( const HepPoint3D& p );
39
40 DifPoint( const DifNumber& X, const DifNumber& Y, const DifNumber& Z )
41 : DifVector( X, Y, Z ) {}
42 DifPoint( double X, double Y, double Z ) : DifVector( X, Y, Z ) {}
43
44 // operators - sensible only
45 inline DifPoint& operator=( const DifPoint& p );
46 inline DifPoint& operator+=( const DifVector& v );
47 inline DifPoint& operator-=( const DifVector& v );
48 inline DifPoint& operator*=( const DifNumber& n );
49 inline DifPoint& operator/=( const DifNumber& n );
50
51 // binary operators
52
53 inline friend DifPoint operator+( const DifPoint& p, const DifVector& v );
54 inline friend DifPoint operator+( const DifVector& v, const DifPoint& p );
55 inline friend DifPoint operator-( const DifPoint& p, const DifVector& v );
56 inline friend DifVector operator-( const DifPoint& a, const DifPoint& b );
57
58 // change of scale is ok (e.g. m->cm)
59 inline friend DifPoint operator*( const DifPoint& p, const DifNumber& n );
60 inline friend DifPoint operator*( const DifNumber& n, const DifPoint& p );
61 inline friend DifPoint operator/( const DifPoint& v, const DifNumber& n );
62
63private:
64 // disable senseless operations
65 DifPoint& operator=( const DifVector& v );
66 DifPoint& operator+=( const DifPoint& p );
67 DifPoint& operator-=( const DifPoint& p );
68
69public:
70 // bes interface routines
72};
73
74#include "MdcRecoUtil/DifPoint.icc"
75
76#endif
HepGeom::Point3D< double > HepPoint3D
const Int_t n
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
Definition KarLud.h:35
friend DifPoint operator/(const DifPoint &v, const DifNumber &n)
DifPoint & operator+=(const DifVector &v)
DifPoint & operator*=(const DifNumber &n)
friend DifPoint operator+(const DifVector &v, const DifPoint &p)
DifPoint & operator/=(const DifNumber &n)
friend DifPoint operator*(const DifPoint &p, const DifNumber &n)
DifPoint(const DifNumber &X, const DifNumber &Y, const DifNumber &Z)
friend DifPoint operator-(const DifPoint &p, const DifVector &v)
DifPoint & operator-=(const DifVector &v)
DifPoint & operator=(const DifPoint &p)
friend DifPoint operator*(const DifNumber &n, const DifPoint &p)
friend DifPoint operator+(const DifPoint &p, const DifVector &v)
HepPoint3D hepPoint() const
friend DifVector operator-(const DifPoint &a, const DifPoint &b)
DifPoint(const HepPoint3D &p)