19 : useSimpleGeometry_(iConfig.getParameter<
bool>(
"useSimpleGeometry")),
21 whichState_(AtVertex),
22 cosmicPropagation_(iConfig.existsAs<
bool>(
"cosmicPropagationHypothesis")
23 ? iConfig.getParameter<
bool>(
"cosmicPropagationHypothesis")
26 if (whichTrack ==
"none") {
28 }
else if (whichTrack ==
"tracker") {
30 }
else if (whichTrack ==
"muon") {
32 }
else if (whichTrack ==
"global") {
35 throw cms::Exception(
"Configuration") <<
"Parameter 'useTrack' must be 'none', 'tracker', 'muon', 'global'\n";
38 if (whichState ==
"atVertex") {
40 }
else if (whichState ==
"innermost") {
42 }
else if (whichState ==
"outermost") {
45 throw cms::Exception(
"Configuration") <<
"Parameter 'useState' must be 'atVertex', 'innermost', " 49 throw cms::Exception(
"Configuration") <<
"When using 'cosmicPropagationHypothesis' useTrack must not be " 50 "'none', and the state must not be 'atVertex'\n";
86 throw cms::Exception(
"Invalid Data") <<
"Input object is not a RecoCandidate.\n";
169 if (!
final.isValid()) {
192 ret = dets.front().second;
WhichTrack whichTrack_
Labels for input collections.
T getParameter(std::string const &) const
PropagateToMuon(const edm::ParameterSet &iConfig)
TrajectoryStateOnSurface extrapolate(const reco::Track &tk) const
edm::ESHandle< Propagator > propagatorAny_
virtual double pz() const =0
z coordinate of momentum vector
const BoundDisk * endcapDiskNeg_
FreeTrajectoryState startingState(const reco::Candidate &reco) const
Starting state for the propagation.
virtual double vx() const =0
x coordinate of vertex position
Global3DPoint GlobalPoint
GlobalPoint globalPosition() const
const BoundDisk * endcapDiskPos_
PreciseFloatType< T, U >::Type dot(const Vector3DBase< U, FrameTag > &v) const
virtual double vy() const =0
y coordinate of vertex position
virtual reco::TrackRef standAloneMuon() const
reference to a stand-alone muon Track
TrajectoryStateOnSurface getBestDet(const TrajectoryStateOnSurface &tsos, const DetLayer *station) const
const math::XYZPoint & outerPosition() const
position of the outermost hit
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
virtual reco::TrackRef track() const
reference to a Track
edm::ESHandle< MagneticField > magfield_
const BoundCylinder * barrelCylinder_
const math::XYZPoint & innerPosition() const
position of the innermost hit
virtual double py() const =0
y coordinate of momentum vector
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
edm::ESHandle< Propagator > propagator_
bool isNull() const
Checks for null.
GlobalVector momentum() const
bool cosmicPropagation_
for cosmics, some things change: the along-opposite is not in-out, nor the innermost/outermost states...
GlobalPoint position() const
const std::vector< const DetLayer * > & allDTLayers() const
return the DT DetLayers (barrel), inside-out
const std::vector< const DetLayer * > & forwardCSCLayers() const
return the forward (+Z) CSC DetLayers, inside-out
void init(const edm::EventSetup &iSetup)
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
virtual int charge() const =0
electric charge
bool useSimpleGeometry_
Labels for input collections.
edm::ESHandle< MuonDetLayerGeometry > muonGeometry_
const std::vector< const DetLayer * > & backwardCSCLayers() const
return the backward (-Z) CSC DetLayers, inside-out
virtual double vz() const =0
z coordinate of vertex position
virtual double px() const =0
x coordinate of momentum vector
edm::ESHandle< Propagator > propagatorOpposite_
T const * product() const
Global3DVector GlobalVector
std::pair< float, float > endcapRadii_
virtual reco::TrackRef combinedMuon() const
reference to a stand-alone muon Track