CMS 3D CMS Logo

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