00001 00002 // 00003 // Implementation of class QvrtBase 00004 // 00005 // Author : C. Delaere 00006 // 00008 00009 00010 #include <vector> 00011 #include <stdlib.h> 00012 #include <math.h> 00013 #include "QvrtBase.h" 00014 00015 int QvrtBase::NERR=0; 00016 00017 // constructor 00018 QvrtBase::QvrtBase() 00019 { 00020 _locked = 0; 00021 setA4V(0.,0.,0.,0.); 00022 } 00023 00024 // copy constructor 00025 QvrtBase::QvrtBase(const QvrtBase& origin) 00026 { 00027 _locked = origin._locked; 00028 _A4V = origin._A4V; 00029 } 00030 00031 // destructor 00032 QvrtBase::~QvrtBase() {} 00033 00034 // compare 2 objects 00035 // the criterium is the distance to the origin. 00036 bool QvrtBase::operator<(const QvrtBase& other) const 00037 { 00038 return (A4V().rho()<other.A4V().rho()); 00039 } 00040 00041 // set the Lorentz vector 00042 void QvrtBase::setA4V(float x, float y, float z, float e) 00043 { 00044 _A4V.setX(x); 00045 _A4V.setY(y); 00046 _A4V.setZ(z); 00047 _A4V.setT(e); 00048 } 00049 00050 // return the Lorentz vector 00051 HepLorentzVector QvrtBase::A4V() const {return _A4V; } 00052 00053 // standard ALPHA functions 00054 float QvrtBase::QX() const { return _A4V.x();} 00055 float QvrtBase::QY() const { return _A4V.y();} 00056 float QvrtBase::QZ() const { return _A4V.z();} 00057 float QvrtBase::QP() const { return 0;} 00058 float QvrtBase::QR() const { return _A4V.rho();} 00059 float QvrtBase::QE() const { return 0;} 00060 float QvrtBase::QM() const { return 0;} 00061 float QvrtBase::QCT() const { return _A4V.cosTheta();} 00062 float QvrtBase::QCH() const { return 0;} 00063 float QvrtBase::QPH() const { return _A4V.phi();} 00064 int QvrtBase::KVN() const { return -1;} 00074 int QvrtBase::KVTYPE() const { return -1;} 00075 double QvrtBase::QVCHIF() const { return -1;} 00076 HepSymMatrix QvrtBase::QVEM() const { return HepSymMatrix();} 00077 float QvrtBase::QVEM(int i,int j) const { return -1;} 00078 // functions for a kink vertex only 00079 float QvrtBase::PKINK() const { return -1;} 00080 float QvrtBase::PTOUT() const { return -1;} 00094 float QvrtBase::PLOUT() const { return -1;} 00095 int QvrtBase::IHYPK() const { return -1;} 00096 // functions defined for MC vertices only 00097 float QvrtBase::TOF() const { return -1;} 00098 char* QvrtBase::VertexVolumeName() const { return "none";} 00099 char* QvrtBase::VertexMechanisme() const { return "none";} 00100 00101 // the locking 00102 void QvrtBase::Lock(bool recurse) { _locked=1;} 00103 void QvrtBase::unLock(bool recurse) { _locked=0;} 00104 int QvrtBase::isLocked() const { return _locked;} 00105