DefaultHepRepPoint.cc

Go to the documentation of this file.
00001 // Copyright FreeHEP, 2005.
00002 
00003 #include <string>
00004 #include <iostream>
00005 #include <cmath>
00006 
00007 #include "cheprep/DefaultHepRepPoint.h"
00008 
00009 using namespace std;
00010 using namespace HEPREP;
00011 
00016 namespace cheprep {
00017 
00018 DefaultHepRepPoint::DefaultHepRepPoint(HepRepInstance* inst, double xx, double yy, double zz)
00019     : DefaultHepRepAttribute(), instance(inst), x(xx), y(yy), z(zz) {
00020 
00021     if (instance == NULL) {
00022         cerr << "HepRepPoints cannot be created without a HepRepInstance." << endl;
00023     } else {
00024         instance->addPoint(this);
00025     }
00026 }
00027 
00028 DefaultHepRepPoint::~DefaultHepRepPoint() {
00029 }
00030 
00031 HepRepInstance* DefaultHepRepPoint::getInstance() {
00032     return instance;
00033 }
00034 
00035 HepRepAttValue* DefaultHepRepPoint::getAttValue(string lowerCaseName) {
00036     HepRepAttValue* value = getAttValueFromNode(lowerCaseName);
00037     return (value != NULL) ? value : instance->getAttValue(lowerCaseName);
00038 }
00039 
00040 HepRepPoint* DefaultHepRepPoint::copy(HepRepInstance* inst) {
00041     return new DefaultHepRepPoint(inst, x, y, z);
00042 }
00043 
00044 double DefaultHepRepPoint::getX() {
00045     return x;
00046 }
00047 
00048 double DefaultHepRepPoint::getY() {
00049     return y;
00050 }
00051 
00052 double DefaultHepRepPoint::getZ() {
00053     return z;
00054 }
00055 
00056 vector<double>* DefaultHepRepPoint::getXYZ(vector<double>* xyz) {
00057     (*xyz)[0] = x;
00058     (*xyz)[1] = y;
00059     (*xyz)[2] = z;
00060     return xyz;
00061 }
00062 
00063 double DefaultHepRepPoint::getRho() {
00064     return sqrt(x*x + y*y);
00065 }
00066 
00067 double DefaultHepRepPoint::getPhi() {
00068     return atan2(y, x);
00069 }
00070 
00071 double DefaultHepRepPoint::getTheta() {
00072     return atan2(getRho(), z);
00073 }
00074 
00075 double DefaultHepRepPoint::getR() {
00076     double r = getRho();
00077     return sqrt(r*r + z*z);
00078 }
00079 
00080 double DefaultHepRepPoint::getEta() {
00081     double ct = cos(getTheta());
00082     return -0.5*log((1.-ct)/(1.+ct));
00083 }
00084 
00085 double DefaultHepRepPoint::getX(double xVertex, double, double) {
00086     return x - xVertex;
00087 }
00088 
00089 double DefaultHepRepPoint::getY(double, double yVertex, double) {
00090     return y - yVertex;
00091 }
00092 
00093 double DefaultHepRepPoint::getZ(double, double, double zVertex) {
00094     return z - zVertex;
00095 }
00096 
00097 double DefaultHepRepPoint::getRho(double xVertex, double yVertex, double zVertex) {
00098     double dx = getX(xVertex, yVertex, zVertex);
00099     double dy = getY(xVertex, yVertex, zVertex);
00100     return sqrt(dx*dx + dy*dy);
00101 }
00102 
00103 double DefaultHepRepPoint::getPhi(double xVertex, double yVertex, double zVertex) {
00104     return atan2(getY(xVertex, yVertex, zVertex), getX(xVertex, yVertex, zVertex));
00105 }
00106 
00107 double DefaultHepRepPoint::getTheta(double xVertex, double yVertex, double zVertex) {
00108     return atan2(getRho(xVertex, yVertex, zVertex), getZ(xVertex, yVertex, zVertex));
00109 }
00110 
00111 double DefaultHepRepPoint::getR(double xVertex, double yVertex, double zVertex) {
00112     double dr = getRho(xVertex, yVertex, zVertex);
00113     double dz = getZ(xVertex, yVertex, zVertex);
00114     return sqrt(dr*dr + dz*dz);
00115 }
00116 
00117 double DefaultHepRepPoint::getEta(double xVertex, double yVertex, double zVertex) {
00118     double ct = cos(getTheta(xVertex, yVertex, zVertex));
00119     return -0.5*log((1.-ct)/(1.+ct));
00120 }
00121 
00122 
00123 } // cheprep
00124 

Generated on Mon May 27 17:47:34 2013 for Geant4 by  doxygen 1.4.7