37 if (getEndCapTkPropagator()->propagationDirection() != dir &&
38 getEndCapTkPropagator()->propagationDirection() !=
anyDirection) {
39 edm::LogError(
"BeamHaloPropagator")<<
"composite propagator set with inconsistent direction components\n"
40 <<
"EndCap propagator is: "<<getEndCapTkPropagator()->propagationDirection()
41 <<
"\n to be set on: "<<
dir;
42 theEndCapTkProp->setPropagationDirection(dir);
45 if (getCrossTkPropagator()->propagationDirection() != dir &&
46 getCrossTkPropagator()->propagationDirection() !=
anyDirection) {
47 edm::LogError(
"BeamHaloPropagator")<<
"composite propagator set with inconsistent direction components\n"
48 <<
"Cross propagator is: "<<getCrossTkPropagator()->propagationDirection()
49 <<
"\n to be set on: "<<
dir;
50 theCrossTkProp->setPropagationDirection(dir);
56 Propagator(dir), theEndCapTkProp(aEndCapTkProp->
clone()), theCrossTkProp(aCrossTkProp->
clone()), theField(field) {
63 Propagator(dir), theEndCapTkProp(aEndCapTkProp.
clone()), theCrossTkProp(aCrossTkProp.
clone()), theField(field) {
69 Propagator(aProp.propagationDirection()), theEndCapTkProp(0), theCrossTkProp(0) {
70 if (aProp.theEndCapTkProp)
71 theEndCapTkProp=aProp.getEndCapTkPropagator()->clone();
72 if (aProp.theCrossTkProp)
73 theCrossTkProp=aProp.getCrossTkPropagator()->clone();
77 BeamHaloPropagator::~BeamHaloPropagator() {
79 delete theEndCapTkProp;
80 delete theCrossTkProp;
86 <<
"and hence "<<((fts.
position().
z()*plane.
position().
z()<0)?
"crossing":
"not crossing");
91 std::pair<TrajectoryStateOnSurface,double>
93 const Plane& plane)
const
95 if (crossingTk(fts,plane)){
96 return getCrossTkPropagator()->propagateWithPath(fts, plane);}
98 return getEndCapTkPropagator()->propagateWithPath(fts, plane);}
101 std::pair<TrajectoryStateOnSurface,double>
104 {
return getCrossTkPropagator()->propagateWithPath(fts, cylinder);}
107 const Propagator* BeamHaloPropagator::getEndCapTkPropagator()
const {
108 LogDebug(
"BeamHaloPropagator")<<
"using the EndCap propagator";
109 return theEndCapTkProp;}
112 const Propagator* BeamHaloPropagator::getCrossTkPropagator()
const {
113 LogDebug(
"BeamHaloPropagator")<<
"using the Crossing propagator";
114 return theCrossTkProp;}
GlobalPoint position() const
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
const PositionType & position() const