Skip to content
Snippets Groups Projects
Commit 18c817a9 authored by Andre Sailer's avatar Andre Sailer
Browse files

PolarGridRPhi2: Change position and cellID functions

use the cellBoundaries based positionToBin and binToPosition functions
parent a238e5c3
No related branches found
No related tags found
No related merge requests found
/* /*
* PolarGridRPhi2.cpp * PolarGridRPhi2.cpp
* *
* Created on: Sept 16, 2014 * Created on: March 17, 2015
* Author: Marko Petric * Author: Marko Petric, Andre Sailer
*/ */
#include "DDSegmentation/PolarGridRPhi2.h" #include "DDSegmentation/PolarGridRPhi2.h"
...@@ -35,8 +35,9 @@ PolarGridRPhi2::~PolarGridRPhi2() { ...@@ -35,8 +35,9 @@ PolarGridRPhi2::~PolarGridRPhi2() {
Vector3D PolarGridRPhi2::position(const CellID& cellID) const { Vector3D PolarGridRPhi2::position(const CellID& cellID) const {
_decoder->setValue(cellID); _decoder->setValue(cellID);
Vector3D position; Vector3D position;
double R = binToPosition((*_decoder)[_rId].value(), _gridRValues[0], _offsetR); const int rBin = (*_decoder)[_rId].value();
double phi = binToPosition((*_decoder)[_phiId].value(), _gridPhiValues[0], _offsetPhi); double R = binToPosition(rBin, _gridRValues, _offsetR);
double phi = binToPosition((*_decoder)[_phiId].value(), _gridPhiValues[rBin], _offsetPhi+_gridPhiValues[rBin]*0.5);
position.X = R * cos(phi); position.X = R * cos(phi);
position.Y = R * sin(phi); position.Y = R * sin(phi);
...@@ -50,8 +51,9 @@ Vector3D PolarGridRPhi2::position(const CellID& cellID) const { ...@@ -50,8 +51,9 @@ Vector3D PolarGridRPhi2::position(const CellID& cellID) const {
double phi = atan2(localPosition.Y,localPosition.X); double phi = atan2(localPosition.Y,localPosition.X);
double R = sqrt( localPosition.X * localPosition.X + localPosition.Y * localPosition.Y ); double R = sqrt( localPosition.X * localPosition.X + localPosition.Y * localPosition.Y );
(*_decoder)[_rId] = positionToBin(R, _gridRValues[0], _offsetR); const int rBin = positionToBin(R, _gridRValues, _offsetR);
(*_decoder)[_phiId] = positionToBin(phi, _gridPhiValues[0], _offsetPhi); (*_decoder)[_rId] = rBin;
(*_decoder)[_phiId] = positionToBin(phi, _gridPhiValues[rBin], _offsetPhi+_gridPhiValues[rBin]*0.5);
return _decoder->getValue(); return _decoder->getValue();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment