CMS 3D CMS Logo

MuonChamberResidual.h
Go to the documentation of this file.
1 #ifndef Alignment_MuonAlignmentAlgorithms_MuonChamberResidual_H
2 #define Alignment_MuonAlignmentAlgorithms_MuonChamberResidual_H
3 
23 
25 
27 public:
28  enum { kDT13, kDT2, kCSC };
29 
34 
35  virtual ~MuonChamberResidual() {}
36 
37  // has to be implemented for rechit based residuals
38  virtual void addResidual(
39  edm::ESHandle<Propagator> prop, const TrajectoryStateOnSurface *, const TrackingRecHit *, double, double) = 0;
40 
41  // has to be implemented for track muon segment residuals
42  virtual void setSegmentResidual(const reco::MuonChamberMatch *, const reco::MuonSegmentMatch *) = 0;
43 
44  int type() const { return m_type; }
45 
46  virtual double signConvention() const { return m_sign; }
47 
48  DetId chamberId() const { return m_chamberId; }
49 
51 
52  int numHits() const { return m_numHits; }
53 
54  double residual() const { return m_residual; }
55  double residual_error() const { return m_residual_error; }
56  double resslope() const { return m_resslope; }
57  double resslope_error() const { return m_resslope_error; }
58 
59  double chi2() const { return m_chi2; }
60  int ndof() const { return m_ndof; }
61 
62  double trackdxdz() const { return m_trackdxdz; }
63  double trackdydz() const { return m_trackdydz; }
64  double trackx() const { return m_trackx; }
65  double tracky() const { return m_tracky; }
66 
67  double ChambW() const { return m_ChambW; }
68  double Chambl() const { return m_Chambl; }
69 
70  double segdxdz() const { return m_segdxdz; }
71  double segdydz() const { return m_segdydz; }
72  double segx() const { return m_segx; }
73  double segy() const { return m_segy; }
74 
77  double global_residual() const;
78  double global_resslope() const;
79  double global_hitresid(int i) const;
80 
81  // individual hit methods
82  double hitresid(int i) const;
83  int hitlayer(int i) const;
84  double hitposition(int i) const;
85  DetId localid(int i) const { return m_localIDs[i]; }
86 
87 protected:
92 
93  int m_numHits;
94  std::vector<DetId> m_localIDs;
95  std::vector<double> m_localResids;
96  std::vector<double> m_individual_x;
97  std::vector<double> m_individual_y;
98  std::vector<double> m_individual_weight;
99 
100  int m_type;
101  double m_sign;
102  double m_chi2;
103  int m_ndof;
104  double m_residual;
106  double m_resslope;
108  double m_trackdxdz;
109  double m_trackdydz;
110  double m_trackx;
111  double m_tracky;
112  double m_segdxdz;
113  double m_segdydz;
114  double m_segx;
115  double m_segy;
116  double m_ChambW;
117  double m_Chambl;
118 };
119 
120 #endif // Alignment_MuonAlignmentAlgorithms_MuonChamberResidual_H
virtual void addResidual(edm::ESHandle< Propagator > prop, const TrajectoryStateOnSurface *, const TrackingRecHit *, double, double)=0
virtual double signConvention() const
std::vector< double > m_individual_y
double residual_error() const
align::GlobalPoint global_trackpos()
MuonChamberResidual(edm::ESHandle< GlobalTrackingGeometry > globalGeometry, AlignableNavigator *navigator, DetId chamberId, AlignableDetOrUnitPtr chamberAlignable)
double trackdydz() const
int hitlayer(int i) const
virtual void setSegmentResidual(const reco::MuonChamberMatch *, const reco::MuonSegmentMatch *)=0
std::vector< double > m_individual_x
std::vector< DetId > m_localIDs
double resslope_error() const
std::vector< double > m_localResids
AlignableNavigator * m_navigator
DetId localid(int i) const
AlignableDetOrUnitPtr m_chamberAlignable
double global_hitresid(int i) const
Definition: DetId.h:17
double global_residual() const
double hitposition(int i) const
align::GlobalPoint global_stubpos()
double hitresid(int i) const
edm::ESHandle< GlobalTrackingGeometry > m_globalGeometry
AlignableDetOrUnitPtr chamberAlignable() const
std::vector< double > m_individual_weight
double trackdxdz() const
double global_resslope() const