CMS 3D CMS Logo

MuonErrorMatrixAdjuster.h
Go to the documentation of this file.
1 #ifndef RecoMuon_TrackingTools_MuonErrorMatrixAdjuster_H
2 #define RecoMuon_TrackingTools_MuonErrorMatrixAdjuster_H
3 
18 #include <memory>
21 
24 
26 
30 
32 
34 class MuonErroMatrix;
35 class MagneticField;
36 class MuonErrorMatrix;
38 
40 
41 //
42 // class decleration
43 //
44 
46  public:
51 
52  private:
54  virtual void beginJob() ;
55  virtual void produce(edm::Event&, const edm::EventSetup&);
56  virtual void endJob() ;
57 
61  void multiply(reco::TrackBase::CovarianceMatrix & revised_matrix, const reco::TrackBase::CovarianceMatrix & scale_matrix);
63  bool divide(reco::TrackBase::CovarianceMatrix & num_matrix, const reco::TrackBase::CovarianceMatrix & denom_matrix);
64 
66  reco::Track makeTrack(const reco::Track & recotrack_orig,
67  const FreeTrajectoryState & PCAstate);
68 
70  bool selectTrack(const reco::Track & recotrack_orig);
71 
73  reco::TrackExtra * makeTrackExtra(const reco::Track & recotrack_orig,
74  reco::Track & recotrack,
76 
78  bool attachRecHits(const reco::Track & recotrack_orig,
79  reco::Track & recotrack,
80  reco::TrackExtra & trackextra,
82  const TrackerTopology& ttopo);
83 
84  // ----------member data ---------------------------
87 
90 
93 
95  bool theRescale;
96 
100 
101 
104 
108 
112 
113 };
114 
115 #endif
std::remove_cv< typename std::remove_reference< argument_type >::type >::type key_type
Definition: Ref.h:169
edm::RefProd< reco::TrackExtraCollection > theRefprodTE
get reference before put track extra to the event, in order to create edm::Ref
virtual void beginJob()
framework method
reco::TrackBase::CovarianceMatrix fix_cov_matrix(const reco::TrackBase::CovarianceMatrix &error_matrix, const GlobalVector &momentum)
return a corrected error matrix
virtual void produce(edm::Event &, const edm::EventSetup &)
std::string theInstanceName
instrance name of the created track collecion. rechit and trackextra have no instance name ...
edm::InputTag theTrackLabel
input tag of the reco::Track collection to be corrected
bool attachRecHits(const reco::Track &recotrack_orig, reco::Track &recotrack, reco::TrackExtra &trackextra, TrackingRecHitCollection &RHcol, const TrackerTopology &ttopo)
attached rechits to the newly created reco::Track and reco::TrackExtra
std::string theCategory
log category: MuonErrorMatrixAdjuster
void multiply(reco::TrackBase::CovarianceMatrix &revised_matrix, const reco::TrackBase::CovarianceMatrix &scale_matrix)
mutliply revised_matrix (first argument) by second matrix TERM by TERM
edm::ESHandle< MagneticField > theField
hold on to the magnetic field
MuonErrorMatrixAdjuster(const edm::ParameterSet &)
constructor
MuonErrorMatrix * theMatrixProvider
bool divide(reco::TrackBase::CovarianceMatrix &num_matrix, const reco::TrackBase::CovarianceMatrix &denom_matrix)
divide the num_matrix (first argument) by second matrix, TERM by TERM
edm::Ref< reco::TrackExtraCollection >::key_type theTEi
edm::RefProd< TrackingRecHitCollection > theRefprodRH
get reference before put rechit to the event, in order to create edm::Ref
edm::ParameterSet theMatrixProvider_pset
holds the error matrix parametrization
std::vector< TrackExtra > TrackExtraCollection
collection of TrackExtra objects
Definition: TrackExtraFwd.h:11
reco::TrackExtra * makeTrackExtra(const reco::Track &recotrack_orig, reco::Track &recotrack, reco::TrackExtraCollection &TEcol)
create a track extra for the newly created recotrack, scaling the outer/inner measurment error matrix...
bool selectTrack(const reco::Track &recotrack_orig)
make a selection on the reco:Track. (dummy for the moment)
reco::Track makeTrack(const reco::Track &recotrack_orig, const FreeTrajectoryState &PCAstate)
create a corrected reco::Track from itself and trajectory state (redundant information) ...
bool theRescale
select the rescaling or replacing method to correct the error matrix
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
Definition: TrackBase.h:77
edm::Ref< TrackingRecHitCollection >::key_type theRHi