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 65 of file VKalExtPropagator.cxx.

67  {
68  //double targV[3]={ RefEnd[0], RefEnd[1], RefEnd[2]};
69  return Protection(RefEnd, istate) <= 1.;
70  }

◆ myExtrapNeutral()

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

Definition at line 416 of file VKalExtPropagator.cxx.

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

◆ myExtrapToLine()

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

Definition at line 351 of file VKalExtPropagator.cxx.

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

◆ myExtrapWithMatUpdate()

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

Definition at line 198 of file VKalExtPropagator.cxx.

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

◆ myxAODFstPntOnTrk()

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

Definition at line 433 of file VKalExtPropagator.cxx.

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

◆ 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 82 of file VKalExtPropagator.cxx.

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

◆ 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  double Rlim=sqrt(Xend*Xend+Yend*Yend) / m_vkalFitSvc->m_IDsizeR;
57  double Zlim=fabs(Zend) / m_vkalFitSvc->m_IDsizeZ;
58  double Scale = Rlim; if(Zlim>Rlim) Scale=Zlim;
59 //std::cout<<"relative TARG="<<RefEnd[0]<<","<<RefEnd[1]<<","<<RefEnd[2]
60 //<<" global ref.="<<m_vkalFitSvc->state.m_refFrameX<<","<<m_vkalFitSvc->state.m_refFrameY<<","<<m_vkalFitSvc->state.m_refFrameZ
61 //<<" Limits="<<m_vkalFitSvc->m_IDsizeR<<","<<m_vkalFitSvc->m_IDsizeZ<<" scale="<<Scale<<'\n';
62  return Scale;
63  }

◆ 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::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:198
SG::ConstAccessor< float >
Trk::undefined
@ undefined
Definition: ParticleHypothesis.h:38
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::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:25
xAOD::TrackParticle_v1::perigeeParameters
const Trk::Perigee & perigeeParameters() const
Returns the Trk::MeasuredPerigee track parameters.
Definition: TrackParticle_v1.cxx:485
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
Trk::TrkVKalVrtFitter::m_IDsizeR
SimpleProperty< double > m_IDsizeR
Definition: TrkVKalVrtFitter.h:326
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:24
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
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::TrkVKalVrtFitter::m_IDsizeZ
SimpleProperty< double > m_IDsizeZ
Definition: TrkVKalVrtFitter.h:327
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:76
Trk::muon
@ muon
Definition: ParticleHypothesis.h:28
beamspotman.dir
string dir
Definition: beamspotman.py:623
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:27
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