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 22 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 104 of file TrackMasterProjector.cpp.

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

00107   : GaudiTool ( type, name , parent )
00108 {
00109   declareInterface<ITrackProjector>( this );
00110 
00111   declareProperty( "OTProjector",      m_OTProjName = "TrackOTProjector" );
00112   declareProperty( "ITProjector",      m_ITProjName = "TrackITProjector" );
00113   declareProperty( "VeloRProjector",   m_VeloRProjName = "TrackVeloRProjector" );
00114   declareProperty( "VeloPhiProjector", m_VeloPhiProjName = "TrackVeloPhiProjector" );
00115 
00116   m_projectors.clear();
00117   m_selectedProjector = NULL;
00118   // TODO: set a unknown measurement type in Measurement
00119   m_selectedMeasType = Measurement::OT;
00120 }

TrackMasterProjector::~TrackMasterProjector  )  [virtual]
 

Destructor.

Definition at line 125 of file TrackMasterProjector.cpp.

00125 {}; 


Member Function Documentation

double TrackMasterProjector::chi2  )  const [virtual]
 

Retrieve the chi squared of the (last) projection.

Implements ITrackProjector.

Definition at line 63 of file TrackMasterProjector.cpp.

References m_selectedProjector.

00064 {
00065   return m_selectedProjector -> chi2();
00066 }

double TrackMasterProjector::errResidual  )  const [virtual]
 

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

Implements ITrackProjector.

Definition at line 79 of file TrackMasterProjector.cpp.

References m_selectedProjector.

00080 {
00081   return m_selectedProjector -> errResidual();
00082 }

StatusCode TrackMasterProjector::initialize  ) 
 

Definition at line 87 of file TrackMasterProjector.cpp.

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

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

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, ITrackProjector::project(), and selectProjector().

00028                                                               {
00029   // TODO: change the measurement to get the type, 
00030   // selectProjector(meas.type());
00031   StatusCode sc = StatusCode::SUCCESS;
00032   if ( Measurement::OT != m_selectedMeasType) 
00033     sc = selectProjector( Measurement::OT );
00034   if (sc.isFailure()) return Warning(" Not able to select projector");
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 55 of file TrackMasterProjector.cpp.

References m_selectedProjector, and ITrackProjector::projectionMatrix().

00056 {
00057   return m_selectedProjector->projectionMatrix();
00058 }

double TrackMasterProjector::residual  )  const [virtual]
 

Retrieve the residual of the (last) projection.

Implements ITrackProjector.

Definition at line 71 of file TrackMasterProjector.cpp.

References m_selectedProjector.

00072 {
00073   return m_selectedProjector -> residual();
00074 }

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     return Warning(" No ITrackProjector in TrackMasterProjector for measurement type ");
00047   m_selectedProjector = m_projectors[type];
00048   m_selectedMeasType  = type;    
00049   return StatusCode::SUCCESS;
00050 }


Member Data Documentation

std::string TrackMasterProjector::m_ITProjName [private]
 

Definition at line 58 of file TrackMasterProjector.h.

Referenced by initialize(), and TrackMasterProjector().

std::string TrackMasterProjector::m_OTProjName [private]
 

Definition at line 57 of file TrackMasterProjector.h.

Referenced by initialize(), and TrackMasterProjector().

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

Definition at line 62 of file TrackMasterProjector.h.

Referenced by initialize(), and TrackMasterProjector().

Measurement::Type TrackMasterProjector::m_selectedMeasType [private]
 

Definition at line 64 of file TrackMasterProjector.h.

Referenced by project(), and TrackMasterProjector().

ITrackProjector* TrackMasterProjector::m_selectedProjector [private]
 

Definition at line 66 of file TrackMasterProjector.h.

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

std::string TrackMasterProjector::m_VeloPhiProjName [private]
 

Definition at line 60 of file TrackMasterProjector.h.

Referenced by initialize(), and TrackMasterProjector().

std::string TrackMasterProjector::m_VeloRProjName [private]
 

Definition at line 59 of file TrackMasterProjector.h.

Referenced by initialize(), and TrackMasterProjector().


The documentation for this class was generated from the following files:
Generated on Wed May 4 11:52:42 2005 for New Track Event Model by doxygen 1.4.1