CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

DTSurveyChamber Class Reference

#include <DTSurveyChamber.h>

List of all members.

Public Member Functions

void addPoint (int, const TMatrixD &, const TMatrixD &, const TMatrixD &)
void compute ()
 DTSurveyChamber (int, int, int, long)
float getAlpha () const
float getAlphaError () const
float getBeta () const
float getBetaError () const
float getDeltaX () const
float getDeltaXError () const
float getDeltaY () const
float getDeltaYError () const
float getDeltaZ () const
float getDeltaZError () const
float getGamma () const
float getGammaError () const
long getId () const
int getNumberPoints () const
void printChamberInfo ()

Private Member Functions

TMatrixD & makeErrors ()
TMatrixD & makeMatrix ()
TMatrixD & makeVector ()

Private Attributes

TMatrixD Covariance
int pointNumber
std::vector< TMatrixD > points
std::vector< TMatrixD > pointsDiff
std::vector< TMatrixD > pointsError
std::vector< TMatrixD > pointsTheoretical
long rawId
int sector
TMatrixD Solution
int station
int wheel

Detailed Description

Implements a chamber in the context of Drift Tube Survey Measurements and calculates displacements and rotations for it.

Date:
2011/09/14 15:03:57
Revision:
1.6
Author:
Pablo Martinez Ruiz del Arbol

Definition at line 20 of file DTSurveyChamber.h.


Constructor & Destructor Documentation

DTSurveyChamber::DTSurveyChamber ( int  m_wheel,
int  m_station,
int  m_sector,
long  m_rawId 
)

Definition at line 7 of file DTSurveyChamber.cc.

References pointNumber, rawId, sector, station, and wheel.

                                                                                       {
  
  //Coordinates of the chamber
  wheel = m_wheel;
  station = m_station;
  sector = m_sector;
  pointNumber = 0;
  rawId = m_rawId;  
   
}

Member Function Documentation

void DTSurveyChamber::addPoint ( int  code,
const TMatrixD &  r,
const TMatrixD &  disp,
const TMatrixD &  err 
)

Definition at line 35 of file DTSurveyChamber.cc.

References pointNumber, points, pointsDiff, pointsError, and pointsTheoretical.

Referenced by DTSurvey::ReadChambers().

                                                                                                     {
  
  
  ++pointNumber;

  points.push_back(r);
  pointsDiff.push_back(disp);
  pointsError.push_back(err);
  pointsTheoretical.push_back(r-disp);

}
void DTSurveyChamber::compute ( )

Definition at line 19 of file DTSurveyChamber.cc.

References benchmark_cfg::errors, Chi2::getCovariance(), Chi2::getSolution(), makeErrors(), makeMatrix(), makeVector(), and Solution.

Referenced by DTSurvey::CalculateChambers().

                              {
  
  TMatrixD leftMatrix = makeMatrix();
  TMatrixD rightMatrix = makeVector();
  TMatrixD errors = makeErrors();
  
  Chi2 myChi2(leftMatrix, rightMatrix, errors);
  
  Solution.ResizeTo(6,1);
  Solution = myChi2.getSolution();
  Covariance.ResizeTo(6,6);
  Covariance = myChi2.getCovariance();

}
float DTSurveyChamber::getAlpha ( ) const [inline]

Definition at line 40 of file DTSurveyChamber.h.

References Solution.

Referenced by operator<<().

{return Solution(5,0);}
float DTSurveyChamber::getAlphaError ( ) const [inline]

Definition at line 46 of file DTSurveyChamber.h.

References Covariance.

Referenced by operator<<().

{return TMath::Sqrt(Covariance(5,5));}
float DTSurveyChamber::getBeta ( ) const [inline]

Definition at line 41 of file DTSurveyChamber.h.

References Solution.

Referenced by operator<<().

{return -1.0*Solution(4,0);}
float DTSurveyChamber::getBetaError ( ) const [inline]

Definition at line 47 of file DTSurveyChamber.h.

References Covariance.

Referenced by operator<<().

{return TMath::Sqrt(Covariance(4,4));}
float DTSurveyChamber::getDeltaX ( ) const [inline]

Definition at line 36 of file DTSurveyChamber.h.

References Solution.

Referenced by operator<<().

{return Solution(0,0);}
float DTSurveyChamber::getDeltaXError ( ) const [inline]

Definition at line 43 of file DTSurveyChamber.h.

References Covariance.

Referenced by operator<<().

{return TMath::Sqrt(Covariance(0,0));}
float DTSurveyChamber::getDeltaY ( ) const [inline]

Definition at line 37 of file DTSurveyChamber.h.

References Solution.

Referenced by operator<<().

{return Solution(1,0);}
float DTSurveyChamber::getDeltaYError ( ) const [inline]

Definition at line 44 of file DTSurveyChamber.h.

References Covariance.

Referenced by operator<<().

{return TMath::Sqrt(Covariance(1,1));}
float DTSurveyChamber::getDeltaZ ( ) const [inline]

Definition at line 38 of file DTSurveyChamber.h.

References Solution.

Referenced by operator<<().

{return Solution(2,0);}
float DTSurveyChamber::getDeltaZError ( ) const [inline]

Definition at line 45 of file DTSurveyChamber.h.

References Covariance.

Referenced by operator<<().

{return TMath::Sqrt(Covariance(2,2));}
float DTSurveyChamber::getGamma ( ) const [inline]

Definition at line 42 of file DTSurveyChamber.h.

References Solution.

Referenced by operator<<().

{return Solution(3,0);}
float DTSurveyChamber::getGammaError ( ) const [inline]

Definition at line 48 of file DTSurveyChamber.h.

References Covariance.

Referenced by operator<<().

{return TMath::Sqrt(Covariance(3,3));}
long DTSurveyChamber::getId ( ) const [inline]

Definition at line 35 of file DTSurveyChamber.h.

References rawId.

Referenced by operator<<().

{return rawId;}
int DTSurveyChamber::getNumberPoints ( ) const [inline]

Definition at line 32 of file DTSurveyChamber.h.

References pointNumber.

Referenced by makeErrors(), makeMatrix(), makeVector(), and operator<<().

{ return pointNumber; }
TMatrixD & DTSurveyChamber::makeErrors ( ) [private]

Definition at line 65 of file DTSurveyChamber.cc.

References getNumberPoints(), AlCaHLTBitMon_ParallelJobs::p, pointsError, and query::result.

Referenced by compute().

                                       {
  
  TMatrixD *result = new TMatrixD(3*getNumberPoints(),3*getNumberPoints());
  result->Zero();
  int real = 0;
  for(std::vector<TMatrixD >::iterator p = pointsError.begin(); p != pointsError.end(); ++p) {
    double rmsn = 1.0/((*p)(0,0)*(*p)(0,0));
    (*result)(real*3,real*3) = rmsn;
    (*result)(real*3+1,real*3+1) = rmsn;
    (*result)(real*3+2,real*3+2) = rmsn;
    real++;
  }
  return *result;
}
TMatrixD & DTSurveyChamber::makeMatrix ( ) [private]

Definition at line 81 of file DTSurveyChamber.cc.

References getNumberPoints(), AlCaHLTBitMon_ParallelJobs::p, pointsTheoretical, and query::result.

Referenced by compute().

                                       {

  TMatrixD *result = new TMatrixD(3*getNumberPoints(), 6);
  result->Zero();
  int real = 0;
  for(std::vector<TMatrixD >::iterator p = pointsTheoretical.begin(); p != pointsTheoretical.end(); p++) {
    (*result)(real*3,0)= 1.0;
    (*result)(real*3,3) = (*p)(1,0);
    (*result)(real*3,4) = (*p)(2,0);
    (*result)(real*3+1,1) = 1.0;
    (*result)(real*3+1,3) = -(*p)(0,0);
    (*result)(real*3+1,5) = (*p)(2,0);
    (*result)(real*3+2,2) = 1.0;
    (*result)(real*3+2,4) = -(*p)(0,0);
    (*result)(real*3+2,5) = -(*p)(1,0);
    real++;
  }
  return *result;
}
TMatrixD & DTSurveyChamber::makeVector ( ) [private]

Definition at line 49 of file DTSurveyChamber.cc.

References getNumberPoints(), AlCaHLTBitMon_ParallelJobs::p, pointsDiff, and query::result.

Referenced by compute().

                                       {

  TMatrixD *result = new TMatrixD(3*getNumberPoints(),1);
  result->Zero();
  int real = 0;
  for(std::vector<TMatrixD >::iterator p = pointsDiff.begin(); p != pointsDiff.end(); ++p) {  
    (*result)(real*3,0) = (*p)(0,0);
    (*result)(real*3+1,0) = (*p)(1,0);
    (*result)(real*3+2,0) = (*p)(2,0);
    ++real;
  }
  return *result;
}
void DTSurveyChamber::printChamberInfo ( )

Member Data Documentation

TMatrixD DTSurveyChamber::Covariance [private]

Definition at line 76 of file DTSurveyChamber.h.

Referenced by addPoint(), DTSurveyChamber(), and getNumberPoints().

std::vector<TMatrixD> DTSurveyChamber::points [private]

Definition at line 67 of file DTSurveyChamber.h.

Referenced by addPoint().

std::vector<TMatrixD> DTSurveyChamber::pointsDiff [private]

Definition at line 68 of file DTSurveyChamber.h.

Referenced by addPoint(), and makeVector().

std::vector<TMatrixD> DTSurveyChamber::pointsError [private]

Definition at line 69 of file DTSurveyChamber.h.

Referenced by addPoint(), and makeErrors().

std::vector<TMatrixD> DTSurveyChamber::pointsTheoretical [private]

Definition at line 70 of file DTSurveyChamber.h.

Referenced by addPoint(), and makeMatrix().

long DTSurveyChamber::rawId [private]

Definition at line 63 of file DTSurveyChamber.h.

Referenced by DTSurveyChamber(), and getId().

int DTSurveyChamber::sector [private]

Definition at line 61 of file DTSurveyChamber.h.

Referenced by DTSurveyChamber().

TMatrixD DTSurveyChamber::Solution [private]

Definition at line 72 of file DTSurveyChamber.h.

Referenced by compute(), getAlpha(), getBeta(), getDeltaX(), getDeltaY(), getDeltaZ(), and getGamma().

int DTSurveyChamber::station [private]

Definition at line 61 of file DTSurveyChamber.h.

Referenced by DTSurveyChamber().

int DTSurveyChamber::wheel [private]

Definition at line 61 of file DTSurveyChamber.h.

Referenced by DTSurveyChamber().