ATLAS Offline Software
TrackParticle_v1.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // Misc includes
6 #include <bitset>
7 #include <cassert>
8 #include <vector>
9 #include <stdexcept>
10 #include <atomic>
11 #include <iostream>
12 
13 // EDM include(s):
15 
16 // Local include(s):
20 
21 
23 
28  static std::atomic< bool > uninitCovarianceAccessPrinted = false;
29  if( ! uninitCovarianceAccessPrinted ) {
30  std::cout << "xAOD::TrackParticle WARNING Uninitialised covariance matrix was "
31  "accessed.\n"
32  " Debug it by breaking on "
33  "xAODTrackParticlePrivate::covarianceUnsetHook function calls!"
34  << std::endl;
35  uninitCovarianceAccessPrinted = true;
36  }
37  return;
38  }
39 
40 }
41 
42 
43 namespace xAOD {
44 
46  : IParticle() {
47  // perigeeParameters cache initialized to be empty (default constructor)
48  }
49 
51  : IParticle( tp ) {
53  // perigeeParameters cache initialized to be empty (default constructor)
54  // assume that this copy will create new cache as needed
55  }
56 
58  if(this == &tp) return *this;
59 
60  if( ( ! hasStore() ) && ( ! container() ) ) {
62  }
63  this->IParticle::operator=( tp );
64 #ifndef XAOD_ANALYSIS
65  // assume that this copy will create new cache as needed
66  m_perigeeParameters.reset();
67 #endif // not XAOD_ANALYSIS
68  return *this;
69  }
70 
72 
73  double TrackParticle_v1::pt() const {
74  return genvecP4().Pt();
75  }
76 
77  double TrackParticle_v1::eta() const {
78  return genvecP4().Eta();
79  }
80 
82 
84  // Codes using a fitter set a hypothesis, and the
85  // particular fitter that was employed..
86  // A mass is never set/stored.
87  //
88  // In the past we were returning the mass of a charged pion always
89  //
90  // This created a confusion on why TrackParticles created by
91  // specific lepton fitter have a pion mass (the leptons per se have the
92  // correct mass). Lets try to remedy this.
93  uint8_t hypo = particleHypothesis();
94  if (hypo == xAOD::electron) {
95  // Since GX2 also set sometimes the hypo to electron
96  // lets also check for GSF.
97  uint8_t fitter = trackFitter();
99  return 0.510998;
100  }
101  }
102  if (hypo == xAOD::muon) {
103  return 105.658367;
104  }
105  // default charged pion
106  return 139.570;
107  }
108 
109  double TrackParticle_v1::e() const {
110  return genvecP4().E();
111  }
112  double TrackParticle_v1::rapidity() const {
113  return genvecP4().Rapidity();
114  }
115 
117  using namespace std;
118  float p = 10.e6; // 10 TeV (default value for very high pt muons, with qOverP==0)
119  if (fabs(qOverP())>0.) p = 1/fabs(qOverP());
120  float thetaT = theta();
121  float phiT = phi();
122  float sinTheta= sin(thetaT);
123  float px = p*sinTheta*cos(phiT);
124  float py = p*sinTheta*sin(phiT);
125  float pz = p*cos(thetaT);
126  return GenVecFourMom_t(px, py, pz, m());
127  }
128 
131  using namespace std;
132  float p = 10.e6; // 10 TeV (default value for very high pt muons, with qOverP==0)
133  if (fabs(qOverP())>0.) p = 1/fabs(qOverP());
134  float thetaT = theta();
135  float phiT = phi();
136  float sinTheta= sin(thetaT);
137  float px = p*sinTheta*cos(phiT);
138  float py = p*sinTheta*sin(phiT);
139  float pz = p*cos(thetaT);
140  float e = pow (m(),2) +
141  pow( px,2) + pow( py,2) + pow( pz,2);
142  p4.SetPxPyPzE( px, py, pz, sqrt(e) );
143  return p4;
144  }
145 
147  return Type::TrackParticle;
148  }
149 
150  float TrackParticle_v1::charge() const {
151  // static Accessor< float > acc( "charge" );
152  return (qOverP() > 0) ? 1 : ((qOverP() < 0) ? -1 : 0);
153  }
154 
157 
159 
160  static const Accessor< float > acc( "phi" );
161  return acc( *this );
162  }
163 
166 
170 
171  DefiningParameters_t TrackParticle_v1::definingParameters() const{
172  DefiningParameters_t tmp;
173  tmp << d0() , z0() , phi0() , theta() , qOverP();
174  return tmp;
175  }
176 
177  void TrackParticle_v1::setDefiningParameters(float d0, float z0, float phi0, float theta, float qOverP) {
178 #ifndef XAOD_ANALYSIS
179  // reset perigee cache if existing
180  if(m_perigeeParameters.isValid()) {
181  m_perigeeParameters.reset();
182  }
183 #endif // not XAOD_ANALYSIS
184  static const Accessor< float > acc1( "d0" );
185  acc1( *this ) = d0;
186 
187  static const Accessor< float > acc2( "z0" );
188  acc2( *this ) = z0;
189 
190  static const Accessor< float > acc3( "phi" );
191  acc3( *this ) = phi0;
192 
193  static const Accessor< float > acc4( "theta" );
194  acc4( *this ) = theta;
195 
196  static const Accessor< float > acc5( "qOverP" );
197  acc5( *this ) = qOverP;
198 
199  return;
200  }
201 
202  void TrackParticle_v1::setDefiningParameters(float d0, float z0, float phi0, float theta, float qOverP, float time) {
204  setTime(time);
205  return;
206  }
207 
209  accCovMatrixDiag( "definingParametersCovMatrixDiag" );
211  accCovMatrixOffDiag( "definingParametersCovMatrixOffDiag" );
212 
213  void TrackParticle_v1::setDefiningParametersCovMatrix(const xAOD::ParametersCovMatrix_t& cov){
214 
215 #ifndef XAOD_ANALYSIS
216  // reset perigee cache if existing
217  if(m_perigeeParameters.isValid()) {
218  m_perigeeParameters.reset();
219  }
220 #endif // not XAOD_ANALYSIS
221 
222  // Extract the diagonal elements from the matrix.
223  std::vector< float > diagVec;
224  diagVec.reserve( cov.rows() );
225  for( int i = 0; i < cov.rows(); ++i ) {
226  diagVec.push_back( cov( i, i ) );
227  }
228  // Set the variable.
230 
231  // Extract the off-diagonal elements from the matrix.
232  std::vector< float > offDiagVec;
233  offDiagVec.reserve( ( ( cov.rows() - 1 ) * cov.rows() ) / 2 );
234  for( int i = 1; i < cov.rows(); ++i ) {
235  for( int j = 0; j < i; ++j ) {
236  float offDiagCoeff = (cov( i, i )>0 && cov( j, j )>0) ? cov( i, j )/sqrt(cov( i, i )*cov( j, j )) : 0;
237  offDiagVec.push_back( offDiagCoeff );
238  }
239  }
240  // Set the variable.
242 
243  return;
244  }
245 
246  const xAOD::ParametersCovMatrix_t TrackParticle_v1::definingParametersCovMatrix() const {
247 
248  // Set up the result matrix.
249  xAOD::ParametersCovMatrix_t cov;
250  cov.setZero();
251 
252  // Set the diagonal elements of the matrix.
253  if( accCovMatrixDiag.isAvailable( *this ) &&
254  ( static_cast< int >( accCovMatrixDiag( *this ).size() ) == cov.rows() ) ) {
255 
256  // Access the "raw" variable.
257  const std::vector< float >& diagVec = accCovMatrixDiag( *this );
258  // Set the diagonal elements using the raw variable.
259  for( int i = 0; i < cov.rows(); ++i ) {
260  cov( i, i ) = diagVec[ i ];
261  }
262  } else {
264  // If the variable is not available/set, set the matrix to identity.
265  cov.setIdentity();
266  }
267 
268  bool offDiagCompr = definingParametersCovMatrixOffDiagCompr();
269 
270  // Set the off-diagonal elements of the matrix.
271  if(!offDiagCompr){
272 
273  if( accCovMatrixOffDiag.isAvailable( *this ) &&
274  ( static_cast< int >( accCovMatrixOffDiag( *this ).size() ) ==
275  ( ( ( cov.rows() - 1 ) * cov.rows() ) / 2 ) ) ) {
276 
277  // Access the "raw" variable.
278  const std::vector< float >& offDiagVec = accCovMatrixOffDiag( *this );
279  // Set the off-diagonal elements using the raw variable.
280  std::size_t vecIndex = 0;
281  for( int i = 1; i < cov.rows(); ++i ) {
282  for( int j = 0; j < i; ++j, ++vecIndex ) {
283  float offDiagCoeff = cov(i,i)>0 && cov(j,j)>0 ? offDiagVec[vecIndex]*sqrt(cov(i,i)*cov(j,j)) : 0;
284  cov.fillSymmetric( i, j, offDiagCoeff );
285  }
286  }
287  }
288 
290 
291  }
292 
293  else{ //Compressed case
294 
295  if( accCovMatrixOffDiag.isAvailable( *this ) &&
296  ( static_cast< int >( accCovMatrixOffDiag( *this ).size() ) == COVMATRIX_OFFDIAG_VEC_COMPR_SIZE ) ) {
297  // Access the "raw" variable.
298  const std::vector< float >& offDiagVec = accCovMatrixOffDiag( *this );
299  // Set the off-diagonal elements using the raw variable.
300 
301  const covMatrixIndexPairVec& vecPairIndex = covMatrixComprIndexPairs();
302 
303  for(unsigned int k=0; k<COVMATRIX_OFFDIAG_VEC_COMPR_SIZE; ++k){
304  std::pair<covMatrixIndex,covMatrixIndex> pairIndex = vecPairIndex[k];
305  covMatrixIndex i = pairIndex.first;
306  covMatrixIndex j = pairIndex.second;
307  float offDiagCoeff = cov(i,i)>0 && cov(j,j)>0 ? offDiagVec[k]*sqrt(cov(i,i)*cov(j,j)) : 0;
308  cov.fillSymmetric( i, j, offDiagCoeff );
309  }
310 
311  }
312 
314 
315  }
316 
317 
318  // Return the filled matrix.
319  return cov;
320 
321  }
322 
324 
325  // Create the result matrix.
327  result.setZero();
328 
329  // Check if the diagonal elements are available.
330  if( accCovMatrixDiag.isAvailable( *this ) &&
331  ( static_cast< int >( accCovMatrixDiag( *this ).size() ) == result.rows() ) ) {
332 
333  result.setIdentity();
334  }
335 
336  bool offDiagCompr = definingParametersCovMatrixOffDiagCompr();
337 
338  if(!offDiagCompr){
339 
340  // Check if the off-diagonal elements are available.
341  if( accCovMatrixOffDiag.isAvailable( *this ) &&
342  ( static_cast< int >( accCovMatrixOffDiag( *this ).size() ) ==
343  ( ( result.rows() * ( result.rows() - 1 ) ) / 2 ) ) ) {
344 
345  for( int i = 1; i < result.rows(); ++i ) {
346  for( int j = 0; j < i; ++j ) {
347  result.fillSymmetric( i, j, true );
348  }
349  }
350  }
351 
352  }
353 
354  else{
355 
356  if( accCovMatrixOffDiag.isAvailable( *this ) &&
357  ( static_cast< int >( accCovMatrixOffDiag( *this ).size() ) == COVMATRIX_OFFDIAG_VEC_COMPR_SIZE ) ){
358 
359  const covMatrixIndexPairVec& vecPairIndex = covMatrixComprIndexPairs();
360 
361  for(const auto& pairIndex : vecPairIndex){
362  covMatrixIndex i = pairIndex.first;
363  covMatrixIndex j = pairIndex.second;
364  result.fillSymmetric( i, j, true );
365  }
366 
367  }
368 
369  }
370 
371  // Return the object.
372  return result;
373  }
374 
375  const std::vector< float >& TrackParticle_v1::definingParametersCovMatrixDiagVec() const {
376 
377  return accCovMatrixDiag( *this );
378  }
379 
380  const std::vector< float >& TrackParticle_v1::definingParametersCovMatrixOffDiagVec() const {
381 
382  return accCovMatrixOffDiag( *this );
383  }
384 
386 
387  std::vector< float > vec;
390  return vec;
391 
392  }
393 
394  void TrackParticle_v1::setDefiningParametersCovMatrixDiagVec( const std::vector< float >& vec ) {
395 
396  if (vec.size() != ParametersCovMatrix_t::RowsAtCompileTime) {
397  throw std::runtime_error(
398  "Setting track definingParametersCovMatrixDiag with vector of size " +
399  std::to_string(vec.size()) + " instead of expected " +
400  std::to_string(ParametersCovMatrix_t::RowsAtCompileTime) +
401  " is not supported");
402  }
403 
404  accCovMatrixDiag( *this ) = vec;
405  return;
406  }
407 
409 
410  bool offDiagCompr = definingParametersCovMatrixOffDiagCompr();
411 
412  unsigned int uncompr_size = ( ( ( ParametersCovMatrix_t::RowsAtCompileTime - 1 ) *
413  ParametersCovMatrix_t::RowsAtCompileTime ) / 2 );
414  unsigned int size = offDiagCompr ? COVMATRIX_OFFDIAG_VEC_COMPR_SIZE : uncompr_size;
415 
416  if( !(vec.size() == size || vec.size() == uncompr_size) ){ //If off-diagonal elements are already compressed, can either set with uncompressed or compressed vector
417  throw std::runtime_error(
418  "Setting track definingParametersCovMatrixOffDiag with vector of "
419  "size " +
420  std::to_string(vec.size()) + " instead of expected " +
421  std::to_string(size) + " or " + std::to_string(uncompr_size) +
422  " is not supported");
423  }
424 
425  accCovMatrixOffDiag( *this ) = vec;
426  return;
427  }
428 
430 
431  bool flag = false;
432  if(accCovMatrixOffDiag.isAvailable( *this )) flag = (static_cast< int >(accCovMatrixOffDiag( *this ).size())==COVMATRIX_OFFDIAG_VEC_COMPR_SIZE);
433  return flag;
434  }
435 
437 
438  ParametersCovMatrix_t cov = definingParametersCovMatrix();
439  std::vector< float > offDiagVecCompr;
440  offDiagVecCompr.resize(COVMATRIX_OFFDIAG_VEC_COMPR_SIZE);
441 
442  const covMatrixIndexPairVec& vecPairIndex = covMatrixComprIndexPairs();
443 
444  for(unsigned int k=0; k<COVMATRIX_OFFDIAG_VEC_COMPR_SIZE; ++k){
445  std::pair<covMatrixIndex,covMatrixIndex> pairIndex = vecPairIndex[k];
446  covMatrixIndex i = pairIndex.first;
447  covMatrixIndex j = pairIndex.second;
448  float offDiagElement = cov(i,i)>0 && cov(j,j)>0 ? cov(i,j)/sqrt(cov(i,i)*cov(j,j)) : 0;
449  offDiagVecCompr[k] = offDiagElement;
450  }
451 
452  accCovMatrixOffDiag( *this ) = offDiagVecCompr;
453  return;
454 
455  }
456 
457 
458  //Old schema compatibility
459 
461 
462  xAOD::ParametersCovMatrix_t covMatrix;
463  if( !cov.empty() ) Amg::expand( cov.begin(), cov.end(),covMatrix );
464  else covMatrix.setIdentity();
466 
467  }
468 
472 
473  void TrackParticle_v1::setParametersOrigin(float x, float y, float z){
474  static const Accessor< float > acc1( "vx" );
475  acc1( *this ) = x;
476 
477  static const Accessor< float > acc2( "vy" );
478  acc2( *this ) = y;
479 
480  static const Accessor< float > acc3( "vz" );
481  acc3( *this ) = z;
482  }
483 
484 #ifndef XAOD_ANALYSIS
486 
487  // Require the cache to be valid and check if the cached pointer has been set
488  if(m_perigeeParameters.isValid()){
489  return *(m_perigeeParameters.ptr());
490  }
491  static const Accessor< float > acc1( "d0" );
492  static const Accessor< float > acc2( "z0" );
493  static const Accessor< float > acc3( "phi" );
494  static const Accessor< float > acc4( "theta" );
495  static const Accessor< float > acc5( "qOverP" );
496  static const Accessor< std::vector<float> > acc6( "definingParametersCovMatrix" );
497  ParametersCovMatrix_t cov = ParametersCovMatrix_t(definingParametersCovMatrix());
498  static const Accessor< float > acc7( "beamlineTiltX" );
499  static const Accessor< float > acc8( "beamlineTiltY" );
500 
501  if(!acc7.isAvailable( *this ) || !acc8.isAvailable( *this )){
502  Trk::Perigee tmpPerigeeParameters(
503  acc1(*this),
504  acc2(*this),
505  acc3(*this),
506  acc4(*this),
507  acc5(*this),
509  std::move(cov));
510  m_perigeeParameters.set(tmpPerigeeParameters);
511  return *(m_perigeeParameters.ptr());
512  }
513 
514  Amg::Translation3D amgtranslation(vx(),vy(),vz());
515  Amg::Transform3D pAmgTransf = amgtranslation * Amg::RotationMatrix3D::Identity();
516  pAmgTransf *= Amg::AngleAxis3D(acc8(*this), Amg::Vector3D(0.,1.,0.));
517  pAmgTransf *= Amg::AngleAxis3D(acc7(*this), Amg::Vector3D(1.,0.,0.));
518  Trk::Perigee tmpPerigeeParameters(acc1(*this),
519  acc2(*this),
520  acc3(*this),
521  acc4(*this),
522  acc5(*this),
523  pAmgTransf,
524  std::move(cov));
525 
526  m_perigeeParameters.set(tmpPerigeeParameters);
527  return *(m_perigeeParameters.ptr());
528  }
529 #endif // not XAOD_ANALYSIS
530 
533 
535  static const Accessor< float > acc1( "chiSquared" );
536  acc1( *this ) = chiSquared;
537  static const Accessor< float > acc2( "numberDoF" );
538  acc2( *this ) = numberDoF;
539  }
540 
543 
546 
548 
550 
552 
555  static const Accessor< std::vector<uint8_t> > acc( "parameterPosition" );
556  if(! acc.isAvailable( *this )) return 0;
557  return acc(*this).size();
558  }
559 
560  const CurvilinearParameters_t TrackParticle_v1::trackParameters(unsigned int index) const{
561  CurvilinearParameters_t tmp;
564  return tmp;
565  }
566 
567  void TrackParticle_v1::setTrackParameters(std::vector<std::vector<float> >& parameters){
568  static const Accessor< std::vector < float > > acc1( "parameterX" );
569  static const Accessor< std::vector < float > > acc2( "parameterY" );
570  static const Accessor< std::vector < float > > acc3( "parameterZ" );
571  static const Accessor< std::vector < float > > acc4( "parameterPX" );
572  static const Accessor< std::vector < float > > acc5( "parameterPY" );
573  static const Accessor< std::vector < float > > acc6( "parameterPZ" );
574  static const Accessor< std::vector<uint8_t> > acc7( "parameterPosition" );
575 
576  acc1(*this).resize(parameters.size());
577  acc2(*this).resize(parameters.size());
578  acc3(*this).resize(parameters.size());
579  acc4(*this).resize(parameters.size());
580  acc5(*this).resize(parameters.size());
581  acc6(*this).resize(parameters.size());
582  acc7(*this).resize(parameters.size());
583 
584  unsigned int index=0;
585  std::vector<std::vector<float> >::const_iterator it=parameters.begin(), itEnd=parameters.end();
586  for (;it!=itEnd;++it,++index){
587  assert((*it).size()==6);
588  acc1(*this).at(index)=(*it).at(0);
589  acc2(*this).at(index)=(*it).at(1);
590  acc3(*this).at(index)=(*it).at(2);
591  acc4(*this).at(index)=(*it).at(3);
592  acc5(*this).at(index)=(*it).at(4);
593  acc6(*this).at(index)=(*it).at(5);
594  }
595  }
596 
597  float TrackParticle_v1::parameterX(unsigned int index) const {
598  static const Accessor< std::vector<float> > acc( "parameterX" );
599  return acc(*this).at(index);
600  }
601 
602  float TrackParticle_v1::parameterY(unsigned int index) const {
603  static const Accessor< std::vector<float> > acc( "parameterY" );
604  return acc(*this).at(index);
605  }
606 
607  float TrackParticle_v1::parameterZ(unsigned int index) const {
608  static const Accessor< std::vector<float> > acc( "parameterZ" );
609  return acc(*this).at(index);
610  }
611 
612  float TrackParticle_v1::parameterPX(unsigned int index) const {
613  static const Accessor< std::vector<float> > acc( "parameterPX" );
614  return acc(*this).at(index);
615  }
616 
617  float TrackParticle_v1::parameterPY(unsigned int index) const {
618  static const Accessor< std::vector<float> > acc( "parameterPY" );
619  return acc(*this).at(index);
620  }
621 
622  float TrackParticle_v1::parameterPZ(unsigned int index) const {
623  static const Accessor< std::vector<float> > acc( "parameterPZ" );
624  return acc(*this).at(index);
625  }
626 
627  xAOD::ParametersCovMatrix_t TrackParticle_v1::trackParameterCovarianceMatrix(unsigned int index) const
628  {
629  static const Accessor< std::vector<float> > acc( "trackParameterCovarianceMatrices" );
630  unsigned int offset = index*15;
631  // copy the correct values into the temp matrix
632  xAOD::ParametersCovMatrix_t tmp;
633  std::vector<float>::const_iterator it = acc(*this).begin()+offset;
634  Amg::expand(it,it+15,tmp);
635  return tmp;
636  }
637 
638  void TrackParticle_v1::setTrackParameterCovarianceMatrix(unsigned int index, std::vector<float>& cov){
639  assert(cov.size()==15);
640  unsigned int offset = index*15;
641  static const Accessor< std::vector < float > > acc( "trackParameterCovarianceMatrices" );
642  std::vector<float>& v = acc(*this);
643  v.resize(offset+15);
644  std::copy(cov.begin(),cov.end(),v.begin()+offset );
645  }
646 
648  {
649  static const Accessor< std::vector<uint8_t> > acc( "parameterPosition" );
650  return static_cast<xAOD::ParameterPosition>(acc(*this).at(index));
651  }
652 
654  {
655  size_t maxParameters = numberOfParameters();
656  bool foundParameters=false;
657  for (size_t i=0; i<maxParameters; ++i){
658  if (parameterPosition(i)==position){
659  foundParameters=true;
660  index=i;
661  break;
662  }
663  }
664  return foundParameters;
665  }
666 
668  static const Accessor< std::vector<uint8_t> > acc( "parameterPosition" );
669  acc( *this ).at(index) = static_cast<uint8_t>(pos);
670  }
671 
672 #ifndef XAOD_ANALYSIS
674 
675  static const Accessor< std::vector<float> > acc( "trackParameterCovarianceMatrices" );
676  unsigned int offset = index*15;
677  // copy the correct values into the temp matrix
678  ParametersCovMatrix_t cov;
679  auto it = acc(*this).begin()+offset;
680  Amg::expand(it,it+15,cov);
681  // retrieve the parameters to build the curvilinear frame
684  Trk::CurvilinearParameters param(pos,mom,charge(),std::move(cov));
685 
686  return param;
687  }
688 #endif // not XAOD_ANALYSIS
689 
692 
694  static const Accessor<uint8_t> acc("trackFitter");
695  acc(*this) = static_cast<uint8_t>(value);
696  }
697 
699  static const Accessor<uint8_t> acc("trackFitter");
700  if (!acc.isAvailable(*this)) {
702  }
703  return static_cast<xAOD::TrackFitter>(acc(*this));
704  }
705 
706  std::bitset<xAOD::NumberOfTrackRecoInfo> TrackParticle_v1::patternRecoInfo()
707  const {
708  static const Accessor< uint64_t > acc( "patternRecoInfo" );
709  std::bitset<xAOD::NumberOfTrackRecoInfo> tmp(acc(*this));
710  return tmp;
711  }
712 
714  static const Accessor< uint64_t > acc( "patternRecoInfo" );
715  acc( *this ) = patternReco;
716  }
717 
718  void TrackParticle_v1::setPatternRecognitionInfo(const std::bitset<xAOD::NumberOfTrackRecoInfo>& patternReco) {
719  static const Accessor< uint64_t > acc( "patternRecoInfo" );
720  acc( *this ) = patternReco.to_ullong();
721  }
722 
724  static const Accessor<uint8_t> acc("particleHypothesis");
725  acc(*this) = static_cast<uint8_t>(value);
726  }
727 
729  static const Accessor<uint8_t> acc("particleHypothesis");
730  if (!acc.isAvailable(*this)) {
731  return xAOD::pion;
732  }
733  return static_cast<xAOD::ParticleHypothesis>(acc(*this));
734  }
735 
736  bool TrackParticle_v1::summaryValue(uint8_t& value, const SummaryType &information) const {
738  if( ( ! acc ) || ( ! acc->isAvailable( *this ) ) ) return false;
739  // Retrieve the value:
740  value = ( *acc )( *this );
741  return true;
742  }
743 
744  bool TrackParticle_v1::summaryValue(float& value, const SummaryType &information) const {
746  if( ( ! acc ) || ( ! acc->isAvailable( *this ) ) ) return false;
747  // Retrieve the value:
748  value = ( *acc )( *this );
749  return true;
750  }
751 
754  // Set the value:
755  ( *acc )( *this ) = value;
756  }
757 
758  void TrackParticle_v1::setSummaryValue(float& value, const SummaryType &information){
760  // Set the value:
761  ( *acc )( *this ) = value;
762  }
763 
765  static const covMatrixIndexPairVec result {
768  return result;
769  }
770 
771 
772 #ifndef XAOD_ANALYSIS
780 
781  // The accessor:
782  static const ConstAccessor< ElementLink< TrackCollection > > acc( "trackLink" );
783 
784  // Check if one of them is available:
785  if( acc.isAvailable( *this ) ) {
786  return acc( *this );
787  }
788 
789  // If no Trk::Track link was not set (yet), return a dummy object:
791  return dummy;
792  }
793 
796 
797  // The accessor:
798  static const Accessor< ElementLink< TrackCollection > > acc( "trackLink" );
799 
800  // Do the deed:
801  acc( *this ) = el;
802  return;
803  }
804 
806 
807  // The accessor:
808  static const ConstAccessor< ElementLink< TrackCollection > > acc( "trackLink" );
809 
810  if( ! acc.isAvailable( *this ) ) {
811  return nullptr;
812  }
813  if( ! acc( *this ).isValid() ) {
814  return nullptr;
815  }
816 
817  return *( acc( *this ) );
818  }
819 #endif // not XAOD_ANALYSIS
820 
822 #ifndef XAOD_ANALYSIS
823  m_perigeeParameters.reset();
824 #endif // not XAOD_ANALYSIS
825  }
826 
827 } // namespace xAOD
python.CaloBCIDAvgAlgConfig.acc3
def acc3
Definition: CaloBCIDAvgAlgConfig.py:69
xAOD::TrackParticle_v1::curvilinearParameters
const Trk::CurvilinearParameters curvilinearParameters(unsigned int index) const
Returns a curvilinear representation of the parameters at 'index'.
Definition: TrackParticle_v1.cxx:673
xAOD::TrackParticle_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: TrackParticle_v1.cxx:73
xAOD::TrackParticle_v1::GenVecFourMom_t
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzM4D< double > > GenVecFourMom_t
Base 4 Momentum type for TrackParticle.
Definition: TrackParticle_v1.h:78
xAOD::AUXSTORE_PRIMITIVE_SETTER_AND_GETTER
AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1, float, IP2D_pb, setIP2D_pb) AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1
LArSamples::FitterData::fitter
const ShapeFitter * fitter
Definition: ShapeFitter.cxx:23
xAOD::TrackParticle_v1::resetCache
void resetCache()
Reset the internal cache of the object.
Definition: TrackParticle_v1.cxx:821
xAOD::TrackParticle_v1::beamlineTiltY
float beamlineTiltY() const
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
xAOD::TrackParticle_v1::setTrackFitter
void setTrackFitter(const TrackFitter fitter)
Method for setting the fitter, using the TrackFitter enum.
Definition: TrackParticle_v1.cxx:693
xAOD::TrackParticle_v1::setNumberOfIBLOverflowsdEdx
void setNumberOfIBLOverflowsdEdx(uint8_t numoverflows)
xAOD::TrackParticle_v1::th_index
@ th_index
Definition: TrackParticle_v1.h:348
xAOD::TrackParticle_v1::m
virtual double m() const override final
The invariant mass of the particle..
Definition: TrackParticle_v1.cxx:83
xAOD::trackSummaryAccessorV1< float >
const SG::AuxElement::Accessor< float > * trackSummaryAccessorV1< float >(xAOD::SummaryType type)
Definition: TrackSummaryAccessors_v1.cxx:127
xAOD::TrackParticle_v1::setNumberOfUsedHitsdEdx
void setNumberOfUsedHitsdEdx(uint8_t numhits)
get_generator_info.result
result
Definition: get_generator_info.py:21
test_pyathena.px
px
Definition: test_pyathena.py:18
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
Amg::compress
void compress(const AmgSymMatrix(N) &covMatrix, std::vector< float > &vec)
Definition: EventPrimitivesHelpers.h:56
xAOD::TrackParticle_v1::compressDefiningParametersCovMatrixOffDiag
void compressDefiningParametersCovMatrixOffDiag()
Delete some off-diagonal elements for compression.
Definition: TrackParticle_v1.cxx:436
xAOD::TrackParticle_v1::~TrackParticle_v1
~TrackParticle_v1()
Destructor.
Definition: TrackParticle_v1.cxx:71
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
xAOD::electron
@ electron
Definition: TrackingPrimitives.h:194
xAOD::TrackParticle_v1::setTrackParameters
void setTrackParameters(std::vector< std::vector< float > > &parameters)
Set the parameters via the passed vector of vectors.
Definition: TrackParticle_v1.cxx:567
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
xAOD::float
float
Definition: BTagging_v1.cxx:168
TrackFitter
Definition: EFTracking/FPGATrackSim/FPGATrackSimAlgorithms/src/TrackFitter.h:26
SG::Accessor< float >
xAOD::TrackParticle_v1::vx
float vx() const
The x origin for the parameters.
AuxStoreAccessorMacros.h
xAOD::TrackParticle_v1::setDefiningParametersCovMatrixDiagVec
void setDefiningParametersCovMatrixDiagVec(const std::vector< float > &vec)
Set the defining parameters covariance matrix using a length 15 vector.
Definition: TrackParticle_v1.cxx:394
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
xAOD::TrackParticle_v1::charge
float charge() const
Returns the charge.
Definition: TrackParticle_v1.cxx:150
Trk::PerigeeSurface
Definition: PerigeeSurface.h:43
index
Definition: index.py:1
xAOD::TrackFitter
TrackFitter
Enums to identify who created this track and which properties does it have.
Definition: TrackingPrimitives.h:39
xAOD::TrackParticle_v1::setRadiusOfFirstHit
void setRadiusOfFirstHit(float radius)
Set the radius of the first hit.
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
xAOD::TrackParticle_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition: TrackParticle_v1.cxx:77
xAOD::TrackParticle_v1::summaryValue
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
Definition: TrackParticle_v1.cxx:736
xAOD::TrackParticle_v1::vz
float vz() const
The z origin for the parameters.
EventPrimitivesHelpers.h
conifer::pow
constexpr int pow(int x)
Definition: conifer.h:20
xAOD::TrackParticle_v1::parameterPX
float parameterPX(unsigned int index) const
Returns the parameter x momentum component, for 'index'.
Definition: TrackParticle_v1.cxx:612
xAOD::TrackParticle_v1::trackParameters
const CurvilinearParameters_t trackParameters(unsigned int index) const
Returns the track parameter vector at 'index'.
Definition: TrackParticle_v1.cxx:560
xAOD::TrackParticle_v1::m_perigeeParameters
CxxUtils::CachedValue< Trk::Perigee > m_perigeeParameters
Cached MeasuredPerigee, built from this object.
Definition: TrackParticle_v1.h:368
skel.it
it
Definition: skel.GENtoEVGEN.py:396
xAOD::TrackParticle_v1::FourMom_t
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
Definition: TrackParticle_v1.h:72
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:201
xAOD::TrackParticle_v1::setTrackLink
void setTrackLink(const ElementLink< TrackCollection > &track)
Set the link to the original track.
Definition: TrackParticle_v1.cxx:795
xAOD::TrackParticle_v1::z0
float z0() const
Returns the parameter.
xAOD::TrackParticle_v1::chiSquared
float chiSquared() const
Returns the of the overall track fit.
ParticleTest.tp
tp
Definition: ParticleTest.py:25
xAOD::pion
@ pion
Definition: TrackingPrimitives.h:196
xAOD::TrackParticle_v1::setDefiningParameters
void setDefiningParameters(float d0, float z0, float phi0, float theta, float qOverP)
Set the defining parameters.
Definition: TrackParticle_v1.cxx:177
xAOD::TrackParticle_v1::definingParametersCovMatrixVec
std::vector< float > definingParametersCovMatrixVec() const
Returns the length 6 vector containing the elements of defining parameters covariance matrix.
Definition: TrackParticle_v1.cxx:385
athena.value
value
Definition: athena.py:124
xAOD::TrackParticle_v1::qp_index
@ qp_index
Definition: TrackParticle_v1.h:348
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
xAOD::TrackParticle_v1::trackProperties
TrackProperties trackProperties() const
Access methods for track properties, which returns 'true' if a logical AND of the parameter 'proprty'...
xAOD::TrackParticle_v1::covMatrixIndex
covMatrixIndex
Definition: TrackParticle_v1.h:348
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:12
SG::ConstAccessor
Helper class to provide constant type-safe access to aux data.
Definition: ConstAccessor.h:55
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
xAOD::TrackParticle_v1::setTrackParameterCovarianceMatrix
void setTrackParameterCovarianceMatrix(unsigned int index, std::vector< float > &cov)
Set the cov matrix of the parameter at 'index', using a vector of floats.
Definition: TrackParticle_v1.cxx:638
xAOD::trackSummaryAccessorV1< uint8_t >
const SG::AuxElement::Accessor< uint8_t > * trackSummaryAccessorV1< uint8_t >(xAOD::SummaryType type)
Definition: TrackSummaryAccessors_v1.cxx:25
xAOD::ParameterPosition
ParameterPosition
Enum allowing us to know where in ATLAS the parameters are defined.
Definition: TrackingPrimitives.h:209
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
x
#define x
xAOD::py
py
Definition: CompositeParticle_v1.cxx:160
xAOD::TrackParticle_v1::d0_index
@ d0_index
Definition: TrackParticle_v1.h:348
xAOD::TrackParticle_v1::d0
float d0() const
Returns the parameter.
Amg::expand
void expand(std::vector< float >::const_iterator it, std::vector< float >::const_iterator, AmgSymMatrix(N) &covMatrix)
Definition: EventPrimitivesHelpers.h:75
xAOD::TrackParticle_v1::parameterX
float parameterX(unsigned int index) const
Returns the parameter x position, for 'index'.
Definition: TrackParticle_v1.cxx:597
xAOD::TrackParticle_v1::indexOfParameterAtPosition
bool indexOfParameterAtPosition(unsigned int &index, ParameterPosition position) const
Function to determine if this TrackParticle contains track parameters at a certain position,...
Definition: TrackParticle_v1.cxx:653
xAOD::TrackParticle_v1::setBeamlineTiltY
void setBeamlineTiltY(float tiltY)
xAOD::TrackParticle_v1::setParameterPosition
void setParameterPosition(unsigned int index, ParameterPosition pos)
Set the 'position' (i.e. where it is in ATLAS) of the parameter at 'index', using the ParameterPositi...
Definition: TrackParticle_v1.cxx:667
xAOD::TrackParticle
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Definition: Event/xAOD/xAODTracking/xAODTracking/TrackParticle.h:13
xAOD::phi
setEt phi
Definition: TrigEMCluster_v1.cxx:29
xAOD::TrackParticle_v1::setHitPattern
void setHitPattern(uint32_t hitpattern)
xAOD::TrackParticle_v1::type
virtual Type::ObjectType type() const override final
The type of the object as a simple enumeration.
Definition: TrackParticle_v1.cxx:146
xAOD::TrackParticle_v1::hitPattern
uint32_t hitPattern() const
xAOD::TrackParticle_v1::setFitQuality
void setFitQuality(float chiSquared, float numberDoF)
Set the 'Fit Quality' information.
Definition: TrackParticle_v1.cxx:534
SG::IAuxElement::index
size_t index() const
Return the index of this element within its container.
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
CxxUtils::vec
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Definition: vec.h:207
xAOD::TrackParticle_v1::p4
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
Definition: TrackParticle_v1.cxx:129
xAOD::TrackParticle_v1::parameterY
float parameterY(unsigned int index) const
Returns the parameter y position, for 'index'.
Definition: TrackParticle_v1.cxx:602
xAOD::TrackProperties
TrackProperties
Definition: TrackingPrimitives.h:65
xAOD::TrackParticle_v1::parameterPY
float parameterPY(unsigned int index) const
Returns the parameter y momentum component, for 'index'.
Definition: TrackParticle_v1.cxx:617
xAOD::TrackParticle_v1::perigeeParameters
const Trk::Perigee & perigeeParameters() const
Returns the Trk::MeasuredPerigee track parameters.
Definition: TrackParticle_v1.cxx:485
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
xAOD::SummaryType
SummaryType
Enumerates the different types of information stored in Summary.
Definition: TrackingPrimitives.h:228
xAOD::AUXSTORE_PRIMITIVE_SETTER_WITH_CAST
AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(CompositeParticle_v1, float, double, px, setPx) AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(CompositeParticle_v1
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
xAOD::TrackParticle_v1::definingParametersCovMatrixOffDiagCompr
bool definingParametersCovMatrixOffDiagCompr() const
Definition: TrackParticle_v1.cxx:429
xAOD::TrackParticle_v1::trackFitter
TrackFitter trackFitter() const
Returns the fitter.
Definition: TrackParticle_v1.cxx:698
lumiFormat.i
int i
Definition: lumiFormat.py:85
z
#define z
python.CaloBCIDAvgAlgConfig.acc1
def acc1
Definition: CaloBCIDAvgAlgConfig.py:49
xAOD::TrackParticle_v1::identifierOfFirstHit
uint64_t identifierOfFirstHit() const
Returns the offline identifier of the first hit.
xAOD::covMatrix
covMatrix
Definition: TrackMeasurement_v1.cxx:19
xAOD::AUXSTORE_PRIMITIVE_GETTER_WITH_CAST
AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(Muon_v1, uint8_t, Muon_v1::EnergyLossType, energyLossType) AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(Muon_v1
xAOD::GaussianSumFilter
@ GaussianSumFilter
Tracks from Gaussian Sum Filter.
Definition: TrackingPrimitives.h:49
xAOD::TrackParticle_v1::radiusOfFirstHit
float radiusOfFirstHit() const
Returns the radius of the first hit.
master.flag
bool flag
Definition: master.py:29
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
python.CaloBCIDAvgAlgConfig.acc2
def acc2
Definition: CaloBCIDAvgAlgConfig.py:59
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
xAOD::TrackParticle_v1::numberOfUsedHitsdEdx
uint8_t numberOfUsedHitsdEdx() const
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
python.xAODType.dummy
dummy
Definition: xAODType.py:4
xAOD::TrackParticle_v1::beamlineTiltX
float beamlineTiltX() const
xAOD::TrackParticle_v1::covMatrixIndexPairVec
std::vector< std::pair< covMatrixIndex, covMatrixIndex > > covMatrixIndexPairVec
Definition: TrackParticle_v1.h:350
xAOD::TrackParticle_v1::genvecP4
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector form.
Definition: TrackParticle_v1.cxx:116
Trk::CurvilinearParametersT
Definition: CurvilinearParametersT.h:48
xAOD::TrackParticle_v1::parameterPosition
xAOD::ParameterPosition parameterPosition(unsigned int index) const
Return the ParameterPosition of the parameters at 'index'.
Definition: TrackParticle_v1.cxx:647
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
xAOD::TrackParticle_v1::setParticleHypothesis
void setParticleHypothesis(const ParticleHypothesis hypo)
Method for setting the particle type, using the ParticleHypothesis enum.
Definition: TrackParticle_v1.cxx:723
python.LArRecUtilsConfig.acc4
def acc4
Definition: LArRecUtilsConfig.py:196
xAOD::TrackParticle_v1::setTrackProperties
void setTrackProperties(const TrackProperties properties)
Methods setting the TrackProperties.
python.LArRecUtilsConfig.acc5
def acc5
Definition: LArRecUtilsConfig.py:205
xAOD::TrackParticle_v1::TrackParticle_v1
TrackParticle_v1()
Default constructor.
Definition: TrackParticle_v1.cxx:45
xAOD::TrackParticle_v1::particleHypothesis
ParticleHypothesis particleHypothesis() const
Returns the particle hypothesis used for Track fitting.
Definition: TrackParticle_v1.cxx:728
python.LuminosityCondAlgConfig.acc6
def acc6
Definition: LuminosityCondAlgConfig.py:260
xAODTrackParticlePrivate
Definition: TrackParticle_v1.cxx:22
xAOD::TrackParticle_v1::phi0
float phi0() const
Returns the parameter, which has range to .
Definition: TrackParticle_v1.cxx:158
xAOD::TrackParticle_v1::qOverP
float qOverP() const
Returns the parameter.
xAOD::TrackParticle_v1::definingParametersCovMatrix
const ParametersCovMatrix_t definingParametersCovMatrix() const
Returns the 5x5 symmetric matrix containing the defining parameters covariance matrix.
Definition: TrackParticle_v1.cxx:246
xAOD::TrackParticle_v1::patternRecoInfo
std::bitset< NumberOfTrackRecoInfo > patternRecoInfo() const
Access method for pattern recognition algorithm.
Definition: TrackParticle_v1.cxx:706
xAOD::TrackParticle_v1::vy
float vy() const
The y origin for the parameters.
TrackParticle_v1.h
xAOD::TrackParticle_v1::hasValidTime
uint8_t hasValidTime() const
Returns whether or not the track has a valid time.
xAOD::TrackParticle_v1::z0_index
@ z0_index
Definition: TrackParticle_v1.h:348
xAOD::TrackParticle_v1::numberOfIBLOverflowsdEdx
uint8_t numberOfIBLOverflowsdEdx() const
xAOD::TrackParticle_v1::parameterPZ
float parameterPZ(unsigned int index) const
Returns the parameter z momentum component, for 'index'.
Definition: TrackParticle_v1.cxx:622
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
python.LuminosityCondAlgConfig.acc7
def acc7
Definition: LuminosityCondAlgConfig.py:268
xAOD::TrackParticle_v1::trackLink
const ElementLink< TrackCollection > & trackLink() const
Returns a link (which can be invalid) to the Trk::Track which was used to make this TrackParticle.
Definition: TrackParticle_v1.cxx:779
xAOD::TrackParticle_v1::setIdentifierOfFirstHit
void setIdentifierOfFirstHit(uint64_t id)
Set the offline identifier of the first hit.
TrackSummaryAccessors_v1.h
SG::AuxElement::makePrivateStore
void makePrivateStore()
Create a new (empty) private store for this object.
Definition: AuxElement.cxx:172
xAOD::TrackParticle_v1::e
virtual double e() const override final
The total energy of the particle.
Definition: TrackParticle_v1.cxx:109
xAOD::TrackParticle_v1::numberOfParameters
size_t numberOfParameters() const
Returns the number of additional parameters stored in the TrackParticle.
Definition: TrackParticle_v1.cxx:553
xAOD::TrackParticle_v1::setDefiningParametersCovMatrix
void setDefiningParametersCovMatrix(const ParametersCovMatrix_t &cov)
Set the defining parameters covariance matrix.
Definition: TrackParticle_v1.cxx:213
xAOD::ParticleHypothesis
ParticleHypothesis
Definition: TrackingPrimitives.h:192
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
xAOD::TrackParticle_v1::definingParameters
DefiningParameters_t definingParameters() const
Returns a SVector of the Perigee track parameters.
Definition: TrackParticle_v1.cxx:171
xAOD::TrackParticle_v1::rapidity
virtual double rapidity() const override final
The true rapidity (y) of the particle.
Definition: TrackParticle_v1.cxx:112
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
xAOD::TrackParticle_v1::time
float time() const
Returns the time.
xAOD::TrackParticle_v1::definingParametersCovMatrixOffDiagVec
const std::vector< float > & definingParametersCovMatrixOffDiagVec() const
Returns the correlation coefficient associated with the off-diagonal elements of the covariance matri...
Definition: TrackParticle_v1.cxx:380
SG::AuxElement::hasStore
bool hasStore() const
Return true if this object has an associated store.
Definition: AuxElement.cxx:355
python.PyAthena.v
v
Definition: PyAthena.py:154
xAOD::TrackParticle_v1::setDefiningParametersCovMatrixVec
void setDefiningParametersCovMatrixVec(const std::vector< float > &cov)
Definition: TrackParticle_v1.cxx:460
xAOD::TrackParticle_v1::setSummaryValue
void setSummaryValue(uint8_t &value, const SummaryType &information)
Set method for TrackSummary values.
Definition: TrackParticle_v1.cxx:752
xAOD::TrackParticle_v1::definingParametersCovMatrixFilled
ParametersCovMatrixFilled_t definingParametersCovMatrixFilled() const
Returns a 5x5 matrix describing which elements of the covariance matrix are known.
Definition: TrackParticle_v1.cxx:323
xAOD::TrackParticle_v1::setTimeResolution
void setTimeResolution(float timeResolution)
xAOD::TrackParticle_v1::setHasValidTime
void setHasValidTime(uint8_t hasValidTime)
xAOD::NumberOfTrackFitters
@ NumberOfTrackFitters
maximum number of enums
Definition: TrackingPrimitives.h:61
xAOD::TrackParticle_v1::definingParametersCovMatrixDiagVec
const std::vector< float > & definingParametersCovMatrixDiagVec() const
Returns the diagonal elements of the defining parameters covariance matrix.
Definition: TrackParticle_v1.cxx:375
y
#define y
xAOD::TrackParticle_v1::COVMATRIX_OFFDIAG_VEC_COMPR_SIZE
static const std::size_t COVMATRIX_OFFDIAG_VEC_COMPR_SIZE
Definition: TrackParticle_v1.h:349
Amg::Translation3D
Eigen::Translation< double, 3 > Translation3D
Definition: GeoPrimitives.h:44
xAOD::TrackParticle_v1::trackParameterCovarianceMatrix
ParametersCovMatrix_t trackParameterCovarianceMatrix(unsigned int index) const
Returns the TrackParticleCovMatrix_t (covariance matrix) at 'index', which corresponds to the paramet...
Definition: TrackParticle_v1.cxx:627
xAOD::TrackParticle_v1::operator=
TrackParticle_v1 & operator=(const TrackParticle_v1 &tp)
Assignment operator. This can involve creating and copying an Auxilary store, and so should be used s...
Definition: TrackParticle_v1.cxx:57
AUXSTORE_PRIMITIVE_GETTER
#define AUXSTORE_PRIMITIVE_GETTER(CL, TYPE, NAME)
Macro creating the reader function for a primitive auxiliary property.
Definition: AuxStoreAccessorMacros.h:59
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
xAOD::TrackParticle_v1::setDefiningParametersCovMatrixOffDiagVec
void setDefiningParametersCovMatrixOffDiagVec(const std::vector< float > &vec)
Set the off-diagonal elements of the defining parameters covariance matrix.
Definition: TrackParticle_v1.cxx:408
xAOD::TrackParticle_v1::parameterZ
float parameterZ(unsigned int index) const
Returns the parameter z position, for 'index'.
Definition: TrackParticle_v1.cxx:607
SG::ConstAccessor::isAvailable
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
Amg::AngleAxis3D
Eigen::AngleAxisd AngleAxis3D
Definition: GeoPrimitives.h:45
xAOD::TrackParticle_v1::numberDoF
float numberDoF() const
Returns the number of degrees of freedom of the overall track or vertex fit as float.
xAOD::TrackParticle_v1::setTime
void setTime(float time)
calibdata.copy
bool copy
Definition: calibdata.py:27
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
xAOD::TrackParticle_v1::track
const Trk::Track * track() const
Returns a pointer (which can be NULL) to the Trk::Track which was used to make this TrackParticle.
Definition: TrackParticle_v1.cxx:805
SG::AuxElement::container
const SG::AuxVectorData * container() const
Return the container holding this element.
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
xAOD::ParametersCovMatrixFilled_t
Eigen::Matrix< bool, 5, 5, 0, 5, 5 > ParametersCovMatrixFilled_t
Definition: TrackingPrimitives.h:34
xAOD::TrackParticle_v1::timeResolution
float timeResolution() const
Returns the time resolution.
xAODTrackParticlePrivate::covarianceUnsetHook
void covarianceUnsetHook()
Function that would be possible to use to debug what client is trying to access covariance matrix fro...
Definition: TrackParticle_v1.cxx:27
xAODType::ObjectType
ObjectType
Type of objects that have a representation in the xAOD EDM.
Definition: ObjectType.h:32
xAOD::TrackParticle_v1::setParametersOrigin
void setParametersOrigin(float x, float y, float z)
Set the origin for the parameters.
Definition: TrackParticle_v1.cxx:473
xAOD::TrackParticle_v1::theta
float theta() const
Returns the parameter, which has range 0 to .
xAOD::IParticle::operator=
IParticle & operator=(const IParticle &)=default
xAOD::TrackParticle_v1::covMatrixComprIndexPairs
static const covMatrixIndexPairVec & covMatrixComprIndexPairs()
Definition: TrackParticle_v1.cxx:764
xAOD::TrackParticle_v1::setBeamlineTiltX
void setBeamlineTiltX(float tiltX)
xAOD::AmgSymMatrix
AmgSymMatrix(N) toEigen(const ConstMatrixMap< N > &xAODmat)
Definition: MeasurementDefs.h:86
xAOD::TrackParticle_v1::phi_index
@ phi_index
Definition: TrackParticle_v1.h:348
xAOD::TrackParticle_v1::phi
virtual double phi() const override final
The azimuthal angle ( ) of the particle (has range to .)
fitman.k
k
Definition: fitman.py:528
xAOD::TrackParticle_v1::setPatternRecognitionInfo
void setPatternRecognitionInfo(const std::bitset< xAOD::NumberOfTrackRecoInfo > &patternReco)
Method setting the pattern recognition algorithm, using a bitset.
Definition: TrackParticle_v1.cxx:718