CMS 3D CMS Logo

MuonTrackDT2ChamberResidual.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  align::GlobalVector zDirection(0., 0., 1.);
14  m_sign = m_globalGeometry->idToDet(m_chamberId)->toLocal(zDirection).y() > 0. ? 1. : -1.;
15 }
16 
18  const reco::MuonSegmentMatch *seg) {
19  DTRecSegment4DRef segmentDT = seg->dtSegmentRef;
20  if (segmentDT.get() != nullptr) {
21  const DTRecSegment4D *segment = segmentDT.get();
22  assert(segment->hasZed());
23  const DTSLRecSegment2D *zSeg = (*segment).zSegment();
24  m_numHits = zSeg->recHits().size();
25  m_ndof = zSeg->degreesOfFreedom();
26  m_chi2 = zSeg->chi2();
27  //std::cout<<"z seg position = "<<zSeg->localPosition()<<" numhits="<<m_numHits<<std::endl;
28  }
29 
30  m_residual = trk->y - seg->y;
31  m_residual_error = sqrt(pow(trk->yErr, 2) + pow(seg->yErr, 2));
32  m_resslope = trk->dYdZ - seg->dYdZ;
33  m_resslope_error = sqrt(pow(trk->dYdZErr, 2) + pow(seg->dYdZErr, 2));
34 
35  m_trackx = trk->x;
36  m_tracky = trk->y;
37  m_trackdxdz = trk->dXdZ;
38  m_trackdydz = trk->dYdZ;
39 
40  m_segx = seg->x;
41  m_segy = seg->y;
42  m_segdxdz = seg->dXdZ;
43  m_segdydz = seg->dYdZ;
44 
45  //std::cout<<"d2 res "<<m_residual<<"+-"<<m_residual_error<<" "<<m_resslope<<"+-"<<m_resslope_error<<std::endl;
46  //std::cout<<"d2 trk "<<m_trackx<<" "<<m_tracky<<" "<<m_trackdxdz<<" "<<m_trackdydz<<std::endl;
47  //std::cout<<"d2 seg "<<m_segx<<" "<<m_segy<<" "<<m_segdxdz<<" "<<m_segdydz<<std::endl;
48 }
Vector3DBase< Scalar, GlobalTag >
MuonChamberResidual::m_resslope_error
double m_resslope_error
Definition: MuonChamberResidual.h:107
DTSLRecSegment2D
Definition: DTSLRecSegment2D.h:15
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
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
MuonTrackDT2ChamberResidual::MuonTrackDT2ChamberResidual
MuonTrackDT2ChamberResidual(edm::ESHandle< GlobalTrackingGeometry > globalGeometry, AlignableNavigator *navigator, DetId chamberId, AlignableDetOrUnitPtr chamberAlignable)
Definition: MuonTrackDT2ChamberResidual.cc:7
reco::MuonSegmentMatch::y
float y
Definition: MuonSegmentMatch.h:35
AlignableDetOrUnitPtr
Definition: AlignableDetOrUnitPtr.h:30
edm::Ref< DTRecSegment4DCollection >
DetId
Definition: DetId.h:17
reco::MuonSegmentMatch
Definition: MuonSegmentMatch.h:12
MuonChamberResidual::m_segdydz
double m_segdydz
Definition: MuonChamberResidual.h:113
HLT_2018_cff.navigator
navigator
Definition: HLT_2018_cff.py:11734
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
reco::MuonChamberMatch::dYdZErr
float dYdZErr
Definition: MuonChamberMatch.h:26
reco::MuonChamberMatch::dXdZ
float dXdZ
Definition: MuonChamberMatch.h:23
MuonChamberResidual::kDT2
Definition: MuonChamberResidual.h:28
MuonChamberResidual::m_trackdydz
double m_trackdydz
Definition: MuonChamberResidual.h:109
MuonTrackDT2ChamberResidual::setSegmentResidual
void setSegmentResidual(const reco::MuonChamberMatch *, const reco::MuonSegmentMatch *) override
Definition: MuonTrackDT2ChamberResidual.cc:17
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
MuonChamberResidual::m_trackx
double m_trackx
Definition: MuonChamberResidual.h:110
MuonChamberResidual::m_sign
double m_sign
Definition: MuonChamberResidual.h:101
reco::MuonChamberMatch
Definition: MuonChamberMatch.h:10
MuonChamberResidual::m_resslope
double m_resslope
Definition: MuonChamberResidual.h:106
reco::MuonChamberMatch::yErr
float yErr
Definition: MuonChamberMatch.h:22
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
DTRecSegment4D::hasZed
bool hasZed() const
Does it have the Z projection?
Definition: DTRecSegment4D.h:93
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
reco::MuonSegmentMatch::yErr
float yErr
Definition: MuonSegmentMatch.h:37
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
MuonChamberResidual::m_trackdxdz
double m_trackdxdz
Definition: MuonChamberResidual.h:108
reco::MuonSegmentMatch::x
float x
Definition: MuonSegmentMatch.h:34
reco::MuonSegmentMatch::dYdZErr
float dYdZErr
Definition: MuonSegmentMatch.h:41
MuonTrackDT2ChamberResidual.h