CMS 3D CMS Logo

KalmanAlignmentUpdator Class Reference

Abstract base class for updators for the KalmanAlignmentAlgorithm. More...

#include <Alignment/KalmanAlignmentAlgorithm/interface/KalmanAlignmentUpdator.h>

Inheritance diagram for KalmanAlignmentUpdator:

DummyUpdator SingleTrajectoryUpdator

List of all members.

Public Types

typedef
ReferenceTrajectoryBase::ReferenceTrajectoryPtr 
ReferenceTrajectoryPtr

Public Member Functions

virtual KalmanAlignmentUpdatorclone (void) const =0
 KalmanAlignmentUpdator (const edm::ParameterSet &config)
virtual void process (const ReferenceTrajectoryPtr &trajectory, AlignmentParameterStore *store, AlignableNavigator *navigator, KalmanAlignmentMetricsUpdator *metrics)=0
 Process some kind of reference trajectory, for instance a single- or two-particle-trajectory, and calculate an improved estimate on the alignment parameters.
virtual ~KalmanAlignmentUpdator (void)

Protected Member Functions

const std::vector< Alignable * > alignablesFromAlignableDets (const std::vector< AlignableDetOrUnitPtr > &alignableDets, AlignmentParameterStore *store) const
 Returns the Alignables associated with the AlignableDets.
void updateUserVariables (const std::vector< Alignable * > &alignables) const
 Update the AlignmentUserVariables, given that the Alignables hold KalmanAlignmentUserVariables.


Detailed Description

Abstract base class for updators for the KalmanAlignmentAlgorithm.

Definition at line 12 of file KalmanAlignmentUpdator.h.


Member Typedef Documentation

typedef ReferenceTrajectoryBase::ReferenceTrajectoryPtr KalmanAlignmentUpdator::ReferenceTrajectoryPtr

Definition at line 17 of file KalmanAlignmentUpdator.h.


Constructor & Destructor Documentation

KalmanAlignmentUpdator::KalmanAlignmentUpdator ( const edm::ParameterSet config  )  [inline]

Definition at line 19 of file KalmanAlignmentUpdator.h.

00019 {}

virtual KalmanAlignmentUpdator::~KalmanAlignmentUpdator ( void   )  [inline, virtual]

Definition at line 20 of file KalmanAlignmentUpdator.h.

00020 {}


Member Function Documentation

const std::vector< Alignable * > KalmanAlignmentUpdator::alignablesFromAlignableDets ( const std::vector< AlignableDetOrUnitPtr > &  alignableDets,
AlignmentParameterStore store 
) const [protected]

Returns the Alignables associated with the AlignableDets.

If two or more AlignableDets are assiocated to the same Alignable, the Alignable is returned only once.

Definition at line 28 of file KalmanAlignmentUpdator.cc.

References AlignmentParameterStore::alignableFromAlignableDet().

Referenced by SingleTrajectoryUpdator::process().

00030 {
00031   std::vector< Alignable* > alignables;
00032 
00033   std::vector< AlignableDetOrUnitPtr >::const_iterator itAD;
00034   for ( itAD = alignableDets.begin(); itAD != alignableDets.end(); ++itAD )
00035   {
00036     Alignable* ali = store->alignableFromAlignableDet( *itAD );
00037     alignables.push_back( ali );
00038   }
00039 
00040   return alignables;
00041 }

virtual KalmanAlignmentUpdator* KalmanAlignmentUpdator::clone ( void   )  const [pure virtual]

Implemented in DummyUpdator, and SingleTrajectoryUpdator.

virtual void KalmanAlignmentUpdator::process ( const ReferenceTrajectoryPtr trajectory,
AlignmentParameterStore store,
AlignableNavigator navigator,
KalmanAlignmentMetricsUpdator metrics 
) [pure virtual]

Process some kind of reference trajectory, for instance a single- or two-particle-trajectory, and calculate an improved estimate on the alignment parameters.

Implemented in DummyUpdator, and SingleTrajectoryUpdator.

void KalmanAlignmentUpdator::updateUserVariables ( const std::vector< Alignable * > &  alignables  )  const [protected]

Update the AlignmentUserVariables, given that the Alignables hold KalmanAlignmentUserVariables.

Definition at line 6 of file KalmanAlignmentUpdator.cc.

References KalmanAlignmentUserVariables::update(), and AlignmentParameters::userVariables().

Referenced by SingleTrajectoryUpdator::process().

00007 {
00008   std::vector< Alignable* >::const_iterator itAlignable = alignables.begin();
00009 
00010   while ( itAlignable != alignables.end() )
00011   {
00012     AlignmentParameters* alignmentParameters = ( *itAlignable )->alignmentParameters();
00013 
00014     if ( alignmentParameters != 0 )
00015     {
00016       KalmanAlignmentUserVariables* userVariables =
00017         dynamic_cast< KalmanAlignmentUserVariables* >( alignmentParameters->userVariables() );
00018 
00019       if ( userVariables != 0 ) userVariables->update();
00020     }
00021 
00022     itAlignable++;
00023   }
00024 }


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:26:15 2009 for CMSSW by  doxygen 1.5.4