Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

TrackMasterProjector Class Reference

#include <TrackProjectors/TrackMasterProjector.h>

Inheritance diagram for TrackMasterProjector:

ITrackProjector List of all members.

Public Member Functions

StatusCode project (const State &state, Measurement &meas)
const HepVector & projectionMatrix () const
 Retrieve the projection matrix H of the (last) projection.
double chi2 () const
 Retrieve the chi squared of the (last) projection.
double residual () const
 Retrieve the residual of the (last) projection.
double errResidual () const
 Retrieve the error on the residual of the (last) projection.
 TrackMasterProjector (const std::string &type, const std::string &name, const IInterface *parent)
 Standard constructor.
virtual ~TrackMasterProjector ()
 Destructor.
StatusCode initialize ()

Protected Member Functions

StatusCode selectProjector (const Measurement::Type &type)

Private Attributes

std::string m_OTProjName
std::string m_ITProjName
std::string m_VeloRProjName
std::string m_VeloPhiProjName
std::map< Measurement::Type,
ITrackProjector * > 
m_projectors
Measurement::Type m_selectedMeasType
ITrackProjectorm_selectedProjector

Detailed Description

A TrackMasterProjector is the master projector that delegates the projection to the "measurement-type" projector.

Author:
Jose Hernando

Eduardo Rodrigues

Date:
2005-03-12

Definition at line 25 of file TrackMasterProjector.h.


Constructor & Destructor Documentation

TrackMasterProjector::TrackMasterProjector const std::string &  type,
const std::string &  name,
const IInterface *  parent
 

Standard constructor.

Definition at line 108 of file TrackMasterProjector.cpp.

References m_ITProjName, m_OTProjName, m_projectors, m_selectedMeasType, m_selectedProjector, m_VeloPhiProjName, and m_VeloRProjName.

00111   : GaudiTool ( type, name , parent )
00112 {
00113   declareInterface<ITrackProjector>( this );
00114 
00115   declareProperty( "OTProjector",      m_OTProjName = "TrackOTProjector" );
00116   declareProperty( "ITProjector",      m_ITProjName = "TrackITProjector" );
00117   declareProperty( "VeloRProjector",   m_VeloRProjName = "TrackVeloRProjector" );
00118   declareProperty( "VeloPhiProjector", m_VeloPhiProjName = "TrackVeloPhiProjector" );
00119 
00120   m_projectors.clear();
00121   m_selectedProjector = NULL;
00122   m_selectedMeasType = Measurement::Unknown;
00123 }

TrackMasterProjector::~TrackMasterProjector  )  [virtual]
 

Destructor.

Definition at line 128 of file TrackMasterProjector.cpp.

00128 {}; 


Member Function Documentation

double TrackMasterProjector::chi2  )  const [virtual]
 

Retrieve the chi squared of the (last) projection.

Implements ITrackProjector.

Definition at line 67 of file TrackMasterProjector.cpp.

References m_selectedProjector.

00068 {
00069   return m_selectedProjector -> chi2();
00070 }

double TrackMasterProjector::errResidual  )  const [virtual]
 

Retrieve the error on the residual of the (last) projection.

Implements ITrackProjector.

Definition at line 83 of file TrackMasterProjector.cpp.

References m_selectedProjector.

00084 {
00085   return m_selectedProjector -> errResidual();
00086 }

StatusCode TrackMasterProjector::initialize  ) 
 

Definition at line 91 of file TrackMasterProjector.cpp.

References m_ITProjName, m_OTProjName, m_projectors, m_VeloPhiProjName, and m_VeloRProjName.

00092 {
00093   StatusCode sc = GaudiTool::initialize();
00094   if ( sc.isFailure() )
00095     return Error( "Failed to initialize!", sc );
00096 
00097   m_projectors[Measurement::OT]      = tool<ITrackProjector>( m_OTProjName );
00098   m_projectors[Measurement::ST]      = tool<ITrackProjector>( m_ITProjName );
00099   m_projectors[Measurement::VeloR]   = tool<ITrackProjector>( m_VeloRProjName );
00100   m_projectors[Measurement::VeloPhi] = tool<ITrackProjector>( m_VeloPhiProjName );
00101 
00102   return StatusCode::SUCCESS;
00103 }

StatusCode TrackMasterProjector::project const State state,
Measurement meas
[virtual]
 

Project a state onto a measurement. It returns the chi squared of the projection

Implements ITrackProjector.

Definition at line 27 of file TrackMasterProjector.cpp.

References m_selectedMeasType, m_selectedProjector, and selectProjector().

00029 {
00030   if ( meas.type() != m_selectedMeasType) {
00031     StatusCode sc = selectProjector( meas.type() );
00032     if ( sc.isFailure() )
00033       return Error( "Unable to project this measurement!" );
00034   }
00035 
00036   return m_selectedProjector -> project( state, meas );  
00037 }

const HepVector & TrackMasterProjector::projectionMatrix  )  const [virtual]
 

Retrieve the projection matrix H of the (last) projection.

Implements ITrackProjector.

Definition at line 59 of file TrackMasterProjector.cpp.

References m_selectedProjector.

00060 {
00061   return m_selectedProjector -> projectionMatrix();
00062 }

double TrackMasterProjector::residual  )  const [virtual]
 

Retrieve the residual of the (last) projection.

Implements ITrackProjector.

Definition at line 75 of file TrackMasterProjector.cpp.

References m_selectedProjector.

00076 {
00077   return m_selectedProjector -> residual();
00078 }

StatusCode TrackMasterProjector::selectProjector const Measurement::Type type  )  [protected]
 

Definition at line 43 of file TrackMasterProjector.cpp.

Referenced by project().

00044 {
00045   if ( m_projectors.find(type) == m_projectors.end() ) {
00046     fatal() << "No TrackXxxProjector in TrackMasterProjector for this measurement of type = " << type << "!";
00047     return StatusCode::FAILURE;
00048   }
00049 
00050   m_selectedProjector = m_projectors[type];
00051   m_selectedMeasType  = type;
00052 
00053   return StatusCode::SUCCESS;
00054 }


Member Data Documentation

std::string TrackMasterProjector::m_ITProjName [private]
 

Definition at line 61 of file TrackMasterProjector.h.

Referenced by initialize(), and TrackMasterProjector().

std::string TrackMasterProjector::m_OTProjName [private]
 

Definition at line 60 of file TrackMasterProjector.h.

Referenced by initialize(), and TrackMasterProjector().

std::map<Measurement::Type,ITrackProjector*> TrackMasterProjector::m_projectors [private]
 

Definition at line 65 of file TrackMasterProjector.h.

Referenced by initialize(), and TrackMasterProjector().

Measurement::Type TrackMasterProjector::m_selectedMeasType [private]
 

Definition at line 67 of file TrackMasterProjector.h.

Referenced by project(), and TrackMasterProjector().

ITrackProjector* TrackMasterProjector::m_selectedProjector [private]
 

Definition at line 69 of file TrackMasterProjector.h.

Referenced by chi2(), errResidual(), project(), projectionMatrix(), residual(), and TrackMasterProjector().

std::string TrackMasterProjector::m_VeloPhiProjName [private]
 

Definition at line 63 of file TrackMasterProjector.h.

Referenced by initialize(), and TrackMasterProjector().

std::string TrackMasterProjector::m_VeloRProjName [private]
 

Definition at line 62 of file TrackMasterProjector.h.

Referenced by initialize(), and TrackMasterProjector().


The documentation for this class was generated from the following files:
Generated on Mon Jul 4 13:54:51 2005 for New Track Event Model by doxygen 1.4.1