CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuonDT13ChamberResidual.h
Go to the documentation of this file.
1 #ifndef Alignment_MuonAlignmentAlgorithms_MuonDT13ChamberResidual_H
2 #define Alignment_MuonAlignmentAlgorithms_MuonDT13ChamberResidual_H
3 
14 
16 public:
18  : MuonChamberResidual(globalGeometry, navigator, chamberId, chamberAlignable)
19  {};
20 
21  int type() const { return MuonChamberResidual::kDT13; };
22 
23  // for DT13, the residual is chamber local x
24  // for DT13, the resslope is dresx/dz, or tan(phi_y)
26 
27  // for DT13, the global direction is a polygonal rphi (e.g. local x without the sign convention issues)
28  double signConvention(const unsigned int rawId=0) const {
29  DetId id = m_chamberId;
30  if (rawId != 0) id = DetId(rawId);
31  double rphiAngle = atan2(m_globalGeometry->idToDet(id)->position().y(), m_globalGeometry->idToDet(id)->position().x()) + M_PI/2.;
32  GlobalVector rphiDirection(cos(rphiAngle), sin(rphiAngle), 0.);
33  return (m_globalGeometry->idToDet(id)->toLocal(rphiDirection).x() > 0. ? 1. : -1.);
34  };
35 };
36 
37 #endif // Alignment_MuonAlignmentAlgorithms_MuonDT13ChamberResidual_H
double signConvention(const unsigned int rawId=0) const
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
MuonDT13ChamberResidual(edm::ESHandle< GlobalTrackingGeometry > globalGeometry, AlignableNavigator *navigator, DetId chamberId, AlignableDetOrUnitPtr chamberAlignable)
AlignableDetOrUnitPtr chamberAlignable() const
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Definition: DetId.h:20
#define M_PI
Definition: BFit3D.cc:3
void addResidual(const TrajectoryStateOnSurface *tsos, const TransientTrackingRecHit *hit)
edm::ESHandle< GlobalTrackingGeometry > m_globalGeometry
DetId chamberId() const