CMS 3D CMS Logo

PropagateToMuon.h
Go to the documentation of this file.
1 #ifndef MuonAnalysis_MuonAssociators_interface_PropagateToMuon_h
2 #define MuonAnalysis_MuonAssociators_interface_PropagateToMuon_h
3 //
4 //
5 
26 
30 
32 public:
33  explicit PropagateToMuon() {}
39  bool,
40  bool,
41  bool,
42  WhichTrack,
43  WhichState,
44  bool,
45  bool);
47 
50 
53 
56  // don't ask me why SimVertexContainer is in edm namespace
58  return extrapolate(startingState(tk, vtxs));
59  }
60 
63 
64 private:
65  // needed services for track propagation
69 
70  bool useSimpleGeometry_ = false;
71 
72  bool useMB2_ = false;
73 
75  bool fallbackToME1_ = false;
76 
80 
82  bool cosmicPropagation_ = false;
83 
84  bool useMB2InOverlap_ = false;
85 
86  // simplified geometry for track propagation
87  const BoundCylinder *barrelCylinder_ = nullptr;
88  const BoundDisk *endcapDiskPos_[3] = {nullptr, nullptr, nullptr};
89  const BoundDisk *endcapDiskNeg_[3] = {nullptr, nullptr, nullptr};
90  double barrelHalfLength_ = 0.;
91  std::pair<float, float> endcapRadii_[3] = {{0.f, 0.f}, {0.f, 0.f}, {0.f, 0.f}};
92 
95 
98 
101 
104 };
105 
106 #endif
WhichTrack whichTrack_
Labels for input collections.
edm::ESHandle< Propagator > propagator_
const BoundCylinder * barrelCylinder_
WhichState whichState_
const BoundDisk * endcapDiskNeg_[3]
FreeTrajectoryState startingState(const reco::Candidate &reco) const
Starting state for the propagation.
WhichTrack
WhichState
edm::ESHandle< Propagator > propagatorAny_
edm::ESHandle< Propagator > propagatorOpposite_
Propagate an object (usually a track) to the second (default) or first muon station.
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 cosmicPropagation_
for cosmics, some things change: the along-opposite is not in-out, nor the innermost/outermost states...
TrajectoryStateOnSurface extrapolate(const reco::Candidate &tk) const
Extrapolate reco::Candidate to the muon station 2, return an invalid TSOS if it fails.
std::vector< SimVertex > SimVertexContainer
std::pair< float, float > endcapRadii_[3]
fixed size matrix
edm::ESHandle< MuonDetLayerGeometry > muonGeometry_
bool fallbackToME1_
Fallback to ME1 if propagation to ME2 fails.
const BoundDisk * endcapDiskPos_[3]
double barrelHalfLength_
TrajectoryStateOnSurface extrapolate(const reco::Track &tk) const
Extrapolate reco::Track to the muon station 2, return an invalid TSOS if it fails.
TrajectoryStateOnSurface extrapolate(const SimTrack &tk, const edm::SimVertexContainer &vtxs) const