22 setWhatProduced(
this,myname);
27 boost::shared_ptr<Propagator>
46 bool useInTeslaFromMagField = pset_.getParameter<
bool>(
"useInTeslaFromMagField");
47 bool setVBFPointer = pset_.getParameter<
bool>(
"SetVBFPointer");
48 bool useMagVolumes = pset_.getParameter<
bool>(
"useMagVolumes");
52 if (useMagVolumes==
true && !useInTeslaFromMagField && !setVBFPointer && magfield->nominalValue() == 0) {
55 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;
57 edm::LogInfo(
"SteppingHelixPropagator") <<
"Config specifies useMagVolumes==true and VBF field available: Forcing useInTeslaFromMagField = True." <<std::endl;
58 useInTeslaFromMagField =
true;
67 if (vbfField.isValid()) shProp->setVBFPointer(vbfCPtr);
70 shProp->setUseInTeslaFromMagField(useInTeslaFromMagField);
72 bool haveX0Corr = pset_.getParameter<
bool>(
"ApplyRadX0Correction");
73 shProp->applyRadX0Correction(haveX0Corr);
75 bool assumeNoMaterial = pset_.getParameter<
bool>(
"AssumeNoMaterial");
76 shProp->setMaterialMode(assumeNoMaterial);
78 bool noErrorPropagation = pset_.getParameter<
bool>(
"NoErrorPropagation");
79 shProp->setNoErrorPropagation(noErrorPropagation);
81 bool debugMode = pset_.getParameter<
bool>(
"debug");
82 shProp->setDebug(debugMode);
84 shProp->setUseMagVolumes(useMagVolumes);
86 bool useMatVolumes = pset_.getParameter<
bool>(
"useMatVolumes");
87 shProp->setUseMatVolumes(useMatVolumes);
89 bool useIsYokeFlag = pset_.getParameter<
bool>(
"useIsYokeFlag");
90 shProp->setUseIsYokeFlag(useIsYokeFlag);
92 bool returnTangentPlane = pset_.getParameter<
bool>(
"returnTangentPlane");
93 shProp->setReturnTangentPlane(returnTangentPlane);
95 bool sendLogWarning = pset_.getParameter<
bool>(
"sendLogWarning");
96 shProp->setSendLogWarning(sendLogWarning);
98 bool useTuningForL2Speed = pset_.getParameter<
bool>(
"useTuningForL2Speed");
99 shProp->setUseTuningForL2Speed(useTuningForL2Speed);
102 bool useECoffsets = pset_.getParameter<
bool>(
"useEndcapShiftsInZ");
104 double valPos = pset_.getParameter<
double>(
"endcapShiftInZPos");
105 double valNeg = pset_.getParameter<
double>(
"endcapShiftInZNeg");
106 shProp->setEndcapShiftsInZPosNeg(valPos, valNeg);
109 _propagator = boost::shared_ptr<Propagator>(shProp);
T getParameter(std::string const &) const
boost::shared_ptr< Propagator > produce(const TrackingComponentsRecord &)
const DepRecordT & getRecord() const
tuple SteppingHelixPropagator
SteppingHelixPropagatorESProducer(const edm::ParameterSet &p)
virtual ~SteppingHelixPropagatorESProducer()