41 std::unique_ptr<Propagator>
58 std::unique_ptr<SteppingHelixPropagator> shProp;
67 if (useMagVolumes==
true && !useInTeslaFromMagField && !setVBFPointer && magfield->
nominalValue() == 0) {
69 if (vbfCPtr ==
nullptr ){
70 edm::LogWarning(
"SteppingHelixPropagator") <<
"Config specifies useMagVolumes==True but no VBF field available: SHP has no access to yoke material properties. Use setVBFPointer=true and VBFName cards to set a VBF field, otherwise set useMagVolumes==False." << std::endl;
72 edm::LogInfo(
"SteppingHelixPropagator") <<
"Config specifies useMagVolumes==true and VBF field available: Forcing useInTeslaFromMagField = True." <<std::endl;
73 useInTeslaFromMagField =
true;
82 if (vbfField.isValid()) shProp->setVBFPointer(vbfCPtr);
85 shProp->setUseInTeslaFromMagField(useInTeslaFromMagField);
88 shProp->applyRadX0Correction(haveX0Corr);
91 shProp->setMaterialMode(assumeNoMaterial);
94 shProp->setNoErrorPropagation(noErrorPropagation);
97 shProp->setDebug(debugMode);
99 shProp->setUseMagVolumes(useMagVolumes);
102 shProp->setUseMatVolumes(useMatVolumes);
105 shProp->setUseIsYokeFlag(useIsYokeFlag);
108 shProp->setReturnTangentPlane(returnTangentPlane);
111 shProp->setSendLogWarning(sendLogWarning);
114 shProp->setUseTuningForL2Speed(useTuningForL2Speed);
121 shProp->setEndcapShiftsInZPosNeg(valPos, valNeg);
std::unique_ptr< Propagator > produce(const TrackingComponentsRecord &)
T getParameter(std::string const &) const
int nominalValue() const
The nominal field value for this map in kGauss.
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
const DepRecordT getRecord() const
SteppingHelixPropagatorESProducer(const edm::ParameterSet &p)
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
~SteppingHelixPropagatorESProducer() override