ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Trk::VKalExtPropagator Class Reference

#include <VKalExtPropagator.h>

Inheritance diagram for Trk::VKalExtPropagator:
Collaboration diagram for Trk::VKalExtPropagator:

Public Member Functions

 VKalExtPropagator (TrkVKalVrtFitter *)
 
virtual ~VKalExtPropagator ()
 
virtual void Propagate (long int trkID, long int Charge, double *ParOld, double *CovOld, double *RefStart, double *RefEnd, double *ParNew, double *CovNew, IVKalState &istate) const override
 
virtual bool checkTarget (double *, const IVKalState &istate) const override
 
void setPropagator (const IExtrapolator *)
 
const TrackParametersmyExtrapWithMatUpdate (long int TrkID, const TrackParameters *inpPer, Amg::Vector3D *endPoint, const IVKalState &istate) const
 
const TrackParametersmyExtrapToLine (long int TrkID, const TrackParameters *inpPer, Amg::Vector3D *endPoint, StraightLineSurface &lineTarget, const IVKalState &istate) const
 
const NeutralParametersmyExtrapNeutral (const NeutralParameters *inpPer, Amg::Vector3D *endPoint) const
 
const PerigeemyxAODFstPntOnTrk (const xAOD::TrackParticle *xprt) const
 

Private Member Functions

double Protection (const double *, const IVKalState &istate) const
 

Private Attributes

const IExtrapolatorm_extrapolator
 Pointer to Extrapolator AlgTool. More...
 
TrkVKalVrtFitterm_vkalFitSvc
 Pointer to TrkVKalVrtFitter. More...
 

Detailed Description

Definition at line 21 of file VKalExtPropagator.h.

Constructor & Destructor Documentation

◆ VKalExtPropagator()

Trk::VKalExtPropagator::VKalExtPropagator ( TrkVKalVrtFitter pnt)

Definition at line 33 of file VKalExtPropagator.cxx.

34  {
35  m_extrapolator = nullptr;
36  m_vkalFitSvc = pnt;
37  }

◆ ~VKalExtPropagator()

Trk::VKalExtPropagator::~VKalExtPropagator ( )
virtualdefault

Member Function Documentation

◆ checkTarget()

bool Trk::VKalExtPropagator::checkTarget ( double *  RefEnd,
const IVKalState istate 
) const
overridevirtual

Implements Trk::basePropagator.

Definition at line 69 of file VKalExtPropagator.cxx.

71  {
72  //double targV[3]={ RefEnd[0], RefEnd[1], RefEnd[2]};
73  return Protection(RefEnd, istate) <= 1.;
74  }

◆ myExtrapNeutral()

const NeutralParameters * Trk::VKalExtPropagator::myExtrapNeutral ( const NeutralParameters inpPer,
Amg::Vector3D endPoint 
) const

Definition at line 420 of file VKalExtPropagator.cxx.

422  {
423  const Trk::NeutralParameters* endPer=nullptr;
424 //End surface
425  PerigeeSurface surfEnd( *endPoint );
426  endPer = m_extrapolator->extrapolate( *inpPer, surfEnd, anyDirection, true).release();
427  return endPer;
428  }

◆ myExtrapToLine()

const TrackParameters * Trk::VKalExtPropagator::myExtrapToLine ( long int  TrkID,
const TrackParameters inpPer,
Amg::Vector3D endPoint,
StraightLineSurface lineTarget,
const IVKalState istate 
) const

Definition at line 355 of file VKalExtPropagator.cxx.

360  {
361  const TrkVKalVrtFitter::State& state = static_cast<const TrkVKalVrtFitter::State&> (istate);
362  const EventContext& ctx = (state.m_eventContext)
363  ? *(state.m_eventContext)
364  : Gaudi::Hive::currentContext();
365 
366 
367  const Trk::TrackParameters* endPer=nullptr;
368  ParticleHypothesis prtType = muon;
369 //Initial point
370  Amg::Vector3D iniPoint = inpPer->position();
371  Amg::Vector3D step = (*endPoint) - iniPoint;
372 //
373  int Strategy = 0; if(TrkID>=0) Strategy = state.m_trkControl[TrkID].extrapolationType;
374 //
375 // Extrapolation for new track - no material at all
376 //
377  const TrackParameters *pntOnTrk=nullptr;
378  if(TrkID<0){
379  return endPer;
380  }
381  pntOnTrk=dynamic_cast<const TrackParameters*> (state.m_trkControl.at(TrkID).TrkPnt);
382  if(!pntOnTrk) return endPer;
383  //double inpMass=state.m_trkControl[TrkID].prtMass;
384  //if( inpMass > 0. && inpMass< 20.) { prtType=electron; } //VK Disabled according to users request
385  //else if(inpMass > 20. && inpMass<120.) { prtType=muon; } // May be activated in future
386  //else if(inpMass >120. && inpMass<200.) { prtType=pion; }
387  //else if(inpMass >200. && inpMass<700.) { prtType=kaon; }
388  //else if(inpMass >700. && inpMass<999.) { prtType=proton; }
389  //else { prtType=undefined; }
390  prtType=muon; // Muon hypothesis is always used for extrapolation
391  iniPoint = pntOnTrk->position();
392  step = (*endPoint) - iniPoint;
393 
394  Amg::Vector3D pmom=pntOnTrk->momentum();
395 //
396 // Extrapolation for first measured point strategy. Start from it and always add material
397 //
398  if( Strategy == 0) {
400  endPer = m_extrapolator->extrapolate(ctx, *pntOnTrk, lineTarget, dir, true, prtType, addNoise).release();
401  if (!endPer)
402  endPer = m_extrapolator->extrapolateDirectly(ctx, *pntOnTrk, lineTarget, dir, true, prtType).release();
403  return endPer;
404  }
405 //
406 // Extrapolation for any measured point
407 //
408  if( Strategy == 1 || Strategy == 2) {
410  if(pmom.dot(step)<0){ dir=oppositeMomentum; mmode=removeNoise;}
411  endPer = m_extrapolator->extrapolate(ctx, *pntOnTrk, lineTarget, dir, true, prtType, mmode).release();
412  return endPer;
413  }
414  return endPer;
415  }

◆ myExtrapWithMatUpdate()

const TrackParameters * Trk::VKalExtPropagator::myExtrapWithMatUpdate ( long int  TrkID,
const TrackParameters inpPer,
Amg::Vector3D endPoint,
const IVKalState istate 
) const

Definition at line 202 of file VKalExtPropagator.cxx.

206  {
207  const TrkVKalVrtFitter::State& state = static_cast<const TrkVKalVrtFitter::State&> (istate);
208  const EventContext& ctx = (state.m_eventContext)
209  ? *(state.m_eventContext)
210  : Gaudi::Hive::currentContext();
211 
212  const Trk::TrackParameters* endPer=nullptr;
213  const Trk::TrackParameters* tmpPer=nullptr;
214  ParticleHypothesis prtType = pion;
215  //End surface
216  PerigeeSurface surfEnd( *endPoint );
217  //Initial point (global frame)
218  Amg::Vector3D iniPoint = inpPer->position();
219  Amg::Vector3D pmom=inpPer->momentum();
220  //Track reference point ( some point on track provided initially, global frame )
221  Amg::Vector3D refPoint(0.,0.,0.);
222  if(TrkID>=0)refPoint = state.m_trkControl.at(TrkID).trkRefGlobPos;
223  //
224  Amg::Vector3D step = (*endPoint) - iniPoint;
225  //
226  int Strategy = 0; if(TrkID>=0) Strategy = state.m_trkControl[TrkID].extrapolationType;
227  //
228  // Extrapolation for new track - no material at all
229  //
230  const TrackParameters *pntOnTrk=nullptr;
231  if (TrkID < 0) {
232  prtType = undefined;
233  if (pmom.dot(step) > 0.) {
234  endPer = m_extrapolator->extrapolateDirectly(ctx,
235  *inpPer, surfEnd, alongMomentum, true, pion).release();
236  } else {
237  endPer = m_extrapolator->extrapolateDirectly(ctx,
238  *inpPer, surfEnd, oppositeMomentum, true, pion).release();
239  }
240  return endPer;
241  }
242  pntOnTrk = dynamic_cast<const TrackParameters*>(
243  state.m_trkControl.at(TrkID).TrkPnt);
244  if (pntOnTrk == nullptr){
245  return endPer;
246  }
247  prtType = pion; // Pion hypothesis is always used for extrapolation
248  // Redefinition of starting point for extrapolation
249  iniPoint = pntOnTrk->position();
250  step = (*endPoint) - iniPoint;
251 
252  //
253  // Extrapolation for first measured point strategy. Start from it and
254  // always add material
255  //
256  if( Strategy == 0) {
258  if (pmom.dot(step) < 0) {
260  }
261  endPer = m_extrapolator->extrapolate(
262  ctx, *pntOnTrk, surfEnd, dir, true, prtType, addNoise).release();
263  return endPer;
264  }
265  //
266  // Extrapolation for any measured point
267  //
268  if (Strategy == 1) {
271  if (pmom.dot(step) < 0) {
273  mmode = removeNoise;
274  }
275  endPer = m_extrapolator->extrapolate(
276  ctx, *pntOnTrk, surfEnd, dir, true, prtType, mmode).release();
277  return endPer;
278  }
279  //
280  // Extrapolation for perigee and B-hit
281  //
282  if (Strategy == 2) {
283  double Border = 25.;
284  bool dirPositive = true;
285  if (pmom.dot(step) < 0.)
286  dirPositive = false;
287  if ((*endPoint).perp() > Border && iniPoint.perp() > Border) {
288  if (dirPositive) {
289  endPer = m_extrapolator->extrapolate(
290  ctx, *pntOnTrk, surfEnd, alongMomentum, true, prtType, addNoise).release();
291  } else {
292  endPer = m_extrapolator->extrapolate(ctx,
293  *pntOnTrk,
294  surfEnd,
296  true,
297  prtType,
298  removeNoise).release();
299  }
300  return endPer;
301  }
302  if ((*endPoint).perp() < Border && iniPoint.perp() < Border) {
303  if (dirPositive) {
304  endPer = m_extrapolator->extrapolate(ctx,
305  *pntOnTrk,
306  surfEnd,
308  true,
309  prtType,
310  removeNoise).release();
311  } else {
312  endPer = m_extrapolator->extrapolate(ctx,
313  *pntOnTrk,
314  surfEnd,
316  true,
317  prtType,
318  addNoise).release();
319  }
320  return endPer;
321  }
322  Amg::Transform3D trnsf;
323  trnsf.setIdentity();
324  CylinderSurface surfBorder(trnsf, Border, 3000.);
325  if (iniPoint.perp() < Border) {
326  tmpPer = m_extrapolator->extrapolate(ctx,
327  *pntOnTrk,
328  surfBorder,
330  true,
331  prtType,
332  removeNoise).release();
333  if (tmpPer == nullptr) {
334  return nullptr;
335  }
336  endPer = m_extrapolator->extrapolate(
337  ctx, *tmpPer, surfEnd, alongMomentum, true, prtType, addNoise).release();
338  } else {
339  endPer = m_extrapolator->extrapolate(
340  ctx, *pntOnTrk, surfEnd, oppositeMomentum, true, prtType, addNoise).release();
341  return endPer;
342  }
343  delete tmpPer;
344  return endPer;
345  }
346  return endPer;
347  }

◆ myxAODFstPntOnTrk()

const Perigee * Trk::VKalExtPropagator::myxAODFstPntOnTrk ( const xAOD::TrackParticle xprt) const

Definition at line 437 of file VKalExtPropagator.cxx.

438  {
439  static const SG::ConstAccessor<float> radiusOfFirstHitAcc ("radiusOfFirstHit");
440  if(!radiusOfFirstHitAcc.isAvailable (*xprt)) return nullptr; // No radiusOfFirstHit on track
441 
442  const EventContext& ctx = Gaudi::Hive::currentContext();
443  const Trk::Perigee* mPer = &(xprt->perigeeParameters());
444  Amg::Transform3D trnsf;
445  trnsf.setIdentity();
446  CylinderSurface surfacePntOnTrk( trnsf, xprt->radiusOfFirstHit(), 20000.);
447  ParticleHypothesis prtType = pion;
448 
449  const TrackParameters *hitOnTrk =
451  *mPer,
452  surfacePntOnTrk,
454  true, prtType, removeNoise).release();
455 //std::cout<<" Radius="<<xprt->radiusOfFirstHit()<<" extrap="<<hitOnTrk<<'\n';
456  if(hitOnTrk==nullptr)hitOnTrk=m_extrapolator->extrapolateDirectly(ctx,
457  *mPer,
458  surfacePntOnTrk,
460  true, prtType).release();
461  if(hitOnTrk==nullptr)return nullptr;
462 
463  //convert result to Perigee
464  PerigeeSurface surfacePerigee( hitOnTrk->position() );
465  const TrackParameters *hitOnTrkPerig = m_extrapolator->extrapolate(ctx,
466  *hitOnTrk,
467  surfacePerigee).release();
468  delete hitOnTrk; // Delete temporary results
469  if(hitOnTrkPerig==nullptr)return nullptr;
470 //std::cout<<" perig="<<(*hitOnTrkPerig)<<'\n';
471  return dynamic_cast<const Perigee* > (hitOnTrkPerig);
472  }

◆ Propagate()

void Trk::VKalExtPropagator::Propagate ( long int  trkID,
long int  Charge,
double *  ParOld,
double *  CovOld,
double *  RefStart,
double *  RefEnd,
double *  ParNew,
double *  CovNew,
IVKalState istate 
) const
overridevirtual

Implements Trk::basePropagator.

Definition at line 86 of file VKalExtPropagator.cxx.

90  {
91  TrkVKalVrtFitter::State& state = static_cast<TrkVKalVrtFitter::State&> (istate);
92 
93  int trkID_loc=trkID; if(trkID_loc<0)trkID_loc=0;
94 //std::cout<<__func__<<" Ext.Propagator TrkID="<<trkID<<"to (local!!!)="<<RefEnd[0]<<", "<<RefEnd[1]<<", "<<RefEnd[2]<<'\n';
95 //-----------
96  double vX=RefEnd[0]; double vY=RefEnd[1]; double vZ=RefEnd[2]; //relative coords
97  // Propagation target in GLOBAL frame
98  Amg::Vector3D endPointG( vX + state.m_refFrameX, vY + state.m_refFrameY, vZ + state.m_refFrameZ);
99 //
100 // ---- Make MeasuredPerigee from input. Mag.field at start point is used here
101 //
102  std::vector<double> PerigeeIni( ParOld, ParOld+5 );
103  std::vector<double> CovPerigeeIni( 15, 0. );
104  if( CovOld != nullptr) {
105 // for(int i=0; i<15;i++) CovPerigeeIni.push_back( CovOld[i] );
106  std::copy(CovOld,CovOld+15,CovPerigeeIni.begin() );
107  }else{
108 // for(int i=0; i<15;i++) CovPerigeeIni.push_back(0.);
109  CovPerigeeIni[0]=1.e6;CovPerigeeIni[2]=1.e6;CovPerigeeIni[5]=1.;CovPerigeeIni[9]=1.;CovPerigeeIni[14]=fabs(PerigeeIni[4]);
110  }
111  //--- This creates Perigee in GLOBAL frame from input in realtive coordinates
112  const Perigee* inpPer =
113  m_vkalFitSvc->CreatePerigee( RefStart[0], RefStart[1], RefStart[2], PerigeeIni, CovPerigeeIni, state).release();
114  const TrackParameters * inpPar= inpPer;
115 //
116 // ----- Magnetic field is taken at target point (GLOBAL calculated from relative frame input)
117 //
118  double fx,fy,BMAG_FIXED;
119  state.m_fitField.getMagFld(vX,vY,vZ,fx,fy,BMAG_FIXED);
120 //
121 //-------------------- Extrapolation itself
122 //
123  const Trk::TrackParameters* endPer = nullptr;
124  if(trkID<0){
125  endPer = myExtrapWithMatUpdate( trkID, inpPar, &endPointG, state);
126  }else{
127  endPer = myExtrapWithMatUpdate( trkID, inpPar, &endPointG, state);
128  }
129 //-----------------------------------
130  if( endPer == nullptr ) { // No extrapolation done!!!
131  ParNew[0]=0.; ParNew[1]=0.;ParNew[2]=0.;ParNew[3]=0.;ParNew[4]=0.;
132  delete inpPer; return;
133  }
134  const Perigee* mPer = dynamic_cast<const Perigee*>(endPer);
135  const AtaStraightLine* Line = dynamic_cast<const AtaStraightLine*>(endPer);
136  AmgVector(5) VectPerig; VectPerig.setZero();
137  const AmgSymMatrix(5) *CovMtx=nullptr;
138  if( mPer ){
139  VectPerig = mPer->parameters();
140  CovMtx = mPer->covariance();
141  }
142  if( Line ){
143  VectPerig = Line->parameters();
144  CovMtx = Line->covariance();
145  }
146  if( (Line==nullptr && mPer==nullptr) || CovMtx==nullptr ){
147  ParNew[0]=0.; ParNew[1]=0.;ParNew[2]=0.;ParNew[3]=0.;ParNew[4]=0.;
148  delete inpPer; return;
149  }
150 
151  if((*CovMtx)(0,0)<=0. || (*CovMtx)(1,1)<=0.){ //protection against bad error matrix
152  ParNew[0]=0.; ParNew[1]=0.;ParNew[2]=0.;ParNew[3]=0.;ParNew[4]=0.;
153  delete inpPer; delete endPer;
154  return;
155  }
156  double CovVertTrk[15];
157  long int locCharge=Charge;
158  CovVertTrk[ 0] =(*CovMtx)(0,0);
159  CovVertTrk[ 1] =(*CovMtx)(1,0);
160  CovVertTrk[ 2] =(*CovMtx)(1,1);
161  CovVertTrk[ 3] =(*CovMtx)(2,0);
162  CovVertTrk[ 4] =(*CovMtx)(2,1);
163  CovVertTrk[ 5] =(*CovMtx)(2,2);
164  CovVertTrk[ 6] =(*CovMtx)(3,0);
165  CovVertTrk[ 7] =(*CovMtx)(3,1);
166  CovVertTrk[ 8] =(*CovMtx)(3,2);
167  CovVertTrk[ 9] =(*CovMtx)(3,3);
168  CovVertTrk[10] =(*CovMtx)(4,0);
169  CovVertTrk[11] =(*CovMtx)(4,1);
170  CovVertTrk[12] =(*CovMtx)(4,2);
171  CovVertTrk[13] =(*CovMtx)(4,3);
172  CovVertTrk[14] =(*CovMtx)(4,4);
173 //std::cout<<" extrapPoint="<<endPer->position().x()<<", "<<endPer->position().y()<<", "<<endPer->position().y()<<'\n';
174 //std::cout<<" extrapCov="<<(*CovMtx)(0,0)<<", "<<(*CovMtx)(1,1)<<", "<<(*CovMtx)(2,2)<<
175 // ", "<<(*CovMtx)(3,3)<<", "<<(*CovMtx)(4,4)<<'\n';
176 
177  if(CovNew != nullptr) {
178  m_vkalFitSvc->VKalTransform( BMAG_FIXED, VectPerig(0), VectPerig(1),
179  VectPerig(2), VectPerig(3), VectPerig(4), CovVertTrk,
180  locCharge, &ParNew[0] , &CovNew[0]);
181  }else{
182  double CovVertTrkTmp[15];
183  m_vkalFitSvc->VKalTransform( BMAG_FIXED, VectPerig(0), VectPerig(1),
184  VectPerig(2), VectPerig(3), VectPerig(4), CovVertTrk,
185  locCharge, &ParNew[0] , CovVertTrkTmp);
186  }
187  delete inpPer; delete endPer;
188  }

◆ Protection()

double Trk::VKalExtPropagator::Protection ( const double *  RefEnd,
const IVKalState istate 
) const
private

Definition at line 48 of file VKalExtPropagator.cxx.

50  {
51  const TrkVKalVrtFitter::State& state = static_cast<const TrkVKalVrtFitter::State&> (istate);
52 
53  double Xend=RefEnd[0] + state.m_refFrameX;
54  double Yend=RefEnd[1] + state.m_refFrameY;
55  double Zend=RefEnd[2] + state.m_refFrameZ;
56 
57  double sizeR = state.m_allowUltraDisplaced ? m_vkalFitSvc->m_MSsizeR : m_vkalFitSvc->m_IDsizeR;
58  double sizeZ = state.m_allowUltraDisplaced ? m_vkalFitSvc->m_MSsizeZ : m_vkalFitSvc->m_IDsizeZ;
59  double Rlim=std::hypot(Xend, Yend) / sizeR;
60  double Zlim=std::abs(Zend) / sizeZ;
61 
62  double Scale = Rlim; if(Zlim>Rlim) Scale=Zlim;
63 //std::cout<<"relative TARG="<<RefEnd[0]<<","<<RefEnd[1]<<","<<RefEnd[2]
64 //<<" global ref.="<<m_vkalFitSvc->state.m_refFrameX<<","<<m_vkalFitSvc->state.m_refFrameY<<","<<m_vkalFitSvc->state.m_refFrameZ
65 //<<" Limits="<<m_vkalFitSvc->m_IDsizeR<<","<<m_vkalFitSvc->m_IDsizeZ<<" scale="<<Scale<<'\n';
66  return Scale;
67  }

◆ setPropagator()

void Trk::VKalExtPropagator::setPropagator ( const IExtrapolator Pnt)

Definition at line 41 of file VKalExtPropagator.cxx.

42  {
43  m_extrapolator = Pnt;
44  }

Member Data Documentation

◆ m_extrapolator

const IExtrapolator* Trk::VKalExtPropagator::m_extrapolator
private

Pointer to Extrapolator AlgTool.

Definition at line 53 of file VKalExtPropagator.h.

◆ m_vkalFitSvc

TrkVKalVrtFitter* Trk::VKalExtPropagator::m_vkalFitSvc
private

Pointer to TrkVKalVrtFitter.

Definition at line 54 of file VKalExtPropagator.h.


The documentation for this class was generated from the following files:
Trk::anyDirection
@ anyDirection
Definition: PropDirection.h:22
Trk::TrkVKalVrtFitter::CreatePerigee
virtual std::unique_ptr< Trk::Perigee > CreatePerigee(const std::vector< double > &VKPerigee, const std::vector< double > &VKCov, IVKalState &istate) const override final
Definition: CvtPerigee.cxx:159
Trk::TrkVKalVrtFitter::VKalTransform
void VKalTransform(double MAG, double A0V, double ZV, double PhiV, double ThetaV, double PInv, const double[15], long int &Charge, double[5], double[15]) const
Definition: VKalTransform.cxx:59
Trk::oppositeMomentum
@ oppositeMomentum
Definition: PropDirection.h:21
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
Trig::MatchingStrategy::Strategy
Strategy
Definition: MatchingImplementation.h:26
Trk::TrkVKalVrtFitter::m_IDsizeR
Gaudi::Property< double > m_IDsizeR
Definition: TrkVKalVrtFitter.h:326
Trk::MaterialUpdateMode
MaterialUpdateMode
This is a steering enum to force the material update it can be: (1) addNoise (-1) removeNoise Second ...
Definition: MaterialUpdateMode.h:18
Trk::alongMomentum
@ alongMomentum
Definition: PropDirection.h:20
Trk::VKalExtPropagator::myExtrapWithMatUpdate
const TrackParameters * myExtrapWithMatUpdate(long int TrkID, const TrackParameters *inpPer, Amg::Vector3D *endPoint, const IVKalState &istate) const
Definition: VKalExtPropagator.cxx:202
Trk::TrkVKalVrtFitter::m_MSsizeZ
Gaudi::Property< double > m_MSsizeZ
Definition: TrkVKalVrtFitter.h:329
SG::ConstAccessor< float >
Trk::undefined
@ undefined
Definition: ParticleHypothesis.h:41
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
Trk::Perigee
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
Definition: Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:33
Trk::TrkVKalVrtFitter::m_MSsizeR
Gaudi::Property< double > m_MSsizeR
Definition: TrkVKalVrtFitter.h:328
Trk::IExtrapolator::extrapolateDirectly
virtual std::unique_ptr< TrackParameters > extrapolateDirectly(const EventContext &ctx, const TrackParameters &parm, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion) const =0
Extrapolate directly: Forwards directly the call to the configured "Global" propagator.
Trk::AtaStraightLine
ParametersT< TrackParametersDim, Charged, StraightLineSurface > AtaStraightLine
Definition: Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:35
Trk::AmgSymMatrix
AmgSymMatrix(5) &GXFTrackState
Definition: GXFTrackState.h:156
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:28
xAOD::TrackParticle_v1::perigeeParameters
const Trk::Perigee & perigeeParameters() const
Returns the Trk::MeasuredPerigee track parameters.
Definition: TrackParticle_v1.cxx:486
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
AmgVector
AmgVector(4) T2BSTrackFilterTool
Definition: T2BSTrackFilterTool.cxx:114
xAOD::TrackParticle_v1::radiusOfFirstHit
float radiusOfFirstHit() const
Returns the radius of the first hit.
MuonR4::State
CalibratedSpacePoint::State State
Definition: SpacePointCalibrator.cxx:33
Trk::pion
@ pion
Definition: ParticleHypothesis.h:32
Trk::IExtrapolator::extrapolate
virtual std::unique_ptr< NeutralParameters > extrapolate(const NeutralParameters &parameters, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true) const =0
Main extrapolation Interface starting from neutral parameters and aiming at surface.
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Trk::VKalExtPropagator::m_vkalFitSvc
TrkVKalVrtFitter * m_vkalFitSvc
Pointer to TrkVKalVrtFitter.
Definition: VKalExtPropagator.h:54
Trk::ParametersBase
Definition: ParametersBase.h:55
Scale
void Scale(TH1 *h, double d=1)
Definition: comparitor.cxx:79
Trk::muon
@ muon
Definition: ParticleHypothesis.h:31
beamspotman.dir
string dir
Definition: beamspotman.py:621
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition: Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::addNoise
@ addNoise
Definition: MaterialUpdateMode.h:19
Trk::VKalExtPropagator::Protection
double Protection(const double *, const IVKalState &istate) const
Definition: VKalExtPropagator.cxx:48
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:567
LArCellBinning.step
step
Definition: LArCellBinning.py:158
calibdata.copy
bool copy
Definition: calibdata.py:26
Trk::VKalExtPropagator::m_extrapolator
const IExtrapolator * m_extrapolator
Pointer to Extrapolator AlgTool.
Definition: VKalExtPropagator.h:53
Trk::SurfaceType::Line
@ Line
Trk::removeNoise
@ removeNoise
Definition: MaterialUpdateMode.h:20
Trk::TrkVKalVrtFitter::m_IDsizeZ
Gaudi::Property< double > m_IDsizeZ
Definition: TrkVKalVrtFitter.h:327