Alignment
MuonAlignmentAlgorithms
src
MuonTrackCSCChamberResidual.cc
Go to the documentation of this file.
1
/*
2
* $Id: MuonTrackCSCChamberResidual.cc,v 1.3 2011/11/02 19:58:38 khotilov Exp $
3
*/
4
5
#include "
Alignment/MuonAlignmentAlgorithms/interface/MuonTrackCSCChamberResidual.h
"
6
//#include "Geometry/CSCGeometry/interface/CSCGeometry.h"
7
8
MuonTrackCSCChamberResidual::MuonTrackCSCChamberResidual
(
edm::ESHandle<GlobalTrackingGeometry>
globalGeometry,
9
AlignableNavigator
*
navigator
,
10
DetId
chamberId,
11
AlignableDetOrUnitPtr
chamberAlignable)
12
:
MuonChamberResidual
(globalGeometry,
navigator
, chamberId, chamberAlignable) {
13
m_type
=
MuonChamberResidual::kCSC
;
14
align::GlobalVector
zDirection(0., 0., 1.);
15
m_sign
=
m_globalGeometry
->
idToDet
(
m_chamberId
)->
toLocal
(zDirection).
z
() > 0. ? 1. : -1.;
16
}
17
18
void
MuonTrackCSCChamberResidual::setSegmentResidual
(
const
reco::MuonChamberMatch
*trk,
19
const
reco::MuonSegmentMatch
*seg) {
20
CSCDetId
id
(trk->
id
.
rawId
());
21
22
CSCSegmentRef
segmentCSC = seg->
cscSegmentRef
;
23
if
(segmentCSC.get() !=
nullptr
) {
24
const
CSCSegment
*segment = segmentCSC.get();
25
m_numHits
= segment->
nRecHits
();
26
m_ndof
= segment->
degreesOfFreedom
();
27
m_chi2
= segment->
chi2
();
28
//std::cout<<"csc seg position = "<<segment->localPosition()<<" numhits="<<m_numHits<<" id: "<<id<<std::endl;
29
}
30
31
align::LocalPoint
l_seg(seg->
x
, seg->
y
, 0.);
32
align::LocalPoint
l_trk(trk->
x
, trk->
y
, 0.);
33
//align::GlobalPoint g_seg = m_globalGeometry->idToDet(chamber)->toGlobal(l_seg);
34
//align::GlobalPoint g_trk = m_globalGeometry->idToDet(chamber)->toGlobal(l_trk);
35
36
/*
37
double dphi = g_trk.phi() - g_seg.phi();
38
while (dphi > M_PI) dphi -= 2.*M_PI;
39
while (dphi < -M_PI) dphi += 2.*M_PI;
40
m_residual = - m_sign * g_trk.perp() * dphi; // coming from global, need to adjust the sign
41
std::cout<<"cscres="<<m_residual<<" dx="<<trk->x-seg->x<<" diff="<<trk->x-seg->x - m_residual<<std::endl;
42
*/
43
m_residual
= trk->
x
- seg->
x
;
44
m_residual_error
=
sqrt
(
pow
(trk->
xErr
, 2) +
pow
(seg->
xErr
, 2));
45
m_resslope
= trk->
dXdZ
- seg->
dXdZ
;
46
m_resslope_error
=
sqrt
(
pow
(trk->
dXdZErr
, 2) +
pow
(seg->
dXdZErr
, 2));
47
48
m_trackx
= trk->
x
;
49
m_tracky
= trk->
y
;
50
m_trackdxdz
= trk->
dXdZ
;
51
m_trackdydz
= trk->
dYdZ
;
52
53
m_segx
= seg->
x
;
54
m_segy
= seg->
y
;
55
m_segdxdz
= seg->
dXdZ
;
56
m_segdydz
= seg->
dYdZ
;
57
58
//double yresidual_error = sqrt( pow(trk->yErr, 2) + pow(seg->yErr, 2) );
59
//double yresslope_error = sqrt( pow(trk->dYdZErr, 2) + pow(seg->dYdZErr, 2) );
60
//std::cout<<"csc res "<<m_residual<<"+-"<<m_residual_error<<" "<<m_resslope<<"+-"<<m_resslope_error<<" "<<trk->y-seg->y<<"+-"<<yresidual_error<<" "<<trk->dYdZ - seg->dYdZ<<"+-"<<yresslope_error<<std::endl;
61
//std::cout<<"csc trk "<<m_trackx<<" "<<m_tracky<<" "<<m_trackdxdz<<" "<<m_trackdydz<<std::endl;
62
//std::cout<<"csc seg "<<m_segx<<" "<<m_segy<<" "<<m_segdxdz<<" "<<m_segdydz<<std::endl;
63
}
Vector3DBase< Scalar, GlobalTag >
MuonChamberResidual::m_resslope_error
double m_resslope_error
Definition:
MuonChamberResidual.h:107
MuonChamberResidual::m_chamberId
DetId m_chamberId
Definition:
MuonChamberResidual.h:90
MuonTrackCSCChamberResidual::setSegmentResidual
void setSegmentResidual(const reco::MuonChamberMatch *, const reco::MuonSegmentMatch *) override
Definition:
MuonTrackCSCChamberResidual.cc:18
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
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< CSCSegmentCollection >
reco::MuonSegmentMatch::cscSegmentRef
CSCSegmentRef cscSegmentRef
Definition:
MuonSegmentMatch.h:51
PV3DBase::z
T z() const
Definition:
PV3DBase.h:61
CSCSegment::nRecHits
int nRecHits() const
Definition:
CSCSegment.h:68
DetId
Definition:
DetId.h:17
reco::MuonSegmentMatch
Definition:
MuonSegmentMatch.h:12
MuonChamberResidual::m_segdydz
double m_segdydz
Definition:
MuonChamberResidual.h:113
CSCSegment::degreesOfFreedom
int degreesOfFreedom() const override
Degrees of freedom of the segment fit.
Definition:
CSCSegment.h:62
HLT_2018_cff.navigator
navigator
Definition:
HLT_2018_cff.py:11734
mathSSE::sqrt
T sqrt(T t)
Definition:
SSEVec.h:19
edm::ESHandle< GlobalTrackingGeometry >
MuonTrackCSCChamberResidual::MuonTrackCSCChamberResidual
MuonTrackCSCChamberResidual(edm::ESHandle< GlobalTrackingGeometry > globalGeometry, AlignableNavigator *navigator, DetId chamberId, AlignableDetOrUnitPtr chamberAlignable)
Definition:
MuonTrackCSCChamberResidual.cc:8
Point3DBase
Definition:
Point3DBase.h:10
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
CSCSegment
Definition:
CSCSegment.h:21
reco::MuonChamberMatch::dXdZ
float dXdZ
Definition:
MuonChamberMatch.h:23
reco::MuonChamberMatch::id
DetId id
Definition:
MuonChamberMatch.h:27
MuonChamberResidual::m_trackdydz
double m_trackdydz
Definition:
MuonChamberResidual.h:109
MuonChamberResidual::m_type
int m_type
Definition:
MuonChamberResidual.h:100
CSCDetId
Definition:
CSCDetId.h:26
MuonChamberResidual::m_ndof
int m_ndof
Definition:
MuonChamberResidual.h:103
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::xErr
float xErr
Definition:
MuonChamberMatch.h:21
MuonChamberResidual::kCSC
Definition:
MuonChamberResidual.h:28
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
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition:
DetId.h:57
MuonChamberResidual::m_globalGeometry
edm::ESHandle< GlobalTrackingGeometry > m_globalGeometry
Definition:
MuonChamberResidual.h:88
MuonTrackCSCChamberResidual.h
triggerObjects_cff.id
id
Definition:
triggerObjects_cff.py:31
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
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition:
Power.h:30
CSCSegment::chi2
double chi2() const override
Chi2 of the segment fit.
Definition:
CSCSegment.h:58
reco::MuonSegmentMatch::dXdZErr
float dXdZErr
Definition:
MuonSegmentMatch.h:40
MuonChamberResidual::m_trackdxdz
double m_trackdxdz
Definition:
MuonChamberResidual.h:108
reco::MuonSegmentMatch::x
float x
Definition:
MuonSegmentMatch.h:34
Generated for CMSSW Reference Manual by
1.8.16