CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
BaseCkfTrajectoryBuilder Class Referenceabstract

#include <BaseCkfTrajectoryBuilder.h>

Inheritance diagram for BaseCkfTrajectoryBuilder:
TrajectoryBuilder CkfTrajectoryBuilder GroupedCkfTrajectoryBuilder HICTrajectoryBuilder CkfDebugTrajectoryBuilder MuonCkfTrajectoryBuilder

Public Types

typedef std::vector
< TempTrajectory
TempTrajectoryContainer
 
typedef std::vector< TrajectoryTrajectoryContainer
 
typedef
TrajectoryContainer::iterator 
TrajectoryIterator
 
- Public Types inherited from TrajectoryBuilder
typedef std::vector< TrajectoryTrajectoryContainer
 
typedef
TrajectoryContainer::iterator 
TrajectoryIterator
 

Public Member Functions

 BaseCkfTrajectoryBuilder (const edm::ParameterSet &conf, const TrajectoryStateUpdator *updator, const Propagator *propagatorAlong, const Propagator *propagatorOpposite, const Chi2MeasurementEstimatorBase *estimator, const TransientTrackingRecHitBuilder *RecHitBuilder, const MeasurementTracker *measurementTracker, const TrajectoryFilter *filter, const TrajectoryFilter *inOutFilter=0)
 
virtual void setDebugger (CkfDebugger *dbg) const
 
virtual void setEvent (const edm::Event &event) const =0
 
virtual TrajectoryContainer trajectories (const TrajectorySeed &) const =0
 
virtual ~BaseCkfTrajectoryBuilder ()
 
- Public Member Functions inherited from TrajectoryBuilder
virtual void rebuildSeedingRegion (const TrajectorySeed &, TrajectoryContainer &result) const
 
virtual void trajectories (const TrajectorySeed &seed, TrajectoryContainer &out) const
 
virtual ~TrajectoryBuilder ()
 

Protected Types

typedef FreeTrajectoryState FTS
 
typedef std::pair< TSOS,
std::vector< const DetLayer * > > 
StateAndLayers
 
typedef TrajectoryMeasurement TM
 
typedef TrajectoryStateOnSurface TSOS
 

Protected Member Functions

void addToResult (TempTrajectory &traj, TrajectoryContainer &result, bool inOut=false) const
 
void addToResult (TempTrajectory &traj, TempTrajectoryContainer &result, bool inOut=false) const
 
virtual bool analyzeMeasurementsDebugger (Trajectory &traj, std::vector< TrajectoryMeasurement > meas, const MeasurementTracker *theMeasurementTracker, const Propagator *theForwardPropagator, const Chi2MeasurementEstimatorBase *theEstimator, const TransientTrackingRecHitBuilder *theTTRHBuilder) const
 
virtual bool analyzeMeasurementsDebugger (TempTrajectory &traj, std::vector< TrajectoryMeasurement > meas, const MeasurementTracker *theMeasurementTracker, const Propagator *theForwardPropagator, const Chi2MeasurementEstimatorBase *theEstimator, const TransientTrackingRecHitBuilder *theTTRHBuilder) const
 
TempTrajectory createStartingTrajectory (const TrajectorySeed &seed) const
 
virtual void fillSeedHistoDebugger (std::vector< TrajectoryMeasurement >::iterator begin, std::vector< TrajectoryMeasurement >::iterator end) const
 
StateAndLayers findStateAndLayers (const TempTrajectory &traj) const
 
bool qualityFilter (const TempTrajectory &traj, bool inOut=false) const
 
bool toBeContinued (TempTrajectory &traj, bool inOut=false) const
 

Protected Attributes

const PropagatortheBackwardPropagator
 
const
Chi2MeasurementEstimatorBase
theEstimator
 
const PropagatortheForwardPropagator
 
const LayerMeasurementstheLayerMeasurements
 
const MeasurementTrackertheMeasurementTracker
 
const PropagatorthePropagatorAlong
 
const PropagatorthePropagatorOpposite
 
const
TransientTrackingRecHitBuilder
theTTRHBuilder
 
const TrajectoryStateUpdatortheUpdator
 

Private Member Functions

void seedMeasurements (const TrajectorySeed &seed, std::vector< TrajectoryMeasurement > &result) const
 

Private Attributes

const TrajectoryFiltertheFilter
 
const TrajectoryFiltertheInOutFilter
 

Detailed Description

The component of track reconstruction that, strating from a seed, reconstructs all possible trajectories. The resulting trajectories may be mutually exclusive and require cleaning by a TrajectoryCleaner. The Trajectories are normally not smoothed.

Definition at line 43 of file BaseCkfTrajectoryBuilder.h.

Member Typedef Documentation

Definition at line 46 of file BaseCkfTrajectoryBuilder.h.

typedef std::pair<TSOS,std::vector<const DetLayer*> > BaseCkfTrajectoryBuilder::StateAndLayers
protected

Definition at line 49 of file BaseCkfTrajectoryBuilder.h.

Definition at line 54 of file BaseCkfTrajectoryBuilder.h.

Definition at line 48 of file BaseCkfTrajectoryBuilder.h.

Definition at line 53 of file BaseCkfTrajectoryBuilder.h.

typedef TrajectoryContainer::iterator BaseCkfTrajectoryBuilder::TrajectoryIterator

Definition at line 55 of file BaseCkfTrajectoryBuilder.h.

Definition at line 47 of file BaseCkfTrajectoryBuilder.h.

Constructor & Destructor Documentation

BaseCkfTrajectoryBuilder::BaseCkfTrajectoryBuilder ( const edm::ParameterSet conf,
const TrajectoryStateUpdator updator,
const Propagator propagatorAlong,
const Propagator propagatorOpposite,
const Chi2MeasurementEstimatorBase estimator,
const TransientTrackingRecHitBuilder RecHitBuilder,
const MeasurementTracker measurementTracker,
const TrajectoryFilter filter,
const TrajectoryFilter inOutFilter = 0 
)

Definition at line 24 of file BaseCkfTrajectoryBuilder.cc.

32  :
33  theUpdator(updator),
34  thePropagatorAlong(propagatorAlong),thePropagatorOpposite(propagatorOpposite),
35  theEstimator(estimator),theTTRHBuilder(recHitBuilder),
36  theMeasurementTracker(measurementTracker),
39  theFilter(filter),
40  theInOutFilter(inOutFilter)
41 {}
const Propagator * theBackwardPropagator
const TrajectoryStateUpdator * theUpdator
const TrajectoryFilter * theFilter
const LayerMeasurements * theLayerMeasurements
const TransientTrackingRecHitBuilder * theTTRHBuilder
const MeasurementTracker * theMeasurementTracker
const Propagator * thePropagatorOpposite
const TrajectoryFilter * theInOutFilter
const Chi2MeasurementEstimatorBase * theEstimator
const Propagator * theForwardPropagator
BaseCkfTrajectoryBuilder::~BaseCkfTrajectoryBuilder ( )
virtual

Definition at line 43 of file BaseCkfTrajectoryBuilder.cc.

References theLayerMeasurements.

43  {
44  delete theLayerMeasurements;
45 }
const LayerMeasurements * theLayerMeasurements

Member Function Documentation

void BaseCkfTrajectoryBuilder::addToResult ( TempTrajectory traj,
TrajectoryContainer result,
bool  inOut = false 
) const
protected

Definition at line 159 of file BaseCkfTrajectoryBuilder.cc.

References Trajectory::empty(), Trajectory::foundHits(), Trajectory::lastMeasurement(), LogDebug, Trajectory::lostHits(), Trajectory::measurements(), TempTrajectory::measurements(), Trajectory::pop(), qualityFilter(), TrajectoryMeasurement::recHit(), cmsutils::bqueue< T >::size(), and TempTrajectory::toTrajectory().

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer(), and CkfTrajectoryBuilder::limitedCandidates().

162 {
163  // quality check
164  if ( !qualityFilter(tmptraj, inOut) ) return;
165  Trajectory traj = tmptraj.toTrajectory();
166  // discard latest dummy measurements
167  while (!traj.empty() && !traj.lastMeasurement().recHit()->isValid()) traj.pop();
168  LogDebug("CkfPattern")<<inOut<<"=inOut option. pushing a Trajectory with: "<<traj.foundHits()<<" found hits. "<<traj.lostHits()
169  <<" lost hits. Popped :"<<(tmptraj.measurements().size())-(traj.measurements().size())<<" hits.";
170  result.push_back( traj);
171 }
#define LogDebug(id)
bool empty() const
True if trajectory has no measurements.
Definition: Trajectory.h:200
int foundHits() const
Definition: Trajectory.h:190
int lostHits() const
Definition: Trajectory.h:197
ConstRecHitPointer recHit() const
bool qualityFilter(const TempTrajectory &traj, bool inOut=false) const
DataContainer const & measurements() const
Definition: Trajectory.h:169
Trajectory toTrajectory() const
Convert to a standard Trajectory.
TrajectoryMeasurement const & lastMeasurement() const
Definition: Trajectory.h:147
tuple result
Definition: query.py:137
void pop()
Definition: Trajectory.cc:17
void BaseCkfTrajectoryBuilder::addToResult ( TempTrajectory traj,
TempTrajectoryContainer result,
bool  inOut = false 
) const
protected

Definition at line 173 of file BaseCkfTrajectoryBuilder.cc.

References TempTrajectory::empty(), TempTrajectory::foundHits(), TempTrajectory::lastMeasurement(), LogDebug, TempTrajectory::lostHits(), TempTrajectory::measurements(), TempTrajectory::pop(), qualityFilter(), TrajectoryMeasurement::recHit(), and cmsutils::bqueue< T >::size().

176 {
177  // quality check
178  if ( !qualityFilter(tmptraj, inOut) ) return;
179  // discard latest dummy measurements
180  TempTrajectory traj = tmptraj;
181  while (!traj.empty() && !traj.lastMeasurement().recHit()->isValid()) traj.pop();
182  LogDebug("CkfPattern")<<inOut<<"=inOut option. pushing a TempTrajectory with: "<<traj.foundHits()<<" found hits. "<<traj.lostHits()
183  <<" lost hits. Popped :"<<(tmptraj.measurements().size())-(traj.measurements().size())<<" hits.";
184  result.push_back( traj );
185 }
#define LogDebug(id)
bool empty() const
True if trajectory has no measurements.
const DataContainer & measurements() const
ConstRecHitPointer recHit() const
int foundHits() const
obsolete name, use measurements() instead.
const TrajectoryMeasurement & lastMeasurement() const
bool qualityFilter(const TempTrajectory &traj, bool inOut=false) const
tuple result
Definition: query.py:137
size_type size() const
Definition: bqueue.h:143
int lostHits() const
virtual bool BaseCkfTrajectoryBuilder::analyzeMeasurementsDebugger ( Trajectory traj,
std::vector< TrajectoryMeasurement meas,
const MeasurementTracker theMeasurementTracker,
const Propagator theForwardPropagator,
const Chi2MeasurementEstimatorBase theEstimator,
const TransientTrackingRecHitBuilder theTTRHBuilder 
) const
inlineprotectedvirtual

Maximum number of lost hits per trajectory candidate. Maximum number of consecutive lost hits per trajectory candidate.

Reimplemented in CkfDebugTrajectoryBuilder.

Definition at line 83 of file BaseCkfTrajectoryBuilder.h.

Referenced by CkfTrajectoryBuilder::limitedCandidates().

87  {return true;}
virtual bool BaseCkfTrajectoryBuilder::analyzeMeasurementsDebugger ( TempTrajectory traj,
std::vector< TrajectoryMeasurement meas,
const MeasurementTracker theMeasurementTracker,
const Propagator theForwardPropagator,
const Chi2MeasurementEstimatorBase theEstimator,
const TransientTrackingRecHitBuilder theTTRHBuilder 
) const
inlineprotectedvirtual

Reimplemented in CkfDebugTrajectoryBuilder.

Definition at line 88 of file BaseCkfTrajectoryBuilder.h.

92  {return true;}
TempTrajectory BaseCkfTrajectoryBuilder::createStartingTrajectory ( const TrajectorySeed seed) const
protected

Definition at line 99 of file BaseCkfTrajectoryBuilder.cc.

References alongMomentum, TrajectorySeed::direction(), PrintoutHelper::dumpCandidate(), i, LogDebug, query::result, seedMeasurements(), theBackwardPropagator, and theForwardPropagator.

Referenced by GroupedCkfTrajectoryBuilder::buildTrajectories(), GroupedCkfTrajectoryBuilder::rebuildSeedingRegion(), and CkfTrajectoryBuilder::trajectories().

100 {
101  TempTrajectory result( seed, seed.direction());
102  if ( seed.direction() == alongMomentum) {
103  theForwardPropagator = &(*thePropagatorAlong);
104  theBackwardPropagator = &(*thePropagatorOpposite);
105  }
106  else {
107  theForwardPropagator = &(*thePropagatorOpposite);
108  theBackwardPropagator = &(*thePropagatorAlong);
109  }
110 
111  std::vector<TM> seedMeas;
112  seedMeasurements(seed, seedMeas);
113  for (std::vector<TM>::const_iterator i=seedMeas.begin(); i!=seedMeas.end(); i++)
114  result.push(*i);
115 
116  LogDebug("CkfPattern")
117  <<" initial trajectory from the seed: "<<PrintoutHelper::dumpCandidate(result,true);
118 
119  return result;
120 }
#define LogDebug(id)
PropagationDirection direction() const
int i
Definition: DBlmapReader.cc:9
const Propagator * theBackwardPropagator
void seedMeasurements(const TrajectorySeed &seed, std::vector< TrajectoryMeasurement > &result) const
tuple result
Definition: query.py:137
static std::string dumpCandidate(const Candidate &candidate, bool showErrors=false)
const Propagator * theForwardPropagator
virtual void BaseCkfTrajectoryBuilder::fillSeedHistoDebugger ( std::vector< TrajectoryMeasurement >::iterator  begin,
std::vector< TrajectoryMeasurement >::iterator  end 
) const
inlineprotectedvirtual

Reimplemented in CkfDebugTrajectoryBuilder.

Definition at line 93 of file BaseCkfTrajectoryBuilder.h.

Referenced by seedMeasurements().

94  {;}
BaseCkfTrajectoryBuilder::StateAndLayers BaseCkfTrajectoryBuilder::findStateAndLayers ( const TempTrajectory traj) const
protected

Definition at line 190 of file BaseCkfTrajectoryBuilder.cc.

References PTrajectoryStateOnDet::detId(), GeometricSearchTracker::detLayer(), TempTrajectory::direction(), TempTrajectory::empty(), TrajectoryStateOnSurface::freeState(), g, MeasurementTracker::geometricSearchTracker(), MeasurementTracker::geomTracker(), ExpressReco_HICollisions_FallBack::id, TrackingGeometry::idToDet(), TempTrajectory::lastLayer(), TempTrajectory::lastMeasurement(), Propagator::magneticField(), DetLayer::nextLayers(), TempTrajectory::seed(), TrajectorySeed::startingState(), theForwardPropagator, theMeasurementTracker, TrajectoryStateTransform::transientState(), and TrajectoryMeasurement::updatedState().

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer(), and CkfTrajectoryBuilder::findCompatibleMeasurements().

191 {
192  if (traj.empty())
193  {
194  //set the currentState to be the one from the trajectory seed starting point
195  PTrajectoryStateOnDet ptod = traj.seed().startingState();
196  DetId id(ptod.detId());
198  const Surface * surface=&g->surface();
199  TrajectoryStateTransform tsTransform;
200 
201  TSOS currentState = TrajectoryStateOnSurface(tsTransform.transientState(ptod,surface,theForwardPropagator->magneticField()));
203  return StateAndLayers(currentState,lastLayer->nextLayers( *currentState.freeState(), traj.direction()) );
204  }
205  else
206  {
207  TSOS currentState = traj.lastMeasurement().updatedState();
208  return StateAndLayers(currentState,traj.lastLayer()->nextLayers( *currentState.freeState(), traj.direction()) );
209  }
210 }
const TrajectorySeed & seed() const
Access to the seed used to reconstruct the Trajectory.
bool empty() const
True if trajectory has no measurements.
virtual std::vector< const DetLayer * > nextLayers(NavigationDirection direction) const
Definition: DetLayer.cc:35
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
Definition: Activities.doc:4
const TrajectoryMeasurement & lastMeasurement() const
PropagationDirection direction() const
FreeTrajectoryState * freeState(bool withErrors=true) const
const DetLayer * detLayer(const DetId &id) const
obsolete method. Use idToLayer() instead.
const TrackingGeometry * geomTracker() const
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field) const
TrajectoryStateOnSurface updatedState() const
Definition: DetId.h:20
const MeasurementTracker * theMeasurementTracker
PTrajectoryStateOnDet const & startingState() const
virtual const GeomDet * idToDet(DetId) const =0
const unsigned int detId() const
virtual const MagneticField * magneticField() const =0
std::pair< TSOS, std::vector< const DetLayer * > > StateAndLayers
const DetLayer * lastLayer() const
Redundant method, returns the layer of lastMeasurement() .
const GeometricSearchTracker * geometricSearchTracker() const
const Propagator * theForwardPropagator
bool BaseCkfTrajectoryBuilder::qualityFilter ( const TempTrajectory traj,
bool  inOut = false 
) const
protected

Called at end of track building, to see if track should be kept

Definition at line 145 of file BaseCkfTrajectoryBuilder.cc.

References TrajectoryFilter::qualityFilter(), theFilter, and theInOutFilter.

Referenced by addToResult(), and CkfTrajectoryBuilder::limitedCandidates().

146 {
147  // Called after building a trajectory is completed, to see if it is good enough
148  // to keep.
149  if (inOut) {
150  if (theInOutFilter == 0) edm::LogError("CkfPattern") << "CkfTrajectoryBuilder error: trying to use dedicated filter for in-out tracking phase, when none specified";
151  return theInOutFilter->qualityFilter(traj);
152  } else {
153  return theFilter->qualityFilter(traj);
154  }
155 }
const TrajectoryFilter * theFilter
virtual bool qualityFilter(const TempTrajectory &) const =0
const TrajectoryFilter * theInOutFilter
void BaseCkfTrajectoryBuilder::seedMeasurements ( const TrajectorySeed seed,
std::vector< TrajectoryMeasurement > &  result 
) const
private

Definition at line 49 of file BaseCkfTrajectoryBuilder.cc.

References TransientTrackingRecHitBuilder::build(), GeometricSearchTracker::detLayer(), fillSeedHistoDebugger(), MeasurementTracker::geometricSearchTracker(), MeasurementTracker::geomTracker(), TrackingGeometry::idToDet(), TrajectoryStateOnSurface::isValid(), Propagator::magneticField(), Propagator::propagate(), TrajectorySeed::recHits(), TrajectorySeed::startingState(), GeomDet::surface(), theBackwardPropagator, theForwardPropagator, theMeasurementTracker, theTTRHBuilder, theUpdator, TrajectoryStateTransform::transientState(), and TrajectoryStateUpdator::update().

Referenced by createStartingTrajectory().

50 {
51  TrajectoryStateTransform tsTransform;
52 
53  TrajectorySeed::range hitRange = seed.recHits();
54  for (TrajectorySeed::const_iterator ihit = hitRange.first;
55  ihit != hitRange.second; ihit++) {
57  const GeomDet* hitGeomDet =
58  theMeasurementTracker->geomTracker()->idToDet( ihit->geographicalId());
59 
60  const DetLayer* hitLayer =
61  theMeasurementTracker->geometricSearchTracker()->detLayer(ihit->geographicalId());
62 
63  TSOS invalidState( new BasicSingleTrajectoryState( hitGeomDet->surface()));
64  if (ihit == hitRange.second - 1) {
65  // the seed trajectory state should correspond to this hit
66  PTrajectoryStateOnDet pState( seed.startingState());
67  const GeomDet* gdet = theMeasurementTracker->geomTracker()->idToDet( DetId(pState.detId()));
68  if (&gdet->surface() != &hitGeomDet->surface()) {
69  edm::LogError("CkfPattern") << "CkfTrajectoryBuilder error: the seed state is not on the surface of the detector of the last seed hit";
70  return; // FIXME: should throw exception
71  }
72 
73  TSOS updatedState = tsTransform.transientState( pState, &(gdet->surface()),
75  result.push_back(TM( invalidState, updatedState, recHit, 0, hitLayer));
76  }
77  else {
78  PTrajectoryStateOnDet pState( seed.startingState());
79 
80  TSOS outerState = tsTransform.transientState(pState,
82  (hitRange.second - 1)->geographicalId()))->surface()),
84  TSOS innerState = theBackwardPropagator->propagate(outerState,hitGeomDet->surface());
85  if(innerState.isValid()) {
86  TSOS innerUpdated = theUpdator->update(innerState,*recHit);
87  result.push_back(TM( invalidState, innerUpdated, recHit, 0, hitLayer));
88  }
89  }
90  }
91 
92  // method for debugging
93  fillSeedHistoDebugger(result.begin(),result.end());
94 
95 }
const Propagator * theBackwardPropagator
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TransientTrackingRecHit &) const =0
const TrajectoryStateUpdator * theUpdator
recHitContainer::const_iterator const_iterator
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
const TransientTrackingRecHitBuilder * theTTRHBuilder
tuple result
Definition: query.py:137
const DetLayer * detLayer(const DetId &id) const
obsolete method. Use idToLayer() instead.
std::pair< const_iterator, const_iterator > range
const TrackingGeometry * geomTracker() const
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field) const
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:9
Definition: DetId.h:20
const MeasurementTracker * theMeasurementTracker
PTrajectoryStateOnDet const & startingState() const
virtual const GeomDet * idToDet(DetId) const =0
range recHits() const
virtual const MagneticField * magneticField() const =0
const GeometricSearchTracker * geometricSearchTracker() const
virtual void fillSeedHistoDebugger(std::vector< TrajectoryMeasurement >::iterator begin, std::vector< TrajectoryMeasurement >::iterator end) const
virtual const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
const Propagator * theForwardPropagator
virtual void BaseCkfTrajectoryBuilder::setDebugger ( CkfDebugger dbg) const
inlinevirtual

Reimplemented in CkfDebugTrajectoryBuilder.

Definition at line 73 of file BaseCkfTrajectoryBuilder.h.

73 {;}
virtual void BaseCkfTrajectoryBuilder::setEvent ( const edm::Event event) const
pure virtual
bool BaseCkfTrajectoryBuilder::toBeContinued ( TempTrajectory traj,
bool  inOut = false 
) const
protected

Called after each new hit is added to the trajectory, to see if building this track should be continued

Definition at line 123 of file BaseCkfTrajectoryBuilder.cc.

References TempTrajectory::foundHits(), TempTrajectory::lastLayer(), TempTrajectory::lastMeasurement(), LogTrace, TempTrajectory::lostHits(), TempTrajectory::measurements(), TrajectoryMeasurement::predictedState(), cmsutils::bqueue< T >::size(), DetLayer::subDetector(), theFilter, theInOutFilter, and TrajectoryFilter::toBeContinued().

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer(), and CkfTrajectoryBuilder::limitedCandidates().

124 {
125  if (traj.measurements().size() > 400) {
126  edm::LogError("BaseCkfTrajectoryBuilder_InfiniteLoop");
127  LogTrace("BaseCkfTrajectoryBuilder_InfiniteLoop") <<
128  "Cropping Track After 400 Measurements:\n" <<
129  " Last predicted state: " << traj.lastMeasurement().predictedState() << "\n" <<
130  " Last layer subdetector: " << (traj.lastLayer() ? traj.lastLayer()->subDetector() : -1) << "\n" <<
131  " Found hits: " << traj.foundHits() << ", lost hits: " << traj.lostHits() << "\n\n";
132  return false;
133  }
134  // Called after each new hit is added to the trajectory, to see if it is
135  // worth continuing to build this track candidate.
136  if (inOut) {
137  if (theInOutFilter == 0) edm::LogError("CkfPattern") << "CkfTrajectoryBuilder error: trying to use dedicated filter for in-out tracking phase, when none specified";
138  return theInOutFilter->toBeContinued(traj);
139  } else {
140  return theFilter->toBeContinued(traj);
141  }
142 }
const DataContainer & measurements() const
virtual SubDetector subDetector() const =0
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
int foundHits() const
obsolete name, use measurements() instead.
const TrajectoryFilter * theFilter
const TrajectoryMeasurement & lastMeasurement() const
TrajectoryStateOnSurface predictedState() const
#define LogTrace(id)
virtual bool toBeContinued(TempTrajectory &) const =0
size_type size() const
Definition: bqueue.h:143
const TrajectoryFilter * theInOutFilter
const DetLayer * lastLayer() const
Redundant method, returns the layer of lastMeasurement() .
int lostHits() const
virtual TrajectoryContainer BaseCkfTrajectoryBuilder::trajectories ( const TrajectorySeed ) const
pure virtual

Member Data Documentation

const Propagator* BaseCkfTrajectoryBuilder::theBackwardPropagator
mutableprotected
const Chi2MeasurementEstimatorBase* BaseCkfTrajectoryBuilder::theEstimator
protected
const TrajectoryFilter* BaseCkfTrajectoryBuilder::theFilter
private

Definition at line 140 of file BaseCkfTrajectoryBuilder.h.

Referenced by qualityFilter(), and toBeContinued().

const Propagator* BaseCkfTrajectoryBuilder::theForwardPropagator
mutableprotected
const TrajectoryFilter* BaseCkfTrajectoryBuilder::theInOutFilter
private

Filter used at end of complete tracking

Definition at line 141 of file BaseCkfTrajectoryBuilder.h.

Referenced by qualityFilter(), and toBeContinued().

const LayerMeasurements* BaseCkfTrajectoryBuilder::theLayerMeasurements
protected
const MeasurementTracker* BaseCkfTrajectoryBuilder::theMeasurementTracker
protected
const Propagator* BaseCkfTrajectoryBuilder::thePropagatorAlong
protected

Definition at line 120 of file BaseCkfTrajectoryBuilder.h.

const Propagator* BaseCkfTrajectoryBuilder::thePropagatorOpposite
protected

Definition at line 121 of file BaseCkfTrajectoryBuilder.h.

const TransientTrackingRecHitBuilder* BaseCkfTrajectoryBuilder::theTTRHBuilder
protected
const TrajectoryStateUpdator* BaseCkfTrajectoryBuilder::theUpdator
protected