CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
MuonResidualsFromTrack Class Reference

#include <MuonResidualsFromTrack.h>

Public Member Functions

const std::vector< DetIdchamberIds () const
 
MuonChamberResidualchamberResidual (DetId chamberId, int type)
 
TMatrixD choleskyCorrMatrix (DetId chamberId)
 
void clear ()
 
bool contains_TIDTEC () const
 
TMatrixDSym corrMatrix (DetId chamberId)
 
TMatrixDSym covMatrix (DetId chamberId)
 
const reco::TrackgetTrack ()
 
 MuonResidualsFromTrack (edm::ESHandle< GlobalTrackingGeometry > globalGeometry, const Trajectory *traj, const reco::Track *trk, AlignableNavigator *navigator, double maxResidual)
 
 MuonResidualsFromTrack (edm::ESHandle< GlobalTrackingGeometry > globalGeometry, const reco::Muon *mu, AlignableNavigator *navigator, double maxResidual)
 
double normalizedChi2 () const
 
double trackerChi2 () const
 
int trackerNumHits () const
 
double trackerRedChi2 () const
 
 ~MuonResidualsFromTrack ()
 

Private Member Functions

void addTrkCovMatrix (DetId, TrajectoryStateOnSurface &)
 

Private Attributes

std::vector< DetIdm_chamberIds
 
bool m_contains_TIDTEC
 
std::map< DetId,
MuonChamberResidual * > 
m_csc
 
std::map< DetId,
MuonChamberResidual * > 
m_dt13
 
std::map< DetId,
MuonChamberResidual * > 
m_dt2
 
double m_tracker_chi2
 
int m_tracker_numHits
 
std::map< DetId, TMatrixDSym > m_trkCovMatrix
 
TrajectoryStateCombiner m_tsoscomb
 
const reco::Muonmuon
 
const reco::Tracktrack
 

Detailed Description

Id:
Author
J. Pivarski - Texas A&M University pivar.nosp@m.ski@.nosp@m.physi.nosp@m.cs.t.nosp@m.amu.e.nosp@m.du

Definition at line 32 of file MuonResidualsFromTrack.h.

Constructor & Destructor Documentation

MuonResidualsFromTrack::MuonResidualsFromTrack ( edm::ESHandle< GlobalTrackingGeometry globalGeometry,
const Trajectory traj,
const reco::Track trk,
AlignableNavigator navigator,
double  maxResidual 
)

Definition at line 30 of file MuonResidualsFromTrack.cc.

References AlignableNavigator::alignableFromDetId(), TrajectoryMeasurement::backwardPredictedState(), CSCDetId::chamber(), clear(), MuonSubdetId::CSC, MuonSubdetId::DT, CSCDetId::endcap(), TrajectoryMeasurement::forwardPredictedState(), TrackingRecHit::geographicalId(), TrackingRecHit::isValid(), TrajectoryStateOnSurface::isValid(), CSCDetId::layer(), TrajectoryStateOnSurface::localError(), TrackingRecHit::localPosition(), TrajectoryStateOnSurface::localPosition(), TrackingRecHit::localPositionError(), m_chamberIds, m_contains_TIDTEC, m_csc, m_dt13, m_dt2, m_tracker_chi2, m_tracker_numHits, m_tsoscomb, Trajectory::measurements(), DetId::Muon, LocalTrajectoryError::positionError(), TrajectoryMeasurement::recHit(), CSCDetId::ring(), CSCDetId::station(), DTSuperLayerId::superlayer(), StripSubdetector::TEC, StripSubdetector::TID, DetId::Tracker, PV3DBase< T, PVType, FrameType >::x(), and LocalError::xx().

34  : track(trk)
35 {
36  clear();
37 
38  std::vector<TrajectoryMeasurement> measurements = traj->measurements();
39  for (std::vector<TrajectoryMeasurement>::const_iterator im = measurements.begin(); im != measurements.end(); ++im) {
40  TrajectoryMeasurement meas = *im;
41  const TransientTrackingRecHit *hit = &(*meas.recHit());
42  DetId id = hit->geographicalId();
43 
44  if (hit->isValid()) {
46  if (tsos.isValid() && fabs(tsos.localPosition().x() - hit->localPosition().x()) < maxResidual) {
47 
48  if (id.det() == DetId::Tracker) {
49  double xresid = tsos.localPosition().x() - hit->localPosition().x();
50  double xresiderr2 = tsos.localError().positionError().xx() + hit->localPositionError().xx();
51 
53  m_tracker_chi2 += xresid * xresid / xresiderr2;
54 
55  if (id.subdetId() == StripSubdetector::TID || id.subdetId() == StripSubdetector::TEC) m_contains_TIDTEC = true;
56  }
57 
58  else if (id.det() == DetId::Muon && id.subdetId() == MuonSubdetId::DT) {
59  const DTChamberId chamberId(id.rawId());
60  const DTSuperLayerId superLayerId(id.rawId());
61 
62  // have we seen this chamber before?
63  if (m_dt13.find(chamberId) == m_dt13.end() && m_dt2.find(chamberId) == m_dt2.end()) {
64  m_chamberIds.push_back(chamberId);
65  //addTrkCovMatrix(chamberId, tsos); // only for the 1st hit
66  }
67 
68  if (superLayerId.superlayer() == 2) {
69  if (m_dt2.find(chamberId) == m_dt2.end()) {
70  AlignableDetOrUnitPtr chamberAlignable = navigator->alignableFromDetId(chamberId);
71  m_dt2[chamberId] = new MuonDT2ChamberResidual(globalGeometry, navigator, chamberId, chamberAlignable);
72  }
73 
74  m_dt2[chamberId]->addResidual(&tsos, hit);
75  }
76 
77  else {
78  if (m_dt13.find(chamberId) == m_dt13.end()) {
79  AlignableDetOrUnitPtr chamberAlignable = navigator->alignableFromDetId(chamberId);
80  m_dt13[chamberId] = new MuonDT13ChamberResidual(globalGeometry, navigator, chamberId, chamberAlignable);
81  }
82 
83  m_dt13[chamberId]->addResidual(&tsos, hit);
84  }
85  }
86 
87  else if (id.det() == DetId::Muon && id.subdetId() == MuonSubdetId::CSC) {
88  const CSCDetId cscDetId(id.rawId());
89  const CSCDetId chamberId(cscDetId.endcap(), cscDetId.station(), cscDetId.ring(), cscDetId.chamber());
90 
91  // not sure why we sometimes get layer == 0
92  if (cscDetId.layer() == 0) continue;
93 
94  // have we seen this chamber before?
95  if (m_csc.find(chamberId) == m_csc.end())
96  {
97  m_chamberIds.push_back(chamberId);
98  //addTrkCovMatrix(chamberId, tsos); // only for the 1st hit
99  AlignableDetOrUnitPtr chamberAlignable = navigator->alignableFromDetId(chamberId);
100  m_csc[chamberId] = new MuonCSCChamberResidual(globalGeometry, navigator, chamberId, chamberAlignable);
101  }
102 
103  m_csc[chamberId]->addResidual(&tsos, hit);
104  }
105 
106  } // end if track propagation is valid
107  } // end if hit is valid
108  } // end loop over measurments
109 }
float xx() const
Definition: LocalError.h:24
std::vector< DetId > m_chamberIds
ConstRecHitPointer const & recHit() const
std::map< DetId, MuonChamberResidual * > m_dt2
std::map< DetId, MuonChamberResidual * > m_csc
LocalError positionError() const
DataContainer const & measurements() const
Definition: Trajectory.h:215
static const int CSC
Definition: MuonSubdetId.h:13
const LocalTrajectoryError & localError() const
TrajectoryStateOnSurface const & forwardPredictedState() const
Access to forward predicted state (from fitter or builder)
Definition: DetId.h:18
virtual LocalError localPositionError() const =0
bool isValid() const
static const int DT
Definition: MuonSubdetId.h:12
DetId geographicalId() const
T x() const
Definition: PV3DBase.h:62
virtual LocalPoint localPosition() const =0
std::map< DetId, MuonChamberResidual * > m_dt13
AlignableDetOrUnitPtr alignableFromDetId(const DetId &detid)
Returns AlignableDetOrUnitPtr corresponding to given DetId.
TrajectoryStateOnSurface const & backwardPredictedState() const
Access to backward predicted state (from smoother)
TrajectoryStateCombiner m_tsoscomb
MuonResidualsFromTrack::MuonResidualsFromTrack ( edm::ESHandle< GlobalTrackingGeometry globalGeometry,
const reco::Muon mu,
AlignableNavigator navigator,
double  maxResidual 
)

Definition at line 112 of file MuonResidualsFromTrack.cc.

References AlignableNavigator::alignableFromDetId(), reco::MuonSegmentMatch::BelongsToTrackByDR, reco::MuonSegmentMatch::BestInStationByDR, clear(), gather_cfg::cout, MuonSubdetId::CSC, MuonSubdetId::DT, edm::Ref< C, T, F >::get(), DTRecSegment4D::hasPhi(), DTRecSegment4D::hasZed(), reco::Muon::innerTrack(), edm::Ref< C, T, F >::isNonnull(), reco::Muon::isTrackerMuon(), m_chamberIds, m_csc, m_dt13, m_dt2, m_tracker_chi2, m_tracker_numHits, reco::Muon::matches(), DetId::Muon, muon, and track.

113  : muon(mu)
114 {
115  clear();
116  assert( muon->isTrackerMuon() && muon->innerTrack().isNonnull());
117  track = muon->innerTrack().get();
118 
119  m_tracker_chi2 = muon->innerTrack()->chi2();
120  m_tracker_numHits = muon->innerTrack()->ndof() + 5;
122 
123  /*
124  for (trackingRecHit_iterator hit = muon->innerTrack()->recHitsBegin(); hit != muon->innerTrack()->recHitsEnd(); ++hit)
125  {
126  DetId id = (*hit)->geographicalId();
127  if (id.det() == DetId::Tracker)
128  {
129  m_tracker_numHits++;
130  if (id.subdetId() == StripSubdetector::TID || id.subdetId() == StripSubdetector::TEC) m_contains_TIDTEC = true;
131  }
132  }
133  */
134 
135  for (std::vector<reco::MuonChamberMatch>::const_iterator chamberMatch = muon->matches().begin();
136  chamberMatch != muon->matches().end(); chamberMatch++)
137  {
138  if (chamberMatch->id.det() != DetId::Muon ) continue;
139 
140  for (std::vector<reco::MuonSegmentMatch>::const_iterator segMatch = chamberMatch->segmentMatches.begin();
141  segMatch != chamberMatch->segmentMatches.end(); ++segMatch)
142  {
143  // select the only segment that belongs to track and is the best in station by dR
144  if (! (segMatch->isMask(reco::MuonSegmentMatch::BestInStationByDR) &&
145  segMatch->isMask(reco::MuonSegmentMatch::BelongsToTrackByDR)) ) continue;
146 
147  if (chamberMatch->id.subdetId() == MuonSubdetId::DT)
148  {
149  const DTChamberId chamberId(chamberMatch->id.rawId());
150 
151  DTRecSegment4DRef segmentDT = segMatch->dtSegmentRef;
152  const DTRecSegment4D* segment = segmentDT.get();
153  if (segment == 0) continue;
154 
155  if ( segment->hasPhi() && fabs(chamberMatch->x - segMatch->x) > maxResidual ) continue;
156  if ( segment->hasZed() && fabs(chamberMatch->y - segMatch->y) > maxResidual ) continue;
157 
158  // have we seen this chamber before?
159  if (m_dt13.find(chamberId) == m_dt13.end() && m_dt2.find(chamberId) == m_dt2.end()) {
160  m_chamberIds.push_back(chamberId);
161  }
162 
163  if (segment->hasZed())
164  {
165  if (m_dt2.find(chamberId) == m_dt2.end())
166  {
167  AlignableDetOrUnitPtr chamberAlignable = navigator->alignableFromDetId(chamberId);
168  m_dt2[chamberId] = new MuonTrackDT2ChamberResidual(globalGeometry, navigator, chamberId, chamberAlignable);
169  }
170  else std::cout<<"multi segment match to tmuon: dt2 -- should not happen!"<<std::endl;
171  m_dt2[chamberId]->setSegmentResidual(&(*chamberMatch), &(*segMatch));
172  }
173  if (segment->hasPhi())
174  {
175  if (m_dt13.find(chamberId) == m_dt13.end())
176  {
177  AlignableDetOrUnitPtr chamberAlignable = navigator->alignableFromDetId(chamberId);
178  m_dt13[chamberId] = new MuonTrackDT13ChamberResidual(globalGeometry, navigator, chamberId, chamberAlignable);
179  }
180  else std::cout<<"multi segment match to tmuon: dt13 -- should not happen!"<<std::endl;
181  m_dt13[chamberId]->setSegmentResidual(&(*chamberMatch), &(*segMatch));
182  }
183  }
184 
185  else if (chamberMatch->id.subdetId() == MuonSubdetId::CSC)
186  {
187  const CSCDetId cscDetId(chamberMatch->id.rawId());
188  const CSCDetId chamberId(cscDetId.chamberId());
189 
190  if ( fabs(chamberMatch->x - segMatch->x) > maxResidual ) continue;
191 
192  // have we seen this chamber before?
193  if (m_csc.find(chamberId) == m_csc.end())
194  {
195  m_chamberIds.push_back(chamberId);
196  AlignableDetOrUnitPtr chamberAlignable = navigator->alignableFromDetId(chamberId);
197  m_csc[chamberId] = new MuonTrackCSCChamberResidual(globalGeometry, navigator, chamberId, chamberAlignable);
198  }
199  else std::cout<<"multi segment match to tmuon: csc -- should not happen!"<<std::endl;
200  m_csc[chamberId]->setSegmentResidual(&(*chamberMatch), &(*segMatch));
201  }
202 
203  }
204  }
205 }
std::vector< DetId > m_chamberIds
virtual TrackRef innerTrack() const
Definition: Muon.h:48
bool isTrackerMuon() const
Definition: Muon.h:219
std::map< DetId, MuonChamberResidual * > m_dt2
std::map< DetId, MuonChamberResidual * > m_csc
static const unsigned int BestInStationByDR
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:250
static const int CSC
Definition: MuonSubdetId.h:13
bool hasPhi() const
Does it have the Phi projection?
bool hasZed() const
Does it have the Z projection?
std::vector< MuonChamberMatch > & matches()
get muon matching information
Definition: Muon.h:140
static const unsigned int BelongsToTrackByDR
tuple cout
Definition: gather_cfg.py:121
static const int DT
Definition: MuonSubdetId.h:12
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:242
std::map< DetId, MuonChamberResidual * > m_dt13
AlignableDetOrUnitPtr alignableFromDetId(const DetId &detid)
Returns AlignableDetOrUnitPtr corresponding to given DetId.
MuonResidualsFromTrack::~MuonResidualsFromTrack ( )

Definition at line 208 of file MuonResidualsFromTrack.cc.

References m_csc, m_dt13, and m_dt2.

209 {
210  for (std::map<DetId,MuonChamberResidual*>::const_iterator residual = m_dt13.begin(); residual != m_dt13.end(); ++residual) {
211  delete residual->second;
212  }
213  for (std::map<DetId,MuonChamberResidual*>::const_iterator residual = m_dt2.begin(); residual != m_dt2.end(); ++residual) {
214  delete residual->second;
215  }
216  for (std::map<DetId,MuonChamberResidual*>::const_iterator residual = m_csc.begin(); residual != m_csc.end(); ++residual) {
217  delete residual->second;
218  }
219 }
std::map< DetId, MuonChamberResidual * > m_dt2
std::map< DetId, MuonChamberResidual * > m_csc
std::map< DetId, MuonChamberResidual * > m_dt13

Member Function Documentation

void MuonResidualsFromTrack::addTrkCovMatrix ( DetId  chamberId,
TrajectoryStateOnSurface tsos 
)
private

Definition at line 19 of file MuonResidualsFromTrack.cc.

References i, j, TrajectoryStateOnSurface::localError(), m_trkCovMatrix, and LocalTrajectoryError::matrix().

20 {
21  const AlgebraicSymMatrix55 cov55 = tsos.localError().matrix();
22  TMatrixDSym cov44(4);
23  // change indices from q/p,dxdz,dydz,x,y to x,y,dxdz,dydz
24  int subs[4] = { 3, 4, 1, 2 };
25  for (int i=0;i<4;i++) for (int j=0;j<4;j++) cov44(i,j) = cov55( subs[i], subs[j] );
26  m_trkCovMatrix[chamberId] = cov44;
27 }
int i
Definition: DBlmapReader.cc:9
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
int j
Definition: DBlmapReader.cc:9
const AlgebraicSymMatrix55 & matrix() const
const LocalTrajectoryError & localError() const
std::map< DetId, TMatrixDSym > m_trkCovMatrix
const std::vector<DetId> MuonResidualsFromTrack::chamberIds ( ) const
inline
MuonChamberResidual * MuonResidualsFromTrack::chamberResidual ( DetId  chamberId,
int  type 
)

Definition at line 249 of file MuonResidualsFromTrack.cc.

References MuonChamberResidual::kCSC, MuonChamberResidual::kDT13, MuonChamberResidual::kDT2, m_csc, m_dt13, m_dt2, and NULL.

Referenced by AlignmentMonitorMuonSystemMap1D::processMuonResidualsFromTrack(), AlignmentMonitorMuonVsCurvature::processMuonResidualsFromTrack(), AlignmentMonitorSegmentDifferences::processMuonResidualsFromTrack(), and MuonAlignmentFromReference::processMuonResidualsFromTrack().

250 {
252  if (m_dt13.find(chamberId) == m_dt13.end()) return NULL;
253  return m_dt13[chamberId];
254  }
255  else if (type == MuonChamberResidual::kDT2) {
256  if (m_dt2.find(chamberId) == m_dt2.end()) return NULL;
257  return m_dt2[chamberId];
258  }
259  else if (type == MuonChamberResidual::kCSC) {
260  if (m_csc.find(chamberId) == m_csc.end()) return NULL;
261  return m_csc[chamberId];
262  }
263  else return NULL;
264 }
type
Definition: HCALResponse.h:21
std::map< DetId, MuonChamberResidual * > m_dt2
#define NULL
Definition: scimark2.h:8
std::map< DetId, MuonChamberResidual * > m_csc
std::map< DetId, MuonChamberResidual * > m_dt13
TMatrixD MuonResidualsFromTrack::choleskyCorrMatrix ( DetId  chamberId)

Definition at line 326 of file MuonResidualsFromTrack.cc.

References corrMatrix(), gather_cfg::cout, convertSQLiteXML::ok, and query::result.

327 {
328  TMatrixD result(4,4);
329  TMatrixDSym corr44 = corrMatrix(chamberId);
330 
331  // get an upper triangular matrix U such that corr = U^T * U
332  TDecompChol decomp(corr44);
333  bool ok = decomp.Decompose();
334  result = decomp.GetU();
335 
336  std::cout<<"MuonResidualsFromTrack:: corr cholesky after:"<<std::endl;
337  result.Print();
338 
339  if (!ok){std::cout<<"MuonResidualsFromTrack:: corr decomposition failed!"<<std::endl;}
340  return result;
341 }
tuple result
Definition: query.py:137
TMatrixDSym corrMatrix(DetId chamberId)
tuple cout
Definition: gather_cfg.py:121
void MuonResidualsFromTrack::clear ( void  )

Definition at line 222 of file MuonResidualsFromTrack.cc.

References m_chamberIds, m_contains_TIDTEC, m_csc, m_dt13, m_dt2, m_tracker_chi2, m_tracker_numHits, and m_trkCovMatrix.

Referenced by Vispa.Views.WidgetView.WidgetView::closeEvent(), Vispa.Views.BoxDecayView.BoxDecayView::closeEvent(), Vispa.Share.FindAlgorithm.FindAlgorithm::findUsingFindDialog(), MuonResidualsFromTrack(), Vispa.Views.LineDecayView.LineDecayView::setDataObjects(), Vispa.Views.WidgetView.WidgetView::setDataObjects(), BeautifulSoup.Tag::setString(), Vispa.Views.TreeView.TreeView::updateContent(), Vispa.Views.TableView.TableView::updateContent(), Vispa.Views.BoxDecayView.BoxDecayView::updateContent(), and Vispa.Views.PropertyView.PropertyView::updateContent().

223 {
224  m_tracker_numHits = 0;
225  m_tracker_chi2 = 0.;
226  m_contains_TIDTEC = false;
227  m_chamberIds.clear();
228  m_dt13.clear();
229  m_dt2.clear();
230  m_csc.clear();
231  m_trkCovMatrix.clear();
232 }
std::vector< DetId > m_chamberIds
std::map< DetId, MuonChamberResidual * > m_dt2
std::map< DetId, MuonChamberResidual * > m_csc
std::map< DetId, TMatrixDSym > m_trkCovMatrix
std::map< DetId, MuonChamberResidual * > m_dt13
bool MuonResidualsFromTrack::contains_TIDTEC ( ) const
inline
TMatrixDSym MuonResidualsFromTrack::corrMatrix ( DetId  chamberId)

Definition at line 311 of file MuonResidualsFromTrack.cc.

References gather_cfg::cout, covMatrix(), convertSQLiteXML::ok, and query::result.

Referenced by choleskyCorrMatrix().

312 {
313  TMatrixDSym result(4);
314  TMatrixDSym cov44 = covMatrix(chamberId);
315 
316  // invert it using cholesky decomposition
317  TDecompChol decomp(cov44);
318  bool ok = decomp.Invert(result);
319  std::cout<<"MuonResidualsFromTrack:: corr after:"<<std::endl;
320  result.Print();
321 
322  if (!ok){std::cout<<"MuonResidualsFromTrack:: cov inversion failed!"<<std::endl;}
323  return result;
324 }
TMatrixDSym covMatrix(DetId chamberId)
tuple result
Definition: query.py:137
tuple cout
Definition: gather_cfg.py:121
TMatrixDSym MuonResidualsFromTrack::covMatrix ( DetId  chamberId)

Definition at line 267 of file MuonResidualsFromTrack.cc.

References gather_cfg::cout, m_csc, m_dt13, m_dt2, m_trkCovMatrix, and query::result.

Referenced by corrMatrix().

268 {
269  TMatrixDSym result(4);
270  std::cout<<"MuonResidualsFromTrack:: cov initial:"<<std::endl;
271  result.Print();
272  if (m_trkCovMatrix.find(chamberId) == m_trkCovMatrix.end())
273  {
274  std::cout<<"MuonResidualsFromTrack:: cov does not exist!"<<std::endl;
275  return result;
276  }
277  result = m_trkCovMatrix[chamberId];
278 
279  std::cout<<"MuonResidualsFromTrack:: cov before:"<<std::endl;
280  result.Print();
281 
282  // add segment's errors in quadratures to track's covariance matrix
283  double r_err;
284  if (m_csc.find(chamberId) == m_csc.end())
285  {
286  r_err = m_csc[chamberId]->residual_error();
287  result(0,0) += r_err*r_err;
288  r_err = m_csc[chamberId]->resslope_error();
289  result(2,2) += r_err*r_err;
290  }
291  if (m_dt13.find(chamberId) == m_dt13.end())
292  {
293  r_err = m_dt13[chamberId]->residual_error();
294  result(0,0) += r_err*r_err;
295  r_err = m_dt13[chamberId]->resslope_error();
296  result(2,2) += r_err*r_err;
297  }
298  if (m_dt2.find(chamberId) == m_dt2.end())
299  {
300  r_err = m_dt2[chamberId]->residual_error();
301  result(1,1) += r_err*r_err;
302  r_err = m_dt2[chamberId]->resslope_error();
303  result(3,3) += r_err*r_err;
304  }
305  std::cout<<"MuonResidualsFromTrack:: cov after:"<<std::endl;
306  result.Print();
307 
308  return result;
309 }
std::map< DetId, MuonChamberResidual * > m_dt2
std::map< DetId, MuonChamberResidual * > m_csc
tuple result
Definition: query.py:137
std::map< DetId, TMatrixDSym > m_trkCovMatrix
tuple cout
Definition: gather_cfg.py:121
std::map< DetId, MuonChamberResidual * > m_dt13
const reco::Track* MuonResidualsFromTrack::getTrack ( )
inline
double MuonResidualsFromTrack::normalizedChi2 ( ) const
double MuonResidualsFromTrack::trackerChi2 ( ) const
inline

Definition at line 55 of file MuonResidualsFromTrack.h.

References m_tracker_chi2.

int MuonResidualsFromTrack::trackerNumHits ( ) const
inline
double MuonResidualsFromTrack::trackerRedChi2 ( ) const

Definition at line 235 of file MuonResidualsFromTrack.cc.

References m_tracker_chi2, and m_tracker_numHits.

Referenced by normalizedChi2(), and AlignmentMonitorMuonVsCurvature::processMuonResidualsFromTrack().

236 {
237  if (m_tracker_numHits > 5) return m_tracker_chi2 / double(m_tracker_numHits - 5);
238  else return -1.;
239 }

Member Data Documentation

std::vector<DetId> MuonResidualsFromTrack::m_chamberIds
private

Definition at line 76 of file MuonResidualsFromTrack.h.

Referenced by chamberIds(), clear(), and MuonResidualsFromTrack().

bool MuonResidualsFromTrack::m_contains_TIDTEC
private

Definition at line 74 of file MuonResidualsFromTrack.h.

Referenced by clear(), contains_TIDTEC(), and MuonResidualsFromTrack().

std::map<DetId,MuonChamberResidual*> MuonResidualsFromTrack::m_csc
private
std::map<DetId,MuonChamberResidual*> MuonResidualsFromTrack::m_dt13
private
std::map<DetId,MuonChamberResidual*> MuonResidualsFromTrack::m_dt2
private
double MuonResidualsFromTrack::m_tracker_chi2
private
int MuonResidualsFromTrack::m_tracker_numHits
private
std::map<DetId,TMatrixDSym> MuonResidualsFromTrack::m_trkCovMatrix
private

Definition at line 78 of file MuonResidualsFromTrack.h.

Referenced by addTrkCovMatrix(), clear(), and covMatrix().

TrajectoryStateCombiner MuonResidualsFromTrack::m_tsoscomb
private

Definition at line 70 of file MuonResidualsFromTrack.h.

Referenced by MuonResidualsFromTrack().

const reco::Muon* MuonResidualsFromTrack::muon
private

Definition at line 86 of file MuonResidualsFromTrack.h.

Referenced by MuonResidualsFromTrack(), and normalizedChi2().

const reco::Track* MuonResidualsFromTrack::track
private

Definition at line 83 of file MuonResidualsFromTrack.h.

Referenced by getTrack(), MuonResidualsFromTrack(), and normalizedChi2().