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 | Static Public Member Functions | Private Member Functions | Private Attributes
TempTrajectory Class Reference

#include <TempTrajectory.h>

Public Types

typedef
TransientTrackingRecHit::ConstRecHitContainer 
ConstRecHitContainer
 
typedef cmsutils::bqueue
< TrajectoryMeasurement
DataContainer
 
typedef ConstRecHitContainer RecHitContainer
 

Public Member Functions

double chiSquared () const
 Value of the raw Chi2 of the trajectory, not normalised to the N.D.F. More...
 
PropagationDirection direction () const
 
float dPhiCacheForLoopersReconstruction () const
 
bool empty () const
 True if trajectory has no measurements. More...
 
const TrajectoryMeasurementfirstMeasurement () const
 
int foundHits () const
 obsolete name, use measurements() instead. More...
 
void incrementLoops ()
 
void invalidate ()
 Method to invalidate a trajectory. Useful during ambiguity resolution. More...
 
bool isLooper () const
 
bool isValid () const
 
void join (TempTrajectory &segment)
 
const DetLayerlastLayer () const
 Redundant method, returns the layer of lastMeasurement() . More...
 
const TrajectoryMeasurementlastMeasurement () const
 
int lostHits () const
 
const DataContainermeasurements () const
 
signed char nLoops () const
 
void pop ()
 
void popInvalidTail ()
 Pops out all the invalid hits on the tail. More...
 
void push (const TrajectoryMeasurement &tm)
 
void push (const TempTrajectory &segment)
 
void push (const TrajectoryMeasurement &tm, double chi2Increment)
 
const TrajectorySeedseed () const
 Access to the seed used to reconstruct the Trajectory. More...
 
void setDPhiCacheForLoopersReconstruction (float dphi)
 
void setNLoops (signed char value)
 
 TempTrajectory ()
 
 TempTrajectory (const TrajectorySeed &seed)
 
 TempTrajectory (const TrajectorySeed &seed, PropagationDirection dir)
 
 TempTrajectory (const boost::shared_ptr< const TrajectorySeed > &seed, PropagationDirection dir)
 
 TempTrajectory (PropagationDirection dir)
 
 TempTrajectory (const Trajectory &traj)
 construct TempTrajectory from standard Trajectory More...
 
Trajectory toTrajectory () const
 Convert to a standard Trajectory. More...
 
 ~TempTrajectory ()
 destruct a TempTrajectory More...
 

Static Public Member Functions

static bool inactive ()
 
static bool lost (const TransientTrackingRecHit &hit)
 

Private Member Functions

void check () const
 
void pushAux (const TrajectoryMeasurement &tm, double chi2Increment)
 

Private Attributes

float theChiSquared
 
DataContainer theData
 
PropagationDirection theDirection
 
bool theDirectionValidity
 
float theDPhiCache
 
signed char theNLoops
 
signed short theNumberOfFoundHits
 
signed short theNumberOfLostHits
 
boost::shared_ptr< const
TrajectorySeed
theSeed
 
bool theValid
 

Detailed Description

A class for detailed particle trajectory representation. It is used during trajectory building to "grow" a trajectory. The trajectory is represented as an ordered sequence of TrajectoryMeasurement objects with a stack-like interface. The measurements are added to the Trajectory in the order of increasing precision: each new TrajectoryMeasurement is assumed to improve the precision of the last one, normally by adding a constraint from a new RecHit. However the Trajectory class does not have the means to verify that measurements are added in the correct order, and thus cannot guarantee the order, which is the responsibility of the TrajectoryBuilder. The Trajectory provides some security by allowing to add or remove measurements only on one of it's ends, with push(TM) and pop() methods. The last measurement in a Trajectory can thus be either the innermost (closest to the interaction point) or the outermost, depending on the way the Trajectory was built. The direction of building is represented as a PropagationDirection, which has two possible values: alongMomentum (outwards) and oppositeToMomentum (inwards), and is accessed with the direction() method.

Definition at line 41 of file TempTrajectory.h.

Member Typedef Documentation

Definition at line 46 of file TempTrajectory.h.

Definition at line 45 of file TempTrajectory.h.

Definition at line 47 of file TempTrajectory.h.

Constructor & Destructor Documentation

TempTrajectory::TempTrajectory ( )
inline

Default constructor of an empty trajectory with undefined seed and undefined direction. This constructor is necessary in order to transiently copy vector<Trajectory> in the edm::Event

Definition at line 55 of file TempTrajectory.h.

55  :
56  theChiSquared(0),
59  theValid(true),theDPhiCache(0),theNLoops(0)
60  {}
signed short theNumberOfFoundHits
PropagationDirection theDirection
signed short theNumberOfLostHits
signed char theNLoops
TempTrajectory::TempTrajectory ( const TrajectorySeed seed)
inline

Constructor of an empty trajectory with undefined direction. The direction will be defined at the moment of the push of a second measurement, from the relative radii of the first and second measurements.

Definition at line 69 of file TempTrajectory.h.

69  :
70  theSeed( new TrajectorySeed(seed) ),
71  theChiSquared(0),
74  theValid(true),theDPhiCache(0),theNLoops(0)
75  {}
signed short theNumberOfFoundHits
PropagationDirection theDirection
signed short theNumberOfLostHits
boost::shared_ptr< const TrajectorySeed > theSeed
signed char theNLoops
TempTrajectory::TempTrajectory ( const TrajectorySeed seed,
PropagationDirection  dir 
)
inline

Constructor of an empty trajectory with defined direction. No check is made in the push method that measurements are added in the correct direction.

Definition at line 81 of file TempTrajectory.h.

81  :
82  theSeed( new TrajectorySeed(seed) ),
83  theChiSquared(0),
86  theValid(true),theDPhiCache(0),theNLoops(0)
87  {}
signed short theNumberOfFoundHits
PropagationDirection theDirection
signed short theNumberOfLostHits
boost::shared_ptr< const TrajectorySeed > theSeed
signed char theNLoops
dbl *** dir
Definition: mlp_gen.cc:35
TempTrajectory::TempTrajectory ( const boost::shared_ptr< const TrajectorySeed > &  seed,
PropagationDirection  dir 
)
inline

Constructor of an empty trajectory with defined direction. No check is made in the push method that measurements are added in the correct direction.

Definition at line 93 of file TempTrajectory.h.

93  :
94  theSeed( seed ),
95  theChiSquared(0),
98  theValid(true),theDPhiCache(0),theNLoops(0)
99  {}
signed short theNumberOfFoundHits
const TrajectorySeed & seed() const
Access to the seed used to reconstruct the Trajectory.
PropagationDirection theDirection
signed short theNumberOfLostHits
boost::shared_ptr< const TrajectorySeed > theSeed
signed char theNLoops
dbl *** dir
Definition: mlp_gen.cc:35
TempTrajectory::TempTrajectory ( PropagationDirection  dir)
inline

Constructor of an empty trajectory with defined direction. No check is made in the push method that measurements are added in the correct direction.

Definition at line 106 of file TempTrajectory.h.

106  :
107  theChiSquared(0),
110  theValid(true),theDPhiCache(0),theNLoops(0)
111  {}
signed short theNumberOfFoundHits
PropagationDirection theDirection
signed short theNumberOfLostHits
signed char theNLoops
dbl *** dir
Definition: mlp_gen.cc:35
TempTrajectory::TempTrajectory ( const Trajectory traj)

construct TempTrajectory from standard Trajectory

Definition at line 7 of file TempTrajectory.cc.

References begin, end, Trajectory::measurements(), and push().

7  :
8  theSeed( traj.sharedSeed() ),
9  theChiSquared(0),
12  theValid(traj.isValid()),
14  theNLoops(traj.nLoops()) {
15 
16  Trajectory::DataContainer::const_iterator begin=traj.measurements().begin();
17  Trajectory::DataContainer::const_iterator end=traj.measurements().end();
18 
19  for(Trajectory::DataContainer::const_iterator it=begin; it!=end; ++it){
20  push(*it);
21  }
22 
23 }
signed short theNumberOfFoundHits
float dPhiCacheForLoopersReconstruction() const
Definition: Trajectory.h:312
PropagationDirection theDirection
const boost::shared_ptr< const TrajectorySeed > & sharedSeed() const
Definition: Trajectory.h:308
signed char nLoops() const
Definition: Trajectory.h:319
PropagationDirection const & direction() const
Definition: Trajectory.cc:195
DataContainer const & measurements() const
Definition: Trajectory.h:203
signed short theNumberOfLostHits
#define end
Definition: vmac.h:38
boost::shared_ptr< const TrajectorySeed > theSeed
bool isValid() const
Definition: Trajectory.h:259
signed char theNLoops
#define begin
Definition: vmac.h:31
void push(const TrajectoryMeasurement &tm)
TempTrajectory::~TempTrajectory ( )

destruct a TempTrajectory

Definition at line 25 of file TempTrajectory.cc.

25 {}

Member Function Documentation

void TempTrajectory::check ( void  ) const
private

Definition at line 134 of file TempTrajectory.cc.

References cmsutils::bqueue< T >::size(), and theData.

Referenced by firstMeasurement(), lastLayer(), and lastMeasurement().

134  {
135  if ( theData.size() == 0)
136  throw cms::Exception("TrackingTools/PatternTools","Trajectory::check() - information requested from empty Trajectory");
137 }
DataContainer theData
size_type size() const
Definition: bqueue.h:146
double TempTrajectory::chiSquared ( ) const
inline

Value of the raw Chi2 of the trajectory, not normalised to the N.D.F.

Definition at line 267 of file TempTrajectory.h.

References theChiSquared.

Referenced by HICTrajectoryBuilder::qualityFilter(), and GroupedTrajCandLess::score().

267 { return theChiSquared;}
PropagationDirection TempTrajectory::direction ( ) const

Direction of "growing" of the trajectory. Possible values are alongMomentum (outwards) and oppositeToMomentum (inwards).

Definition at line 129 of file TempTrajectory.cc.

References edm::hlt::Exception, theDirection, and theDirectionValidity.

Referenced by GroupedCkfTrajectoryBuilder::backwardFit(), MuonCkfTrajectoryBuilder::findCompatibleMeasurements(), HICTrajectoryBuilder::findCompatibleMeasurements(), BaseCkfTrajectoryBuilder::findStateAndLayers(), join(), and push().

129  {
131  else throw cms::Exception("TrackingTools/PatternTools","Trajectory::direction() requested but not set");
132 }
PropagationDirection theDirection
float TempTrajectory::dPhiCacheForLoopersReconstruction ( ) const
inline

accessor to the delta phi angle betweem the directions of the two measurements on the last two layers crossed by the trajectory

Definition at line 311 of file TempTrajectory.h.

References theDPhiCache.

Referenced by GroupedTrajCandLess::score().

311 { return theDPhiCache;}
bool TempTrajectory::empty ( void  ) const
inline
const TrajectoryMeasurement& TempTrajectory::firstMeasurement ( ) const
inline

Access to the first measurement. It is the least precise one in a trajectory before smoothing. It is precise in a smoothed trajectory. It's the innermost measurement if direction() == alongMomentum, the outermost one if direction() == oppositeToMomentum.

Definition at line 234 of file TempTrajectory.h.

References check(), cmsutils::bqueue< T >::front(), and theData.

234  {
235  check(); return theData.front();
236  }
DataContainer theData
void check() const
int TempTrajectory::foundHits ( ) const
inline

obsolete name, use measurements() instead.

Return all RecHits in a container.Number of valid RecHits used to determine the trajectory. Can be less than the number of measurements in data() since detector layers crossed without using RecHits from them are also stored as measurements.

Definition at line 254 of file TempTrajectory.h.

References theNumberOfFoundHits.

Referenced by BaseCkfTrajectoryBuilder::addToResult(), GroupedCkfTrajectoryBuilder::advanceOneLayer(), GroupedCkfTrajectoryBuilder::backwardFit(), TrajectoryLessByFoundHits::operator()(), ThresholdPtTrajectoryFilter::qualityFilter(), MinPtTrajectoryFilter::qualityFilter(), HICTrajectoryBuilder::qualityFilter(), GroupedTrajCandLess::score(), MinPtTrajectoryFilter::toBeContinued(), ThresholdPtTrajectoryFilter::toBeContinued(), and BaseCkfTrajectoryBuilder::toBeContinued().

254 { return theNumberOfFoundHits;}
signed short theNumberOfFoundHits
static bool TempTrajectory::inactive ( )
inlinestatic

Definition of inactive Det from the Trajectory point of view.

Definition at line 289 of file TempTrajectory.h.

290  {return false;}//FIXME
void TempTrajectory::incrementLoops ( )
inline

Definition at line 321 of file TempTrajectory.h.

References theNLoops.

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer().

321 {theNLoops++;}
signed char theNLoops
void TempTrajectory::invalidate ( )
inline

Method to invalidate a trajectory. Useful during ambiguity resolution.

Definition at line 281 of file TempTrajectory.h.

References theValid.

281 { theValid = false;}
bool TempTrajectory::isLooper ( ) const
inline

Definition at line 317 of file TempTrajectory.h.

References theNLoops.

317 { return (theNLoops>0);}
signed char theNLoops
bool TempTrajectory::isValid ( void  ) const
inline
void TempTrajectory::join ( TempTrajectory segment)

Add a new sets of measurements to a Trajectory Exactly like push(TempTrajectory), but it doesn't copy the data (the input segment will be reset to an empty one)

Definition at line 91 of file TempTrajectory.cc.

References alongMomentum, cmsutils::bqueue< T >::back(), cmsutils::bqueue< T >::clear(), direction(), cmsutils::bqueue< T >::front(), TrajectoryStateOnSurface::globalPosition(), cmsutils::bqueue< T >::join(), lost(), measurements(), oppositeToMomentum, PV3DBase< T, PVType, FrameType >::perp(), push(), cmsutils::bqueue< T >::rbegin(), cmsutils::bqueue< T >::rend(), cmsutils::bqueue< T >::shared(), cmsutils::bqueue< T >::size(), theChiSquared, theData, theDirection, theDirectionValidity, theNumberOfFoundHits, theNumberOfLostHits, and TrajectoryMeasurement::updatedState().

91  {
92  assert (segment.direction() == theDirection) ;
93  if (segment.theData.shared()) {
94  push(segment);
95  segment.theData.clear(); // obey the contract, and increase the chances it will be not shared one day
96  } else {
97  for (DataContainer::const_iterator it = segment.measurements().rbegin(), ed = segment.measurements().rend(); it != ed; --it) {
98  if ( it->recHit()->isValid()) theNumberOfFoundHits++;
99  else if (lost( *(it->recHit()) ) ) theNumberOfLostHits++;
100  theChiSquared += it->estimate();
101  }
102  theData.join(segment.theData);
103 
104  if ( !theDirectionValidity && theData.size() >= 2) {
109  theDirectionValidity = true;
110  }
111  }
112 }
signed short theNumberOfFoundHits
const_iterator rend() const
Definition: bqueue.h:145
T perp() const
Definition: PV3DBase.h:71
const DataContainer & measurements() const
GlobalPoint globalPosition() const
PropagationDirection theDirection
static bool lost(const TransientTrackingRecHit &hit)
PropagationDirection direction() const
DataContainer theData
bool shared()
Definition: bqueue.h:154
signed short theNumberOfLostHits
void clear()
Definition: bqueue.h:175
TrajectoryStateOnSurface updatedState() const
const _bqueue_itr< value_type > const_iterator
Definition: bqueue.h:89
iterator rbegin()
Definition: bqueue.h:143
void join(bqueue< T > &other)
Definition: bqueue.h:161
size_type size() const
Definition: bqueue.h:146
void push(const TrajectoryMeasurement &tm)
const DetLayer* TempTrajectory::lastLayer ( ) const
inline
const TrajectoryMeasurement& TempTrajectory::lastMeasurement ( ) const
inline
bool TempTrajectory::lost ( const TransientTrackingRecHit hit)
static

Definition of what it means for a hit to be "lost". This definition is also used by the TrajectoryBuilder.

Definition at line 139 of file TempTrajectory.cc.

References TrackingRecHit::geographicalId(), TrackingRecHit::getType(), TrackingRecHit::isValid(), TrackingRecHit::missing, and DetId::rawId().

Referenced by join(), pop(), and pushAux().

140 {
141  if ( hit.isValid()) return false;
142  else {
143  // // A DetLayer is always inactive in this logic.
144  // // The DetLayer is the Det of an invalid RecHit only if no DetUnit
145  // // is compatible with the predicted state, so we don't really expect
146  // // a hit in this case.
147 
148  if(hit.geographicalId().rawId() == 0) {return false;}
149  else{
150  return hit.getType() == TrackingRecHit::missing;
151  }
152  }
153 }
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
Type getType() const
bool isValid() const
DetId geographicalId() const
int TempTrajectory::lostHits ( ) const
inline

Number of detector layers crossed without valid RecHits. Used mainly as a criteria for abandoning a trajectory candidate during trajectory building.

Definition at line 261 of file TempTrajectory.h.

References theNumberOfLostHits.

Referenced by BaseCkfTrajectoryBuilder::addToResult(), GroupedTrajCandLess::score(), BaseCkfTrajectoryBuilder::toBeContinued(), and HICTrajectoryBuilder::toBeContinued().

261 { return theNumberOfLostHits;}
signed short theNumberOfLostHits
const DataContainer& TempTrajectory::measurements ( ) const
inline
signed char TempTrajectory::nLoops ( ) const
inline

Definition at line 318 of file TempTrajectory.h.

References theNLoops.

Referenced by GroupedCkfTrajectoryBuilder::backwardFit().

318 {return theNLoops;}
signed char theNLoops
void TempTrajectory::pop ( )

Remove the last measurement from the trajectory.

Definition at line 27 of file TempTrajectory.cc.

References cmsutils::bqueue< T >::back(), empty(), lost(), cmsutils::bqueue< T >::pop_back(), TrajectoryMeasurement::recHit(), theData, theNumberOfFoundHits, and theNumberOfLostHits.

Referenced by BaseCkfTrajectoryBuilder::addToResult().

27  {
28  if (!empty()) {
29  if (theData.back().recHit()->isValid()) theNumberOfFoundHits--;
30  else if(lost(* (theData.back().recHit()) )) theNumberOfLostHits--;
31  theData.pop_back();
32  }
33 }
signed short theNumberOfFoundHits
bool empty() const
True if trajectory has no measurements.
ConstRecHitPointer recHit() const
static bool lost(const TransientTrackingRecHit &hit)
DataContainer theData
signed short theNumberOfLostHits
void pop_back()
Definition: bqueue.h:133
void TempTrajectory::popInvalidTail ( )

Pops out all the invalid hits on the tail.

void TempTrajectory::push ( const TrajectoryMeasurement tm)

Add a new measurement to a Trajectory. The Chi2 of the trajectory is incremented by the value of tm.estimate() .

Definition at line 35 of file TempTrajectory.cc.

References TrajectoryMeasurement::estimate().

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer(), HICTrajectoryBuilder::createStartingTrajectory(), join(), push(), TempTrajectory(), TrajectorySegmentBuilder::updateTrajectory(), CkfTrajectoryBuilder::updateTrajectory(), and HICTrajectoryBuilder::updateTrajectory().

35  {
36  push( tm, tm.estimate());
37 }
void push(const TrajectoryMeasurement &tm)
void TempTrajectory::push ( const TempTrajectory segment)

Add a new sets of measurements to a Trajectory The sorting of hits in the other trajectory must match the one inside this trajectory (that is, both along or both opposite to momentum)

Definition at line 80 of file TempTrajectory.cc.

References direction(), list(), measurements(), push(), cmsutils::bqueue< T >::rbegin(), cmsutils::bqueue< T >::rend(), and theDirection.

80  {
81  assert (segment.direction() == theDirection) ;
82  __gnu_cxx::slist<const TrajectoryMeasurement*> list;
83  for (DataContainer::const_iterator it = segment.measurements().rbegin(), ed = segment.measurements().rend(); it != ed; --it) {
84  list.push_front(&(*it));
85  }
86  for(__gnu_cxx::slist<const TrajectoryMeasurement*>::const_iterator it = list.begin(), ed = list.end(); it != ed; ++it) {
87  push(**it);
88  }
89 }
const_iterator rend() const
Definition: bqueue.h:145
const DataContainer & measurements() const
PropagationDirection theDirection
PropagationDirection direction() const
const _bqueue_itr< value_type > const_iterator
Definition: bqueue.h:89
iterator rbegin()
Definition: bqueue.h:143
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
void push(const TrajectoryMeasurement &tm)
void TempTrajectory::push ( const TrajectoryMeasurement tm,
double  chi2Increment 
)

same as the one-argument push, but the trajectory Chi2 is incremented by chi2Increment. Useful e.g. in trajectory smoothing.

Definition at line 45 of file TempTrajectory.cc.

References cmsutils::bqueue< T >::push_back(), pushAux(), and theData.

45  {
46  pushAux(tm,chi2Increment);
47  theData.push_back(tm);
48 }
DataContainer theData
void pushAux(const TrajectoryMeasurement &tm, double chi2Increment)
void push_back(const T &val)
Definition: bqueue.h:122
void TempTrajectory::pushAux ( const TrajectoryMeasurement tm,
double  chi2Increment 
)
private

Definition at line 57 of file TempTrajectory.cc.

References alongMomentum, cmsutils::bqueue< T >::back(), cmsutils::bqueue< T >::front(), TrajectoryStateOnSurface::globalPosition(), lost(), oppositeToMomentum, PV3DBase< T, PVType, FrameType >::perp(), TrajectoryMeasurement::recHit(), cmsutils::bqueue< T >::size(), theChiSquared, theData, theDirection, theDirectionValidity, theNumberOfFoundHits, theNumberOfLostHits, and TrajectoryMeasurement::updatedState().

Referenced by push().

58 {
59  if ( tm.recHit()->isValid()) {
61  }
62  //else if (lost( tm.recHit()) && !inactive(tm.recHit().det())) theNumberOfLostHits++;
63  else if (lost( *(tm.recHit()) ) ) theNumberOfLostHits++;
64 
65 
66  theChiSquared += chi2Increment;
67 
68  // in case of a Trajectory constructed without direction,
69  // determine direction from the radii of the first two measurements
70 
71  if ( !theDirectionValidity && theData.size() >= 2) {
76  theDirectionValidity = true;
77  }
78 }
signed short theNumberOfFoundHits
T perp() const
Definition: PV3DBase.h:71
GlobalPoint globalPosition() const
ConstRecHitPointer recHit() const
PropagationDirection theDirection
static bool lost(const TransientTrackingRecHit &hit)
DataContainer theData
signed short theNumberOfLostHits
TrajectoryStateOnSurface updatedState() const
size_type size() const
Definition: bqueue.h:146
const TrajectorySeed& TempTrajectory::seed ( ) const
inline

Access to the seed used to reconstruct the Trajectory.

Definition at line 284 of file TempTrajectory.h.

References theSeed.

Referenced by GroupedCkfTrajectoryBuilder::backwardFit(), MuonCkfTrajectoryBuilder::findCompatibleMeasurements(), BaseCkfTrajectoryBuilder::findStateAndLayers(), and GroupedCkfTrajectoryBuilder::rebuildSeedingRegion().

284 { return *theSeed;}
boost::shared_ptr< const TrajectorySeed > theSeed
void TempTrajectory::setDPhiCacheForLoopersReconstruction ( float  dphi)
inline

method to set the delta phi angle betweem the directions of the two measurements on the last two layers crossed by the trajectory

Definition at line 315 of file TempTrajectory.h.

References theDPhiCache.

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer().

315 { theDPhiCache = dphi;}
void TempTrajectory::setNLoops ( signed char  value)
inline
Trajectory TempTrajectory::toTrajectory ( ) const

Convert to a standard Trajectory.

Definition at line 155 of file TempTrajectory.cc.

References Trajectory::push(), cmsutils::bqueue< T >::rbegin(), cmsutils::bqueue< T >::rend(), Trajectory::reserve(), Trajectory::setNLoops(), cmsutils::bqueue< T >::size(), theData, theDirection, theNLoops, and theSeed.

Referenced by BaseCkfTrajectoryBuilder::addToResult(), HICTrajectoryBuilder::addToResult(), CkfDebugTrajectoryBuilder::analyzeMeasurementsDebugger(), HICTrajectoryBuilder::findCompatibleMeasurements(), HICTrajectoryBuilder::qualityFilter(), and HICTrajectoryBuilder::updateTrajectory().

155  {
157  traj.setNLoops(theNLoops);
158 
159  traj.reserve(theData.size());
160  static std::vector<const TrajectoryMeasurement*> work;
161  work.resize(theData.size(), 0);
162  std::vector<const TrajectoryMeasurement*>::iterator workend = work.end(), itwork = workend;
163  for (TempTrajectory::DataContainer::const_iterator it = theData.rbegin(), ed = theData.rend(); it != ed; --it) {
164  --itwork; *itwork = (&(*it));
165  }
166  for (; itwork != workend; ++itwork) {
167  traj.push(**itwork);
168  }
169  return traj;
170 }
const_iterator rend() const
Definition: bqueue.h:145
PropagationDirection theDirection
DataContainer theData
boost::shared_ptr< const TrajectorySeed > theSeed
signed char theNLoops
iterator rbegin()
Definition: bqueue.h:143
size_type size() const
Definition: bqueue.h:146

Member Data Documentation

float TempTrajectory::theChiSquared
private

Definition at line 334 of file TempTrajectory.h.

Referenced by chiSquared(), join(), and pushAux().

DataContainer TempTrajectory::theData
private
PropagationDirection TempTrajectory::theDirection
private

Definition at line 339 of file TempTrajectory.h.

Referenced by direction(), join(), push(), pushAux(), and toTrajectory().

bool TempTrajectory::theDirectionValidity
private

Definition at line 340 of file TempTrajectory.h.

Referenced by direction(), join(), and pushAux().

float TempTrajectory::theDPhiCache
private
signed char TempTrajectory::theNLoops
private

Definition at line 344 of file TempTrajectory.h.

Referenced by incrementLoops(), isLooper(), nLoops(), setNLoops(), and toTrajectory().

signed short TempTrajectory::theNumberOfFoundHits
private

Definition at line 336 of file TempTrajectory.h.

Referenced by foundHits(), join(), pop(), and pushAux().

signed short TempTrajectory::theNumberOfLostHits
private

Definition at line 337 of file TempTrajectory.h.

Referenced by join(), lostHits(), pop(), and pushAux().

boost::shared_ptr<const TrajectorySeed> TempTrajectory::theSeed
private

Definition at line 331 of file TempTrajectory.h.

Referenced by seed(), and toTrajectory().

bool TempTrajectory::theValid
private

Definition at line 341 of file TempTrajectory.h.

Referenced by invalidate(), and isValid().