22 setWhatProduced(
this,myname);
27 std::shared_ptr<Propagator>
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;
72 bool haveX0Corr = pset_.getParameter<
bool>(
"ApplyRadX0Correction");
75 bool assumeNoMaterial = pset_.getParameter<
bool>(
"AssumeNoMaterial");
78 bool noErrorPropagation = pset_.getParameter<
bool>(
"NoErrorPropagation");
81 bool debugMode = pset_.getParameter<
bool>(
"debug");
86 bool useMatVolumes = pset_.getParameter<
bool>(
"useMatVolumes");
89 bool useIsYokeFlag = pset_.getParameter<
bool>(
"useIsYokeFlag");
102 bool useECoffsets = pset_.getParameter<
bool>(
"useEndcapShiftsInZ");
104 double valPos = pset_.getParameter<
double>(
"endcapShiftInZPos");
105 double valNeg = pset_.getParameter<
double>(
"endcapShiftInZNeg");
109 _propagator = std::shared_ptr<Propagator>(shProp);
T getParameter(std::string const &) const
void setUseTuningForL2Speed(bool val)
void setDebug(bool debug)
Switch debug printouts (to cout) .. very verbose.
void setVBFPointer(const VolumeBasedMagneticField *val)
int nominalValue() const
The nominal field value for this map in kGauss.
const DepRecordT & getRecord() const
void setUseMagVolumes(bool val)
Switch to using MagneticField Volumes .. as in VolumeBasedMagneticField.
void applyRadX0Correction(bool applyRadX0Correction)
SteppingHelixPropagatorESProducer(const edm::ParameterSet &p)
void setUseMatVolumes(bool val)
Switch to using Material Volumes .. internally defined for now.
virtual ~SteppingHelixPropagatorESProducer()
void setUseIsYokeFlag(bool val)
std::shared_ptr< Propagator > produce(const TrackingComponentsRecord &)
void setReturnTangentPlane(bool val)
flag to return tangent plane for non-plane input
void setSendLogWarning(bool val)
flag to send LogWarning on failures
void setUseInTeslaFromMagField(bool val)
force getting field value from MagneticField, not the geometric one
void setEndcapShiftsInZPosNeg(double valPos, double valNeg)
set shifts in Z for endcap pieces (includes EE, HE, ME, YE)
void setMaterialMode(bool noMaterial)
Switch for material effects mode: no material effects if true.
void setNoErrorPropagation(bool noErrorPropagation)
Force no error propagation.