test
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
TrackingRecHit::ConstRecHitContainer 
ConstRecHitContainer
 
typedef cmsutils::bqueue
< TrajectoryMeasurement
DataContainer
 
typedef ConstRecHitContainer RecHitContainer
 

Public Member Functions

int cccBadHits () const
 
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
 
int foundPixelHits () 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
 
int numberOfCCCBadHits (float ccc_threshold)
 
TempTrajectoryoperator= (TempTrajectory const &rh)=default
 
TempTrajectoryoperator= (TempTrajectory &&rh)
 
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)
 
unsigned int seedNHits () const
 
void setDPhiCacheForLoopersReconstruction (float dphi)
 
void setNLoops (signed char value)
 
void setStopReason (StopReason s)
 
StopReason stopReason () const
 
 TempTrajectory ()
 
 TempTrajectory (PropagationDirection dir, unsigned char nhseed)
 
 TempTrajectory (TempTrajectory const &rh)=default
 
 TempTrajectory (TempTrajectory &&rh)
 
 TempTrajectory (Trajectory &&traj)
 construct TempTrajectory from standard Trajectory More...
 
Trajectory toTrajectory () const
 Convert to a standard Trajectory. More...
 
int trailingFoundHits () const
 
 ~TempTrajectory ()
 destruct a TempTrajectory More...
 

Static Public Member Functions

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

Private Member Functions

bool badForCCC (const TrajectoryMeasurement &tm)
 
void check () const
 
void pushAux (double chi2Increment)
 
void updateBadForCCC (float ccc_threshold)
 

Private Attributes

StopReason stopReason_ =StopReason::UNINITIALIZED
 
float theCCCThreshold_ =std::numeric_limits<float>::max()
 
float theChiSquared =0
 
DataContainer theData
 
signed char theDirection =anyDirection
 
float theDPhiCache =0
 
unsigned char theNHseed =0
 
signed char theNLoops =0
 
signed short theNumberOfCCCBadHits_ =0
 
signed short theNumberOfFoundHits =0
 
signed short theNumberOfFoundPixelHits =0
 
signed short theNumberOfLostHits =0
 
signed short theNumberOfTrailingFoundHits =0
 
bool theValid =false
 

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 {}
TempTrajectory::TempTrajectory ( PropagationDirection  dir,
unsigned char  nhseed 
)
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 63 of file TempTrajectory.h.

63  :
65  theValid(true),
66  theNHseed(nhseed)
67  {}
unsigned char theNHseed
signed char theDirection
dbl *** dir
Definition: mlp_gen.cc:35
TempTrajectory::TempTrajectory ( TempTrajectory const &  rh)
default
TempTrajectory::TempTrajectory ( TempTrajectory &&  rh)
inline

Definition at line 75 of file TempTrajectory.h.

75  :
84  theValid(rh.theValid),
85  theNHseed(rh.theNHseed),
86  theNLoops(rh.theNLoops),
signed short theNumberOfFoundHits
signed short theNumberOfCCCBadHits_
DataContainer theData
StopReason stopReason_
signed short theNumberOfLostHits
def move
Definition: eostools.py:510
signed char theNLoops
signed short theNumberOfFoundPixelHits
signed short theNumberOfTrailingFoundHits
unsigned char theNHseed
signed char theDirection
TempTrajectory::TempTrajectory ( Trajectory &&  traj)
explicit

construct TempTrajectory from standard Trajectory

Definition at line 23 of file TempTrajectory.cc.

References eostools::move(), and push().

23  :
24  theChiSquared(0),
29  theDirection(traj.direction()),
30  theValid(traj.isValid()),
31  theNHseed(traj.seedNHits()),
32  theNLoops(traj.nLoops()),
35  stopReason_(traj.stopReason()) {
36 
37  for(auto & it : traj.measurements()){
38  push(std::move(it));
39  }
40 
41 }
signed short theNumberOfFoundHits
float dPhiCacheForLoopersReconstruction() const
Definition: Trajectory.h:338
float cccThreshold() const
Definition: Trajectory.h:340
signed short theNumberOfCCCBadHits_
signed char nLoops() const
Definition: Trajectory.h:347
PropagationDirection const & direction() const
Definition: Trajectory.cc:140
DataContainer const & measurements() const
Definition: Trajectory.h:196
StopReason stopReason_
StopReason stopReason() const
Definition: Trajectory.h:353
signed short theNumberOfLostHits
def move
Definition: eostools.py:510
bool isValid() const
Definition: Trajectory.h:279
unsigned int seedNHits() const
Definition: Trajectory.h:250
signed char theNLoops
signed short theNumberOfFoundPixelHits
unsigned char theNHseed
signed char theDirection
void push(const TrajectoryMeasurement &tm)
TempTrajectory::~TempTrajectory ( )
inline

destruct a TempTrajectory

Definition at line 117 of file TempTrajectory.h.

117 {}

Member Function Documentation

bool TempTrajectory::badForCCC ( const TrajectoryMeasurement tm)
private

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

Definition at line 135 of file TempTrajectory.cc.

References siStripClusterTools::chargePerCM(), trackerHitRTTI::isUndef(), TrajectoryStateOnSurface::isValid(), TrajectoryStateOnSurface::localParameters(), TrajectoryMeasurement::recHit(), theCCCThreshold_, and TrajectoryMeasurement::updatedState().

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

135  {
136  if (trackerHitRTTI::isUndef(*tm.recHit())) return false;
137  auto const * thit = static_cast<const BaseTrackerRecHit*>( tm.recHit()->hit() );
138  if (!thit)
139  return false;
140  if (thit->isPixel() || thit->isPhase2())
141  return false;
142  if (!tm.updatedState().isValid())
143  return false;
144  return siStripClusterTools::chargePerCM(thit->rawId(),
145  thit->firstClusterRef().stripCluster(),
147 }
ConstRecHitPointer const & recHit() const
const LocalTrajectoryParameters & localParameters() const
float chargePerCM(DetId detid, Iter a, Iter b)
bool isUndef(TrackingRecHit const &hit)
TrajectoryStateOnSurface const & updatedState() const
int TempTrajectory::cccBadHits ( ) const
inline

Number of hits that are not compatible with the CCC used during patter recognition. Used mainly as a criteria for abandoning a trajectory candidate during trajectory building.

Definition at line 228 of file TempTrajectory.h.

References theNumberOfCCCBadHits_.

228 { return theNumberOfCCCBadHits_;}
signed short theNumberOfCCCBadHits_
void TempTrajectory::check ( void  ) const
private

Definition at line 117 of file TempTrajectory.cc.

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

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

117  {
118  if ( theData.size() == 0)
119  throw cms::Exception("TrackingTools/PatternTools","Trajectory::check() - information requested from empty Trajectory");
120 }
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 237 of file TempTrajectory.h.

References theChiSquared.

Referenced by CkfTrajectoryBuilder::limitedCandidates().

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

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

Definition at line 113 of file TempTrajectory.cc.

References theDirection.

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

113  {
115 }
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 274 of file TempTrajectory.h.

References theDPhiCache.

274 { 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 169 of file TempTrajectory.h.

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

169  { // works only because the first Arg is never a double!
170  theData.emplace_back(std::forward<Args>(args)...);
171  pushAux(chi2Increment);
172  }
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 194 of file TempTrajectory.h.

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

194  {
195  check(); return theData.front();
196  }
const T & front() const
Definition: bqueue.h:159
DataContainer theData
void check() const
int TempTrajectory::foundHits ( ) const
inline

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

References theNumberOfFoundHits.

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

208 { return theNumberOfFoundHits;}
signed short theNumberOfFoundHits
int TempTrajectory::foundPixelHits ( ) const
inline

Number of valid pixel RecHits used to determine the trajectory.

Definition at line 212 of file TempTrajectory.h.

References theNumberOfFoundPixelHits.

212 { return theNumberOfFoundPixelHits;}
signed short theNumberOfFoundPixelHits
static bool TempTrajectory::inactive ( )
inlinestatic

Definition of inactive Det from the Trajectory point of view.

Definition at line 256 of file TempTrajectory.h.

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

Definition at line 284 of file TempTrajectory.h.

References theNLoops.

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer().

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

Method to invalidate a trajectory. Useful during ambiguity resolution.

Definition at line 251 of file TempTrajectory.h.

References theValid.

Referenced by FastTrajectoryCleaner::clean().

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

Definition at line 280 of file TempTrajectory.h.

References theNLoops.

280 { 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 93 of file TempTrajectory.cc.

References assert(), cmsutils::bqueue< T >::clear(), cmsutils::bqueue< T >::join(), push(), cmsutils::bqueue< T >::shared(), theCCCThreshold_, theChiSquared, theData, theDirection, theNumberOfCCCBadHits_, theNumberOfFoundHits, theNumberOfFoundPixelHits, theNumberOfLostHits, theNumberOfTrailingFoundHits, and updateBadForCCC().

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer().

93  {
94  assert (segment.theDirection == theDirection) ;
95 
96  if (theCCCThreshold_ != segment.theCCCThreshold_)
98  if (segment.theData.shared()) {
99  push(segment);
100  segment.theData.clear(); // obey the contract, and increase the chances it will be not shared one day
101  } else {
102  theData.join(segment.theData);
107  theNumberOfTrailingFoundHits=countTrailingValidHits(theData);
108  theChiSquared += segment.theChiSquared;
109  }
110 }
signed short theNumberOfFoundHits
signed short theNumberOfCCCBadHits_
assert(m_qm.get())
DataContainer theData
bool shared()
Definition: bqueue.h:176
signed short theNumberOfLostHits
void updateBadForCCC(float ccc_threshold)
void clear()
Definition: bqueue.h:201
signed short theNumberOfFoundPixelHits
signed short theNumberOfTrailingFoundHits
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)
static

Definition at line 122 of file TempTrajectory.cc.

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

Referenced by pop(), and pushAux().

123 {
124  if likely(hit.isValid()) return false;
125 
126  // // A DetLayer is always inactive in this logic.
127  // // The DetLayer is the Det of an invalid RecHit only if no DetUnit
128  // // is compatible with the predicted state, so we don't really expect
129  // // a hit in this case.
130 
131  if(hit.geographicalId().rawId() == 0) {return false;}
132  return hit.getType() == TrackingRecHit::missing;
133 }
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
#define likely(x)
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 218 of file TempTrajectory.h.

References theNumberOfLostHits.

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

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

Definition at line 281 of file TempTrajectory.h.

References theNLoops.

Referenced by GroupedCkfTrajectoryBuilder::backwardFit().

281 {return theNLoops;}
signed char theNLoops
int TempTrajectory::numberOfCCCBadHits ( float  ccc_threshold)

Definition at line 164 of file TempTrajectory.cc.

References theNumberOfCCCBadHits_, and updateBadForCCC().

164  {
165  updateBadForCCC(ccc_threshold);
166  return theNumberOfCCCBadHits_;
167 }
signed short theNumberOfCCCBadHits_
void updateBadForCCC(float ccc_threshold)
TempTrajectory& TempTrajectory::operator= ( TempTrajectory const &  rh)
default
TempTrajectory& TempTrajectory::operator= ( TempTrajectory &&  rh)
inline

Definition at line 91 of file TempTrajectory.h.

References stopReason_, swap(), std::swap(), theCCCThreshold_, theChiSquared, theData, theDirection, theDPhiCache, theNHseed, theNLoops, theNumberOfCCCBadHits_, theNumberOfFoundHits, theNumberOfFoundPixelHits, theNumberOfLostHits, theNumberOfTrailingFoundHits, and theValid.

91  {
92  using std::swap;
93  swap(theData,rh.theData);
101  theValid=rh.theValid;
102  theNHseed=rh.theNHseed;
103  theNLoops=rh.theNLoops;
107  return *this;
108 
109  }
signed short theNumberOfFoundHits
void swap(ora::Record &rh, ora::Record &lh)
Definition: Record.h:70
signed short theNumberOfCCCBadHits_
DataContainer theData
StopReason stopReason_
signed short theNumberOfLostHits
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
signed char theNLoops
signed short theNumberOfFoundPixelHits
signed short theNumberOfTrailingFoundHits
unsigned char theNHseed
signed char theDirection
void TempTrajectory::pop ( )

Remove the last measurement from the trajectory.

Definition at line 44 of file TempTrajectory.cc.

References cmsutils::bqueue< T >::back(), badForCCC(), empty(), lost(), Trajectory::pixel(), cmsutils::bqueue< T >::pop_back(), TrajectoryMeasurement::recHit(), theData, theNumberOfCCCBadHits_, theNumberOfFoundHits, theNumberOfFoundPixelHits, theNumberOfLostHits, and theNumberOfTrailingFoundHits.

Referenced by BaseCkfTrajectoryBuilder::addToResult().

44  {
45  if (!empty()) {
46  if (theData.back().recHit()->isValid()) {
50  }
51  else if(lost(* (theData.back().recHit()) )) {theNumberOfLostHits--;}
52  theData.pop_back();
53  theNumberOfTrailingFoundHits=countTrailingValidHits(theData);
54  }
55 }
signed short theNumberOfFoundHits
ConstRecHitPointer const & recHit() const
bool empty() const
True if trajectory has no measurements.
signed short theNumberOfCCCBadHits_
static bool lost(const TrackingRecHit &hit)
DataContainer theData
signed short theNumberOfLostHits
static bool pixel(const TrackingRecHit &hit)
Definition: Trajectory.cc:177
const T & back() const
Definition: bqueue.h:161
signed short theNumberOfFoundPixelHits
bool badForCCC(const TrajectoryMeasurement &tm)
void pop_back()
Definition: bqueue.h:151
signed short theNumberOfTrailingFoundHits
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 123 of file TempTrajectory.h.

References TrajectoryMeasurement::estimate().

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

123  {
124  push( tm, tm.estimate());
125  }
void push(const TrajectoryMeasurement &tm)
void TempTrajectory::push ( TrajectoryMeasurement &&  tm)
inline

Definition at line 127 of file TempTrajectory.h.

References push().

127  {
128  push( std::forward<TrajectoryMeasurement>(tm), tm.estimate());
129  }
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 74 of file TempTrajectory.cc.

References assert(), i, measurements(), N, cmsutils::bqueue< T >::push_back(), cmsutils::bqueue< T >::size(), theCCCThreshold_, theChiSquared, theData, theDirection, theNumberOfCCCBadHits_, theNumberOfFoundHits, theNumberOfFoundPixelHits, theNumberOfLostHits, theNumberOfTrailingFoundHits, and tmp.

74  {
75  assert (segment.theDirection == theDirection) ;
76  assert (segment.theCCCThreshold_ == theCCCThreshold_);
77 
78  const int N = segment.measurements().size();
79  TrajectoryMeasurement const * tmp[N];
80  int i=0;
81  //for (DataContainer::const_iterator it = segment.measurements().rbegin(), ed = segment.measurements().rend(); it != ed; --it)
82  for ( auto const & tm : segment.measurements())
83  tmp[i++] =&tm;
84  while(i!=0) theData.push_back(*tmp[--i]);
85  theNumberOfFoundHits+= segment.theNumberOfFoundHits;
86  theNumberOfFoundPixelHits+= segment.theNumberOfFoundPixelHits;
87  theNumberOfLostHits += segment.theNumberOfLostHits;
88  theNumberOfCCCBadHits_ += segment.theNumberOfCCCBadHits_;
89  theNumberOfTrailingFoundHits=countTrailingValidHits(theData);
90  theChiSquared += segment.theChiSquared;
91 }
signed short theNumberOfFoundHits
int i
Definition: DBlmapReader.cc:9
signed short theNumberOfCCCBadHits_
assert(m_qm.get())
DataContainer theData
signed short theNumberOfLostHits
#define N
Definition: blowfish.cc:9
signed short theNumberOfFoundPixelHits
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
signed short theNumberOfTrailingFoundHits
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 157 of file TempTrajectory.h.

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

157  {
158  theData.push_back(tm);
159  pushAux(chi2Increment);
160  }
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 162 of file TempTrajectory.h.

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

162  {
164  pushAux(chi2Increment);
165  }
DataContainer theData
def move
Definition: eostools.py:510
void push_back(const T &val)
Definition: bqueue.h:133
void pushAux(double chi2Increment)
void TempTrajectory::pushAux ( double  chi2Increment)
private

Definition at line 59 of file TempTrajectory.cc.

References cmsutils::bqueue< T >::back(), badForCCC(), lost(), Trajectory::pixel(), TrajectoryMeasurement::recHit(), theChiSquared, theData, theNumberOfCCCBadHits_, theNumberOfFoundHits, theNumberOfFoundPixelHits, theNumberOfLostHits, and theNumberOfTrailingFoundHits.

Referenced by emplace(), and push().

59  {
60  const TrajectoryMeasurement& tm = theData.back();
61  if ( tm.recHit()->isValid()) {
66  }
67  //else if (lost( tm.recHit()) && !inactive(tm.recHit().det())) theNumberOfLostHits++;
68  else if (lost( *(tm.recHit()) ) ) { theNumberOfLostHits++; theNumberOfTrailingFoundHits=0;}
69 
70  theChiSquared += chi2Increment;
71 
72 }
signed short theNumberOfFoundHits
ConstRecHitPointer const & recHit() const
signed short theNumberOfCCCBadHits_
static bool lost(const TrackingRecHit &hit)
DataContainer theData
signed short theNumberOfLostHits
static bool pixel(const TrackingRecHit &hit)
Definition: Trajectory.cc:177
const T & back() const
Definition: bqueue.h:161
signed short theNumberOfFoundPixelHits
bool badForCCC(const TrajectoryMeasurement &tm)
signed short theNumberOfTrailingFoundHits
unsigned int TempTrajectory::seedNHits ( ) const
inline

Definition at line 231 of file TempTrajectory.h.

References theNHseed.

231 { return theNHseed;}
unsigned char theNHseed
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 278 of file TempTrajectory.h.

References theDPhiCache.

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer().

278 { theDPhiCache = dphi;}
void TempTrajectory::setNLoops ( signed char  value)
inline
void TempTrajectory::setStopReason ( StopReason  s)
inline
StopReason TempTrajectory::stopReason ( ) const
inline

Definition at line 286 of file TempTrajectory.h.

References stopReason_.

286 {return stopReason_;}
StopReason stopReason_
Trajectory TempTrajectory::toTrajectory ( ) const

Convert to a standard Trajectory.

Definition at line 169 of file TempTrajectory.cc.

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

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

169  {
171  Trajectory traj(p);
172  traj.setNLoops(theNLoops);
173  traj.setStopReason(stopReason_);
174  traj.numberOfCCCBadHits(theCCCThreshold_);
175 
176  traj.reserve(theData.size());
178  int i=0;
179  for (DataContainer::const_iterator it = theData.rbegin(), ed = theData.rend(); it != ed; --it)
180  tmp[i++] = &(*it);
181  while(i!=0) traj.push(*tmp[--i]);
182  return traj;
183 }
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
StopReason stopReason_
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
int TempTrajectory::trailingFoundHits ( ) const
inline

Number of valid RecHits at the end of the trajectory after last lost hit.

Definition at line 222 of file TempTrajectory.h.

References theNumberOfTrailingFoundHits.

signed short theNumberOfTrailingFoundHits
void TempTrajectory::updateBadForCCC ( float  ccc_threshold)
private

Definition at line 149 of file TempTrajectory.cc.

References badForCCC(), h, theCCCThreshold_, theData, and theNumberOfCCCBadHits_.

Referenced by join(), and numberOfCCCBadHits().

149  {
150  // If the supplied threshold is the same as the currently cached
151  // one, then return the current number of bad hits for CCC,
152  // otherwise do a new full rescan.
153  if (ccc_threshold == theCCCThreshold_)
154  return;
155 
156  theCCCThreshold_ = ccc_threshold;
158  for (auto const & h : theData) {
159  if (badForCCC(h))
161  }
162 }
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
signed short theNumberOfCCCBadHits_
DataContainer theData
bool badForCCC(const TrajectoryMeasurement &tm)

Member Data Documentation

StopReason TempTrajectory::stopReason_ =StopReason::UNINITIALIZED
private

Definition at line 325 of file TempTrajectory.h.

Referenced by operator=(), setStopReason(), stopReason(), and toTrajectory().

float TempTrajectory::theCCCThreshold_ =std::numeric_limits<float>::max()
private

Definition at line 324 of file TempTrajectory.h.

Referenced by badForCCC(), join(), operator=(), push(), toTrajectory(), and updateBadForCCC().

float TempTrajectory::theChiSquared =0
private

Definition at line 308 of file TempTrajectory.h.

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

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

Definition at line 317 of file TempTrajectory.h.

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

float TempTrajectory::theDPhiCache =0
private
unsigned char TempTrajectory::theNHseed =0
private

Definition at line 320 of file TempTrajectory.h.

Referenced by operator=(), and seedNHits().

signed char TempTrajectory::theNLoops =0
private

Definition at line 322 of file TempTrajectory.h.

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

signed short TempTrajectory::theNumberOfCCCBadHits_ =0
private
signed short TempTrajectory::theNumberOfFoundHits =0
private

Definition at line 310 of file TempTrajectory.h.

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

signed short TempTrajectory::theNumberOfFoundPixelHits =0
private

Definition at line 311 of file TempTrajectory.h.

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

signed short TempTrajectory::theNumberOfLostHits =0
private

Definition at line 312 of file TempTrajectory.h.

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

signed short TempTrajectory::theNumberOfTrailingFoundHits =0
private

Definition at line 313 of file TempTrajectory.h.

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

bool TempTrajectory::theValid =false
private

Definition at line 318 of file TempTrajectory.h.

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