ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
Trk::ConstrainedTrackProvider Class Reference

#include <ConstrainedTrackProvider.h>

Inheritance diagram for Trk::ConstrainedTrackProvider:
Collaboration diagram for Trk::ConstrainedTrackProvider:

Public Member Functions

 ConstrainedTrackProvider (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~ConstrainedTrackProvider ()
 
virtual StatusCode initialize ()
 
virtual StatusCode finalize ()
 
virtual StatusCode trackCollection (const TrackCollection *&tracks)
 
virtual void printSummary ()
 Print statistical summary to logfile. More...
 
virtual void setLogStream (std::ostream *os)
 sets the output stream for the logfile More...
 
virtual void setNtuple (TFile *)
 sets ntuple More...
 
virtual StatusCode fillNtuple ()
 writes tree to ntuple More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Protected Attributes

std::ostream * m_logStream = nullptr
 logfile output stream More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void getCorrectedValues_P (const Trk::Perigee *mp, double &correctedQoverP, double &correctedQoverPError)
 
void getCorrectedValues_d0 (const Trk::Perigee *mp, double &corrected_d0, double &corrected_d0Error)
 
void getCorrectedValues_z0 (const Trk::Perigee *mp, double &corrected_z0, double &corrected_z0Error)
 
bool passTrackSelection (const Trk::Track *track)
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

ToolHandle< IGlobalTrackFitterm_trackFitter
 normal track fitter More...
 
RunOutlierRemoval m_runOutlierRemoval
 run outlier removal in the GX2 fitter More...
 
bool m_scalepmaptogev
 
bool m_doTrackSelection
 
int m_maxRetrievalErrors
 maximum allowed number of retrieval errors at the beginning of the job (-1 for infinite) More...
 
bool m_useConstrainedTrkOnly
 
int m_constrainedTracks
 
int m_passconstrainedRequirements
 
int m_unconstrainedTracks
 
bool m_useConstraintError
 
double m_reduceConstraintUncertainty
 
double m_reduceConstraintUncert_z0
 
double m_deltaScaling
 
int m_minPIXHits
 
int m_minSCTHits
 
int m_minTRTHits
 
double m_maxd0
 
double m_maxz0
 
double m_minPt
 
double m_maxPt
 
std::string m_inputTrackCollection
 
bool m_CorrectMomentum
 
std::string m_constraintFileName_P
 
TFile * m_constraintInputFile_P
 
std::string m_constraintHistName_P
 
TH2F * m_etaphiMap_P
 
std::string m_constraintFileName_d0
 
TFile * m_constraintInputFile_d0
 
std::string m_constraintHistName_d0
 
TH2F * m_etaphiMap_d0
 
bool m_CorrectZ0
 
std::string m_constraintFileName_z0
 
TFile * m_constraintInputFile_z0
 
std::string m_constraintHistName_z0
 
TH2F * m_etaphiMap_z0
 
bool m_CorrectD0
 
bool m_CorrectMeanD0
 
bool m_SelectByCharge
 
bool m_SelectPositive
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 31 of file ConstrainedTrackProvider.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ ConstrainedTrackProvider()

Trk::ConstrainedTrackProvider::ConstrainedTrackProvider ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 22 of file ConstrainedTrackProvider.cxx.

27  , m_trackFitter("Trk::GlobalChi2Fitter/InDetTrackFitter")
28  , m_scalepmaptogev(false)
29  , m_doTrackSelection (true)
33  , m_inputTrackCollection("Tracks")
34  , m_constraintInputFile_P(nullptr)
35  , m_etaphiMap_P(nullptr)
36  , m_constraintInputFile_d0(nullptr)
37  , m_etaphiMap_d0(nullptr)
38  , m_constraintInputFile_z0(nullptr)
39  , m_etaphiMap_z0(nullptr)
40  , m_CorrectMeanD0()
42  , m_SelectPositive(false)
43  {
44  declareInterface<ITrackCollectionProvider>(this);
45  declareProperty("doTrackSelection", m_doTrackSelection );
46  declareProperty("TrackFitter", m_trackFitter );
47  declareProperty("InputTracksCollection", m_inputTrackCollection );
48  declareProperty("RunOutlierRemoval", m_runOutlierRemoval = true );
49  declareProperty("MaxRetrievalErrors", m_maxRetrievalErrors = 10 );
50  declareProperty("UseConstrainedTrkOnly", m_useConstrainedTrkOnly = false );
51  declareProperty("MinPt", m_minPt = 15.0 );
52  declareProperty("MaxPt", m_maxPt = 100.0 );
53  declareProperty("SelectByCharge", m_SelectByCharge = false );
54  declareProperty("SelectPositive", m_SelectPositive = true );
55  declareProperty("MinPIXHits", m_minPIXHits = 0 ); //1
56  declareProperty("MinSCTHits", m_minSCTHits = 0 ); //6
57  declareProperty("MinTRTHits", m_minTRTHits = 0 );
58  declareProperty("Maxd0", m_maxd0 = 500. );
59  declareProperty("Maxz0", m_maxz0 = 500. );
60  declareProperty("CorrectMomentum", m_CorrectMomentum = true );
61  declareProperty("MomentumConstraintFileName", m_constraintFileName_P = "Constraint.root" );
62  declareProperty("MomentumConstraintHistName", m_constraintHistName_P = "EtaPhiMap" );
63  declareProperty("CorrectD0", m_CorrectD0 = false );
64  declareProperty("CorrectMeanD0", m_CorrectMeanD0 = false );
65  declareProperty("d0ConstraintFileName", m_constraintFileName_d0 = "Constraint.root" );
66  declareProperty("d0ConstraintHistName", m_constraintHistName_d0 = "EtaPhiMap" );
67  declareProperty("CorrectZ0", m_CorrectZ0 = false );
68  declareProperty("z0ConstraintFileName", m_constraintFileName_z0 = "Constraint.root" );
69  declareProperty("z0ConstraintHistName", m_constraintHistName_z0 = "EtaPhiMap" );
70  declareProperty("UseConstraintError", m_useConstraintError = true ,"Bla bla " );
71  declareProperty("ReduceConstraintUncertainty",m_reduceConstraintUncertainty = 1., "Reduce the uncertainty on teh track parmater constraint by this amount" );
72  declareProperty("ReduceConstraintUncert_z0" ,m_reduceConstraintUncert_z0 = 1., "Reduce the uncertainty on z0 track parameter constraint by this amount" );
73  declareProperty("DeltaScaling", m_deltaScaling = 1.);
74  declareProperty("ScalePMapToGeV" ,m_scalepmaptogev);
75  }

◆ ~ConstrainedTrackProvider()

Trk::ConstrainedTrackProvider::~ConstrainedTrackProvider ( )
virtualdefault

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ fillNtuple()

virtual StatusCode Trk::ITrackCollectionProvider::fillNtuple ( )
inlinevirtualinherited

writes tree to ntuple

Reimplemented in Trk::MSConstraintTracksProvider.

Definition at line 46 of file ITrackCollectionProvider.h.

46 { return StatusCode::SUCCESS; }

◆ finalize()

StatusCode Trk::ConstrainedTrackProvider::finalize ( )
virtual

Definition at line 171 of file ConstrainedTrackProvider.cxx.

172  {
174  m_constraintInputFile_P->Close();
176  }
177 
179  m_constraintInputFile_d0->Close();
181  }
182 
184  m_constraintInputFile_z0->Close();
186  }
187 
188  return StatusCode::SUCCESS;
189  }

◆ getCorrectedValues_d0()

void Trk::ConstrainedTrackProvider::getCorrectedValues_d0 ( const Trk::Perigee mp,
double &  corrected_d0,
double &  corrected_d0Error 
)
private

Definition at line 493 of file ConstrainedTrackProvider.cxx.

494  {
495  ATH_MSG_DEBUG(" == getCorrectedValues_d0 == STARTED ==");
496  // scale d0
497 
498  double charge(0);
499  if( measuredPerigee->parameters()[Trk::qOverP] > 0)
500  charge = 1.;
501  else
502  charge = -1.;
503 
504  double d0 = measuredPerigee->parameters()[Trk::d0];
505  double eta = -log(tan(measuredPerigee->parameters()[Trk::theta]/2.));
506  double phi = measuredPerigee->parameters()[Trk::phi];
507  double d0err = (*measuredPerigee->covariance())( Trk::d0, Trk::d0 );
508 
509 
510  int binNumber = m_etaphiMap_d0->FindBin(eta, phi);
511  double constraintErr = m_etaphiMap_d0->GetBinError(binNumber);
512  double delta = m_etaphiMap_d0->GetBinContent(binNumber) * m_deltaScaling;
513 
514  correctedD0 = d0 - charge * delta * 0.5 ; // delta d0 = d0_pos - d0_neg . To make the difference null, substract half to the pos and add half to the neg track.
515  if (m_CorrectMeanD0) {correctedD0 = d0 + delta;}
516  correctedD0Error = d0err;
517  ATH_MSG_DEBUG("Correcting d0 by delta = " << delta << "\t, corrected d0 = "<< correctedD0 << "\t, original d0 = "<< d0 ) ;
518 
520  correctedD0Error = d0err + pow( constraintErr, 2 );
521  }
522  ATH_MSG_DEBUG("Scaling by 1/m_reduceConstraintUncertainty " << m_reduceConstraintUncertainty << '\t'<< pow( m_reduceConstraintUncertainty,-2)) ;
523  correctedD0Error = correctedD0Error * pow( m_reduceConstraintUncertainty,-2);
524 
525  ATH_MSG_DEBUG(" == input d0: " << d0 << " deltad0: " << delta << " final d0: " << correctedD0 << " +- " << correctedD0Error);
526  ATH_MSG_DEBUG(" == getCorrectedValues_d0 == Completed ==");
527  }

◆ getCorrectedValues_P()

void Trk::ConstrainedTrackProvider::getCorrectedValues_P ( const Trk::Perigee mp,
double &  correctedQoverP,
double &  correctedQoverPError 
)
private

Definition at line 454 of file ConstrainedTrackProvider.cxx.

455  {
456 
457  // scale q/p not p
458 
459  double charge(0);
460  if( measuredPerigee->parameters()[Trk::qOverP] > 0)
461  charge = 1.;
462  else
463  charge = -1.;
464 
465  double pt = fabs(1./(measuredPerigee->parameters()[Trk::qOverP]))* sin(measuredPerigee->parameters()[Trk::theta]) *1e-3;
466  double eta = -log(tan(measuredPerigee->parameters()[Trk::theta]/2.));
467  double phi = measuredPerigee->parameters()[Trk::phi];
468  double perr = (*measuredPerigee->covariance())( Trk::qOverP, Trk::qOverP );
469 
470 
471  int binNumber = m_etaphiMap_P->FindBin(eta, phi);
472  double constraintErr = m_etaphiMap_P->GetBinError(binNumber);
473 
474  double delta = m_etaphiMap_P->GetBinContent(binNumber) * m_deltaScaling;
475 
476  if (m_scalepmaptogev)
477  delta = delta * 0.001;
478 
479  correctedQoverP = measuredPerigee->parameters()[Trk::qOverP] * (1.+ charge *pt *delta );
480  correctedQoverPError = perr;
481 
483  double qoverpFracError = perr/pow(measuredPerigee->parameters()[Trk::qOverP], 2);
484  qoverpFracError += pow(constraintErr,2);
485  correctedQoverPError = qoverpFracError*correctedQoverP*correctedQoverP;
486  }
487  ATH_MSG_DEBUG("Scaling by 1/m_reduceConstraintUncertainty " << m_reduceConstraintUncertainty << '\t'<< pow( m_reduceConstraintUncertainty,-2)) ;
488  correctedQoverPError = correctedQoverPError * pow( m_reduceConstraintUncertainty,-2);
489  ATH_MSG_DEBUG(" == input pt: " << pt << " deltaSagitta: " << delta << " final pt: " << sin(measuredPerigee->parameters()[Trk::theta]) * 1e-3/correctedQoverP);
490  }

◆ getCorrectedValues_z0()

void Trk::ConstrainedTrackProvider::getCorrectedValues_z0 ( const Trk::Perigee mp,
double &  corrected_z0,
double &  corrected_z0Error 
)
private

Definition at line 529 of file ConstrainedTrackProvider.cxx.

530  {
531 
532  // scale z0
533 
534  double charge(0);
535  if( measuredPerigee->parameters()[Trk::qOverP] > 0)
536  charge = 1.;
537  else
538  charge = -1.;
539 
540  double z0 = measuredPerigee->parameters()[Trk::z0];
541  double eta = -log(tan(measuredPerigee->parameters()[Trk::theta]/2.));
542  double phi = measuredPerigee->parameters()[Trk::phi];
543  double z0err = (*measuredPerigee->covariance())( Trk::z0, Trk::z0 );
544 
545  int binNumber = m_etaphiMap_z0->FindBin(eta, phi);
546  double constraintErr = m_etaphiMap_z0->GetBinError(binNumber);
547  double delta = m_etaphiMap_z0->GetBinContent(binNumber) * m_deltaScaling;
548 
549  correctedZ0 = z0 - charge * delta * 0.5 ; // delta z0 = z0_pos - z0_neg . To make the difference null, substract half to the pos and add half to the neg track.
550  correctedZ0Error = z0err;
551 
553  correctedZ0Error = z0err + pow( constraintErr, 2 );
554  }
555  ATH_MSG_DEBUG("Scaling by 1/m_reduceConstraintUncertainty " << m_reduceConstraintUncertainty << '\t'<< pow( m_reduceConstraintUncertainty,-2)) ;
556  correctedZ0Error = correctedZ0Error * pow( m_reduceConstraintUncertainty,-2);
557  ATH_MSG_DEBUG("Scaling by 1/m_reduceConstraintUncert_z0 " << m_reduceConstraintUncert_z0 << '\t'<< pow( m_reduceConstraintUncert_z0,-2)) ;
558  correctedZ0Error = correctedZ0Error * pow( m_reduceConstraintUncert_z0,-2);
559  ATH_MSG_DEBUG(" == input z0: " << z0 << " deltaz0: " << delta << " final z0: " << correctedZ0 << " +- " << correctedZ0Error);
560  }

◆ initialize()

StatusCode Trk::ConstrainedTrackProvider::initialize ( )
virtual

Definition at line 82 of file ConstrainedTrackProvider.cxx.

83  {
84  // configure main track fitter
85  if(m_trackFitter.retrieve().isFailure()) {
86  msg(MSG::FATAL) << "Could not get " << m_trackFitter << endmsg;
87  return StatusCode::FAILURE;
88  }
89  ATH_MSG_INFO("Retrieved " << m_trackFitter);
90 
91 
92  ATH_MSG_INFO( "init m_useConstraintError " <<m_useConstraintError );
93 
94  ATH_MSG_INFO( "Init m_reduceConstraintUncertainty " << m_reduceConstraintUncertainty );
95 
96  ATH_MSG_INFO( "Init m_reduceConstraintUncert_z0 " << m_reduceConstraintUncert_z0 );
97 
99 
100  m_constraintInputFile_P = new TFile(m_constraintFileName_P.c_str() ,"read");
101  if ( m_constraintInputFile_P->IsZombie() || !(m_constraintInputFile_P->IsOpen()) ) {
102  ATH_MSG_FATAL( " Problem reading TFile " << m_constraintFileName_P );
103  return StatusCode::FAILURE;
104  }
105  ATH_MSG_INFO("Opened file containing the deltaSagitta constraints" << m_constraintFileName_P);
107  if(!m_etaphiMap_P){
108  ATH_MSG_FATAL( " Problem getting constraints Hist. Name " << m_constraintHistName_P );
109  m_constraintInputFile_P->Close();
111  return StatusCode::FAILURE;
112  }
113  ATH_MSG_INFO("Opened constraints histogram " << m_constraintHistName_P);
114 
115  }
116 
117  if(m_CorrectD0){
118 
119  m_constraintInputFile_d0 = new TFile(m_constraintFileName_d0.c_str() ,"read");
120  if ( m_constraintInputFile_d0->IsZombie() || !(m_constraintInputFile_d0->IsOpen()) ) {
121  ATH_MSG_FATAL( " Problem reading TFile " << m_constraintFileName_d0 );
122  return StatusCode::FAILURE;
123  }
124  ATH_MSG_INFO("Opened file containing the d0 constraints" << m_constraintFileName_d0);
126  if(!m_etaphiMap_d0){
127  ATH_MSG_FATAL( " Problem getting constraints Hist. Name " << m_constraintHistName_d0 );
128  m_constraintInputFile_d0->Close();
130  return StatusCode::FAILURE;
131  }
132  ATH_MSG_INFO("Opened constraints histogram " << m_constraintHistName_d0);
133 
134  }
135 
136  if(m_CorrectZ0){
137 
138  m_constraintInputFile_z0 = new TFile(m_constraintFileName_z0.c_str() ,"read");
139  if ( m_constraintInputFile_z0->IsZombie() || !(m_constraintInputFile_z0->IsOpen()) ) {
140  ATH_MSG_FATAL( " Problem reading TFile " << m_constraintFileName_z0 );
141  return StatusCode::FAILURE;
142  }
143  ATH_MSG_INFO("Opened file containing the z0 constraints" << m_constraintFileName_z0);
145  if(!m_etaphiMap_z0){
146  ATH_MSG_FATAL( " Problem getting constraints Hist. Name " << m_constraintHistName_z0 );
147  m_constraintInputFile_z0->Close();
149  return StatusCode::FAILURE;
150  }
151  ATH_MSG_INFO("Opened constraints histogram " << m_constraintHistName_z0);
152 
153  }
154 
155  /* Commented to enable the scaling of the uncertainty
156  *
157  if(m_reduceConstraintUncertainty<=0){
158  ATH_MSG_FATAL( " reduceConstraintUncertainty is <= 0 it must be >0 . Currently " << m_reduceConstraintUncertainty );
159  return StatusCode::FAILURE;
160  }
161  */
162 
163  return StatusCode::SUCCESS;
164  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & ITrackCollectionProvider::interfaceID ( )
inlinestaticinherited

Definition at line 57 of file ITrackCollectionProvider.h.

57  {
58  return IID_TRK_ITrackCollectionProvider;
59  }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ passTrackSelection()

bool Trk::ConstrainedTrackProvider::passTrackSelection ( const Trk::Track track)
private

Definition at line 380 of file ConstrainedTrackProvider.cxx.

381  {
382  ATH_MSG_DEBUG("== TrackSelection == STARTED ==");
383 
384  const Trk::Perigee* perigee = track->perigeeParameters();
385  if(!perigee){
386  ATH_MSG_DEBUG("== TrackSelection == NO perigee on this track");
387  return false;
388  }
389 
390  const Trk::TrackSummary* summary = track->trackSummary();
391 
392  if(!summary){
393  ATH_MSG_DEBUG("== TrackSelection == No summary on this track");
394  return false;
395  }
396 
397  const int nPixHits = summary->get(Trk::numberOfPixelHits);
398  const int nSCTHits = summary->get(Trk::numberOfSCTHits);
399  const int nTRTHits = summary->get(Trk::numberOfTRTHits);
400 
401  const double qoverP = perigee->parameters()[Trk::qOverP] * 1000.;
402  const double z0 = perigee->parameters()[Trk::z0];
403  const double d0 = perigee->parameters()[Trk::d0];
404  double pt = 0.;
405  if ( qoverP != 0 ) pt = fabs(1.0/qoverP)*sin(perigee->parameters()[Trk::theta]);
406 
407  ATH_MSG_DEBUG( "== TrackSelection == track pt : "<< pt );
408  double charge(0);
409  if( qoverP > 0)
410  charge = 1.;
411  else
412  charge = -1.;
413  ATH_MSG_DEBUG( " pt : "<< pt << " ; Charge : "<< charge);
414 
415  if(pt < m_minPt || pt > m_maxPt ){
416  ATH_MSG_DEBUG("== TrackSelection == Track fails pt cut [ "<<m_minPt<<", "<< m_maxPt << "] " << pt );
417  return false;
418  }
419 
420  if (m_SelectByCharge) {
421  if (m_SelectPositive){
422  if (charge<0){
423  ATH_MSG_DEBUG("Track fails charge cut: negative charge " << charge );
424  return false;
425  }
426  }
427  if (not m_SelectPositive){
428  if (charge>0) {
429  ATH_MSG_DEBUG("Track fails charge cut: positive charge " << charge);
430  return false;
431  }
432  }
433  }
434 
435  ATH_MSG_VERBOSE("== TrackSelection == Track N PIX hits: " << nPixHits << " requested: "<< m_minPIXHits );
436  ATH_MSG_VERBOSE("== TrackSelection == Track N SCT hits: " << nSCTHits << " requested: "<< m_minSCTHits );
437  ATH_MSG_VERBOSE("== TrackSelection == Track N TRT hits: " << nTRTHits << " requested: "<< m_minTRTHits );
438  ATH_MSG_VERBOSE("== TrackSelection == Track d0: " << d0 << " requested: "<< m_maxd0 );
439  ATH_MSG_VERBOSE("== TrackSelection == Track z0: " << z0 << " requested: "<< m_maxz0 );
440 
441  if( nPixHits < m_minPIXHits ||
444  d0 > m_maxd0 ||
445  z0 > m_maxz0 ) {
446  ATH_MSG_DEBUG("This track did not pass cuts --- nPixHits: " << nPixHits << " nSCTHits: " << nSCTHits <<
447  " nTRTHits: " << nTRTHits << " idd0atIP: " << d0 << " idz0atIP: " << z0 );
448  return false;
449  }
450 
451  return true;
452  }

◆ printSummary()

void Trk::ConstrainedTrackProvider::printSummary ( )
virtual

Print statistical summary to logfile.

Reimplemented from Trk::ITrackCollectionProvider.

Definition at line 566 of file ConstrainedTrackProvider.cxx.

566  {
567 
568  if(m_logStream) {
569 
570  *m_logStream<<"*************************************************************"<<std::endl;
571  *m_logStream<<"****** ConstrainedTrackProvider Summary ******"<<std::endl;
572  *m_logStream<<"*"<<std::endl;
573  *m_logStream<<"* number of combined muons failed in refit: " << m_passconstrainedRequirements << std::endl;
574  *m_logStream<<"* number of combined muons failed in refit: " << m_constrainedTracks << std::endl;
575  *m_logStream<<"* number of combined muons succeeded in refit: " << m_unconstrainedTracks << std::endl;
576 
577  *m_logStream<<"*"<<std::endl;
578  }
579  }

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ setLogStream()

virtual void Trk::ITrackCollectionProvider::setLogStream ( std::ostream *  os)
inlinevirtualinherited

sets the output stream for the logfile

Definition at line 40 of file ITrackCollectionProvider.h.

40 { m_logStream = os; }

◆ setNtuple()

virtual void Trk::ITrackCollectionProvider::setNtuple ( TFile *  )
inlinevirtualinherited

sets ntuple

Reimplemented in Trk::MSConstraintTracksProvider.

Definition at line 43 of file ITrackCollectionProvider.h.

43 {}

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ trackCollection()

StatusCode Trk::ConstrainedTrackProvider::trackCollection ( const TrackCollection *&  tracks)
virtual

Implements Trk::ITrackCollectionProvider.

Definition at line 192 of file ConstrainedTrackProvider.cxx.

193  {
194 
195 
196  const TrackCollection* originalTracks = nullptr;
197 
198  if ( StatusCode::SUCCESS != evtStore()->retrieve(originalTracks, m_inputTrackCollection) ){
199  ATH_MSG_WARNING(" Can't retrieve " << m_inputTrackCollection << " from the StoreGate ");
200  finalTracks = originalTracks; // return empty collection
201  return StatusCode::SUCCESS;
202  }
203 
205 
206  ATH_MSG_DEBUG("Input track collection size: " << originalTracks->size());
207 
208  TrackCollection::const_iterator trackIt = originalTracks->begin();
209  TrackCollection::const_iterator trackItE = originalTracks->end();
210  int trackCount = 0;
211 
212  for ( ; trackIt != trackItE; ++trackIt ) {
213  trackCount++;
214  ATH_MSG_DEBUG("Dealing with track: " << trackCount << " / " << originalTracks->size());
215 
216  bool acceptedTrack = true;
218 
219  if( acceptedTrack ){
220  ATH_MSG_DEBUG("Track selection OK for track: " << trackCount);
221  const Trk::Perigee* measuredPerigee = (*trackIt)->perigeeParameters();
222  if(!measuredPerigee){
223  ATH_MSG_DEBUG(" no measuredPerigee");
224  continue;
225  }
226 
227  if(!(measuredPerigee->covariance()) ){
228  ATH_MSG_DEBUG(" no measuredPerigee");
229  continue;
230  }
231 
232  const Trk::Surface* surf = dynamic_cast<const Trk::Surface*>( &(measuredPerigee->associatedSurface()) ) ;
233  if( !surf ) {
234  ATH_MSG_DEBUG("NO surface of the measuredPerigee");
235  continue;
236  }
237 
238  // Get corrections from histograms if they are requested
239 
240  double correctedQoverP(0), correctedQoverPError(0);
241  if(m_CorrectMomentum){
242  getCorrectedValues_P( measuredPerigee, correctedQoverP, correctedQoverPError);
243  } else {
244  correctedQoverP = measuredPerigee->parameters()[Trk::qOverP];
245  correctedQoverPError = 1e6;
246  }
247 
248  double correctedD0(0), correctedD0Error(0);
249  if(m_CorrectD0){
250  getCorrectedValues_d0( measuredPerigee, correctedD0, correctedD0Error);
251  } else {
252  correctedD0 = measuredPerigee->parameters()[Trk::d0];
253  correctedD0Error = 1e6;
254  }
255 
256  double correctedZ0(0), correctedZ0Error(0);
257  if(m_CorrectZ0){
258  getCorrectedValues_z0( measuredPerigee, correctedZ0, correctedZ0Error);
259  } else {
260  correctedZ0 = measuredPerigee->parameters()[Trk::z0];
261  correctedZ0Error = 1e6;
262  }
263 
264  // Construct pseudomeasurement
265  Trk::DefinedParameter constrainedD0( correctedD0 , Trk::d0) ;
266  Trk::DefinedParameter constrainedZ0( correctedZ0 , Trk::z0) ;
267  Trk::DefinedParameter constrainedqOverP( correctedQoverP , Trk::qOverP) ;
268 
269  std::vector<Trk::DefinedParameter> constrainedPars;
270  constrainedPars.push_back( constrainedD0 ) ;
271  constrainedPars.push_back( constrainedZ0 ) ;
272  constrainedPars.push_back( constrainedqOverP ) ;
273 
274  Amg::MatrixX constrainedCov( 3,3 ) ;
275  constrainedCov.setZero();
276  constrainedCov( 0, 0 ) = correctedD0Error;
277  constrainedCov( 1, 1 ) = correctedZ0Error;
278  constrainedCov( 2, 2 ) = correctedQoverPError;
279  // constrainedCov( 1, 0 ) = 0; //initially we will assume the constraints are independant
280  // constrainedCov( 2, 0 ) = 0;
281  // constrainedCov( 2, 1 ) = 0;
282 
284  std::move(constrainedCov), *surf) ;
285 
286 
287  // Add pseusdo measurement to a list of hits to be fit;
288  std::vector<const Trk::MeasurementBase*> vecOfMB;
289  if (pmot) vecOfMB.push_back(pmot);
290 
291  // Add the remaining hits;
292  DataVector<const Trk::MeasurementBase>::const_iterator it = (*trackIt)->measurementsOnTrack()->begin();
293  DataVector<const Trk::MeasurementBase>::const_iterator itend = (*trackIt)->measurementsOnTrack()->end();
294  for (;it!=itend;++it)
295  vecOfMB.push_back(*it);
296 
298  it = (*trackIt)->outliersOnTrack()->begin();
299  itend = (*trackIt)->outliersOnTrack()->end();
300  // Add the remaining hits;
301  for (;it!=itend;++it)
302  vecOfMB.push_back(*it);
303  }
304 
305  Trk::Track* constrainedFittedTrack = m_trackFitter->fit( Gaudi::Hive::currentContext(),
306  vecOfMB, *measuredPerigee,
307  m_runOutlierRemoval, Trk::pion).release();
308  delete pmot;
309 
310  if (constrainedFittedTrack){
311  ATH_MSG_DEBUG("Fit was successful");
312  const Trk::Perigee* constrainedPerigee = constrainedFittedTrack->perigeeParameters();
313  if(!constrainedPerigee){
314  ATH_MSG_DEBUG(" no constrainedmeasuredPerigee");
315  } else {
316  ATH_MSG_DEBUG("Initial track parameters --> momentum: " << 1/measuredPerigee->parameters()[Trk::qOverP] * 1e-3
317  << " pt: " << 1/measuredPerigee->parameters()[Trk::qOverP] * 1e-3 * sin(measuredPerigee->parameters()[Trk::theta])
318  << " d0: " << measuredPerigee->parameters()[Trk::d0]
319  << " z0: " << measuredPerigee->parameters()[Trk::z0] );
320  ATH_MSG_DEBUG("constraint values --> momentum: " << 1/correctedQoverP * 1e-3
321  << " pt: " << 1/correctedQoverP * 1e-3 * sin(measuredPerigee->parameters()[Trk::theta])
322  << " d0: " << correctedD0
323  << " z0: " << correctedZ0 );
324  ATH_MSG_DEBUG("Constrained fit result --> momentum: " << 1/constrainedPerigee->parameters()[Trk::qOverP] * 1e-3
325  << " pt: " << 1/constrainedPerigee->parameters()[Trk::qOverP] * 1e-3 * sin(constrainedPerigee->parameters()[Trk::theta])
326  << " d0: " << constrainedPerigee->parameters()[Trk::d0]
327  << " z0: " << constrainedPerigee->parameters()[Trk::z0] );
328  }
329 
330  const Track* track = *trackIt;
331  constrainedFittedTrack->setTrackSummary( std::make_unique<Trk::TrackSummary> (*track->trackSummary()) );
332 
333  trackCollection->push_back(constrainedFittedTrack);
335  } else{
336  ATH_MSG_DEBUG("Constrained fit was unsuccessful");
337  }
338  } //--> if ( acceptedTrack)
339  else {
340 
341  if(m_useConstrainedTrkOnly) continue;
342 
343  //Prob could just copy the track?
344  Trk::Track* unconstrainedFittedTrack =
346  ->fit(Gaudi::Hive::currentContext(),
347  **trackIt,
349  Trk::pion)
350  .release();
351 
352  if(unconstrainedFittedTrack) {
353  ATH_MSG_DEBUG("Unconstrained fit was successful");
354  trackCollection->push_back(unconstrainedFittedTrack);
356  } else {
357  ATH_MSG_DEBUG("Unconstrained fit was unsuccessful");
358  }
359  }
360  }
361 
362 
363  if (StatusCode::SUCCESS != evtStore()->record(trackCollection, "AlignmentConstrainedTracks")){
364  ATH_MSG_WARNING("Problem with recording AlignmentConstrainedTracks to StoreGate!");
365  delete trackCollection;
366  return StatusCode::SUCCESS;
367  }
368 
369  ATH_MSG_INFO ("Size of the trackCollection in this event : " << trackCollection->size() );
370  //track Collection cannot be null here; it has already been dereferenced
371  finalTracks = trackCollection;
372 
373  return StatusCode::SUCCESS;
374 
375  }

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_constrainedTracks

int Trk::ConstrainedTrackProvider::m_constrainedTracks
private

Definition at line 58 of file ConstrainedTrackProvider.h.

◆ m_constraintFileName_d0

std::string Trk::ConstrainedTrackProvider::m_constraintFileName_d0
private

Definition at line 85 of file ConstrainedTrackProvider.h.

◆ m_constraintFileName_P

std::string Trk::ConstrainedTrackProvider::m_constraintFileName_P
private

Definition at line 79 of file ConstrainedTrackProvider.h.

◆ m_constraintFileName_z0

std::string Trk::ConstrainedTrackProvider::m_constraintFileName_z0
private

Definition at line 92 of file ConstrainedTrackProvider.h.

◆ m_constraintHistName_d0

std::string Trk::ConstrainedTrackProvider::m_constraintHistName_d0
private

Definition at line 87 of file ConstrainedTrackProvider.h.

◆ m_constraintHistName_P

std::string Trk::ConstrainedTrackProvider::m_constraintHistName_P
private

Definition at line 81 of file ConstrainedTrackProvider.h.

◆ m_constraintHistName_z0

std::string Trk::ConstrainedTrackProvider::m_constraintHistName_z0
private

Definition at line 94 of file ConstrainedTrackProvider.h.

◆ m_constraintInputFile_d0

TFile* Trk::ConstrainedTrackProvider::m_constraintInputFile_d0
private

Definition at line 86 of file ConstrainedTrackProvider.h.

◆ m_constraintInputFile_P

TFile* Trk::ConstrainedTrackProvider::m_constraintInputFile_P
private

Definition at line 80 of file ConstrainedTrackProvider.h.

◆ m_constraintInputFile_z0

TFile* Trk::ConstrainedTrackProvider::m_constraintInputFile_z0
private

Definition at line 93 of file ConstrainedTrackProvider.h.

◆ m_CorrectD0

bool Trk::ConstrainedTrackProvider::m_CorrectD0
private

Definition at line 99 of file ConstrainedTrackProvider.h.

◆ m_CorrectMeanD0

bool Trk::ConstrainedTrackProvider::m_CorrectMeanD0
private

Definition at line 100 of file ConstrainedTrackProvider.h.

◆ m_CorrectMomentum

bool Trk::ConstrainedTrackProvider::m_CorrectMomentum
private

Definition at line 78 of file ConstrainedTrackProvider.h.

◆ m_CorrectZ0

bool Trk::ConstrainedTrackProvider::m_CorrectZ0
private

Definition at line 91 of file ConstrainedTrackProvider.h.

◆ m_deltaScaling

double Trk::ConstrainedTrackProvider::m_deltaScaling
private

Definition at line 64 of file ConstrainedTrackProvider.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doTrackSelection

bool Trk::ConstrainedTrackProvider::m_doTrackSelection
private

Definition at line 55 of file ConstrainedTrackProvider.h.

◆ m_etaphiMap_d0

TH2F* Trk::ConstrainedTrackProvider::m_etaphiMap_d0
private

Definition at line 88 of file ConstrainedTrackProvider.h.

◆ m_etaphiMap_P

TH2F* Trk::ConstrainedTrackProvider::m_etaphiMap_P
private

Definition at line 82 of file ConstrainedTrackProvider.h.

◆ m_etaphiMap_z0

TH2F* Trk::ConstrainedTrackProvider::m_etaphiMap_z0
private

Definition at line 97 of file ConstrainedTrackProvider.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_inputTrackCollection

std::string Trk::ConstrainedTrackProvider::m_inputTrackCollection
private

Definition at line 75 of file ConstrainedTrackProvider.h.

◆ m_logStream

std::ostream* Trk::ITrackCollectionProvider::m_logStream = nullptr
protectedinherited

logfile output stream

Definition at line 53 of file ITrackCollectionProvider.h.

◆ m_maxd0

double Trk::ConstrainedTrackProvider::m_maxd0
private

Definition at line 69 of file ConstrainedTrackProvider.h.

◆ m_maxPt

double Trk::ConstrainedTrackProvider::m_maxPt
private

Definition at line 72 of file ConstrainedTrackProvider.h.

◆ m_maxRetrievalErrors

int Trk::ConstrainedTrackProvider::m_maxRetrievalErrors
private

maximum allowed number of retrieval errors at the beginning of the job (-1 for infinite)

Definition at line 56 of file ConstrainedTrackProvider.h.

◆ m_maxz0

double Trk::ConstrainedTrackProvider::m_maxz0
private

Definition at line 70 of file ConstrainedTrackProvider.h.

◆ m_minPIXHits

int Trk::ConstrainedTrackProvider::m_minPIXHits
private

Definition at line 66 of file ConstrainedTrackProvider.h.

◆ m_minPt

double Trk::ConstrainedTrackProvider::m_minPt
private

Definition at line 71 of file ConstrainedTrackProvider.h.

◆ m_minSCTHits

int Trk::ConstrainedTrackProvider::m_minSCTHits
private

Definition at line 67 of file ConstrainedTrackProvider.h.

◆ m_minTRTHits

int Trk::ConstrainedTrackProvider::m_minTRTHits
private

Definition at line 68 of file ConstrainedTrackProvider.h.

◆ m_passconstrainedRequirements

int Trk::ConstrainedTrackProvider::m_passconstrainedRequirements
private

Definition at line 59 of file ConstrainedTrackProvider.h.

◆ m_reduceConstraintUncert_z0

double Trk::ConstrainedTrackProvider::m_reduceConstraintUncert_z0
private

Definition at line 63 of file ConstrainedTrackProvider.h.

◆ m_reduceConstraintUncertainty

double Trk::ConstrainedTrackProvider::m_reduceConstraintUncertainty
private

Definition at line 62 of file ConstrainedTrackProvider.h.

◆ m_runOutlierRemoval

RunOutlierRemoval Trk::ConstrainedTrackProvider::m_runOutlierRemoval
private

run outlier removal in the GX2 fitter

Definition at line 53 of file ConstrainedTrackProvider.h.

◆ m_scalepmaptogev

bool Trk::ConstrainedTrackProvider::m_scalepmaptogev
private

Definition at line 54 of file ConstrainedTrackProvider.h.

◆ m_SelectByCharge

bool Trk::ConstrainedTrackProvider::m_SelectByCharge
private

Definition at line 102 of file ConstrainedTrackProvider.h.

◆ m_SelectPositive

bool Trk::ConstrainedTrackProvider::m_SelectPositive
private

Definition at line 103 of file ConstrainedTrackProvider.h.

◆ m_trackFitter

ToolHandle<IGlobalTrackFitter> Trk::ConstrainedTrackProvider::m_trackFitter
private

normal track fitter

Definition at line 51 of file ConstrainedTrackProvider.h.

◆ m_unconstrainedTracks

int Trk::ConstrainedTrackProvider::m_unconstrainedTracks
private

Definition at line 60 of file ConstrainedTrackProvider.h.

◆ m_useConstrainedTrkOnly

bool Trk::ConstrainedTrackProvider::m_useConstrainedTrkOnly
private

Definition at line 57 of file ConstrainedTrackProvider.h.

◆ m_useConstraintError

bool Trk::ConstrainedTrackProvider::m_useConstraintError
private

Definition at line 61 of file ConstrainedTrackProvider.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
Trk::ConstrainedTrackProvider::m_minSCTHits
int m_minSCTHits
Definition: ConstrainedTrackProvider.h:67
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
Trk::ConstrainedTrackProvider::m_minTRTHits
int m_minTRTHits
Definition: ConstrainedTrackProvider.h:68
Trk::numberOfPixelHits
@ numberOfPixelHits
number of pixel layers on track with absence of hits
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:57
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
Trk::LocalParameters
Definition: LocalParameters.h:98
xAOD::acceptedTrack
@ acceptedTrack
Definition: TrackingPrimitives.h:472
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:27
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Trk::ConstrainedTrackProvider::m_constraintInputFile_d0
TFile * m_constraintInputFile_d0
Definition: ConstrainedTrackProvider.h:86
calibdata.perr
def perr(error, exc=None, exit=False)
Definition: calibdata.py:117
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::ConstrainedTrackProvider::m_constraintInputFile_P
TFile * m_constraintInputFile_P
Definition: ConstrainedTrackProvider.h:80
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
Trk::ConstrainedTrackProvider::m_doTrackSelection
bool m_doTrackSelection
Definition: ConstrainedTrackProvider.h:55
Trk::ConstrainedTrackProvider::m_minPIXHits
int m_minPIXHits
Definition: ConstrainedTrackProvider.h:66
Trk::ConstrainedTrackProvider::m_deltaScaling
double m_deltaScaling
Definition: ConstrainedTrackProvider.h:64
Trk::ConstrainedTrackProvider::m_trackFitter
ToolHandle< IGlobalTrackFitter > m_trackFitter
normal track fitter
Definition: ConstrainedTrackProvider.h:51
skel.it
it
Definition: skel.GENtoEVGEN.py:396
test_pyathena.pt
pt
Definition: test_pyathena.py:11
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
Trk::ConstrainedTrackProvider::getCorrectedValues_z0
void getCorrectedValues_z0(const Trk::Perigee *mp, double &corrected_z0, double &corrected_z0Error)
Definition: ConstrainedTrackProvider.cxx:529
Trk::z0
@ z0
Definition: ParamDefs.h:64
Trk::ConstrainedTrackProvider::getCorrectedValues_P
void getCorrectedValues_P(const Trk::Perigee *mp, double &correctedQoverP, double &correctedQoverPError)
Definition: ConstrainedTrackProvider.cxx:454
Trk::ConstrainedTrackProvider::m_CorrectZ0
bool m_CorrectZ0
Definition: ConstrainedTrackProvider.h:91
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
Trk::ConstrainedTrackProvider::passTrackSelection
bool passTrackSelection(const Trk::Track *track)
Definition: ConstrainedTrackProvider.cxx:380
Trk::ConstrainedTrackProvider::m_maxz0
double m_maxz0
Definition: ConstrainedTrackProvider.h:70
python.TrigEgammaMonitorHelper.TH2F
def TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:45
Trk::ConstrainedTrackProvider::m_runOutlierRemoval
RunOutlierRemoval m_runOutlierRemoval
run outlier removal in the GX2 fitter
Definition: ConstrainedTrackProvider.h:53
Trk::ConstrainedTrackProvider::m_reduceConstraintUncertainty
double m_reduceConstraintUncertainty
Definition: ConstrainedTrackProvider.h:62
Trk::DefinedParameter
std::pair< double, ParamDefs > DefinedParameter
Definition: DefinedParameter.h:27
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
Trk::PseudoMeasurementOnTrack
Class to handle pseudo-measurements in fitters and on track objects.
Definition: PseudoMeasurementOnTrack.h:44
Trk::ParametersT::associatedSurface
virtual const S & associatedSurface() const override final
Access to the Surface method.
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
Trk::ConstrainedTrackProvider::m_minPt
double m_minPt
Definition: ConstrainedTrackProvider.h:71
Trk::ConstrainedTrackProvider::m_maxd0
double m_maxd0
Definition: ConstrainedTrackProvider.h:69
Trk::ConstrainedTrackProvider::m_CorrectMeanD0
bool m_CorrectMeanD0
Definition: ConstrainedTrackProvider.h:100
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
Trk::ConstrainedTrackProvider::m_maxRetrievalErrors
int m_maxRetrievalErrors
maximum allowed number of retrieval errors at the beginning of the job (-1 for infinite)
Definition: ConstrainedTrackProvider.h:56
Trk::ConstrainedTrackProvider::m_constraintFileName_P
std::string m_constraintFileName_P
Definition: ConstrainedTrackProvider.h:79
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
TrackCollection
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
Definition: TrackCollection.h:19
IDTPM::nSCTHits
float nSCTHits(const U &p)
Definition: TrackParametersHelper.h:393
IDTPM::nTRTHits
float nTRTHits(const U &p)
Definition: TrackParametersHelper.h:446
Trk::theta
@ theta
Definition: ParamDefs.h:66
Trk::ConstrainedTrackProvider::m_CorrectMomentum
bool m_CorrectMomentum
Definition: ConstrainedTrackProvider.h:78
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
Trk::numberOfSCTHits
@ numberOfSCTHits
number of SCT holes
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:71
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Trk::pion
@ pion
Definition: ParticleHypothesis.h:29
Trk::ConstrainedTrackProvider::getCorrectedValues_d0
void getCorrectedValues_d0(const Trk::Perigee *mp, double &corrected_d0, double &corrected_d0Error)
Definition: ConstrainedTrackProvider.cxx:493
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Trk::ConstrainedTrackProvider::m_constraintHistName_d0
std::string m_constraintHistName_d0
Definition: ConstrainedTrackProvider.h:87
Trk::ConstrainedTrackProvider::m_reduceConstraintUncert_z0
double m_reduceConstraintUncert_z0
Definition: ConstrainedTrackProvider.h:63
Trk::ConstrainedTrackProvider::m_CorrectD0
bool m_CorrectD0
Definition: ConstrainedTrackProvider.h:99
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::ConstrainedTrackProvider::m_constraintHistName_z0
std::string m_constraintHistName_z0
Definition: ConstrainedTrackProvider.h:94
DataVector< Trk::Track >
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
Trk::Track::perigeeParameters
const Perigee * perigeeParameters() const
return Perigee.
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:163
Trk::numberOfTRTHits
@ numberOfTRTHits
number of TRT outliers
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:79
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
Trk::TrackSummary
A summary of the information contained by a track.
Definition: Tracking/TrkEvent/TrkTrackSummary/TrkTrackSummary/TrackSummary.h:287
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
Trk::d0
@ d0
Definition: ParamDefs.h:63
Trk::ConstrainedTrackProvider::m_useConstrainedTrkOnly
bool m_useConstrainedTrkOnly
Definition: ConstrainedTrackProvider.h:57
charge
double charge(const T &p)
Definition: AtlasPID.h:756
Trk::ConstrainedTrackProvider::m_passconstrainedRequirements
int m_passconstrainedRequirements
Definition: ConstrainedTrackProvider.h:59
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
Trk::ConstrainedTrackProvider::m_etaphiMap_P
TH2F * m_etaphiMap_P
Definition: ConstrainedTrackProvider.h:82
Trk::ConstrainedTrackProvider::trackCollection
virtual StatusCode trackCollection(const TrackCollection *&tracks)
Definition: ConstrainedTrackProvider.cxx:192
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::ConstrainedTrackProvider::m_maxPt
double m_maxPt
Definition: ConstrainedTrackProvider.h:72
h
Trk::ConstrainedTrackProvider::m_constraintFileName_d0
std::string m_constraintFileName_d0
Definition: ConstrainedTrackProvider.h:85
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Trk::ConstrainedTrackProvider::m_scalepmaptogev
bool m_scalepmaptogev
Definition: ConstrainedTrackProvider.h:54
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
Trk::ITrackCollectionProvider::m_logStream
std::ostream * m_logStream
logfile output stream
Definition: ITrackCollectionProvider.h:53
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:67
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
Trk::ConstrainedTrackProvider::m_constrainedTracks
int m_constrainedTracks
Definition: ConstrainedTrackProvider.h:58
Trk::ConstrainedTrackProvider::m_SelectPositive
bool m_SelectPositive
Definition: ConstrainedTrackProvider.h:103
Trk::Track::setTrackSummary
void setTrackSummary(std::unique_ptr< Trk::TrackSummary > input)
Set the track summary.
Trk::ConstrainedTrackProvider::m_etaphiMap_z0
TH2F * m_etaphiMap_z0
Definition: ConstrainedTrackProvider.h:97
Trk::MeasurementBaseType::PseudoMeasurementOnTrack
@ PseudoMeasurementOnTrack
Definition: MeasurementBase.h:51
Trk::ConstrainedTrackProvider::m_constraintHistName_P
std::string m_constraintHistName_P
Definition: ConstrainedTrackProvider.h:81
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
Trk::phi
@ phi
Definition: ParamDefs.h:75
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
Trk::ConstrainedTrackProvider::m_etaphiMap_d0
TH2F * m_etaphiMap_d0
Definition: ConstrainedTrackProvider.h:88
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
Trk::ConstrainedTrackProvider::m_constraintInputFile_z0
TFile * m_constraintInputFile_z0
Definition: ConstrainedTrackProvider.h:93
Trk::ConstrainedTrackProvider::m_constraintFileName_z0
std::string m_constraintFileName_z0
Definition: ConstrainedTrackProvider.h:92
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
pow
constexpr int pow(int base, int exp) noexcept
Definition: ap_fixedTest.cxx:15
Trk::ConstrainedTrackProvider::m_useConstraintError
bool m_useConstraintError
Definition: ConstrainedTrackProvider.h:61
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
Trk::ConstrainedTrackProvider::m_unconstrainedTracks
int m_unconstrainedTracks
Definition: ConstrainedTrackProvider.h:60
Trk::ConstrainedTrackProvider::m_SelectByCharge
bool m_SelectByCharge
Definition: ConstrainedTrackProvider.h:102
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
Trk::ConstrainedTrackProvider::m_inputTrackCollection
std::string m_inputTrackCollection
Definition: ConstrainedTrackProvider.h:75
SCT_Monitoring::summary
@ summary
Definition: SCT_MonitoringNumbers.h:65