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 | 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

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
 
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...
 
 ~TempTrajectory ()
 destruct a TempTrajectory More...
 

Static Public Member Functions

static bool inactive ()
 

Private Member Functions

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

Static Private Member Functions

static bool lost (const TrackingRecHit &hit)
 

Private Attributes

StopReason stopReason_
 
float theCCCThreshold_
 
float theChiSquared
 
DataContainer theData
 
signed char theDirection
 
float theDPhiCache
 
unsigned char theNHseed
 
signed char theNLoops
 
signed short theNumberOfCCCBadHits_
 
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 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.

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

75  :
76  theChiSquared(0),
81  theValid(true),
82  theNHseed(nhseed),
83  theNLoops(0),
84  theDPhiCache(0),
87  {}
signed short theNumberOfFoundHits
signed short theNumberOfCCCBadHits_
StopReason stopReason_
signed short theNumberOfLostHits
signed char theNLoops
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 95 of file TempTrajectory.h.

95  :
102  theValid(rh.theValid),
103  theNHseed(rh.theNHseed),
104  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
unsigned char theNHseed
signed char theDirection
TempTrajectory::TempTrajectory ( Trajectory &&  traj)
explicit

construct TempTrajectory from standard Trajectory

Definition at line 11 of file TempTrajectory.cc.

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

11  :
12  theChiSquared(0),
16  theDirection(traj.direction()),
17  theValid(traj.isValid()),
18  theNHseed(traj.seedNHits()),
19  theNLoops(traj.nLoops()),
22  stopReason_(traj.stopReason()) {
23 
24  Trajectory::DataContainer::const_iterator begin=traj.measurements().begin();
25  Trajectory::DataContainer::const_iterator end=traj.measurements().end();
26 
27  for(Trajectory::DataContainer::const_iterator it=begin; it!=end; ++it){
28  push(std::move(*it));
29  }
30 
31 }
signed short theNumberOfFoundHits
float dPhiCacheForLoopersReconstruction() const
Definition: Trajectory.h:378
float cccThreshold() const
Definition: Trajectory.h:380
signed short theNumberOfCCCBadHits_
signed char nLoops() const
Definition: Trajectory.h:387
PropagationDirection const & direction() const
Definition: Trajectory.cc:125
DataContainer const & measurements() const
Definition: Trajectory.h:250
StopReason stopReason_
StopReason stopReason() const
Definition: Trajectory.h:393
signed short theNumberOfLostHits
const_iterator begin() const
Definition: bqueue.h:165
def move
Definition: eostools.py:510
#define end
Definition: vmac.h:37
bool isValid() const
Definition: Trajectory.h:324
unsigned int seedNHits() const
Definition: Trajectory.h:295
signed char theNLoops
#define begin
Definition: vmac.h:30
unsigned char theNHseed
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

bool TempTrajectory::badForCCC ( const TrajectoryMeasurement tm)
private

Definition at line 115 of file TempTrajectory.cc.

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

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

115  {
116  auto const * thit = dynamic_cast<const BaseTrackerRecHit*>( tm.recHit()->hit() );
117  if (!thit)
118  return false;
119  if (thit->isPixel())
120  return false;
121  if (!tm.updatedState().isValid())
122  return false;
123  return siStripClusterTools::chargePerCM(thit->rawId(),
124  thit->firstClusterRef().stripCluster(),
126 }
ConstRecHitPointer const & recHit() const
const LocalTrajectoryParameters & localParameters() const
float chargePerCM(DetId detid, Iter a, Iter b)
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 236 of file TempTrajectory.h.

References theNumberOfCCCBadHits_.

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

Definition at line 97 of file TempTrajectory.cc.

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

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

97  {
98  if ( theData.size() == 0)
99  throw cms::Exception("TrackingTools/PatternTools","Trajectory::check() - information requested from empty Trajectory");
100 }
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 245 of file TempTrajectory.h.

References theChiSquared.

Referenced by CkfTrajectoryBuilder::limitedCandidates().

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

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

Definition at line 93 of file TempTrajectory.cc.

References theDirection.

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

93  {
95 }
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 282 of file TempTrajectory.h.

References theDPhiCache.

282 { 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 mps_alisetup::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

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 224 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().

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

Definition of inactive Det from the Trajectory point of view.

Definition at line 264 of file TempTrajectory.h.

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

Definition at line 292 of file TempTrajectory.h.

References theNLoops.

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer().

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

Method to invalidate a trajectory. Useful during ambiguity resolution.

Definition at line 259 of file TempTrajectory.h.

References theValid.

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

Definition at line 288 of file TempTrajectory.h.

References theNLoops.

288 { 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 75 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, theNumberOfLostHits, and updateBadForCCC().

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer().

75  {
76  assert (segment.theDirection == theDirection) ;
77 
78  if (theCCCThreshold_ != segment.theCCCThreshold_)
80  if (segment.theData.shared()) {
81  push(segment);
82  segment.theData.clear(); // obey the contract, and increase the chances it will be not shared one day
83  } else {
84  theData.join(segment.theData);
88  theChiSquared += segment.theChiSquared;
89  }
90 }
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 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 102 of file TempTrajectory.cc.

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

Referenced by pop(), and pushAux().

103 {
104  if likely(hit.isValid()) return false;
105 
106  // // A DetLayer is always inactive in this logic.
107  // // The DetLayer is the Det of an invalid RecHit only if no DetUnit
108  // // is compatible with the predicted state, so we don't really expect
109  // // a hit in this case.
110 
111  if(hit.geographicalId().rawId() == 0) {return false;}
112  return hit.getType() == TrackingRecHit::missing;
113 }
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 230 of file TempTrajectory.h.

References theNumberOfLostHits.

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

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

Definition at line 289 of file TempTrajectory.h.

References theNLoops.

Referenced by GroupedCkfTrajectoryBuilder::backwardFit().

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

Definition at line 143 of file TempTrajectory.cc.

References theNumberOfCCCBadHits_, and updateBadForCCC().

143  {
144  updateBadForCCC(ccc_threshold);
145  return theNumberOfCCCBadHits_;
146 }
signed short theNumberOfCCCBadHits_
void updateBadForCCC(float ccc_threshold)
TempTrajectory& TempTrajectory::operator= ( TempTrajectory const &  rh)
default
TempTrajectory& TempTrajectory::operator= ( TempTrajectory &&  rh)
inline

Definition at line 109 of file TempTrajectory.h.

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

109  {
110  using std::swap;
111  swap(theData,rh.theData);
117  theValid=rh.theValid;
118  theNHseed=rh.theNHseed;
119  theNLoops=rh.theNLoops;
123  return *this;
124 
125  }
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
unsigned char theNHseed
signed char theDirection
void TempTrajectory::pop ( )

Remove the last measurement from the trajectory.

Definition at line 34 of file TempTrajectory.cc.

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

Referenced by BaseCkfTrajectoryBuilder::addToResult().

34  {
35  if (!empty()) {
36  if (theData.back().recHit()->isValid()) theNumberOfFoundHits--;
37  else if(lost(* (theData.back().recHit()) )) theNumberOfLostHits--;
39  theData.pop_back();
40  }
41 }
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
const T & back() const
Definition: bqueue.h:161
bool badForCCC(const TrajectoryMeasurement &tm)
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 assert(), i, measurements(), N, cmsutils::bqueue< T >::push_back(), cmsutils::bqueue< T >::size(), theCCCThreshold_, theChiSquared, theData, theDirection, theNumberOfCCCBadHits_, theNumberOfFoundHits, theNumberOfLostHits, and tmp.

58  {
59  assert (segment.theDirection == theDirection) ;
60  assert (segment.theCCCThreshold_ == theCCCThreshold_);
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  theNumberOfCCCBadHits_ += segment.theNumberOfCCCBadHits_;
72  theChiSquared += segment.theChiSquared;
73 }
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
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 eostools::move(), cmsutils::bqueue< T >::push_back(), pushAux(), and theData.

178  {
180  pushAux(chi2Increment);
181  }
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 45 of file TempTrajectory.cc.

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

Referenced by emplace(), and push().

45  {
46  const TrajectoryMeasurement& tm = theData.back();
47  if ( tm.recHit()->isValid()) {
49  }
50  //else if (lost( tm.recHit()) && !inactive(tm.recHit().det())) theNumberOfLostHits++;
51  else if (lost( *(tm.recHit()) ) ) theNumberOfLostHits++;
52  else if (badForCCC(tm)) theNumberOfCCCBadHits_++;
53 
54  theChiSquared += chi2Increment;
55 
56 }
signed short theNumberOfFoundHits
ConstRecHitPointer const & recHit() const
signed short theNumberOfCCCBadHits_
static bool lost(const TrackingRecHit &hit)
DataContainer theData
signed short theNumberOfLostHits
const T & back() const
Definition: bqueue.h:161
bool badForCCC(const TrajectoryMeasurement &tm)
unsigned int TempTrajectory::seedNHits ( ) const
inline

Definition at line 239 of file TempTrajectory.h.

References theNHseed.

239 { 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 286 of file TempTrajectory.h.

References theDPhiCache.

Referenced by GroupedCkfTrajectoryBuilder::advanceOneLayer().

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

Definition at line 294 of file TempTrajectory.h.

References stopReason_.

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

Convert to a standard Trajectory.

Definition at line 148 of file TempTrajectory.cc.

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

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

148  {
150  Trajectory traj(p);
151  traj.setNLoops(theNLoops);
152  traj.setStopReason(stopReason_);
153 
154  traj.reserve(theData.size());
156  int i=0;
157  for (DataContainer::const_iterator it = theData.rbegin(), ed = theData.rend(); it != ed; --it)
158  tmp[i++] = &(*it);
159  while(i!=0) traj.push(*tmp[--i]);
160  return traj;
161 }
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
void TempTrajectory::updateBadForCCC ( float  ccc_threshold)
private

Definition at line 128 of file TempTrajectory.cc.

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

Referenced by join(), and numberOfCCCBadHits().

128  {
129  // If the supplied threshold is the same as the currently cached
130  // one, then return the current number of bad hits for CCC,
131  // otherwise do a new full rescan.
132  if (ccc_threshold == theCCCThreshold_)
133  return;
134 
135  theCCCThreshold_ = ccc_threshold;
137  for (auto const & h : theData) {
138  if (badForCCC(h))
140  }
141 }
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_
private

Definition at line 331 of file TempTrajectory.h.

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

float TempTrajectory::theCCCThreshold_
private

Definition at line 330 of file TempTrajectory.h.

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

float TempTrajectory::theChiSquared
private

Definition at line 316 of file TempTrajectory.h.

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

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

Definition at line 323 of file TempTrajectory.h.

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

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

Definition at line 326 of file TempTrajectory.h.

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

signed char TempTrajectory::theNLoops
private

Definition at line 328 of file TempTrajectory.h.

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

signed short TempTrajectory::theNumberOfCCCBadHits_
private
signed short TempTrajectory::theNumberOfFoundHits
private

Definition at line 318 of file TempTrajectory.h.

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

signed short TempTrajectory::theNumberOfLostHits
private

Definition at line 319 of file TempTrajectory.h.

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

bool TempTrajectory::theValid
private

Definition at line 324 of file TempTrajectory.h.

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