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

#include <TempTrajectory.h>

Public Types

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

Public Member Functions

float chiSquared () const
 Value of the raw Chi2 of the trajectory, not normalised to the N.D.F. More...
 
PropagationDirection direction () const
 
float dPhiCacheForLoopersReconstruction () const
 
template<typename... Args>
void emplace (Args &&...args)
 
template<typename... Args>
void emplace (double chi2Increment, Args &&...args)
 
bool empty () const
 True if trajectory has no measurements. More...
 
const TrajectoryMeasurementfirstMeasurement () const
 
int foundHits () const
 
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
 
TempTrajectoryoperator= (TempTrajectory const &rh)
 
TempTrajectoryoperator= (TempTrajectory &&rh) noexcept
 
void pop ()
 
void popInvalidTail ()
 Pops out all the invalid hits on the tail. More...
 
void push (const TrajectoryMeasurement &tm)
 
void push (TrajectoryMeasurement &&tm)
 
void push (TempTrajectory const &segment)
 
void push (const TrajectoryMeasurement &tm, double chi2Increment)
 
void push (TrajectoryMeasurement &&tm, double chi2Increment)
 
void setDPhiCacheForLoopersReconstruction (float dphi)
 
void setNLoops (signed char value)
 
 TempTrajectory ()
 
 TempTrajectory (PropagationDirection dir)
 
 TempTrajectory (TempTrajectory const &rh)
 
 TempTrajectory (TempTrajectory &&rh) noexcept
 
 TempTrajectory (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 ()
 

Private Member Functions

void check () const
 
void pushAux (double chi2Increment)
 

Static Private Member Functions

static bool lost (const TrackingRecHit &hit) dso_internal
 

Private Attributes

float theChiSquared
 
DataContainer theData
 
signed char theDirection
 
bool theDirectionValidity
 
float theDPhiCache
 
signed char theNLoops
 
signed short theNumberOfFoundHits
 
signed short theNumberOfLostHits
 
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 39 of file TempTrajectory.h.

Member Typedef Documentation

Definition at line 44 of file TempTrajectory.h.

Definition at line 43 of file TempTrajectory.h.

Definition at line 45 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 53 of file TempTrajectory.h.

53  :
54  theChiSquared(0),
57  theValid(false),theNLoops(0),theDPhiCache(0)
58  {}
signed short theNumberOfFoundHits
signed short theNumberOfLostHits
signed char theNLoops
signed char theDirection
TempTrajectory::TempTrajectory ( PropagationDirection  dir)
inlineexplicit

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 66 of file TempTrajectory.h.

66  :
67  theChiSquared(0),
70  theValid(true),theNLoops(0),theDPhiCache(0)
71  {}
signed short theNumberOfFoundHits
signed short theNumberOfLostHits
signed char theNLoops
signed char theDirection
dbl *** dir
Definition: mlp_gen.cc:35
TempTrajectory::TempTrajectory ( TempTrajectory const &  rh)
inline

Definition at line 75 of file TempTrajectory.h.

75  :
76  theData(rh.theData),
77  theChiSquared(rh.theChiSquared),
78  theNumberOfFoundHits(rh.theNumberOfFoundHits), theNumberOfLostHits(rh.theNumberOfLostHits),
79  theDirection(rh.theDirection), theDirectionValidity(rh.theDirectionValidity),theValid(rh.theValid)
80  ,theNLoops(rh.theNLoops)
81  ,theDPhiCache(rh.theDPhiCache)
82  {}
signed short theNumberOfFoundHits
DataContainer theData
signed short theNumberOfLostHits
signed char theNLoops
signed char theDirection
TempTrajectory::TempTrajectory ( TempTrajectory &&  rh)
inlinenoexcept

Definition at line 103 of file TempTrajectory.h.

TempTrajectory::TempTrajectory ( Trajectory &&  traj)
explicit

construct TempTrajectory from standard Trajectory

Definition at line 6 of file TempTrajectory.cc.

References begin, end, and push().

6  :
7  theChiSquared(0),
10  theValid(traj.isValid()),
11  theNLoops(traj.nLoops()),
13 
14  Trajectory::DataContainer::const_iterator begin=traj.measurements().begin();
15  Trajectory::DataContainer::const_iterator end=traj.measurements().end();
16 
17  for(Trajectory::DataContainer::const_iterator it=begin; it!=end; ++it){
18  push(std::move(*it));
19  }
20 
21 }
signed short theNumberOfFoundHits
float dPhiCacheForLoopersReconstruction() const
Definition: Trajectory.h:323
signed char nLoops() const
Definition: Trajectory.h:330
PropagationDirection const & direction() const
Definition: Trajectory.cc:118
DataContainer const & measurements() const
Definition: Trajectory.h:203
signed short theNumberOfLostHits
const_iterator begin() const
Definition: bqueue.h:165
#define end
Definition: vmac.h:37
bool isValid() const
Definition: Trajectory.h:269
signed char theNLoops
#define begin
Definition: vmac.h:30
signed char theDirection
const_iterator end() const
Definition: bqueue.h:166
void push(const TrajectoryMeasurement &tm)
TempTrajectory::~TempTrajectory ( )
inline

destruct a TempTrajectory

Definition at line 133 of file TempTrajectory.h.

133 {}

Member Function Documentation

void TempTrajectory::check ( void  ) const
private

Definition at line 95 of file TempTrajectory.cc.

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

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

95  {
96  if ( theData.size() == 0)
97  throw cms::Exception("TrackingTools/PatternTools","Trajectory::check() - information requested from empty Trajectory");
98 }
DataContainer theData
size_type size() const
Definition: bqueue.h:167
float TempTrajectory::chiSquared ( ) const
inline

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

Definition at line 236 of file TempTrajectory.h.

References theChiSquared.

Referenced by CkfTrajectoryBuilder::limitedCandidates(), and GroupedTrajCandLess::score().

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

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

Definition at line 90 of file TempTrajectory.cc.

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

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

90  {
92  else throw cms::Exception("TrackingTools/PatternTools","Trajectory::direction() requested but not set");
93 }
PropagationDirection
signed char 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 273 of file TempTrajectory.h.

References theDPhiCache.

Referenced by GroupedTrajCandLess::score().

273 { return theDPhiCache;}
template<typename... Args>
void TempTrajectory::emplace ( Args &&...  args)
inline
template<typename... Args>
void TempTrajectory::emplace ( double  chi2Increment,
Args &&...  args 
)
inline

Definition at line 185 of file TempTrajectory.h.

References ExtractAppInfoFromXML::args, cmsutils::bqueue< T >::emplace_back(), pushAux(), and theData.

185  { // works only because the first Arg is never a double!
186  theData.emplace_back(std::forward<Args>(args)...);
187  pushAux(chi2Increment);
188  }
void emplace_back(Args &&...args)
Definition: bqueue.h:146
DataContainer theData
void pushAux(double chi2Increment)
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 210 of file TempTrajectory.h.

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

210  {
211  check(); return theData.front();
212  }
const T & front() const
Definition: bqueue.h:159
DataContainer theData
void check() const
int TempTrajectory::foundHits ( ) const
inline
static bool TempTrajectory::inactive ( )
inlinestatic

Definition of inactive Det from the Trajectory point of view.

Definition at line 255 of file TempTrajectory.h.

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

Definition at line 283 of file TempTrajectory.h.

References theNLoops.

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer().

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

Method to invalidate a trajectory. Useful during ambiguity resolution.

Definition at line 250 of file TempTrajectory.h.

References theValid.

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

Definition at line 279 of file TempTrajectory.h.

References theNLoops.

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

Returns true if the Trajectory is valid. Trajectories are invalidated e.g. during ambiguity resolution.

Definition at line 247 of file TempTrajectory.h.

References theValid.

Referenced by IntermediateTrajectoryCleaner::clean(), GroupedCkfTrajectoryBuilder::groupedIntermediaryClean(), ChargeSignificanceTrajectoryFilter::qualityFilter(), and GroupedCkfTrajectoryBuilder::rebuildSeedingRegion().

247 { return theValid;}
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 74 of file TempTrajectory.cc.

References cmsutils::bqueue< T >::clear(), cmsutils::bqueue< T >::join(), push(), cmsutils::bqueue< T >::shared(), theChiSquared, theData, theDirection, theDirectionValidity, theNumberOfFoundHits, and theNumberOfLostHits.

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer().

74  {
75  assert (segment.theDirection == theDirection) ;
76  assert(theDirectionValidity);
77 
78  if (segment.theData.shared()) {
79  push(segment);
80  segment.theData.clear(); // obey the contract, and increase the chances it will be not shared one day
81  } else {
82  theData.join(segment.theData);
85  theChiSquared += segment.theChiSquared;
86  }
87 }
signed short theNumberOfFoundHits
DataContainer theData
bool shared()
Definition: bqueue.h:176
signed short theNumberOfLostHits
void clear()
Definition: bqueue.h:201
signed char theDirection
void join(bqueue< T > &other)
Definition: bqueue.h:186
void push(const TrajectoryMeasurement &tm)
const DetLayer* TempTrajectory::lastLayer ( ) const
inline
const TrajectoryMeasurement& TempTrajectory::lastMeasurement ( ) const
inline
bool TempTrajectory::lost ( const TrackingRecHit hit)
staticprivate

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

Definition at line 100 of file TempTrajectory.cc.

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

Referenced by pop(), and pushAux().

101 {
102  if likely(hit.isValid()) return false;
103 
104  // // A DetLayer is always inactive in this logic.
105  // // The DetLayer is the Det of an invalid RecHit only if no DetUnit
106  // // is compatible with the predicted state, so we don't really expect
107  // // a hit in this case.
108 
109  if(hit.geographicalId().rawId() == 0) {return false;}
110  return hit.getType() == TrackingRecHit::missing;
111 }
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
Type getType() const
bool isValid() const
#define likely(x)
Definition: Likely.h:20
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 230 of file TempTrajectory.h.

References theNumberOfLostHits.

Referenced by BaseCkfTrajectoryBuilder::addToResult(), GroupedCkfTrajectoryBuilder::advanceOneLayer(), CkfTrajectoryBuilder::limitedCandidates(), GroupedTrajCandLess::score(), and BaseCkfTrajectoryBuilder::toBeContinued().

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

Definition at line 280 of file TempTrajectory.h.

References theNLoops.

Referenced by GroupedCkfTrajectoryBuilder::backwardFit().

280 {return theNLoops;}
signed char theNLoops
TempTrajectory& TempTrajectory::operator= ( TempTrajectory const &  rh)
inline

Definition at line 85 of file TempTrajectory.h.

References swap(), std::swap(), theChiSquared, theData, theDirection, theDirectionValidity, theDPhiCache, theNLoops, theNumberOfFoundHits, theNumberOfLostHits, and theValid.

85  {
86  DataContainer aData(rh.theData);
87  using std::swap;
88  swap(theData,aData);
89  theChiSquared=rh.theChiSquared;
90  theNumberOfFoundHits=rh.theNumberOfFoundHits;
91  theNumberOfLostHits=rh.theNumberOfLostHits;
92  theDirection=rh.theDirection;
93  theDirectionValidity=rh.theDirectionValidity;
94  theValid=rh.theValid;
95  theNLoops=rh.theNLoops;
96  theDPhiCache=rh.theDPhiCache;
97 
98  return *this;
99 
100  }
signed short theNumberOfFoundHits
void swap(ora::Record &rh, ora::Record &lh)
Definition: Record.h:70
DataContainer theData
signed short theNumberOfLostHits
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
signed char theNLoops
cmsutils::bqueue< TrajectoryMeasurement > DataContainer
signed char theDirection
TempTrajectory& TempTrajectory::operator= ( TempTrajectory &&  rh)
inlinenoexcept

Definition at line 112 of file TempTrajectory.h.

References swap(), std::swap(), theChiSquared, theData, theDirection, theDirectionValidity, theDPhiCache, theNLoops, theNumberOfFoundHits, theNumberOfLostHits, and theValid.

112  {
113  using std::swap;
114  swap(theData,rh.theData);
120  theValid=rh.theValid;
121  theNLoops=rh.theNLoops;
123  return *this;
124 
125  }
signed short theNumberOfFoundHits
void swap(ora::Record &rh, ora::Record &lh)
Definition: Record.h:70
DataContainer theData
signed short theNumberOfLostHits
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
signed char theNLoops
signed char theDirection
void TempTrajectory::pop ( )

Remove the last measurement from the trajectory.

Definition at line 25 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().

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

Pops out all the invalid hits on the tail.

void TempTrajectory::push ( const TrajectoryMeasurement tm)
inline

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

Definition at line 139 of file TempTrajectory.h.

References TrajectoryMeasurement::estimate().

Referenced by join(), push(), GroupedCkfTrajectoryBuilder::rebuildSeedingRegion(), and TempTrajectory().

139  {
140  push( tm, tm.estimate());
141  }
void push(const TrajectoryMeasurement &tm)
void TempTrajectory::push ( TrajectoryMeasurement &&  tm)
inline

Definition at line 143 of file TempTrajectory.h.

References push().

143  {
144  push( std::forward<TrajectoryMeasurement>(tm), tm.estimate());
145  }
void push(const TrajectoryMeasurement &tm)
void TempTrajectory::push ( TempTrajectory const &  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) (the input segment will be reset to an empty one)

Definition at line 58 of file TempTrajectory.cc.

References i, measurements(), N, cmsutils::bqueue< T >::push_back(), cmsutils::bqueue< T >::size(), theChiSquared, theData, theDirection, theDirectionValidity, theNumberOfFoundHits, theNumberOfLostHits, and tmp.

58  {
59  assert (segment.theDirection == theDirection) ;
60  assert(theDirectionValidity); // given the above...
61 
62  const int N = segment.measurements().size();
63  TrajectoryMeasurement const * tmp[N];
64  int i=0;
65  //for (DataContainer::const_iterator it = segment.measurements().rbegin(), ed = segment.measurements().rend(); it != ed; --it)
66  for ( auto const & tm : segment.measurements())
67  tmp[i++] =&tm;
68  while(i!=0) theData.push_back(*tmp[--i]);
69  theNumberOfFoundHits+= segment.theNumberOfFoundHits;
70  theNumberOfLostHits += segment.theNumberOfLostHits;
71  theChiSquared += segment.theChiSquared;
72 }
signed short theNumberOfFoundHits
int i
Definition: DBlmapReader.cc:9
DataContainer theData
signed short theNumberOfLostHits
#define N
Definition: blowfish.cc:9
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
signed char theDirection
void push_back(const T &val)
Definition: bqueue.h:133
void TempTrajectory::push ( const TrajectoryMeasurement tm,
double  chi2Increment 
)
inline

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

Definition at line 173 of file TempTrajectory.h.

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

173  {
174  theData.push_back(tm);
175  pushAux(chi2Increment);
176  }
DataContainer theData
void push_back(const T &val)
Definition: bqueue.h:133
void pushAux(double chi2Increment)
void TempTrajectory::push ( TrajectoryMeasurement &&  tm,
double  chi2Increment 
)
inline

Definition at line 178 of file TempTrajectory.h.

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

178  {
179  theData.push_back(std::move(tm));
180  pushAux(chi2Increment);
181  }
DataContainer theData
void push_back(const T &val)
Definition: bqueue.h:133
void pushAux(double chi2Increment)
void TempTrajectory::pushAux ( double  chi2Increment)
private

Definition at line 35 of file TempTrajectory.cc.

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

Referenced by emplace(), and push().

35  {
36  const TrajectoryMeasurement& tm = theData.back();
37  if ( tm.recHit()->isValid()) {
39  }
40  //else if (lost( tm.recHit()) && !inactive(tm.recHit().det())) theNumberOfLostHits++;
41  else if (lost( *(tm.recHit()) ) ) theNumberOfLostHits++;
42 
43 
44  theChiSquared += chi2Increment;
45 
46  // in case of a Trajectory constructed without direction,
47  // determine direction from the radii of the first two measurements
48 
49  if ( !theDirectionValidity && theData.size() >= 2) {
54  theDirectionValidity = true;
55  }
56 }
signed short theNumberOfFoundHits
ConstRecHitPointer const & recHit() const
GlobalPoint globalPosition() const
T perp2() const
Definition: PV3DBase.h:71
const T & front() const
Definition: bqueue.h:159
DataContainer theData
signed short theNumberOfLostHits
const T & back() const
Definition: bqueue.h:161
static bool lost(const TrackingRecHit &hit) dso_internal
signed char theDirection
TrajectoryStateOnSurface const & updatedState() const
size_type size() const
Definition: bqueue.h:167
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 277 of file TempTrajectory.h.

References theDPhiCache.

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer().

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

Convert to a standard Trajectory.

Definition at line 113 of file TempTrajectory.cc.

References i, AlCaHLTBitMon_ParallelJobs::p, Trajectory::push(), cmsutils::bqueue< T >::rbegin(), cmsutils::bqueue< T >::rend(), Trajectory::reserve(), Trajectory::setNLoops(), cmsutils::bqueue< T >::size(), theData, theDirection, theDirectionValidity, theNLoops, and tmp.

Referenced by BaseCkfTrajectoryBuilder::addToResult(), and CkfDebugTrajectoryBuilder::analyzeMeasurementsDebugger().

113  {
114  assert(theDirectionValidity);
116  Trajectory traj(p);
117  traj.setNLoops(theNLoops);
118 
119  traj.reserve(theData.size());
121  int i=0;
122  for (DataContainer::const_iterator it = theData.rbegin(), ed = theData.rend(); it != ed; --it)
123  tmp[i++] = &(*it);
124  while(i!=0) traj.push(*tmp[--i]);
125  return traj;
126 }
const_iterator rend() const
Definition: bqueue.h:164
int i
Definition: DBlmapReader.cc:9
_bqueue_itr< value_type > const_iterator
Definition: bqueue.h:101
PropagationDirection
DataContainer theData
const_iterator rbegin() const
Definition: bqueue.h:163
signed char theNLoops
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
signed char theDirection
size_type size() const
Definition: bqueue.h:167

Member Data Documentation

float TempTrajectory::theChiSquared
private

Definition at line 299 of file TempTrajectory.h.

Referenced by chiSquared(), join(), operator=(), push(), and pushAux().

DataContainer TempTrajectory::theData
private
signed char TempTrajectory::theDirection
private

Definition at line 305 of file TempTrajectory.h.

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

bool TempTrajectory::theDirectionValidity
private

Definition at line 306 of file TempTrajectory.h.

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

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

Definition at line 309 of file TempTrajectory.h.

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

signed short TempTrajectory::theNumberOfFoundHits
private

Definition at line 301 of file TempTrajectory.h.

Referenced by foundHits(), join(), operator=(), pop(), push(), and pushAux().

signed short TempTrajectory::theNumberOfLostHits
private

Definition at line 302 of file TempTrajectory.h.

Referenced by join(), lostHits(), operator=(), pop(), push(), and pushAux().

bool TempTrajectory::theValid
private

Definition at line 307 of file TempTrajectory.h.

Referenced by invalidate(), isValid(), and operator=().