CMS 3D CMS Logo

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

#include <KFTrajectoryFitter.h>

Inheritance diagram for KFTrajectoryFitter:
TrajectoryFitter

Public Member Functions

virtual std::unique_ptr
< TrajectoryFitter
clone () const override
 
const MeasurementEstimatorestimator () const
 
Trajectory fitOne (const Trajectory &aTraj, fitType) const
 
Trajectory fitOne (const TrajectorySeed &aSeed, const RecHitContainer &hits, fitType) const
 
Trajectory fitOne (const TrajectorySeed &aSeed, const RecHitContainer &hits, const TSOS &firstPredTsos, fitType) const
 
 KFTrajectoryFitter (const Propagator &aPropagator, const TrajectoryStateUpdator &aUpdator, const MeasurementEstimator &aEstimator, int minHits=3, const DetLayerGeometry *detLayerGeometry=0, TkCloner const *hc=0)
 
 KFTrajectoryFitter (const Propagator *aPropagator, const TrajectoryStateUpdator *aUpdator, const MeasurementEstimator *aEstimator, int minHits=3, const DetLayerGeometry *detLayerGeometry=0, TkCloner const *hc=0)
 
const Propagatorpropagator () const
 
virtual void setHitCloner (TkCloner const *hc)
 
const TrajectoryStateUpdatorupdator () const
 
 ~KFTrajectoryFitter ()
 
- Public Member Functions inherited from TrajectoryFitter
std::vector< Trajectoryfit (const Trajectory &traj, fitType type=standard) const
 
std::vector< Trajectoryfit (const TrajectorySeed &seed, const RecHitContainer &hits, fitType type=standard) const
 
std::vector< Trajectoryfit (const TrajectorySeed &seed, const RecHitContainer &hits, const TrajectoryStateOnSurface &tsos, fitType type=standard) const
 
virtual ~TrajectoryFitter ()
 

Private Types

typedef FreeTrajectoryState FTS
 
typedef TrajectoryMeasurement TM
 
typedef TrajectoryStateOnSurface TSOS
 

Private Member Functions

 KFTrajectoryFitter (KFTrajectoryFitter const &)
 

Private Attributes

int minHits_
 
bool owner
 
const MeasurementEstimatortheEstimator
 
const DetLayerGeometrytheGeometry
 
TkCloner const * theHitCloner = 0
 
const PropagatorthePropagator
 
const TrajectoryStateUpdatortheUpdator
 

Static Private Attributes

static const DetLayerGeometry dummyGeometry
 

Additional Inherited Members

- Public Types inherited from TrajectoryFitter
enum  fitType { standard =0, looper =1 }
 
typedef Trajectory::RecHitContainer RecHitContainer
 
typedef TrajectoryFitterRecord Record
 

Detailed Description

A Kalman track fit that splits matched RecHits into individual components before fitting them. Ported from ORCA

Author
todorov, cerati

A Standard Kalman fit. Ported from ORCA

Author
todorov, cerati

Definition at line 22 of file KFTrajectoryFitter.h.

Member Typedef Documentation

Definition at line 27 of file KFTrajectoryFitter.h.

Definition at line 28 of file KFTrajectoryFitter.h.

Definition at line 26 of file KFTrajectoryFitter.h.

Constructor & Destructor Documentation

KFTrajectoryFitter::KFTrajectoryFitter ( const Propagator aPropagator,
const TrajectoryStateUpdator aUpdator,
const MeasurementEstimator aEstimator,
int  minHits = 3,
const DetLayerGeometry detLayerGeometry = 0,
TkCloner const *  hc = 0 
)
inline

Definition at line 34 of file KFTrajectoryFitter.h.

References dummyGeometry, and theGeometry.

Referenced by clone().

39  :
40  thePropagator(aPropagator.clone()),
41  theUpdator(aUpdator.clone()),
42  theEstimator(aEstimator.clone()),
44  theGeometry(detLayerGeometry),
46  owner(true){
48  // FIXME. Why this first constructor is needed? who is using it? Can it be removed?
49  // it is uses in many many places
50  }
virtual TrajectoryStateUpdator * clone() const =0
virtual Propagator * clone() const =0
const MeasurementEstimator * theEstimator
const TrajectoryStateUpdator * theUpdator
static const DetLayerGeometry dummyGeometry
virtual MeasurementEstimator * clone() const =0
const DetLayerGeometry * theGeometry
const Propagator * thePropagator
susybsm::HSCParticleCollection hc
Definition: classes.h:25
TkCloner const * theHitCloner
KFTrajectoryFitter::KFTrajectoryFitter ( const Propagator aPropagator,
const TrajectoryStateUpdator aUpdator,
const MeasurementEstimator aEstimator,
int  minHits = 3,
const DetLayerGeometry detLayerGeometry = 0,
TkCloner const *  hc = 0 
)
inline

Definition at line 53 of file KFTrajectoryFitter.h.

References dummyGeometry, and theGeometry.

58  :
59  thePropagator(aPropagator),
60  theUpdator(aUpdator),
61  theEstimator(aEstimator),
63  theGeometry(detLayerGeometry),
65  owner(false){
67  }
const MeasurementEstimator * theEstimator
const TrajectoryStateUpdator * theUpdator
static const DetLayerGeometry dummyGeometry
const DetLayerGeometry * theGeometry
const Propagator * thePropagator
susybsm::HSCParticleCollection hc
Definition: classes.h:25
TkCloner const * theHitCloner
KFTrajectoryFitter::~KFTrajectoryFitter ( )
inline

Definition at line 69 of file KFTrajectoryFitter.h.

References owner, theEstimator, thePropagator, and theUpdator.

69  {
70  if (owner) {
71  delete thePropagator;
72  delete theUpdator;
73  delete theEstimator;
74  }
75  }
const MeasurementEstimator * theEstimator
const TrajectoryStateUpdator * theUpdator
const Propagator * thePropagator
KFTrajectoryFitter::KFTrajectoryFitter ( KFTrajectoryFitter const &  )
private

Member Function Documentation

virtual std::unique_ptr<TrajectoryFitter> KFTrajectoryFitter::clone ( void  ) const
inlineoverridevirtual

Implements TrajectoryFitter.

Definition at line 89 of file KFTrajectoryFitter.h.

References KFTrajectoryFitter(), minHits_, owner, theEstimator, theGeometry, theHitCloner, thePropagator, and theUpdator.

90  {
91  return owner ?
92  std::unique_ptr<TrajectoryFitter>(new KFTrajectoryFitter(*thePropagator,
93  *theUpdator,
94  *theEstimator,
96  std::unique_ptr<TrajectoryFitter>(new KFTrajectoryFitter(thePropagator,
97  theUpdator,
99  minHits_,
101  }
const MeasurementEstimator * theEstimator
const TrajectoryStateUpdator * theUpdator
const DetLayerGeometry * theGeometry
KFTrajectoryFitter(const Propagator &aPropagator, const TrajectoryStateUpdator &aUpdator, const MeasurementEstimator &aEstimator, int minHits=3, const DetLayerGeometry *detLayerGeometry=0, TkCloner const *hc=0)
const Propagator * thePropagator
TkCloner const * theHitCloner
const MeasurementEstimator* KFTrajectoryFitter::estimator ( void  ) const
inline

Definition at line 87 of file KFTrajectoryFitter.h.

References theEstimator.

Referenced by KFSplittingFitter::clone(), and fitOne().

87 {return theEstimator;}
const MeasurementEstimator * theEstimator
Trajectory KFTrajectoryFitter::fitOne ( const Trajectory aTraj,
fitType  type 
) const
virtual

Implements TrajectoryFitter.

Definition at line 27 of file KFTrajectoryFitter.cc.

References Trajectory::empty(), Trajectory::firstMeasurement(), Trajectory::recHits(), Trajectory::seed(), and TrajectoryMeasurement::updatedState().

Referenced by KFSplittingFitter::fitOne().

27  {
28 
29  if(aTraj.empty()) return Trajectory();
30 
31  TM firstTM = aTraj.firstMeasurement();
32  TSOS firstTsos = TrajectoryStateWithArbitraryError()(firstTM.updatedState());
33 
34  return fitOne(aTraj.seed(), aTraj.recHits(), firstTsos,type);
35 }
bool empty() const
True if trajectory has no measurements.
Definition: Trajectory.h:299
type
Definition: HCALResponse.h:21
TrajectorySeed const & seed() const
Access to the seed used to reconstruct the Trajectory.
Definition: Trajectory.h:330
ConstRecHitContainer recHits() const
Definition: Trajectory.h:258
TrajectoryMeasurement TM
TrajectoryMeasurement const & firstMeasurement() const
Definition: Trajectory.h:241
Trajectory fitOne(const Trajectory &aTraj, fitType) const
Trajectory KFTrajectoryFitter::fitOne ( const TrajectorySeed aSeed,
const RecHitContainer hits,
fitType   
) const
virtual

Implements TrajectoryFitter.

Definition at line 37 of file KFTrajectoryFitter.cc.

References Exception.

38  {
39 
40  throw cms::Exception("TrackFitters",
41  "KFTrajectoryFitter::fit(TrajectorySeed, <TransientTrackingRecHit>) not implemented");
42 
43  return Trajectory();
44 }
Trajectory KFTrajectoryFitter::fitOne ( const TrajectorySeed aSeed,
const RecHitContainer hits,
const TSOS firstPredTsos,
fitType   
) const
virtual

Implements TrajectoryFitter.

Definition at line 46 of file KFTrajectoryFitter.cc.

References funct::abs(), anyDirection, assert(), TrackingRecHit::canImproveWithTrack(), MuonSubdetId::CSC, CSCDetId, DetId::det(), TrackingRecHit::dimension(), TrajectorySeed::direction(), PXFDetId::disk(), MuonSubdetId::DT, estimator(), MuonSubdetId::GEM, TrackingRecHit::geographicalId(), TrackingRecHit::globalPosition(), DetLayerGeometry::idToLayer(), edm::isNotFinite(), TrajectoryStateOnSurface::isValid(), TrackingRecHit::isValid(), j, PXBDetId::layer(), TOBDetId::layer(), TIBDetId::layer(), likely, TrajectoryStateOnSurface::localParameters(), TrajectoryStateOnSurface::localPosition(), TrackingRecHit::localPosition(), TrackingRecHit::localPositionError(), LogDebug, LogTrace, TkCloner::makeShared(), MuonSubdetId::ME0, minHits_, DetId::Muon, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, GloballyPositioned< T >::position(), LocalTrajectoryParameters::position(), LocalTrajectoryParameters::qbp(), DetId::rawId(), runTheMatrix::ret, GloballyPositioned< T >::rotation(), MuonSubdetId::RPC, RPCDetId, edm::second(), SetPropagationDirection(), DetId::subdetId(), TrackingRecHit::surface(), StripSubdetector::TEC, theGeometry, theHitCloner, thePropagator, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, DetId::Tracker, unlikely, TrajectoryStateUpdator::update(), updator(), TIDDetId::wheel(), TECDetId::wheel(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

49 {
50  if(hits.empty()) return Trajectory();
51 
52 
53  if unlikely(aSeed.direction() == anyDirection)
54  throw cms::Exception("KFTrajectoryFitter","TrajectorySeed::direction() requested but not set");
55 
56  std::unique_ptr<Propagator> p_cloned = SetPropagationDirection(*thePropagator,
57  aSeed.direction());
58 
59 #ifdef EDM_ML_DEBUG
60  LogDebug("TrackFitters")
61  <<" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
62  <<" KFTrajectoryFitter::fit starting with " << hits.size() <<" HITS";
63 
64  for (unsigned int j=0;j<hits.size();j++) {
65  if (hits[j]->det())
66  LogTrace("TrackFitters") << "hit #:" << j+1 << " rawId=" << hits[j]->det()->geographicalId().rawId()
67  << " validity=" << hits[j]->isValid();
68  else
69  LogTrace("TrackFitters") << "hit #:" << j+1 << " Hit with no Det information";
70  }
71  LogTrace("TrackFitters") << " INITIAL STATE "<< firstPredTsos;
72 #endif
73 
74  Trajectory ret(aSeed, p_cloned->propagationDirection());
75  Trajectory & myTraj = ret;
76  myTraj.reserve(hits.size());
77 
78  TSOS predTsos(firstPredTsos);
79  TSOS currTsos;
80 
81  int hitcounter = 1;
82  for(RecHitContainer::const_iterator ihit = hits.begin(); ihit != hits.end(); ++ihit, ++hitcounter) {
83 
84  const TransientTrackingRecHit & hit = (**ihit);
85 
86  // if unlikely(hit.det() == nullptr) continue;
87 
88  if unlikely( (!hit.isValid()) && hit.surface() == nullptr) {
89  LogDebug("TrackFitters")<< " Error: invalid hit with no GeomDet attached .... skipping";
90  continue;
91  }
92  // if (hit.det() && hit.geographicalId()<1000U) LogDebug("TrackFitters")<< "Problem 0 det id for " << typeid(hit).name() << ' ' << hit.det()->geographicalId() ;
93  // if (hit.isValid() && hit.geographicalId()<1000U) LogDebug("TrackFitters")<< "Problem 0 det id for " << typeid(hit).name() << ' ' << hit.det()->geographicalId();
94 
95 #ifdef EDM_ML_DEBUG
96  if (hit.isValid()) {
97  LogTrace("TrackFitters")<< " ----------------- HIT #" << hitcounter << " (VALID)-----------------------\n"
98  << " HIT IS AT R " << hit.globalPosition().perp() << "\n"
99  << " HIT IS AT Z " << hit.globalPosition().z() << "\n"
100  << " HIT IS AT Phi " << hit.globalPosition().phi() << "\n"
101  << " HIT IS AT Loc " << hit.localPosition() << "\n"
102  << " WITH LocError " << hit.localPositionError() << "\n"
103  << " HIT IS AT Glo " << hit.globalPosition() << "\n"
104  << "SURFACE POSITION" << "\n"
105  << hit.surface()->position()<<"\n"
106  << "SURFACE ROTATION" << "\n"
107  << hit.surface()->rotation()
108  << "dimension " << hit.dimension();
109 
110  DetId hitId = hit.geographicalId();
111 
112  LogDebug("TrackFitters") << " hit det=" << hitId.rawId();
113 
114  if(hitId.det() == DetId::Tracker) {
115  if (hitId.subdetId() == StripSubdetector::TIB )
116  LogDebug("TrackFitters") << " I am TIB " << TIBDetId(hitId).layer();
117  else if (hitId.subdetId() == StripSubdetector::TOB )
118  LogDebug("TrackFitters") << " I am TOB " << TOBDetId(hitId).layer();
119  else if (hitId.subdetId() == StripSubdetector::TEC )
120  LogDebug("TrackFitters") << " I am TEC " << TECDetId(hitId).wheel();
121  else if (hitId.subdetId() == StripSubdetector::TID )
122  LogDebug("TrackFitters") << " I am TID " << TIDDetId(hitId).wheel();
123  else if (hitId.subdetId() == (int) PixelSubdetector::PixelBarrel )
124  LogDebug("TrackFitters") << " I am PixBar " << PXBDetId(hitId).layer();
125  else if (hitId.subdetId() == (int) PixelSubdetector::PixelEndcap )
126  LogDebug("TrackFitters") << " I am PixFwd " << PXFDetId(hitId).disk();
127  else
128  LogDebug("TrackFitters") << " UNKNOWN TRACKER HIT TYPE ";
129  }
130  else if(hitId.det() == DetId::Muon) {
131  if(hitId.subdetId() == MuonSubdetId::DT)
132  LogDebug("TrackFitters") << " I am DT " << DTWireId(hitId);
133  else if (hitId.subdetId() == MuonSubdetId::CSC )
134  LogDebug("TrackFitters") << " I am CSC " << CSCDetId(hitId);
135  else if (hitId.subdetId() == MuonSubdetId::RPC )
136  LogDebug("TrackFitters") << " I am RPC " << RPCDetId(hitId);
137  else if (hitId.subdetId() == MuonSubdetId::GEM )
138  LogDebug("TrackFitters") << " I am GEM " << GEMDetId(hitId);
139 
140  else if (hitId.subdetId() == MuonSubdetId::ME0 )
141  LogDebug("TrackFitters") << " I am ME0 " << ME0DetId(hitId);
142  else
143  LogDebug("TrackFitters") << " UNKNOWN MUON HIT TYPE ";
144  }
145  else
146  LogDebug("TrackFitters") << " UNKNOWN HIT TYPE ";
147 
148  } else {
149  LogDebug("TrackFitters")
150  << " ----------------- INVALID HIT #" << hitcounter << " -----------------------";
151  }
152 #endif
153 
154  if ( hitcounter != 1) //no propagation needed for the first hit
155  predTsos = p_cloned->propagate( currTsos, *(hit.surface()) );
156 
157 
158  if unlikely(!predTsos.isValid()) {
159  LogDebug("TrackFitters")
160  << "SOMETHING WRONG !" << "\n"
161  << "KFTrajectoryFitter: predicted tsos not valid!\n"
162  << "current TSOS: " << currTsos << "\n";
163 
164  if(hit.surface()) LogTrace("TrackFitters") << "next Surface: " << hit.surface()->position() << "\n";
165 
166  if( myTraj.foundHits() >= minHits_ ) {
167  LogDebug("TrackFitters") << " breaking trajectory" << "\n";
168  break;
169  } else {
170  LogDebug("TrackFitters") << " killing trajectory" << "\n";
171  return Trajectory();
172  }
173  }
174 
175 
176  if likely(hit.isValid()) {
177  assert( (hit.geographicalId()!=0U) | !hit.canImproveWithTrack() ) ;
178  assert(hit.surface()!=nullptr);
179  //update
180  LogTrace("TrackFitters") << "THE HIT IS VALID: updating hit with predTsos";
181  assert( (!(*ihit)->canImproveWithTrack()) | (nullptr!=theHitCloner));
182  assert( (!(*ihit)->canImproveWithTrack()) | (nullptr!=dynamic_cast<BaseTrackerRecHit const*>((*ihit).get())));
183  auto preciseHit = theHitCloner->makeShared(*ihit,predTsos);
184  assert(preciseHit->isValid());
185  assert( (preciseHit->geographicalId()!=0U) | (!preciseHit->canImproveWithTrack()) );
186  assert(preciseHit->surface()!=nullptr);
187 
188  if unlikely(!preciseHit->isValid()){
189  LogTrace("TrackFitters") << "THE Precise HIT IS NOT VALID: using currTsos = predTsos" << "\n";
190  currTsos = predTsos;
191  myTraj.push(TM(predTsos, *ihit,0,theGeometry->idToLayer((*ihit)->geographicalId()) ));
192 
193  }else{
194  LogTrace("TrackFitters") << "THE Precise HIT IS VALID: updating currTsos" << "\n";
195  currTsos = updator()->update(predTsos, *preciseHit);
196  //check for valid hits with no det (refitter with constraints)
197  bool badState = (!currTsos.isValid())
198  || (hit.geographicalId().det() == DetId::Tracker
199  &&
200  (std::abs(currTsos.localParameters().qbp())>100
201  || std::abs(currTsos.localParameters().position().y()) > 1000
202  || std::abs(currTsos.localParameters().position().x()) > 1000
203  ) ) || edm::isNotFinite(currTsos.localParameters().qbp());
204  if unlikely(badState){
205  if (!currTsos.isValid()) {
206  edm::LogError("FailedUpdate") <<"updating with the hit failed. Not updating the trajectory with the hit";
207 
208  }
209  else if (edm::isNotFinite(currTsos.localParameters().qbp())) {
210  edm::LogError("TrajectoryNaN")<<"Trajectory has NaN";
211 
212  }
213  else{
214  LogTrace("FailedUpdate")<<"updated state is valid but pretty bad, skipping. currTsos " <<currTsos<<"\n predTsos "<<predTsos;
215  }
216  myTraj.push(TM(predTsos, *ihit,0,theGeometry->idToLayer((*ihit)->geographicalId()) ));
217  //There is a no-fail policy here. So, it's time to give up
218  //Keep the traj with invalid TSOS so that it's clear what happened
219  if( myTraj.foundHits() >= minHits_ ) {
220  LogDebug("TrackFitters") << " breaking trajectory" << "\n";
221  break;
222  } else {
223  LogDebug("TrackFitters") << " killing trajectory" << "\n";
224  return Trajectory();
225  }
226  } else{
227  if (preciseHit->det()){
228  myTraj.push(TM(predTsos, currTsos, preciseHit,
229  estimator()->estimate(predTsos, *preciseHit).second,
230  theGeometry->idToLayer(preciseHit->geographicalId()) ));
231  }
232  else{
233  myTraj.push(TM(predTsos, currTsos, preciseHit,
234  estimator()->estimate(predTsos, *preciseHit).second));
235  }
236  }
237  }
238  } else {
239  //no update
240  LogDebug("TrackFitters") << "THE HIT IS NOT VALID: using currTsos" << "\n";
241  currTsos = predTsos;
242  assert( ((*ihit)->det()==nullptr) || (*ihit)->geographicalId()!=0U);
243  if ((*ihit)->det()) myTraj.push(TM(predTsos, *ihit,0,theGeometry->idToLayer((*ihit)->geographicalId()) ));
244  else myTraj.push(TM(predTsos, *ihit,0));
245  }
246  LogTrace("TrackFitters")
247  << "predTsos !" << "\n"
248  << predTsos
249  <<" with local position " << predTsos.localPosition()
250  <<"currTsos !" << "\n"
251  << currTsos
252  <<" with local position " << currTsos.localPosition();
253  }
254 
255  LogDebug("TrackFitters") << "Found 1 trajectory with " << myTraj.foundHits() << " valid hits\n";
256 
257  return ret;
258 }
#define LogDebug(id)
PropagationDirection direction() const
virtual int dimension() const =0
tuple ret
prodAgent to be discontinued
virtual const Surface * surface() const
T perp() const
Definition: PV3DBase.h:72
unsigned int layer() const
layer id
Definition: TOBDetId.h:39
const LocalTrajectoryParameters & localParameters() const
const TrajectoryStateUpdator * updator() const
LocalPoint position() const
Local x and y position coordinates.
assert(m_qm.get())
static const int GEM
Definition: MuonSubdetId.h:15
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
const MeasurementEstimator * estimator() const
T y() const
Definition: PV3DBase.h:63
TrajectoryMeasurement TM
virtual GlobalPoint globalPosition() const
unsigned int layer() const
layer id
Definition: PXBDetId.h:35
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
#define unlikely(x)
U second(std::pair< T, U > const &p)
#define likely(x)
std::unique_ptr< Propagator > SetPropagationDirection(Propagator const &iprop, PropagationDirection dir)
static const int ME0
Definition: MuonSubdetId.h:16
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
static const int CSC
Definition: MuonSubdetId.h:13
bool isNotFinite(T x)
Definition: isFinite.h:10
T z() const
Definition: PV3DBase.h:64
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int j
Definition: DBlmapReader.cc:9
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
#define LogTrace(id)
unsigned int disk() const
disk id
Definition: PXFDetId.h:43
const DetLayerGeometry * theGeometry
Definition: DetId.h:18
virtual LocalError localPositionError() const =0
virtual bool canImproveWithTrack() const
bool isValid() const
TrackingRecHit *operator()[[cms TrackingRecHit::ConstRecHitPointer makeShared(TrackingRecHit::ConstRecHitPointer const &hit, TrajectoryStateOnSurface const &tsos) const
Definition: TkCloner.h:22
unsigned int wheel() const
wheel id
Definition: TECDetId.h:52
unsigned int layer() const
layer id
Definition: TIBDetId.h:41
static const int RPC
Definition: MuonSubdetId.h:14
const Propagator * thePropagator
const RotationType & rotation() const
static const int DT
Definition: MuonSubdetId.h:12
DetId geographicalId() const
virtual const DetLayer * idToLayer(const DetId &detId) const
Detector det() const
get the detector field from this detid
Definition: DetId.h:35
T x() const
Definition: PV3DBase.h:62
virtual LocalPoint localPosition() const =0
const PositionType & position() const
unsigned int wheel() const
wheel id
Definition: TIDDetId.h:50
TkCloner const * theHitCloner
const Propagator* KFTrajectoryFitter::propagator ( ) const
inline

Definition at line 85 of file KFTrajectoryFitter.h.

References thePropagator.

Referenced by KFSplittingFitter::clone().

85 {return thePropagator;}
const Propagator * thePropagator
virtual void KFTrajectoryFitter::setHitCloner ( TkCloner const *  hc)
inlinevirtual

Implements TrajectoryFitter.

Definition at line 104 of file KFTrajectoryFitter.h.

References AnalysisDataFormats_SUSYBSMObjects::hc, and theHitCloner.

Referenced by KFSplittingFitter::setHitCloner().

104 { theHitCloner = hc;}
susybsm::HSCParticleCollection hc
Definition: classes.h:25
TkCloner const * theHitCloner
const TrajectoryStateUpdator* KFTrajectoryFitter::updator ( ) const
inline

Definition at line 86 of file KFTrajectoryFitter.h.

References theUpdator.

Referenced by KFSplittingFitter::clone(), and fitOne().

86 {return theUpdator;}
const TrajectoryStateUpdator * theUpdator

Member Data Documentation

const DetLayerGeometry KFTrajectoryFitter::dummyGeometry
staticprivate

Definition at line 111 of file KFTrajectoryFitter.h.

Referenced by KFTrajectoryFitter().

int KFTrajectoryFitter::minHits_
private

Definition at line 117 of file KFTrajectoryFitter.h.

Referenced by clone(), and fitOne().

bool KFTrajectoryFitter::owner
private

Definition at line 118 of file KFTrajectoryFitter.h.

Referenced by clone(), and ~KFTrajectoryFitter().

const MeasurementEstimator* KFTrajectoryFitter::theEstimator
private

Definition at line 114 of file KFTrajectoryFitter.h.

Referenced by clone(), estimator(), and ~KFTrajectoryFitter().

const DetLayerGeometry* KFTrajectoryFitter::theGeometry
private

Definition at line 116 of file KFTrajectoryFitter.h.

Referenced by clone(), fitOne(), and KFTrajectoryFitter().

TkCloner const* KFTrajectoryFitter::theHitCloner = 0
private

Definition at line 115 of file KFTrajectoryFitter.h.

Referenced by clone(), fitOne(), and setHitCloner().

const Propagator* KFTrajectoryFitter::thePropagator
private

Definition at line 112 of file KFTrajectoryFitter.h.

Referenced by clone(), fitOne(), propagator(), and ~KFTrajectoryFitter().

const TrajectoryStateUpdator* KFTrajectoryFitter::theUpdator
private

Definition at line 113 of file KFTrajectoryFitter.h.

Referenced by clone(), updator(), and ~KFTrajectoryFitter().