#include <Alignment/ReferenceTrajectories/plugins/ReferenceTrajectoryFactory.h>
Public Member Functions | |
virtual ReferenceTrajectoryFactory * | clone (void) const |
ReferenceTrajectoryFactory (const edm::ParameterSet &config) | |
virtual const ReferenceTrajectoryCollection | trajectories (const edm::EventSetup &setup, const ConstTrajTrackPairCollection &tracks, const ExternalPredictionCollection &external) const |
virtual const ReferenceTrajectoryCollection | trajectories (const edm::EventSetup &setup, const ConstTrajTrackPairCollection &tracks) const |
Produce the reference trajectories. | |
virtual | ~ReferenceTrajectoryFactory (void) |
Protected Attributes | |
double | theMass |
Definition at line 9 of file ReferenceTrajectoryFactory.h.
ReferenceTrajectoryFactory::ReferenceTrajectoryFactory | ( | const edm::ParameterSet & | config | ) |
Definition at line 12 of file ReferenceTrajectoryFactory.cc.
References edm::ParameterSet::getParameter(), and theMass.
Referenced by clone().
00012 : 00013 TrajectoryFactoryBase( config ) 00014 { 00015 theMass = config.getParameter< double >( "ParticleMass" ); 00016 }
ReferenceTrajectoryFactory::~ReferenceTrajectoryFactory | ( | void | ) | [virtual] |
virtual ReferenceTrajectoryFactory* ReferenceTrajectoryFactory::clone | ( | void | ) | const [inline, virtual] |
Implements TrajectoryFactoryBase.
Definition at line 25 of file ReferenceTrajectoryFactory.h.
References ReferenceTrajectoryFactory().
00025 { return new ReferenceTrajectoryFactory( *this ); }
const ReferenceTrajectoryFactory::ReferenceTrajectoryCollection ReferenceTrajectoryFactory::trajectories | ( | const edm::EventSetup & | setup, | |
const ConstTrajTrackPairCollection & | tracks, | |||
const ExternalPredictionCollection & | external | |||
) | const [virtual] |
Definition at line 53 of file ReferenceTrajectoryFactory.cc.
References edm::EventSetup::get(), TrajectoryFactoryBase::innermostStateAndRecHits(), iggi_31X_cfg::input, TrajectoryFactoryBase::materialEffects(), edm::ESHandle< T >::product(), TrajectoryFactoryBase::propagationDirection(), TrajectoryFactoryBase::sameSurface(), theMass, and trajectories().
00056 { 00057 ReferenceTrajectoryCollection trajectories; 00058 00059 if ( tracks.size() != external.size() ) 00060 { 00061 edm::LogInfo("ReferenceTrajectories") << "@SUB=ReferenceTrajectoryFactory::trajectories" 00062 << "Inconsistent input:\n" 00063 << "\tnumber of tracks = " << tracks.size() 00064 << "\tnumber of external predictions = " << external.size(); 00065 return trajectories; 00066 } 00067 00068 edm::ESHandle< MagneticField > magneticField; 00069 setup.get< IdealMagneticFieldRecord >().get( magneticField ); 00070 00071 ConstTrajTrackPairCollection::const_iterator itTracks = tracks.begin(); 00072 ExternalPredictionCollection::const_iterator itExternal = external.begin(); 00073 00074 while ( itTracks != tracks.end() ) 00075 { 00076 TrajectoryInput input = innermostStateAndRecHits( *itTracks ); 00077 // Check input: If all hits were rejected, the TSOS is initialized as invalid. 00078 if ( input.first.isValid() ) 00079 { 00080 if ( (*itExternal).isValid() && sameSurface( (*itExternal).surface(), input.first.surface() ) ) 00081 { 00082 // set the flag for reversing the RecHits to false, since they are already in the correct order. 00083 ReferenceTrajectoryPtr refTraj( new ReferenceTrajectory( *itExternal, input.second, false, 00084 magneticField.product(), materialEffects(), 00085 propagationDirection(), theMass) ); 00086 00087 AlgebraicSymMatrix externalParamErrors( asHepMatrix<5>( (*itExternal).localError().matrix() ) ); 00088 refTraj->setParameterErrors( externalParamErrors ); 00089 00090 trajectories.push_back( refTraj ); 00091 } 00092 else 00093 { 00094 trajectories.push_back(ReferenceTrajectoryPtr(new ReferenceTrajectory(input.first, input.second, false, 00095 magneticField.product(), materialEffects(), 00096 propagationDirection(), theMass))); 00097 } 00098 } 00099 00100 ++itTracks; 00101 ++itExternal; 00102 } 00103 00104 return trajectories; 00105 }
const ReferenceTrajectoryFactory::ReferenceTrajectoryCollection ReferenceTrajectoryFactory::trajectories | ( | const edm::EventSetup & | setup, | |
const ConstTrajTrackPairCollection & | tracks | |||
) | const [virtual] |
Produce the reference trajectories.
Definition at line 23 of file ReferenceTrajectoryFactory.cc.
References edm::EventSetup::get(), TrajectoryFactoryBase::innermostStateAndRecHits(), iggi_31X_cfg::input, TrajectoryFactoryBase::materialEffects(), edm::ESHandle< T >::product(), TrajectoryFactoryBase::propagationDirection(), and theMass.
Referenced by trajectories().
00025 { 00026 ReferenceTrajectoryCollection trajectories; 00027 00028 edm::ESHandle< MagneticField > magneticField; 00029 setup.get< IdealMagneticFieldRecord >().get( magneticField ); 00030 00031 ConstTrajTrackPairCollection::const_iterator itTracks = tracks.begin(); 00032 00033 while ( itTracks != tracks.end() ) 00034 { 00035 TrajectoryInput input = this->innermostStateAndRecHits( *itTracks ); 00036 // Check input: If all hits were rejected, the TSOS is initialized as invalid. 00037 if ( input.first.isValid() ) 00038 { 00039 // set the flag for reversing the RecHits to false, since they are already in the correct order. 00040 trajectories.push_back(ReferenceTrajectoryPtr(new ReferenceTrajectory(input.first, input.second, false, 00041 magneticField.product(), materialEffects(), 00042 propagationDirection(), theMass))); 00043 } 00044 00045 ++itTracks; 00046 } 00047 00048 return trajectories; 00049 }
double ReferenceTrajectoryFactory::theMass [protected] |
Definition at line 29 of file ReferenceTrajectoryFactory.h.
Referenced by ReferenceTrajectoryFactory(), and trajectories().