CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
25 struct DetLayer; // #include "TrackingTools/DetLayers/interface/DetLayer.h" // forward declaration can suffice
30 
31 
32 class PropagateToMuon {
33  public:
34  explicit PropagateToMuon(const edm::ParameterSet & iConfig) ;
36 
38  void init(const edm::EventSetup &iSetup) ;
39 
42 
45 
48  // don't ask me why SimVertexContainer is in edm namespace
50 
53  private:
56 
58  bool useSimpleGeometry_;
59 
61  bool useMB2_;
62 
65 
69 
71  bool cosmicPropagation_;
72 
73  // needed services for track propagation
77  // simplified geometry for track propagation
80  double barrelHalfLength_;
81  std::pair<float,float> endcapRadii_[3];
82 
85 
88 
91 
94 };
95 
96 #endif
WhichTrack whichTrack_
Labels for input collections.
PropagateToMuon(const edm::ParameterSet &iConfig)
TrajectoryStateOnSurface extrapolate(const reco::Track &tk) const
Extrapolate reco::Track to the muon station 2, return an invalid TSOS if it fails.
edm::ESHandle< Propagator > propagatorAny_
const BoundDisk * endcapDiskNeg_
FreeTrajectoryState startingState(const reco::Candidate &reco) const
Starting state for the propagation.
WhichState whichState_
TrajectoryStateOnSurface extrapolate(const SimTrack &tk, const edm::SimVertexContainer &vtxs) const
const BoundDisk * endcapDiskPos_
bool useMB2_
Propagate to MB2 (default) instead of MB1.
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_
const BoundCylinder * barrelCylinder_
Propagate an object (usually a track) to the second muon station. Support for other muon stations wil...
edm::ESHandle< Propagator > propagator_
bool cosmicPropagation_
for cosmics, some things change: the along-opposite is not in-out, nor the innermost/outermost states...
std::vector< SimVertex > SimVertexContainer
void init(const edm::EventSetup &iSetup)
Call this method at the beginning of each run, to initialize geometry, magnetic field and propagators...
TrajectoryStateOnSurface extrapolate(const reco::Candidate &tk) const
Extrapolate reco::Candidate to the muon station 2, return an invalid TSOS if it fails.
bool useSimpleGeometry_
Labels for input collections.
edm::ESHandle< MuonDetLayerGeometry > muonGeometry_
bool fallbackToME1_
Fallback to ME1 if propagation to ME2 fails.
double barrelHalfLength_
edm::ESHandle< Propagator > propagatorOpposite_
std::pair< float, float > endcapRadii_