|
ATLAS Offline Software
|
|
void | lineCircleIntersection (const Amg::Vector3D &a, const Amg::Vector3D &b, const double &r, double &u1, double &u2) const |
|
void | movePoint1ToZPlaneAndPoint2 (Amg::Vector3D &p1, const Amg::Vector3D &p2, const double &z) const |
|
bool | clipSegmentToZInterval (Amg::Vector3D &a, Amg::Vector3D &b, const double &zmin, const double &zmax) const |
|
void | movePoint1ToInfiniteCylinderAndPoint2 (Amg::Vector3D &p1, const Amg::Vector3D &p2, const double &r) const |
|
bool | clipSegmentToInfiniteHollowCylinder (Amg::Vector3D &a, Amg::Vector3D &b, const double &rmin, const double &rmax, Amg::Vector3D &seg2_a, Amg::Vector3D &seg2_b) const |
|
bool | clipSegmentToHollowCylinder (Amg::Vector3D &a, Amg::Vector3D &b, const double &rmin, const double &rmax, const double &zmin, const double &zmax, Amg::Vector3D &seg2_a, Amg::Vector3D &seg2_b) const |
|
void | clipPathToHollowCylinder (const std::vector< Amg::Vector3D > &in, Amg::SetVectorVector3D &out, const double &rmin, const double &rmax, const double &zmin, const double &zmax) const |
|
bool | touchesHollowCylinder (const std::vector< Amg::Vector3D > &path, const double &rmin, const double &rmax, const double &zmin, const double &zmax) const |
|
void | projectPathToInfiniteCylinder (const std::vector< Amg::Vector3D > &in, Amg::SetVectorVector3D &outset, const double &r) const |
|
void | projectPathToZPlane (const std::vector< Amg::Vector3D > &in, Amg::SetVectorVector3D &outset, const double &z) const |
|
void | projectPathToZPlane_specialZtoR (const std::vector< Amg::Vector3D > &in, Amg::SetVectorVector3D &outset, const double &z) const |
|
Definition at line 86 of file InDetProjHelper.cxx.
◆ clipPathToHollowCylinder()
Definition at line 667 of file InDetProjHelper.cxx.
682 if (rmin>=rmax||rmin<0||zmin>=
zmax) {
683 theclass->
message(
"clipPathToHollowCylinder Error: Non-sensical cylinder parameters!");
686 const unsigned n=in.size();
692 std::vector<Amg::Vector3D >
v;
693 for (
unsigned i = 1;
i<
n; ++
i) {
702 if (seg2_a!=seg2_b) {
711 if (
v.back() !=
a ) {
718 if (seg2_a!=seg2_b) {
◆ clipSegmentToHollowCylinder()
◆ clipSegmentToInfiniteHollowCylinder()
Definition at line 481 of file InDetProjHelper.cxx.
500 const double ar2 =
a.x()*
a.x()+
a.y()*
a.y();
501 const double br2 =
b.x()*
b.x()+
b.y()*
b.y();
502 const double rmin2 = rmin*rmin;
504 if (ar2 <= rmin2 && br2 <= rmin2 ) {
511 if ( (
a.x()<=-rmax&&
b.x()<=-rmax) || (
a.x()>=rmax&&
b.x()>=rmax) || (
a.y()<=-rmax&&
b.y()<=-rmax)|| (
a.y()>=rmax&&
b.y()>=rmax) ) {
519 const double dx =
b.x()-
a.x();
520 const double dy =
b.y()-
a.y();
521 const double rmax2 = rmax*rmax;
522 if (
dx==0.0&&
dy==0.0) {
530 const double px = (
u <= 0 ?
a.x() : (
u >= 1 ?
b.x() :
a.x()+
u*
dx ) );
531 const double py = (
u <= 0 ?
a.y() : (
u >= 1 ?
b.y() :
a.y()+
u*
dy ) );
544 if (pr2>=rmin2&&ar2<=rmax2&&br2<=rmax2) {
554 if (ar2>rmax2||br2>rmax2) {
574 b = asave+u2*(
b-asave);
596 seg2_a=
a+u2*(seg2_b-
a);
◆ clipSegmentToZInterval()
◆ lineCircleIntersection()
Definition at line 450 of file InDetProjHelper.cxx.
453 const double dx =
b.x()-
a.x();
454 const double dy =
b.y()-
a.y();
458 u1 = u2 = (
a.x()*
a.x()+
a.y()*
a.y() ==
r*
r ? 0.0 : 1.0e99 );
461 double B = 2.0*(
a.x()*
dx +
a.y()*
dy );
462 double C =
a.x()*
a.x()+
a.y()*
a.y() -
r*
r;
463 double D =
B*
B-4*
A*
C;
467 double sqrtD = sqrt(D);
468 u1 = 0.5 * ( -
B - sqrtD) /
A;
469 u2 = 0.5 * ( -
B + sqrtD) /
A;
◆ movePoint1ToInfiniteCylinderAndPoint2()
◆ movePoint1ToZPlaneAndPoint2()
◆ projectPathToInfiniteCylinder()
Definition at line 741 of file InDetProjHelper.cxx.
744 std::vector<Amg::Vector3D >
out(in);
748 if (
it->x()==0.0 &&
it->y()==0.0 ) {
749 theclass->
message(
"ERROR: Point has x==0 and y==0. Ambiguous projection of point.");
754 s =
r / sqrt(
it->x()*
it->x()+
it->y()*
it->y() );
◆ projectPathToZPlane()
◆ projectPathToZPlane_specialZtoR()
◆ touchesHollowCylinder()
Definition at line 945 of file InDetProjHelper.cxx.
949 const double rmin2(rmin*rmin), rmax2(rmax*rmax);
951 std::vector<Amg::Vector3D >::const_iterator
it(
path.begin()),
itE(
path.end());
◆ barrel_inner_radius
double InDetProjHelper::Imp::barrel_inner_radius = 0.0 |
◆ barrel_outer_radius
double InDetProjHelper::Imp::barrel_outer_radius = 0.0 |
◆ barrel_posneg_z
double InDetProjHelper::Imp::barrel_posneg_z = 0.0 |
◆ covercyl_rmax
double InDetProjHelper::Imp::covercyl_rmax = 0.0 |
◆ covercyl_rmin
double InDetProjHelper::Imp::covercyl_rmin = 0.0 |
◆ covercyl_zmax
double InDetProjHelper::Imp::covercyl_zmax = 0.0 |
◆ covercyl_zmin
double InDetProjHelper::Imp::covercyl_zmin = 0.0 |
◆ data_disttosurface_epsilon
double InDetProjHelper::Imp::data_disttosurface_epsilon = 0.0 |
◆ endcap_inner_radius
double InDetProjHelper::Imp::endcap_inner_radius = 0.0 |
◆ endcap_outer_radius
double InDetProjHelper::Imp::endcap_outer_radius = 0.0 |
◆ endcap_surface_length
double InDetProjHelper::Imp::endcap_surface_length = 0.0 |
◆ endcap_surface_z
double InDetProjHelper::Imp::endcap_surface_z = 0.0 |
◆ endcap_zasr_endcapz_begin
double InDetProjHelper::Imp::endcap_zasr_endcapz_begin = 0.0 |
◆ endcap_zasr_innerradius
double InDetProjHelper::Imp::endcap_zasr_innerradius = 0.0 |
◆ endcap_zasr_squeezefact
double InDetProjHelper::Imp::endcap_zasr_squeezefact = 0.0 |
◆ parts
InDetProjFlags::InDetProjPartsFlags InDetProjHelper::Imp::parts |
◆ surfacethickness
double InDetProjHelper::Imp::surfacethickness = 0.0 |
◆ theclass
The documentation for this class was generated from the following file:
JetConstituentVector::iterator iterator
path
python interpreter configuration --------------------------------------—
InDetProjHelper * theclass
void messageDebug(const QString &) const
@ u
Enums for curvilinear frames.
void movePoint1ToZPlaneAndPoint2(Amg::Vector3D &p1, const Amg::Vector3D &p2, const double &z) const
double rVector3D(const Amg::Vector3D &v1)
Gets r-component in spherical coordinate system.
double endcap_zasr_innerradius
double endcap_zasr_squeezefact
bool clipSegmentToInfiniteHollowCylinder(Amg::Vector3D &a, Amg::Vector3D &b, const double &rmin, const double &rmax, Amg::Vector3D &seg2_a, Amg::Vector3D &seg2_b) const
static void transformECPointToZPlane_specialZtoR(Amg::Vector3D &p, const double &planeZ, const double &planeRBegin, const double &endcapZBegin, const double &squeezeFactor)
bool clipSegmentToHollowCylinder(Amg::Vector3D &a, Amg::Vector3D &b, const double &rmin, const double &rmax, const double &zmin, const double &zmax, Amg::Vector3D &seg2_a, Amg::Vector3D &seg2_b) const
void setVector3DCartesian(Amg::Vector3D &v1, double x1, double y1, double z1)
Sets components in cartesian coordinate system.
double endcap_zasr_endcapz_begin
Eigen::Matrix< double, 3, 1 > Vector3D
void message(const QString &) const
void lineCircleIntersection(const Amg::Vector3D &a, const Amg::Vector3D &b, const double &r, double &u1, double &u2) const
bool clipSegmentToZInterval(Amg::Vector3D &a, Amg::Vector3D &b, const double &zmin, const double &zmax) const