35 : pset_{
p}, setVBFPointer_{pset_.getParameter<
bool>(
"SetVBFPointer")} {
37 auto c = setWhatProduced(
this, myname);
38 magToken_ =
c.consumes();
57 if (pdir ==
"oppositeToMomentum")
59 if (pdir ==
"alongMomentum")
61 if (pdir ==
"anyDirection")
64 std::unique_ptr<SteppingHelixPropagator> shProp;
65 shProp = std::make_unique<SteppingHelixPropagator>(&
magfield,
dir);
74 if (vbfCPtr ==
nullptr) {
76 <<
"Config specifies useMagVolumes==True but no VBF field available: SHP has no access to yoke material "
77 "properties. Use setVBFPointer=true and VBFName cards to set a VBF field, otherwise set "
78 "useMagVolumes==False."
82 <<
"Config specifies useMagVolumes==true and VBF field available: Forcing useInTeslaFromMagField = True."
91 shProp->setVBFPointer(vbfCPtr);
97 shProp->applyRadX0Correction(haveX0Corr);
100 shProp->setMaterialMode(assumeNoMaterial);
103 shProp->setNoErrorPropagation(noErrorPropagation);
129 shProp->setEndcapShiftsInZPosNeg(valPos, valNeg);