CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
PropagateToMuon Class Reference

Propagate an object (usually a track) to the second (default) or first muon station. More...

#include "MuonAnalysis/MuonAssociators/interface/PropagateToMuon.h"

Public Member Functions

TrajectoryStateOnSurface extrapolate (const reco::Track &tk) const
 Extrapolate reco::Track to the muon station 2, return an invalid TSOS if it fails. More...
 
TrajectoryStateOnSurface extrapolate (const reco::Candidate &tk) const
 Extrapolate reco::Candidate to the muon station 2, return an invalid TSOS if it fails. More...
 
TrajectoryStateOnSurface extrapolate (const SimTrack &tk, const edm::SimVertexContainer &vtxs) const
 
TrajectoryStateOnSurface extrapolate (const FreeTrajectoryState &state) const
 Extrapolate a FreeTrajectoryState to the muon station 2, return an invalid TSOS if it fails. More...
 
 PropagateToMuon ()
 
 PropagateToMuon (edm::ESHandle< MagneticField >, edm::ESHandle< Propagator >, edm::ESHandle< Propagator >, edm::ESHandle< Propagator >, edm::ESHandle< MuonDetLayerGeometry >, bool, bool, bool, WhichTrack, WhichState, bool, bool)
 
 ~PropagateToMuon ()
 

Private Member Functions

TrajectoryStateOnSurface getBestDet (const TrajectoryStateOnSurface &tsos, const DetLayer *station) const
 Get the best TSOS on one of the chambres of this DetLayer, or an invalid TSOS if none match. More...
 
FreeTrajectoryState startingState (const reco::Candidate &reco) const
 Starting state for the propagation. More...
 
FreeTrajectoryState startingState (const reco::Track &tk) const
 Starting state for the propagation. More...
 
FreeTrajectoryState startingState (const SimTrack &tk, const edm::SimVertexContainer &vtxs) const
 Starting state for the propagation. More...
 

Private Attributes

const BoundCylinderbarrelCylinder_ = nullptr
 
double barrelHalfLength_ = 0.
 
bool cosmicPropagation_ = false
 for cosmics, some things change: the along-opposite is not in-out, nor the innermost/outermost states are in-out really More...
 
const BoundDiskendcapDiskNeg_ [3] = {nullptr, nullptr, nullptr}
 
const BoundDiskendcapDiskPos_ [3] = {nullptr, nullptr, nullptr}
 
std::pair< float, float > endcapRadii_ [3] = {{0.f, 0.f}, {0.f, 0.f}, {0.f, 0.f}}
 
bool fallbackToME1_ = false
 Fallback to ME1 if propagation to ME2 fails. More...
 
edm::ESHandle< MagneticFieldmagfield_
 
edm::ESHandle< MuonDetLayerGeometrymuonGeometry_
 
edm::ESHandle< Propagatorpropagator_
 
edm::ESHandle< PropagatorpropagatorAny_
 
edm::ESHandle< PropagatorpropagatorOpposite_
 
bool useMB2_ = false
 
bool useMB2InOverlap_ = false
 
bool useSimpleGeometry_ = false
 
WhichState whichState_ = AtVertex
 
WhichTrack whichTrack_ = None
 Labels for input collections. More...
 

Detailed Description

Propagate an object (usually a track) to the second (default) or first muon station.

Definition at line 31 of file PropagateToMuon.h.

Constructor & Destructor Documentation

◆ PropagateToMuon() [1/2]

PropagateToMuon::PropagateToMuon ( )
inlineexplicit

Definition at line 33 of file PropagateToMuon.h.

33 {}

◆ PropagateToMuon() [2/2]

PropagateToMuon::PropagateToMuon ( edm::ESHandle< MagneticField magfield,
edm::ESHandle< Propagator propagator,
edm::ESHandle< Propagator propagatorAny,
edm::ESHandle< Propagator propagatorOpposite,
edm::ESHandle< MuonDetLayerGeometry muonGeometry,
bool  useSimpleGeometry,
bool  useMB2,
bool  fallbackToME1,
WhichTrack  whichTrack,
WhichState  whichState,
bool  cosmicPropagation,
bool  useMB2InOverlap 
)
explicit

Definition at line 14 of file PropagateToMuon.cc.

References MuonDetLayerGeometry::allDTLayers(), MuonDetLayerGeometry::backwardCSCLayers(), barrelCylinder_, barrelHalfLength_, endcapDiskNeg_, endcapDiskPos_, endcapRadii_, MuonDetLayerGeometry::forwardCSCLayers(), mps_fire::i, interestingEgammaIsoDetIdsSequence_cff::innerRadius, muonGeometry_, interestingEgammaIsoDetIdsSequence_cff::outerRadius, GeometricSearchDet::surface(), useMB2_, and useMB2InOverlap_.

30  muonGeometry_(muonGeometry),
32  useMB2_(useMB2),
34  whichTrack_(whichTrack),
35  whichState_(whichState),
36  cosmicPropagation_(cosmicPropagation),
38  // Get the barrel cylinder
39  const DetLayer *dtLay = muonGeometry_->allDTLayers()[useMB2_ ? 1 : 0];
40  barrelCylinder_ = dynamic_cast<const BoundCylinder *>(&dtLay->surface());
41  barrelHalfLength_ = barrelCylinder_->bounds().length() / 2;
42  ;
43  //std::cout << "L1MuonMatcher: barrel radius = " << barrelCylinder_->radius() << ", half length = " << barrelHalfLength_ << std::endl;
44 
45  // Get the endcap disks. Note that ME1 has two disks (ME1/1 and ME2/1-ME3/2-ME4/1), so there's one more index
46  for (size_t i = 0; i <= (useMB2_ ? 2 : 1); ++i) {
47  endcapDiskPos_[i] = dynamic_cast<const BoundDisk *>(&muonGeometry_->forwardCSCLayers()[i]->surface());
48  endcapDiskNeg_[i] = dynamic_cast<const BoundDisk *>(&muonGeometry_->backwardCSCLayers()[i]->surface());
50  //std::cout << "L1MuonMatcher: endcap " << i << " Z = " << endcapDiskPos_[i]->position().z() << ", radii = " << endcapRadii_[i].first << "," << endcapRadii_[i].second << std::endl;
51  }
52 
54  barrelHalfLength_ = endcapDiskPos_[2]->position().z();
55 }
WhichTrack whichTrack_
Labels for input collections.
const std::vector< const DetLayer * > & forwardCSCLayers() const
return the forward (+Z) CSC DetLayers, inside-out
edm::ESHandle< Propagator > propagator_
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
const BoundCylinder * barrelCylinder_
WhichState whichState_
const BoundDisk * endcapDiskNeg_[3]
const std::vector< const DetLayer * > & allDTLayers() const
return the DT DetLayers (barrel), inside-out
edm::ESHandle< Propagator > propagatorAny_
edm::ESHandle< Propagator > propagatorOpposite_
edm::ESHandle< MagneticField > magfield_
bool cosmicPropagation_
for cosmics, some things change: the along-opposite is not in-out, nor the innermost/outermost states...
const std::vector< const DetLayer * > & backwardCSCLayers() const
return the backward (-Z) CSC DetLayers, inside-out
std::pair< float, float > endcapRadii_[3]
edm::ESHandle< MuonDetLayerGeometry > muonGeometry_
bool fallbackToME1_
Fallback to ME1 if propagation to ME2 fails.
const BoundDisk * endcapDiskPos_[3]
double barrelHalfLength_

◆ ~PropagateToMuon()

PropagateToMuon::~PropagateToMuon ( )
inline

Definition at line 46 of file PropagateToMuon.h.

46 {}

Member Function Documentation

◆ extrapolate() [1/4]

TrajectoryStateOnSurface PropagateToMuon::extrapolate ( const reco::Track tk) const
inline

Extrapolate reco::Track to the muon station 2, return an invalid TSOS if it fails.

Definition at line 49 of file PropagateToMuon.h.

References extrapolate(), and startingState().

Referenced by L1MuonMatcherAlgoT< edm::Transition::BeginRun >::extrapolate(), and extrapolate().

49 { return extrapolate(startingState(tk)); }
FreeTrajectoryState startingState(const reco::Candidate &reco) const
Starting state for the propagation.
TrajectoryStateOnSurface extrapolate(const reco::Track &tk) const
Extrapolate reco::Track to the muon station 2, return an invalid TSOS if it fails.

◆ extrapolate() [2/4]

TrajectoryStateOnSurface PropagateToMuon::extrapolate ( const reco::Candidate tk) const
inline

Extrapolate reco::Candidate to the muon station 2, return an invalid TSOS if it fails.

Definition at line 52 of file PropagateToMuon.h.

References extrapolate(), and startingState().

Referenced by extrapolate().

52 { return extrapolate(startingState(tk)); }
FreeTrajectoryState startingState(const reco::Candidate &reco) const
Starting state for the propagation.
TrajectoryStateOnSurface extrapolate(const reco::Track &tk) const
Extrapolate reco::Track to the muon station 2, return an invalid TSOS if it fails.

◆ extrapolate() [3/4]

TrajectoryStateOnSurface PropagateToMuon::extrapolate ( const SimTrack tk,
const edm::SimVertexContainer vtxs 
) const
inline

Extrapolate a SimTrack to the muon station 2, return an invalid TSOS if it fails; needs the SimVertices too, to know where to start from Note: it will throw an exception if the SimTrack has no vertex.

Definition at line 57 of file PropagateToMuon.h.

References extrapolate(), and startingState().

57  {
58  return extrapolate(startingState(tk, vtxs));
59  }
FreeTrajectoryState startingState(const reco::Candidate &reco) const
Starting state for the propagation.
TrajectoryStateOnSurface extrapolate(const reco::Track &tk) const
Extrapolate reco::Track to the muon station 2, return an invalid TSOS if it fails.

◆ extrapolate() [4/4]

TrajectoryStateOnSurface PropagateToMuon::extrapolate ( const FreeTrajectoryState state) const

Extrapolate a FreeTrajectoryState to the muon station 2, return an invalid TSOS if it fails.

Definition at line 129 of file PropagateToMuon.cc.

References MuonDetLayerGeometry::allDTLayers(), AtVertex, MuonDetLayerGeometry::backwardCSCLayers(), barrelCylinder_, barrelHalfLength_, cosmicPropagation_, endcapDiskNeg_, endcapDiskPos_, endcapRadii_, PVValHelper::eta, Exception, fallbackToME1_, dqmdumpme::first, MuonDetLayerGeometry::forwardCSCLayers(), getBestDet(), TrajectoryStateOnSurface::globalPosition(), edm::ESHandleBase::isValid(), sistrip::SpyUtilities::isValid(), TrajectoryStateOnSurface::isValid(), magfield_, muonGeometry_, PV3DBase< T, PVType, FrameType >::perp(), position, Propagator::propagate(), propagator_, propagatorOpposite_, rho, edm::second(), useMB2_, useSimpleGeometry_, whichState_, and PV3DBase< T, PVType, FrameType >::z().

129  {
130  if (!magfield_.isValid() || barrelCylinder_ == nullptr) {
131  throw cms::Exception("NotInitialized")
132  << "PropagateToMuon: You must call init(const edm::EventSetup &iSetup) before using this object.\n";
133  }
134 
136  if (start.momentum().mag() == 0)
137  return final;
138  double eta = start.momentum().eta();
139 
140  const Propagator *propagatorBarrel = &*propagator_;
141  const Propagator *propagatorEndcaps = &*propagator_;
142  if (whichState_ != AtVertex) {
143  if (start.position().perp() > barrelCylinder_->radius())
144  propagatorBarrel = &*propagatorOpposite_;
145  if (fabs(start.position().z()) > endcapDiskPos_[useMB2_ ? 2 : 1]->position().z())
146  propagatorEndcaps = &*propagatorOpposite_;
147  }
148  if (cosmicPropagation_) {
149  if (start.momentum().dot(GlobalVector(start.position().x(), start.position().y(), start.position().z())) < 0) {
150  // must flip the propagations
151  propagatorBarrel = (propagatorBarrel == &*propagator_ ? &*propagatorOpposite_ : &*propagator_);
152  propagatorEndcaps = (propagatorEndcaps == &*propagator_ ? &*propagatorOpposite_ : &*propagator_);
153  }
154  }
155 
156  TrajectoryStateOnSurface tsos = propagatorBarrel->propagate(start, *barrelCylinder_);
157  if (tsos.isValid()) {
158  if (useSimpleGeometry_) {
159  //std::cout << " propagated to barrel, z = " << tsos.globalPosition().z() << ", bound = " << barrelHalfLength_ << std::endl;
160  if (fabs(tsos.globalPosition().z()) <= barrelHalfLength_)
161  final = tsos;
162  } else {
163  final = getBestDet(tsos, muonGeometry_->allDTLayers()[1]);
164  }
165  }
166  if (!final.isValid()) {
167  for (int ie = (useMB2_ ? 2 : 1); ie >= 0; --ie) {
168  tsos = propagatorEndcaps->propagate(start, (eta > 0 ? *endcapDiskPos_[ie] : *endcapDiskNeg_[ie]));
169  if (tsos.isValid()) {
170  if (useSimpleGeometry_) {
171  float rho = tsos.globalPosition().perp();
172  //std::cout << " propagated to endcap " << ie << ", rho = " << rho << ", bounds [ " << endcapRadii_[ie].first << ", " << endcapRadii_[ie].second << "]" << std::endl;
173  if ((rho >= endcapRadii_[ie].first) && (rho <= endcapRadii_[ie].second))
174  final = tsos;
175  } else {
176  final = getBestDet(
177  tsos, (eta > 0 ? muonGeometry_->forwardCSCLayers()[ie] : muonGeometry_->backwardCSCLayers()[ie]));
178  }
179  } //else //std::cout << " failed to propagated to endcap " << ie << std::endl;
180  if (final.isValid())
181  break;
182  if (ie == 2 && !fallbackToME1_)
183  break;
184  }
185  }
186  return final;
187 }
Definition: start.py:1
const std::vector< const DetLayer * > & forwardCSCLayers() const
return the forward (+Z) CSC DetLayers, inside-out
edm::ESHandle< Propagator > propagator_
const BoundCylinder * barrelCylinder_
T perp() const
Definition: PV3DBase.h:69
const bool isValid(const Frame &aFrame, const FrameQuality &aQuality, const uint16_t aExpectedPos)
WhichState whichState_
T z() const
Definition: PV3DBase.h:61
const BoundDisk * endcapDiskNeg_[3]
const std::vector< const DetLayer * > & allDTLayers() const
return the DT DetLayers (barrel), inside-out
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
U second(std::pair< T, U > const &p)
edm::ESHandle< Propagator > propagatorOpposite_
GlobalPoint globalPosition() const
TrajectoryStateOnSurface getBestDet(const TrajectoryStateOnSurface &tsos, const DetLayer *station) const
Get the best TSOS on one of the chambres of this DetLayer, or an invalid TSOS if none match...
edm::ESHandle< MagneticField > magfield_
bool isValid() const
Definition: ESHandle.h:44
bool cosmicPropagation_
for cosmics, some things change: the along-opposite is not in-out, nor the innermost/outermost states...
const std::vector< const DetLayer * > & backwardCSCLayers() const
return the backward (-Z) CSC DetLayers, inside-out
std::pair< float, float > endcapRadii_[3]
edm::ESHandle< MuonDetLayerGeometry > muonGeometry_
static int position[264][3]
Definition: ReadPGInfo.cc:289
bool fallbackToME1_
Fallback to ME1 if propagation to ME2 fails.
const BoundDisk * endcapDiskPos_[3]
double barrelHalfLength_
Global3DVector GlobalVector
Definition: GlobalVector.h:10

◆ getBestDet()

TrajectoryStateOnSurface PropagateToMuon::getBestDet ( const TrajectoryStateOnSurface tsos,
const DetLayer station 
) const
private

Get the best TSOS on one of the chambres of this DetLayer, or an invalid TSOS if none match.

Definition at line 189 of file PropagateToMuon.cc.

References nano_mu_digi_cff::layer, propagatorAny_, and runTheMatrix::ret.

Referenced by extrapolate().

190  {
191  TrajectoryStateOnSurface ret; // start as null
192  // require compatibility at 3 sigma
194  std::vector<GeometricSearchDet::DetWithState> dets = layer->compatibleDets(tsos, *propagatorAny_, estimator);
195  if (!dets.empty()) {
196  ret = dets.front().second;
197  }
198  return ret;
199 }
ret
prodAgent to be discontinued
edm::ESHandle< Propagator > propagatorAny_

◆ startingState() [1/3]

FreeTrajectoryState PropagateToMuon::startingState ( const reco::Candidate reco) const
private

Starting state for the propagation.

Definition at line 57 of file PropagateToMuon.cc.

References reco::RecoCandidate::combinedMuon(), Exception, GlobalTk, edm::Ref< C, T, F >::isNull(), magfield_, MuonTk, isotrackNtuplerCondor::None, edm::ESHandle< T >::product(), dt_dqm_sourceclient_common_cff::reco, runTheMatrix::ret, reco::RecoCandidate::standAloneMuon(), reco::RecoCandidate::track(), TrackerTk, and whichTrack_.

Referenced by extrapolate().

57  {
59  if (whichTrack_ != None) {
60  const reco::RecoCandidate *rc = dynamic_cast<const reco::RecoCandidate *>(&reco);
61  if (rc == nullptr)
62  throw cms::Exception("Invalid Data") << "Input object is not a RecoCandidate.\n";
63  reco::TrackRef tk;
64  switch (whichTrack_) {
65  case TrackerTk:
66  tk = rc->track();
67  break;
68  case MuonTk:
69  tk = rc->standAloneMuon();
70  break;
71  case GlobalTk:
72  tk = rc->combinedMuon();
73  break;
74  default:
75  break; // just to make gcc happy
76  }
77  if (tk.isNull()) {
79  } else {
80  ret = startingState(*tk);
81  }
82  } else {
83  ret = FreeTrajectoryState(GlobalPoint(reco.vx(), reco.vy(), reco.vz()),
84  GlobalVector(reco.px(), reco.py(), reco.pz()),
85  reco.charge(),
86  magfield_.product());
87  }
88  return ret;
89 }
WhichTrack whichTrack_
Labels for input collections.
ret
prodAgent to be discontinued
FreeTrajectoryState startingState(const reco::Candidate &reco) const
Starting state for the propagation.
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
T const * product() const
Definition: ESHandle.h:86
edm::ESHandle< MagneticField > magfield_
bool isNull() const
Checks for null.
Definition: Ref.h:229
fixed size matrix
virtual reco::TrackRef track() const
reference to a Track
virtual reco::TrackRef combinedMuon() const
reference to a stand-alone muon Track
Global3DVector GlobalVector
Definition: GlobalVector.h:10
virtual reco::TrackRef standAloneMuon() const
reference to a stand-alone muon Track

◆ startingState() [2/3]

FreeTrajectoryState PropagateToMuon::startingState ( const reco::Track tk) const
private

Starting state for the propagation.

Definition at line 91 of file PropagateToMuon.cc.

References AtVertex, cosmicPropagation_, trajectoryStateTransform::initialFreeState(), trajectoryStateTransform::innerFreeState(), Innermost, reco::Track::innerPosition(), edm::ESHandleBase::isValid(), magfield_, trajectoryStateTransform::outerFreeState(), Outermost, reco::Track::outerPosition(), edm::ESHandle< T >::product(), and whichState_.

91  {
92  if (!magfield_.isValid())
93  throw cms::Exception("NotInitialized")
94  << "PropagateToMuon: You must call init(const edm::EventSetup &iSetup) before using this object.\n";
96  if (cosmicPropagation_) {
97  if (whichState_ == Innermost) {
98  state = tk.innerPosition().Mag2() <= tk.outerPosition().Mag2() ? Innermost : Outermost;
99  } else if (whichState_ == Outermost) {
100  state = tk.innerPosition().Mag2() <= tk.outerPosition().Mag2() ? Outermost : Innermost;
101  }
102  }
103  switch (state) {
104  case Innermost:
106  case Outermost:
108 
109  case AtVertex:
110  default:
112  }
113 }
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:62
WhichState whichState_
WhichState
T const * product() const
Definition: ESHandle.h:86
edm::ESHandle< MagneticField > magfield_
bool isValid() const
Definition: ESHandle.h:44
bool cosmicPropagation_
for cosmics, some things change: the along-opposite is not in-out, nor the innermost/outermost states...
FreeTrajectoryState innerFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:56
FreeTrajectoryState outerFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)
FreeTrajectoryState initialFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)

◆ startingState() [3/3]

FreeTrajectoryState PropagateToMuon::startingState ( const SimTrack tk,
const edm::SimVertexContainer vtxs 
) const
private

Starting state for the propagation.

Definition at line 115 of file PropagateToMuon.cc.

References CoreSimTrack::charge(), edm::ESHandleBase::isValid(), magfield_, CoreSimTrack::momentum(), SimTrack::noVertex(), edm::ESHandle< T >::product(), SimTrack::vertIndex(), and L1BJetProducer_cff::vtx.

115  {
116  if (!magfield_.isValid())
117  throw cms::Exception("NotInitialized")
118  << "PropagateToMuon: You must call init(const edm::EventSetup &iSetup) before using this object.\n";
119  if (tk.noVertex())
120  throw cms::Exception("UnsupportedOperation")
121  << "I can't propagate simtracks without a vertex, I don't know where to start from.\n";
122  const math::XYZTLorentzVectorD &vtx = (vtxs)[tk.vertIndex()].position();
123  return FreeTrajectoryState(GlobalPoint(vtx.X(), vtx.Y(), vtx.Z()),
124  GlobalVector(tk.momentum().X(), tk.momentum().Y(), tk.momentum().Z()),
125  int(tk.charge()),
126  magfield_.product());
127 }
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:14
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
float charge() const
charge
Definition: CoreSimTrack.cc:17
const math::XYZTLorentzVectorD & momentum() const
Definition: CoreSimTrack.h:19
int vertIndex() const
index of the vertex in the Event container (-1 if no vertex)
Definition: SimTrack.h:33
T const * product() const
Definition: ESHandle.h:86
edm::ESHandle< MagneticField > magfield_
bool isValid() const
Definition: ESHandle.h:44
bool noVertex() const
Definition: SimTrack.h:34
Global3DVector GlobalVector
Definition: GlobalVector.h:10

Member Data Documentation

◆ barrelCylinder_

const BoundCylinder* PropagateToMuon::barrelCylinder_ = nullptr
private

Definition at line 87 of file PropagateToMuon.h.

Referenced by extrapolate(), and PropagateToMuon().

◆ barrelHalfLength_

double PropagateToMuon::barrelHalfLength_ = 0.
private

Definition at line 90 of file PropagateToMuon.h.

Referenced by extrapolate(), and PropagateToMuon().

◆ cosmicPropagation_

bool PropagateToMuon::cosmicPropagation_ = false
private

for cosmics, some things change: the along-opposite is not in-out, nor the innermost/outermost states are in-out really

Definition at line 82 of file PropagateToMuon.h.

Referenced by extrapolate(), and startingState().

◆ endcapDiskNeg_

const BoundDisk* PropagateToMuon::endcapDiskNeg_[3] = {nullptr, nullptr, nullptr}
private

Definition at line 89 of file PropagateToMuon.h.

Referenced by extrapolate(), and PropagateToMuon().

◆ endcapDiskPos_

const BoundDisk* PropagateToMuon::endcapDiskPos_[3] = {nullptr, nullptr, nullptr}
private

Definition at line 88 of file PropagateToMuon.h.

Referenced by extrapolate(), and PropagateToMuon().

◆ endcapRadii_

std::pair<float, float> PropagateToMuon::endcapRadii_[3] = {{0.f, 0.f}, {0.f, 0.f}, {0.f, 0.f}}
private

Definition at line 91 of file PropagateToMuon.h.

Referenced by extrapolate(), and PropagateToMuon().

◆ fallbackToME1_

bool PropagateToMuon::fallbackToME1_ = false
private

Fallback to ME1 if propagation to ME2 fails.

Definition at line 75 of file PropagateToMuon.h.

Referenced by extrapolate().

◆ magfield_

edm::ESHandle<MagneticField> PropagateToMuon::magfield_
private

Definition at line 66 of file PropagateToMuon.h.

Referenced by extrapolate(), and startingState().

◆ muonGeometry_

edm::ESHandle<MuonDetLayerGeometry> PropagateToMuon::muonGeometry_
private

Definition at line 68 of file PropagateToMuon.h.

Referenced by extrapolate(), and PropagateToMuon().

◆ propagator_

edm::ESHandle<Propagator> PropagateToMuon::propagator_
private

Definition at line 67 of file PropagateToMuon.h.

Referenced by extrapolate().

◆ propagatorAny_

edm::ESHandle<Propagator> PropagateToMuon::propagatorAny_
private

Definition at line 67 of file PropagateToMuon.h.

Referenced by getBestDet().

◆ propagatorOpposite_

edm::ESHandle<Propagator> PropagateToMuon::propagatorOpposite_
private

Definition at line 67 of file PropagateToMuon.h.

Referenced by extrapolate().

◆ useMB2_

bool PropagateToMuon::useMB2_ = false
private

Definition at line 72 of file PropagateToMuon.h.

Referenced by extrapolate(), and PropagateToMuon().

◆ useMB2InOverlap_

bool PropagateToMuon::useMB2InOverlap_ = false
private

Definition at line 84 of file PropagateToMuon.h.

Referenced by PropagateToMuon().

◆ useSimpleGeometry_

bool PropagateToMuon::useSimpleGeometry_ = false
private

Definition at line 70 of file PropagateToMuon.h.

Referenced by extrapolate().

◆ whichState_

WhichState PropagateToMuon::whichState_ = AtVertex
private

Definition at line 79 of file PropagateToMuon.h.

Referenced by extrapolate(), and startingState().

◆ whichTrack_

WhichTrack PropagateToMuon::whichTrack_ = None
private

Labels for input collections.

Definition at line 78 of file PropagateToMuon.h.

Referenced by startingState().