CMS 3D CMS Logo

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

Propagate an object (usually a track) to the second muon station. Support for other muon stations will be added on request. More...

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

Public Member Functions

TrajectoryStateOnSurface extrapolate (const FreeTrajectoryState &state) const
 
TrajectoryStateOnSurface extrapolate (const FreeTrajectoryState &state) const
 Extrapolate a FreeTrajectoryState 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 reco::Candidate &tk) const
 
TrajectoryStateOnSurface extrapolate (const reco::Track &tk) const
 
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 SimTrack &tk, const edm::SimVertexContainer &vtxs) const
 
void init (const edm::EventSetup &iSetup)
 
void init (const edm::EventSetup &iSetup)
 Call this method at the beginning of each run, to initialize geometry, magnetic field and propagators. More...
 
 PropagateToMuon (const edm::ParameterSet &iConfig)
 
 PropagateToMuon (const edm::ParameterSet &iConfig)
 
 ~PropagateToMuon ()
 
 ~PropagateToMuon ()
 

Private Types

enum  WhichState {
  AtVertex, Innermost, Outermost, AtVertex,
  Innermost, Outermost
}
 
enum  WhichState {
  AtVertex, Innermost, Outermost, AtVertex,
  Innermost, Outermost
}
 
enum  WhichTrack {
  None, TrackerTk, MuonTk, GlobalTk,
  None, TrackerTk, MuonTk, GlobalTk
}
 
enum  WhichTrack {
  None, TrackerTk, MuonTk, GlobalTk,
  None, TrackerTk, MuonTk, GlobalTk
}
 

Private Member Functions

TrajectoryStateOnSurface getBestDet (const TrajectoryStateOnSurface &tsos, const DetLayer *station) 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. More...
 
FreeTrajectoryState startingState (const reco::Candidate &reco) const
 Starting state for the propagation. 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 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_
 
double barrelHalfLength_
 
bool cosmicPropagation_
 for cosmics, some things change: the along-opposite is not in-out, nor the innermost/outermost states are in-out really More...
 
const BoundDiskendcapDiskNeg_
 
const BoundDiskendcapDiskPos_
 
std::pair< float, float > endcapRadii_
 
bool fallbackToME1_
 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_
 Propagate to MB2 (default) instead of MB1. More...
 
bool useMB2InOverlap_
 
bool useSimpleGeometry_
 Labels for input collections. More...
 
WhichState whichState_
 
WhichTrack whichTrack_
 Labels for input collections. More...
 

Detailed Description

Propagate an object (usually a track) to the second muon station. Support for other muon stations will be added on request.

"HLTriggerOffline/Muon/interface/PropagateToMuon.h"

Author
Giovanni Petrucciani
Giovanni Petrucciani
Version
Id
PropagateToMuon.h,v 1.3 2010/07/01 07:41:09 gpetrucc Exp

Definition at line 29 of file PropagateToMuon.h.

Member Enumeration Documentation

◆ WhichState [1/2]

Enumerator
AtVertex 
Innermost 
Outermost 
AtVertex 
Innermost 
Outermost 

Definition at line 52 of file PropagateToMuon.h.

◆ WhichState [2/2]

Enumerator
AtVertex 
Innermost 
Outermost 
AtVertex 
Innermost 
Outermost 

Definition at line 57 of file PropagateToMuon.h.

◆ WhichTrack [1/2]

Enumerator
None 
TrackerTk 
MuonTk 
GlobalTk 
None 
TrackerTk 
MuonTk 
GlobalTk 

Definition at line 51 of file PropagateToMuon.h.

◆ WhichTrack [2/2]

Enumerator
None 
TrackerTk 
MuonTk 
GlobalTk 
None 
TrackerTk 
MuonTk 
GlobalTk 

Definition at line 56 of file PropagateToMuon.h.

Constructor & Destructor Documentation

◆ PropagateToMuon() [1/2]

PropagateToMuon::PropagateToMuon ( const edm::ParameterSet iConfig)
explicit

Definition at line 18 of file PropagateToMuon.cc.

19  : useSimpleGeometry_(iConfig.getParameter<bool>("useSimpleGeometry")),
22  cosmicPropagation_(iConfig.existsAs<bool>("cosmicPropagationHypothesis")
23  ? iConfig.getParameter<bool>("cosmicPropagationHypothesis")
24  : false) {
25  std::string whichTrack = iConfig.getParameter<std::string>("useTrack");
26  if (whichTrack == "none") {
27  whichTrack_ = None;
28  } else if (whichTrack == "tracker") {
30  } else if (whichTrack == "muon") {
32  } else if (whichTrack == "global") {
34  } else
35  throw cms::Exception("Configuration") << "Parameter 'useTrack' must be 'none', 'tracker', 'muon', 'global'\n";
36  if (whichTrack_ != None) {
37  std::string whichState = iConfig.getParameter<std::string>("useState");
38  if (whichState == "atVertex") {
40  } else if (whichState == "innermost") {
42  } else if (whichState == "outermost") {
44  } else
45  throw cms::Exception("Configuration") << "Parameter 'useState' must be 'atVertex', 'innermost', "
46  "'outermost'\n";
47  }
49  throw cms::Exception("Configuration") << "When using 'cosmicPropagationHypothesis' useTrack must not be "
50  "'none', and the state must not be 'atVertex'\n";
51  }
52 }

References AtVertex, cosmicPropagation_, Exception, edm::ParameterSet::getParameter(), GlobalTk, Innermost, MuonTk, None, Outermost, AlCaHLTBitMon_QueryRunRegistry::string, TrackerTk, whichState_, and whichTrack_.

◆ ~PropagateToMuon() [1/2]

PropagateToMuon::~PropagateToMuon ( )

Definition at line 54 of file PropagateToMuon.cc.

54 {}

◆ PropagateToMuon() [2/2]

PropagateToMuon::PropagateToMuon ( const edm::ParameterSet iConfig)
explicit

◆ ~PropagateToMuon() [2/2]

PropagateToMuon::~PropagateToMuon ( )

Member Function Documentation

◆ extrapolate() [1/7]

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 136 of file PropagateToMuon.cc.

136  {
138  if (start.momentum().mag() == 0)
139  return final;
140  double eta = start.momentum().eta();
141 
142  const Propagator *propagatorBarrel = &*propagator_;
143  const Propagator *propagatorEndcaps = &*propagator_;
144 
145  if (whichState_ != AtVertex) {
146  if (start.position().perp() > barrelCylinder_->radius())
147  propagatorBarrel = &*propagatorOpposite_;
148  if (fabs(start.position().z()) > endcapDiskPos_->position().z())
149  propagatorEndcaps = &*propagatorOpposite_;
150  }
151  if (cosmicPropagation_) {
152  if (start.momentum().dot(GlobalVector(start.position().x(), start.position().y(), start.position().z())) < 0) {
153  // must flip the propagations
154  propagatorBarrel = (propagatorBarrel == &*propagator_ ? &*propagatorOpposite_ : &*propagator_);
155  propagatorEndcaps = (propagatorEndcaps == &*propagator_ ? &*propagatorOpposite_ : &*propagator_);
156  }
157  }
158 
159  TrajectoryStateOnSurface tsos = propagatorBarrel->propagate(start, *barrelCylinder_);
160  if (tsos.isValid()) {
161  if (useSimpleGeometry_) {
162  if (fabs(tsos.globalPosition().z()) <= barrelHalfLength_)
163  final = tsos;
164  } else {
165  final = getBestDet(tsos, muonGeometry_->allDTLayers()[1]);
166  }
167  }
168 
169  if (!final.isValid()) {
170  tsos = propagatorEndcaps->propagate(start, (eta > 0 ? *endcapDiskPos_ : *endcapDiskNeg_));
171  if (tsos.isValid()) {
172  if (useSimpleGeometry_) {
173  float rho = tsos.globalPosition().perp();
174  if ((rho >= endcapRadii_.first) && (rho <= endcapRadii_.second))
175  final = tsos;
176  } else {
177  final =
179  }
180  }
181  }
182  return final;
183 }

References MuonDetLayerGeometry::allDTLayers(), AtVertex, MuonDetLayerGeometry::backwardCSCLayers(), barrelCylinder_, barrelHalfLength_, cosmicPropagation_, endcapDiskNeg_, endcapDiskPos_, endcapRadii_, PVValHelper::eta, MuonDetLayerGeometry::forwardCSCLayers(), getBestDet(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::isValid(), muonGeometry_, PV3DBase< T, PVType, FrameType >::perp(), Propagator::propagate(), propagator_, propagatorOpposite_, rho, useSimpleGeometry_, whichState_, and PV3DBase< T, PVType, FrameType >::z().

◆ extrapolate() [2/7]

TrajectoryStateOnSurface PropagateToMuon::extrapolate ( const FreeTrajectoryState state) const

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

◆ extrapolate() [3/7]

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 43 of file PropagateToMuon.h.

43 { return extrapolate(startingState(tk)); }

References extrapolate(), and startingState().

Referenced by extrapolate().

◆ extrapolate() [4/7]

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 44 of file PropagateToMuon.h.

44 { return extrapolate(startingState(tk)); }

References extrapolate(), and startingState().

Referenced by extrapolate().

◆ extrapolate() [5/7]

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 40 of file PropagateToMuon.h.

40 { return extrapolate(startingState(tk)); }

References extrapolate(), and startingState().

Referenced by extrapolate().

◆ extrapolate() [6/7]

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 40 of file PropagateToMuon.h.

40 { return extrapolate(startingState(tk)); }

References extrapolate(), and startingState().

Referenced by L1MuonMatcherAlgo::extrapolate(), extrapolate(), and TriggerMatcherToHLTDebug::produce().

◆ extrapolate() [7/7]

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 48 of file PropagateToMuon.h.

48  {
49  return extrapolate(startingState(tk, vtxs));
50  }

References extrapolate(), and startingState().

◆ getBestDet() [1/2]

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 185 of file PropagateToMuon.cc.

186  {
187  TrajectoryStateOnSurface ret; // start as null
189  3.); // require compatibility at 3 sigma
190  std::vector<GeometricSearchDet::DetWithState> dets = layer->compatibleDets(tsos, *propagatorAny_, estimator);
191  if (!dets.empty()) {
192  ret = dets.front().second;
193  }
194  return ret;
195 }

References GeometricSearchDet::compatibleDets(), propagatorAny_, and runTheMatrix::ret.

Referenced by extrapolate().

◆ getBestDet() [2/2]

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.

◆ init() [1/2]

void PropagateToMuon::init ( const edm::EventSetup iSetup)

Call this method at the beginning of each run, to initialize geometry, magnetic field and propagators

Definition at line 56 of file PropagateToMuon.cc.

56  {
58  iSetup.get<TrackingComponentsRecord>().get("SteppingHelixPropagatorAlong", propagator_);
59  iSetup.get<TrackingComponentsRecord>().get("SteppingHelixPropagatorOpposite", propagatorOpposite_);
60  iSetup.get<TrackingComponentsRecord>().get("SteppingHelixPropagatorAny", propagatorAny_);
62 
63  const DetLayer *dt2 = muonGeometry_->allDTLayers()[1];
64  const DetLayer *csc2Pos = muonGeometry_->forwardCSCLayers()[2];
65  const DetLayer *csc2Neg = muonGeometry_->backwardCSCLayers()[2];
66  barrelCylinder_ = dynamic_cast<const BoundCylinder *>(&dt2->surface());
67  endcapDiskPos_ = dynamic_cast<const BoundDisk *>(&csc2Pos->surface());
68  endcapDiskNeg_ = dynamic_cast<const BoundDisk *>(&csc2Neg->surface());
69  if (barrelCylinder_ == nullptr || endcapDiskPos_ == nullptr || endcapDiskNeg_ == nullptr)
70  throw cms::Exception("Geometry") << "Bad muon geometry!?";
71  barrelHalfLength_ = barrelCylinder_->bounds().length() / 2;
72  ;
73  endcapRadii_ = std::make_pair(endcapDiskPos_->innerRadius(), endcapDiskPos_->outerRadius());
74  // std::cout << "L1MuonMatcher: barrel radius = " << barrelCylinder_->radius()
75  // << ", half length = " << barrelHalfLength_ <<
76  // "; endcap Z = " << endcapDiskPos_->position().z() << ", radii =
77  // " << endcapRadii_.first << "," << endcapRadii_.second <<
78  // std::std::endl;
79 }

References MuonDetLayerGeometry::allDTLayers(), MuonDetLayerGeometry::backwardCSCLayers(), barrelCylinder_, barrelHalfLength_, endcapDiskNeg_, endcapDiskPos_, endcapRadii_, Exception, MuonDetLayerGeometry::forwardCSCLayers(), edm::EventSetup::get(), get, magfield_, muonGeometry_, propagator_, propagatorAny_, propagatorOpposite_, and GeometricSearchDet::surface().

Referenced by TriggerMatcherToHLTDebug::beginRun(), L1TMuonDQMOffline::dqmBeginRun(), and L1MuonMatcherAlgo::init().

◆ init() [2/2]

void PropagateToMuon::init ( const edm::EventSetup iSetup)

Call this method at the beginning of each run, to initialize geometry, magnetic field and propagators.

◆ startingState() [1/5]

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

Starting state for the propagation.

Definition at line 81 of file PropagateToMuon.cc.

81  {
83  if (whichTrack_ != None) {
84  const reco::RecoCandidate *rc = dynamic_cast<const reco::RecoCandidate *>(&reco);
85  if (rc == nullptr)
86  throw cms::Exception("Invalid Data") << "Input object is not a RecoCandidate.\n";
87  reco::TrackRef tk;
88  switch (whichTrack_) {
89  case TrackerTk:
90  tk = rc->track();
91  break;
92  case MuonTk:
93  tk = rc->standAloneMuon();
94  break;
95  case GlobalTk:
96  tk = rc->combinedMuon();
97  break;
98  default:
99  break; // just to make gcc happy
100  }
101  if (tk.isNull()) {
103  } else {
104  ret = startingState(*tk);
105  }
106  } else {
107  ret = FreeTrajectoryState(GlobalPoint(reco.vx(), reco.vy(), reco.vz()),
108  GlobalVector(reco.px(), reco.py(), reco.pz()),
109  reco.charge(),
110  magfield_.product());
111  }
112  return ret;
113 }

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

Referenced by extrapolate().

◆ startingState() [2/5]

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

Starting state for the propagation.

◆ startingState() [3/5]

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

Starting state for the propagation.

Definition at line 115 of file PropagateToMuon.cc.

115  {
117  if (cosmicPropagation_) {
118  if (whichState_ == Innermost) {
119  state = tk.innerPosition().Mag2() <= tk.outerPosition().Mag2() ? Innermost : Outermost;
120  } else if (whichState_ == Outermost) {
121  state = tk.innerPosition().Mag2() <= tk.outerPosition().Mag2() ? Outermost : Innermost;
122  }
123  }
124  switch (state) {
125  case Innermost:
127  case Outermost:
129 
130  case AtVertex:
131  default:
133  }
134 }

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

◆ startingState() [4/5]

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

Starting state for the propagation.

◆ startingState() [5/5]

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

Starting state for the propagation.

Definition at line 144 of file PropagateToMuon.cc.

144  {
145  if (!magfield_.isValid())
146  throw cms::Exception("NotInitialized")
147  << "PropagateToMuon: You must call init(const edm::EventSetup &iSetup) before using this object.\n";
148  if (tk.noVertex())
149  throw cms::Exception("UnsupportedOperation")
150  << "I can't propagate simtracks without a vertex, I don't know where to start from.\n";
151  const math::XYZTLorentzVectorD &vtx = (vtxs)[tk.vertIndex()].position();
152  return FreeTrajectoryState(GlobalPoint(vtx.X(), vtx.Y(), vtx.Z()),
153  GlobalVector(tk.momentum().X(), tk.momentum().Y(), tk.momentum().Z()),
154  int(tk.charge()),
155  magfield_.product());
156 }

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

Member Data Documentation

◆ barrelCylinder_

const BoundCylinder * PropagateToMuon::barrelCylinder_
private

Definition at line 68 of file PropagateToMuon.h.

Referenced by extrapolate(), and init().

◆ barrelHalfLength_

double PropagateToMuon::barrelHalfLength_
private

Definition at line 70 of file PropagateToMuon.h.

Referenced by extrapolate(), and init().

◆ cosmicPropagation_

bool PropagateToMuon::cosmicPropagation_
private

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

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

Definition at line 61 of file PropagateToMuon.h.

Referenced by extrapolate(), PropagateToMuon(), and startingState().

◆ endcapDiskNeg_

const BoundDisk * PropagateToMuon::endcapDiskNeg_
private

Definition at line 69 of file PropagateToMuon.h.

Referenced by extrapolate(), and init().

◆ endcapDiskPos_

const BoundDisk * PropagateToMuon::endcapDiskPos_
private

Definition at line 69 of file PropagateToMuon.h.

Referenced by extrapolate(), and init().

◆ endcapRadii_

std::pair< float, float > PropagateToMuon::endcapRadii_
private

Definition at line 71 of file PropagateToMuon.h.

Referenced by extrapolate(), and init().

◆ fallbackToME1_

bool PropagateToMuon::fallbackToME1_
private

Fallback to ME1 if propagation to ME2 fails.

Definition at line 66 of file PropagateToMuon.h.

◆ magfield_

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

Definition at line 64 of file PropagateToMuon.h.

Referenced by init(), and startingState().

◆ muonGeometry_

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

Definition at line 66 of file PropagateToMuon.h.

Referenced by extrapolate(), and init().

◆ propagator_

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

Definition at line 65 of file PropagateToMuon.h.

Referenced by extrapolate(), and init().

◆ propagatorAny_

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

Definition at line 65 of file PropagateToMuon.h.

Referenced by getBestDet(), and init().

◆ propagatorOpposite_

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

Definition at line 65 of file PropagateToMuon.h.

Referenced by extrapolate(), and init().

◆ useMB2_

bool PropagateToMuon::useMB2_
private

Propagate to MB2 (default) instead of MB1.

Definition at line 63 of file PropagateToMuon.h.

◆ useMB2InOverlap_

bool PropagateToMuon::useMB2InOverlap_
private

Definition at line 75 of file PropagateToMuon.h.

◆ useSimpleGeometry_

bool PropagateToMuon::useSimpleGeometry_
private

Labels for input collections.

Use simplified geometry (cylinders and disks, not individual chambers)

Definition at line 55 of file PropagateToMuon.h.

Referenced by extrapolate().

◆ whichState_

WhichState PropagateToMuon::whichState_
private

Definition at line 57 of file PropagateToMuon.h.

Referenced by extrapolate(), PropagateToMuon(), and startingState().

◆ whichTrack_

WhichTrack PropagateToMuon::whichTrack_
private

Labels for input collections.

Definition at line 56 of file PropagateToMuon.h.

Referenced by PropagateToMuon(), and startingState().

reco::Track::outerPosition
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:62
runTheMatrix.ret
ret
prodAgent to be discontinued
Definition: runTheMatrix.py:373
PropagateToMuon::propagatorAny_
edm::ESHandle< Propagator > propagatorAny_
Definition: PropagateToMuon.h:65
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
PropagateToMuon::MuonTk
Definition: PropagateToMuon.h:51
CoreSimTrack::momentum
const math::XYZTLorentzVectorD & momentum() const
Definition: CoreSimTrack.h:19
start
Definition: start.py:1
trajectoryStateTransform::outerFreeState
FreeTrajectoryState outerFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:98
PropagateToMuon::getBestDet
TrajectoryStateOnSurface getBestDet(const TrajectoryStateOnSurface &tsos, const DetLayer *station) const
Definition: PropagateToMuon.cc:185
trajectoryStateTransform::initialFreeState
FreeTrajectoryState initialFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:58
Chi2MeasurementEstimator
Definition: Chi2MeasurementEstimator.h:15
DetLayer
Definition: DetLayer.h:21
reco::RecoCandidate::combinedMuon
virtual reco::TrackRef combinedMuon() const
reference to a stand-alone muon Track
Definition: RecoCandidate.cc:23
edm::Ref::isNull
bool isNull() const
Checks for null.
Definition: Ref.h:235
math::XYZTLorentzVectorD
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:14
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
PropagateToMuon::endcapDiskNeg_
const BoundDisk * endcapDiskNeg_
Definition: PropagateToMuon.h:69
CoreSimTrack::charge
float charge() const
charge
Definition: CoreSimTrack.cc:17
MuonDetLayerGeometry::allDTLayers
const std::vector< const DetLayer * > & allDTLayers() const
return the DT DetLayers (barrel), inside-out
Definition: MuonDetLayerGeometry.cc:150
reco::RecoCandidate::standAloneMuon
virtual reco::TrackRef standAloneMuon() const
reference to a stand-alone muon Track
Definition: RecoCandidate.cc:21
PropagateToMuon::cosmicPropagation_
bool cosmicPropagation_
for cosmics, some things change: the along-opposite is not in-out, nor the innermost/outermost states...
Definition: PropagateToMuon.h:61
edm::ParameterSet::existsAs
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:171
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
GlobalVector
Global3DVector GlobalVector
Definition: GlobalVector.h:10
reco::RecoCandidate::track
virtual reco::TrackRef track() const
reference to a Track
Definition: RecoCandidate.cc:13
edm::Ref< TrackCollection >
PropagateToMuon::barrelCylinder_
const BoundCylinder * barrelCylinder_
Definition: PropagateToMuon.h:68
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
PropagateToMuon::propagatorOpposite_
edm::ESHandle< Propagator > propagatorOpposite_
Definition: PropagateToMuon.h:65
MuonDetLayerGeometry::backwardCSCLayers
const std::vector< const DetLayer * > & backwardCSCLayers() const
return the backward (-Z) CSC DetLayers, inside-out
Definition: MuonDetLayerGeometry.cc:156
SimTrack::noVertex
bool noVertex() const
Definition: SimTrack.h:31
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
Propagator
Definition: Propagator.h:44
MuonRecoGeometryRecord
Definition: MuonRecoGeometryRecord.h:17
PropagateToMuon::Outermost
Definition: PropagateToMuon.h:52
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
PropagateToMuon::startingState
FreeTrajectoryState startingState(const reco::Candidate &reco) const
Starting state for the propagation.
Definition: PropagateToMuon.cc:81
PVValHelper::estimator
estimator
Definition: PVValidationHelpers.h:44
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
PVValHelper::eta
Definition: PVValidationHelpers.h:69
PropagateToMuon::GlobalTk
Definition: PropagateToMuon.h:51
PropagateToMuon::AtVertex
Definition: PropagateToMuon.h:52
PropagateToMuon::TrackerTk
Definition: PropagateToMuon.h:51
PropagateToMuon::None
Definition: PropagateToMuon.h:51
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
MuonDetLayerGeometry::forwardCSCLayers
const std::vector< const DetLayer * > & forwardCSCLayers() const
return the forward (+Z) CSC DetLayers, inside-out
Definition: MuonDetLayerGeometry.cc:154
DDAxes::rho
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
PropagateToMuon::whichState_
WhichState whichState_
Definition: PropagateToMuon.h:57
PropagateToMuon::WhichState
WhichState
Definition: PropagateToMuon.h:52
PropagateToMuon::endcapRadii_
std::pair< float, float > endcapRadii_
Definition: PropagateToMuon.h:71
PropagateToMuon::whichTrack_
WhichTrack whichTrack_
Labels for input collections.
Definition: PropagateToMuon.h:56
reco::Track::innerPosition
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:56
PropagateToMuon::endcapDiskPos_
const BoundDisk * endcapDiskPos_
Definition: PropagateToMuon.h:69
Propagator::propagate
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
reco::RecoCandidate
Definition: RecoCandidate.h:20
get
#define get
edm::ESHandleBase::isValid
bool isValid() const
Definition: ESHandle.h:44
PropagateToMuon::propagator_
edm::ESHandle< Propagator > propagator_
Definition: PropagateToMuon.h:65
trajectoryStateTransform::innerFreeState
FreeTrajectoryState innerFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:86
PropagateToMuon::magfield_
edm::ESHandle< MagneticField > magfield_
Definition: PropagateToMuon.h:64
RunInfoPI::state
state
Definition: RunInfoPayloadInspectoHelper.h:16
PropagateToMuon::Innermost
Definition: PropagateToMuon.h:52
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
extraflags_cff.vtx
vtx
Definition: extraflags_cff.py:18
Exception
Definition: hltDiff.cc:246
PropagateToMuon::barrelHalfLength_
double barrelHalfLength_
Definition: PropagateToMuon.h:70
GeometricSearchDet::surface
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
SimTrack::vertIndex
int vertIndex() const
index of the vertex in the Event container (-1 if no vertex)
Definition: SimTrack.h:30
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
PropagateToMuon::useSimpleGeometry_
bool useSimpleGeometry_
Labels for input collections.
Definition: PropagateToMuon.h:55
PropagateToMuon::extrapolate
TrajectoryStateOnSurface extrapolate(const reco::Track &tk) const
Definition: PropagateToMuon.h:40
PropagateToMuon::muonGeometry_
edm::ESHandle< MuonDetLayerGeometry > muonGeometry_
Definition: PropagateToMuon.h:66
cms::Exception
Definition: Exception.h:70
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
TrackingComponentsRecord
Definition: TrackingComponentsRecord.h:12