CMS 3D CMS Logo

MuonTrackDT13ChamberResidual.cc
Go to the documentation of this file.
1 /*
2  * $Id: $
3  */
4 
6 
9  DetId chamberId,
10  AlignableDetOrUnitPtr chamberAlignable)
11  : MuonChamberResidual(globalGeometry, navigator, chamberId, chamberAlignable) {
13  double rphiAngle = atan2(m_globalGeometry->idToDet(m_chamberId)->position().y(),
15  M_PI / 2.;
16  align::GlobalVector rphiDirection(cos(rphiAngle), sin(rphiAngle), 0.);
17  m_sign = m_globalGeometry->idToDet(m_chamberId)->toLocal(rphiDirection).x() > 0. ? 1. : -1.;
18 }
19 
21  const reco::MuonSegmentMatch *seg) {
22  DTRecSegment4DRef segmentDT = seg->dtSegmentRef;
23  if (segmentDT.get() != nullptr) {
24  const DTRecSegment4D *segment = segmentDT.get();
25  assert(segment->hasPhi());
26  const DTChamberRecSegment2D *phiSeg = segment->phiSegment();
27  m_numHits = phiSeg->recHits().size();
28  m_ndof = phiSeg->degreesOfFreedom();
29  m_chi2 = phiSeg->chi2();
30  //std::cout<<"phi seg position = "<<phiSeg->localPosition()<<" numhits="<<m_numHits<<std::endl;
31  }
32 
33  m_residual = trk->x - seg->x;
34  m_residual_error = sqrt(pow(trk->xErr, 2) + pow(seg->xErr, 2));
35  m_resslope = trk->dXdZ - seg->dXdZ;
36  m_resslope_error = sqrt(pow(trk->dXdZErr, 2) + pow(seg->dXdZErr, 2));
37 
38  m_trackx = trk->x;
39  m_tracky = trk->y;
40  m_trackdxdz = trk->dXdZ;
41  m_trackdydz = trk->dYdZ;
42 
43  m_segx = seg->x;
44  m_segy = seg->y;
45  m_segdxdz = seg->dXdZ;
46  m_segdydz = seg->dYdZ;
47 
48  //std::cout<<"d13 res "<<m_residual<<"+-"<<m_residual_error<<" "<<m_resslope<<"+-"<<m_resslope_error<<std::endl;
49  //std::cout<<"d13 trk "<<m_trackx<<" "<<m_tracky<<" "<<m_trackdxdz<<" "<<m_trackdydz<<std::endl;
50  //std::cout<<"d13 seg "<<m_segx<<" "<<m_segy<<" "<<m_segdxdz<<" "<<m_segdydz<<std::endl;
51 }
Vector3DBase< Scalar, GlobalTag >
GeomDet::position
const Surface::PositionType & position() const
The position (origin of the R.F.)
Definition: GeomDet.h:43
MuonChamberResidual::m_resslope_error
double m_resslope_error
Definition: MuonChamberResidual.h:107
MuonTrackDT13ChamberResidual::MuonTrackDT13ChamberResidual
MuonTrackDT13ChamberResidual(edm::ESHandle< GlobalTrackingGeometry > globalGeometry, AlignableNavigator *navigator, DetId chamberId, AlignableDetOrUnitPtr chamberAlignable)
Definition: MuonTrackDT13ChamberResidual.cc:7
MuonChamberResidual::m_chamberId
DetId m_chamberId
Definition: MuonChamberResidual.h:90
DTRecSegment4D
Definition: DTRecSegment4D.h:23
MuonChamberResidual::m_segy
double m_segy
Definition: MuonChamberResidual.h:115
MuonChamberResidual::m_segdxdz
double m_segdxdz
Definition: MuonChamberResidual.h:112
reco::MuonChamberMatch::x
float x
Definition: MuonChamberMatch.h:19
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
HLT_FULL_cff.navigator
navigator
Definition: HLT_FULL_cff.py:13108
MuonChamberResidual::m_segx
double m_segx
Definition: MuonChamberResidual.h:114
MuonChamberResidual::m_residual
double m_residual
Definition: MuonChamberResidual.h:104
MuonChamberResidual::m_chi2
double m_chi2
Definition: MuonChamberResidual.h:102
reco::MuonChamberMatch::dYdZ
float dYdZ
Definition: MuonChamberMatch.h:24
edm::Ref::get
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:232
cms::cuda::assert
assert(be >=bs)
reco::MuonSegmentMatch::dtSegmentRef
DTRecSegment4DRef dtSegmentRef
Definition: MuonSegmentMatch.h:50
reco::MuonSegmentMatch::y
float y
Definition: MuonSegmentMatch.h:35
AlignableDetOrUnitPtr
Definition: AlignableDetOrUnitPtr.h:30
reco::MuonSegmentMatch::xErr
float xErr
Definition: MuonSegmentMatch.h:36
reco::MuonChamberMatch::dXdZErr
float dXdZErr
Definition: MuonChamberMatch.h:25
edm::Ref< DTRecSegment4DCollection >
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
DetId
Definition: DetId.h:17
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
reco::MuonSegmentMatch
Definition: MuonSegmentMatch.h:12
MuonChamberResidual::m_segdydz
double m_segdydz
Definition: MuonChamberResidual.h:113
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
edm::ESHandle< GlobalTrackingGeometry >
GeomDet::toLocal
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:58
AlignableNavigator
Definition: AlignableNavigator.h:25
reco::MuonSegmentMatch::dYdZ
float dYdZ
Definition: MuonSegmentMatch.h:39
MuonTrackDT13ChamberResidual::setSegmentResidual
void setSegmentResidual(const reco::MuonChamberMatch *, const reco::MuonSegmentMatch *) override
Definition: MuonTrackDT13ChamberResidual.cc:20
reco::MuonChamberMatch::dXdZ
float dXdZ
Definition: MuonChamberMatch.h:23
MuonChamberResidual::m_trackdydz
double m_trackdydz
Definition: MuonChamberResidual.h:109
MuonChamberResidual::m_type
int m_type
Definition: MuonChamberResidual.h:100
MuonChamberResidual::m_ndof
int m_ndof
Definition: MuonChamberResidual.h:103
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
MuonChamberResidual
Definition: MuonChamberResidual.h:26
DTChamberRecSegment2D
Definition: DTChamberRecSegment2D.h:31
MuonChamberResidual::m_trackx
double m_trackx
Definition: MuonChamberResidual.h:110
M_PI
#define M_PI
Definition: BXVectorInputProducer.cc:49
MuonChamberResidual::m_sign
double m_sign
Definition: MuonChamberResidual.h:101
reco::MuonChamberMatch::xErr
float xErr
Definition: MuonChamberMatch.h:21
reco::MuonChamberMatch
Definition: MuonChamberMatch.h:10
MuonChamberResidual::m_resslope
double m_resslope
Definition: MuonChamberResidual.h:106
reco::MuonSegmentMatch::dXdZ
float dXdZ
Definition: MuonSegmentMatch.h:38
MuonChamberResidual::m_tracky
double m_tracky
Definition: MuonChamberResidual.h:111
MuonChamberResidual::m_globalGeometry
edm::ESHandle< GlobalTrackingGeometry > m_globalGeometry
Definition: MuonChamberResidual.h:88
MuonChamberResidual::m_numHits
int m_numHits
Definition: MuonChamberResidual.h:93
GlobalTrackingGeometry::idToDet
const GeomDet * idToDet(DetId) const override
Definition: GlobalTrackingGeometry.cc:44
reco::MuonChamberMatch::y
float y
Definition: MuonChamberMatch.h:20
MuonChamberResidual::m_residual_error
double m_residual_error
Definition: MuonChamberResidual.h:105
DTRecSegment4D::hasPhi
bool hasPhi() const
Does it have the Phi projection?
Definition: DTRecSegment4D.h:90
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29
reco::MuonSegmentMatch::dXdZErr
float dXdZErr
Definition: MuonSegmentMatch.h:40
MuonChamberResidual::m_trackdxdz
double m_trackdxdz
Definition: MuonChamberResidual.h:108
MuonChamberResidual::kDT13
Definition: MuonChamberResidual.h:28
reco::MuonSegmentMatch::x
float x
Definition: MuonSegmentMatch.h:34
DTRecSegment4D::phiSegment
const DTChamberRecSegment2D * phiSegment() const
The superPhi segment: 0 if no phi projection available.
Definition: DTRecSegment4D.h:96
MuonTrackDT13ChamberResidual.h