3#include "GaudiKernel/MsgStream.h"
4#include "GaudiKernel/IMessageSvc.h"
5#include "GaudiKernel/StatusCode.h"
6#include "GaudiKernel/ISvcLocator.h"
7#include "GaudiKernel/Bootstrap.h"
8#include "GaudiKernel/SmartDataPtr.h"
9#include "GaudiKernel/IDataProviderSvc.h"
10#include "GaudiKernel/PropertyMgr.h"
26 double phiVUp[],
double phiVDown[]){
30 int layer_geo = int(layer_vir/2);
31 posDown = pLine.
xAtR(m_rad[layer_geo], 1);
34 posUp = pLine.
xAtR(m_rad[layer_geo], -1);
42 double phiVUp[],
double phiVDown[]){
49 double phiVUp[],
double phiVDown[]){
51 posDown = pLine.
xAtR(m_rad[layer_geo], 1);
54 posUp = pLine.
xAtR(m_rad[layer_geo], -1);
62 double phiVUp[],
double phiVDown[]){
63 return getPointIdealGeom(layer_geo, sheet, *pLine, posUp, posDown, phiVUp, phiVDown);
76 int layer_geo = int(layer_vir/2);
80 pos = pLine.
xAtR(m_rad[layer_geo], 1);
85 pos = pLine.
xAtR(m_rad[layer_geo], -1);
106 pos = pLine.
xAtR(m_rad[layer_geo], 1);
110 pos = pLine.
xAtR(m_rad[layer_geo], -1);
166 double phiVUp[],
double phiVDown[]){
170 int layer_geo = int(layer_vir/2);
174 Hep3Vector GposUp, GposDown;
175 bool findInter = m_align->
getinter(Aray, layer_vir, GposUp, GposDown);
183 posDown.setX(99999.);
184 posDown.setY(99999.);
185 posDown.setZ(99999.);
195 posUp.setX(GposUp.x());
196 posUp.setY(GposUp.y());
197 posUp.setZ(GposUp.z());
199 posDown.setX(GposDown.x());
200 posDown.setY(GposDown.y());
201 posDown.setZ(GposDown.z());
204 m_align->
GetLocPos(layer_vir, GposUp, GposDown, LposUp, LposDown);
215 double phiVUp[],
double phiVDown[]){
216 return getPointAligned(layer_vir, *pLine, posUp, posDown, phiVUp, phiVDown);
223 double phiVUp[],
double phiVDown[]){
225 int layer_vir = layer_geo*2+sheet;
229 Hep3Vector GposUp, GposDown;
230 bool findInter = m_align->
getinter(Aray, layer_vir, GposUp, GposDown);
238 posDown.setX(99999.);
239 posDown.setY(99999.);
240 posDown.setZ(99999.);
250 posUp.setX(GposUp.x());
251 posUp.setY(GposUp.y());
252 posUp.setZ(GposUp.z());
254 posDown.setX(GposDown.x());
255 posDown.setY(GposDown.y());
256 posDown.setZ(GposDown.z());
259 m_align->
GetLocPos(layer_vir, GposUp, GposDown, LposUp, LposDown);
270 double phiVUp[],
double phiVDown[]){
271 return getPointAligned(layer_geo, sheet, *pLine, posUp, posDown, phiVUp, phiVDown);
287 int layer_geo = int(layer_vir/2);
292 bool findInter = m_align->
getinter(Aray, layer_vir, Gpos);
311 m_align->
GetLocPos(layer_vir, Gpos, Lpos);
330 int layer_vir = layer_geo*2+sheet;
335 bool findInter = m_align->
getinter(Aray, layer_vir, Gpos);
354 m_align->
GetLocPos(layer_vir, Gpos, Lpos);
432 double phi=pos.phi();
436 int nSheet=2;
if(layer_geo==0) nSheet=1;
437 for(
int iSheet=0; iSheet<nSheet; iSheet++)
439 if(m_readoutPlane[layer_geo][iSheet]->OnThePlane(phi,z))
441 phiV[1]=m_readoutPlane[layer_geo][iSheet]->
getVFromPhiZ(phi,z);
void GetLocPos(int layer_vir, Hep3Vector GposUp, Hep3Vector GposDown, HepPoint3D &LposUp, HepPoint3D &LposDown)
bool getinter(ToyRay ARay, int layer_vir, Hep3Vector &posUp, Hep3Vector &posDown)
double getVFromPhiZ(double phi, double z, bool checkRange=true) const
bool getPointIdealGeom(int layer_vir, StraightLine pLine, HepPoint3D &posUp, HepPoint3D &posDown, double phiVUp[], double phiVDown[])
bool getPointAligned(int layer_vir, StraightLine pLine, HepPoint3D &posUp, HepPoint3D &posDown, double phiVUp[], double phiVDown[])
bool xyzToPhiVIdealGeom(int layer_geo, HepPoint3D pos, double phiV[])
HepPoint3D xAtR(double R, int direction=1) const
double dr(void) const
returns an element of parameters.