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);
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magToken_
std::unique_ptr< Propagator > produce(const TrackingComponentsRecord &)
T getParameter(std::string const &) const
const bool setVBFPointer_
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
SteppingHelixPropagatorESProducer(const edm::ParameterSet &p)
Log< level::Info, false > LogInfo
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > vbMagToken_
~SteppingHelixPropagatorESProducer() override
const edm::ParameterSet pset_
Log< level::Warning, false > LogWarning
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const