CMS 3D CMS Logo

List of all members | Public Member Functions
MuonTrackDT13ChamberResidual Class Referenceabstract

#include <MuonTrackDT13ChamberResidual.h>

Inheritance diagram for MuonTrackDT13ChamberResidual:
MuonChamberResidual

Public Member Functions

void addResidual (edm::ESHandle< Propagator > prop, const TrajectoryStateOnSurface *tsos, const TrackingRecHit *hit, double, double) override=0
 
 MuonTrackDT13ChamberResidual (edm::ESHandle< GlobalTrackingGeometry > globalGeometry, AlignableNavigator *navigator, DetId chamberId, AlignableDetOrUnitPtr chamberAlignable)
 
void setSegmentResidual (const reco::MuonChamberMatch *, const reco::MuonSegmentMatch *) override
 
- Public Member Functions inherited from MuonChamberResidual
AlignableDetOrUnitPtr chamberAlignable () const
 
DetId chamberId () const
 
double Chambl () const
 
double ChambW () const
 
double chi2 () const
 
double global_hitresid (int i) const
 
double global_residual () const
 
double global_resslope () const
 
align::GlobalPoint global_stubpos ()
 
align::GlobalPoint global_trackpos ()
 
int hitlayer (int i) const
 
double hitposition (int i) const
 
double hitresid (int i) const
 
DetId localid (int i) const
 
 MuonChamberResidual (edm::ESHandle< GlobalTrackingGeometry > globalGeometry, AlignableNavigator *navigator, DetId chamberId, AlignableDetOrUnitPtr chamberAlignable)
 
int ndof () const
 
int numHits () const
 
double residual () const
 
double residual_error () const
 
double resslope () const
 
double resslope_error () const
 
double segdxdz () const
 
double segdydz () const
 
double segx () const
 
double segy () const
 
virtual double signConvention () const
 
double trackdxdz () const
 
double trackdydz () const
 
double trackx () const
 
double tracky () const
 
int type () const
 
virtual ~MuonChamberResidual ()
 

Additional Inherited Members

- Public Types inherited from MuonChamberResidual
enum  { kDT13, kDT2, kCSC }
 
- Protected Attributes inherited from MuonChamberResidual
AlignableDetOrUnitPtr m_chamberAlignable
 
DetId m_chamberId
 
double m_Chambl
 
double m_ChambW
 
double m_chi2
 
edm::ESHandle< GlobalTrackingGeometrym_globalGeometry
 
std::vector< double > m_individual_weight
 
std::vector< double > m_individual_x
 
std::vector< double > m_individual_y
 
std::vector< DetIdm_localIDs
 
std::vector< double > m_localResids
 
AlignableNavigatorm_navigator
 
int m_ndof
 
int m_numHits
 
double m_residual
 
double m_residual_error
 
double m_resslope
 
double m_resslope_error
 
double m_segdxdz
 
double m_segdydz
 
double m_segx
 
double m_segy
 
double m_sign
 
double m_trackdxdz
 
double m_trackdydz
 
double m_trackx
 
double m_tracky
 
int m_type
 

Detailed Description

Implementation of tracker muon chamber residuals for axial DT layers

Id

Definition at line 13 of file MuonTrackDT13ChamberResidual.h.

Constructor & Destructor Documentation

◆ MuonTrackDT13ChamberResidual()

MuonTrackDT13ChamberResidual::MuonTrackDT13ChamberResidual ( edm::ESHandle< GlobalTrackingGeometry globalGeometry,
AlignableNavigator navigator,
DetId  chamberId,
AlignableDetOrUnitPtr  chamberAlignable 
)

Definition at line 7 of file MuonTrackDT13ChamberResidual.cc.

References funct::cos(), GlobalTrackingGeometry::idToDet(), MuonChamberResidual::kDT13, MuonChamberResidual::m_chamberId, MuonChamberResidual::m_globalGeometry, M_PI, MuonChamberResidual::m_sign, MuonChamberResidual::m_type, GeomDet::position(), funct::sin(), GeomDet::toLocal(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

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 }
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:58
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
MuonChamberResidual(edm::ESHandle< GlobalTrackingGeometry > globalGeometry, AlignableNavigator *navigator, DetId chamberId, AlignableDetOrUnitPtr chamberAlignable)
const GeomDet * idToDet(DetId) const override
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
#define M_PI
const Surface::PositionType & position() const
The position (origin of the R.F.)
Definition: GeomDet.h:43
edm::ESHandle< GlobalTrackingGeometry > m_globalGeometry
AlignableDetOrUnitPtr chamberAlignable() const

Member Function Documentation

◆ addResidual()

void MuonTrackDT13ChamberResidual::addResidual ( edm::ESHandle< Propagator prop,
const TrajectoryStateOnSurface tsos,
const TrackingRecHit hit,
double  ,
double   
)
overridepure virtual

Implements MuonChamberResidual.

◆ setSegmentResidual()

void MuonTrackDT13ChamberResidual::setSegmentResidual ( const reco::MuonChamberMatch trk,
const reco::MuonSegmentMatch seg 
)
overridevirtual

Implements MuonChamberResidual.

Definition at line 20 of file MuonTrackDT13ChamberResidual.cc.

References cms::cuda::assert(), reco::MuonSegmentMatch::dtSegmentRef, reco::MuonChamberMatch::dXdZ, reco::MuonSegmentMatch::dXdZ, reco::MuonChamberMatch::dXdZErr, reco::MuonSegmentMatch::dXdZErr, reco::MuonChamberMatch::dYdZ, reco::MuonSegmentMatch::dYdZ, edm::Ref< C, T, F >::get(), DTRecSegment4D::hasPhi(), MuonChamberResidual::m_chi2, MuonChamberResidual::m_ndof, MuonChamberResidual::m_numHits, MuonChamberResidual::m_residual, MuonChamberResidual::m_residual_error, MuonChamberResidual::m_resslope, MuonChamberResidual::m_resslope_error, MuonChamberResidual::m_segdxdz, MuonChamberResidual::m_segdydz, MuonChamberResidual::m_segx, MuonChamberResidual::m_segy, MuonChamberResidual::m_trackdxdz, MuonChamberResidual::m_trackdydz, MuonChamberResidual::m_trackx, MuonChamberResidual::m_tracky, DTRecSegment4D::phiSegment(), conifer::pow(), mathSSE::sqrt(), reco::MuonChamberMatch::x, reco::MuonSegmentMatch::x, reco::MuonChamberMatch::xErr, reco::MuonSegmentMatch::xErr, reco::MuonChamberMatch::y, and reco::MuonSegmentMatch::y.

21  {
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 }
DTRecSegment4DRef dtSegmentRef
bool hasPhi() const
Does it have the Phi projection?
constexpr int pow(int x)
Definition: conifer.h:24
assert(be >=bs)
T sqrt(T t)
Definition: SSEVec.h:19
const DTChamberRecSegment2D * phiSegment() const
The superPhi segment: 0 if no phi projection available.
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:232