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 
17 #include <memory>
20 
23 
25 
29 
31 
33 class MuonErroMatrix;
34 class MagneticField;
36 class MuonErrorMatrix;
37 class TrackerTopologyRcd;
39 
41 
42 //
43 // class decleration
44 //
45 
47 public:
51  ~MuonErrorMatrixAdjuster() override;
52 
53 private:
55  void produce(edm::Event&, const edm::EventSetup&) override;
56 
59  const GlobalVector& momentum);
61  void multiply(reco::TrackBase::CovarianceMatrix& revised_matrix,
62  const reco::TrackBase::CovarianceMatrix& scale_matrix);
64  bool divide(reco::TrackBase::CovarianceMatrix& num_matrix, const reco::TrackBase::CovarianceMatrix& denom_matrix);
65 
67  reco::Track makeTrack(const reco::Track& recotrack_orig, 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 
98  std::unique_ptr<MuonErrorMatrix> theMatrixProvider;
99 
104 
108 
112 };
113 
114 #endif
void produce(edm::Event &, const edm::EventSetup &) override
framework method
std::remove_cv< typename std::remove_reference< argument_type >::type >::type key_type
Definition: Ref.h:164
edm::RefProd< reco::TrackExtraCollection > theRefprodTE
get reference before put track extra to the event, in order to create edm::Ref
reco::TrackBase::CovarianceMatrix fix_cov_matrix(const reco::TrackBase::CovarianceMatrix &error_matrix, const GlobalVector &momentum)
return a corrected error matrix
std::unique_ptr< MuonErrorMatrix > theMatrixProvider
holds the error matrix parametrization
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
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
~MuonErrorMatrixAdjuster() override
destructor
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
std::vector< TrackExtra > TrackExtraCollection
collection of TrackExtra objects
Definition: TrackExtraFwd.h:10
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...
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > theHttopoToken
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
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > theFieldToken
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
Definition: TrackBase.h:74
edm::Ref< TrackingRecHitCollection >::key_type theRHi