12 <<
") smaller than CalMinZ ("
13 <<
minZ_ <<
") or invalid radius ("
28 typedef std::pair<TrajectoryStateOnSurface, double> TsosPath;
32 propagator.setNoErrorPropagation(
true);
38 Cylinder::ConstCylinderPointer theTargetCylinder =
49 TsosPath aTsosPath(propagator.propagateWithPath(fts, *theTargetCylinder));
50 if (!aTsosPath.first.isValid()) {
52 }
else if (aTsosPath.first.globalPosition().z() < theTargetPlaneMin->position().z()) {
56 aTsosPath = propagator.propagateWithPath(fts, *theTargetPlaneMin);
57 if (!aTsosPath.first.isValid()
58 || aTsosPath.first.globalPosition().perp() > theTargetCylinder->radius()) {
61 }
else if (aTsosPath.first.globalPosition().z() > theTargetPlaneMax->position().z()) {
63 aTsosPath = propagator.propagateWithPath(fts, *theTargetPlaneMax);
64 if (!aTsosPath.first.isValid()
65 || aTsosPath.first.globalPosition().perp() > theTargetCylinder->radius()) {
72 Cand =
GlobalVector(aTsosPath.first.globalPosition().x(),
73 aTsosPath.first.globalPosition().y(),
74 aTsosPath.first.globalPosition().z() );
double radius_
whether or not propagation should ignore material
static PlanePointer build(Args &&...args)
bool propagate(const GlobalPoint &vertex, GlobalVector &Cand, int charge, const MagneticField *bField) const
Global3DVector GlobalVector