ATLAS Offline Software
Loading...
Searching...
No Matches
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 StatusCode initialize ()
virtual StatusCode finalize ()
virtual StatusCode trackCollection (const TrackCollection *&tracks)
virtual void printSummary ()
 Print statistical summary to logfile.
virtual void setLogStream (std::ostream *os)
 sets the output stream for the logfile
virtual void setNtuple (TFile *)
 sets ntuple
virtual StatusCode fillNtuple ()
 writes tree to ntuple
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () 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
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.

Protected Attributes

std::ostream * m_logStream = nullptr
 logfile output stream

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, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

ToolHandle< IGlobalTrackFitterm_trackFitter
Gaudi::Property< Trk::RunOutlierRemovalm_runOutlierRemoval
BooleanProperty m_scalepmaptogev {this, "ScalePMapToGeV", false}
BooleanProperty m_doTrackSelection {this, "doTrackSelection", true}
BooleanProperty m_useConstrainedTrkOnly {this, "UseConstrainedTrkOnly", false}
BooleanProperty m_useConstraintError {this, "UseConstraintError", true}
int m_constrainedTracks = 0
int m_unconstrainedTracks = 0
DoubleProperty m_reduceConstraintUncertainty
DoubleProperty m_reduceConstraintUncert_z0
DoubleProperty m_deltaScaling {this, "DeltaScaling", 1.}
IntegerProperty m_minPIXHits {this, "MinPIXHits", 0}
IntegerProperty m_minSCTHits {this, "MinSCTHits", 0}
IntegerProperty m_minTRTHits {this, "MinTRTHits", 0}
DoubleProperty m_maxd0 {this, "Maxd0", 500.}
DoubleProperty m_maxz0 {this, "Maxz0", 500.}
DoubleProperty m_minPt {this, "MinPt", 15.}
DoubleProperty m_maxPt {this, "MaxPt", 100.}
SG::ReadHandleKey< TrackCollectionm_inputKey
SG::WriteHandleKey< TrackCollectionm_outputKey
BooleanProperty m_CorrectMomentum {this, "CorrectMomentum", true}
StringProperty m_constraintFileName_P
TFile * m_constraintInputFile_P = nullptr
StringProperty m_constraintHistName_P
TH2F * m_etaphiMap_P = nullptr
StringProperty m_constraintFileName_d0
TFile * m_constraintInputFile_d0 = nullptr
StringProperty m_constraintHistName_d0 {this, "d0ConstraintHistName", "EtaPhiMap"}
TH2F * m_etaphiMap_d0 = nullptr
BooleanProperty m_CorrectZ0 {this, "CorrectZ0", false}
StringProperty m_constraintFileName_z0
TFile * m_constraintInputFile_z0 = nullptr
StringProperty m_constraintHistName_z0 {this, "z0ConstraintHistName", "EtaPhiMap"}
TH2F * m_etaphiMap_z0 = nullptr
BooleanProperty m_CorrectD0 {this, "CorrectD0", false}
BooleanProperty m_CorrectMeanD0 {this, "CorrectMeanD0", false}
BooleanProperty m_SelectByCharge {this, "SelectByCharge", false}
BooleanProperty m_SelectPositive {this, "SelectPositive", true}
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 32 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 21 of file ConstrainedTrackProvider.cxx.

24 : AthAlgTool(type,name,parent)
25 {
26 declareInterface<ITrackCollectionProvider>(this);
27 }
AthAlgTool()
Default constructor:

Member Function Documentation

◆ declareGaudiProperty()

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

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

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

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

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ 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.

◆ evtStore()

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.

◆ 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 114 of file ConstrainedTrackProvider.cxx.

115 {
119 }
120
124 }
125
129 }
130
131 return StatusCode::SUCCESS;
132 }

◆ getCorrectedValues_d0()

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

Definition at line 425 of file ConstrainedTrackProvider.cxx.

426 {
427 ATH_MSG_DEBUG(" == getCorrectedValues_d0 == STARTED ==");
428 // scale d0
429
430 double charge(0);
431 if( measuredPerigee->parameters()[Trk::qOverP] > 0)
432 charge = 1.;
433 else
434 charge = -1.;
435
436 double d0 = measuredPerigee->parameters()[Trk::d0];
437 double eta = -log(tan(measuredPerigee->parameters()[Trk::theta]/2.));
438 double phi = measuredPerigee->parameters()[Trk::phi];
439 double d0err = (*measuredPerigee->covariance())( Trk::d0, Trk::d0 );
440
441
442 int binNumber = m_etaphiMap_d0->FindBin(eta, phi);
443 double constraintErr = m_etaphiMap_d0->GetBinError(binNumber);
444 double delta = m_etaphiMap_d0->GetBinContent(binNumber) * m_deltaScaling;
445
446 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.
447 if (m_CorrectMeanD0) {correctedD0 = d0 + delta;}
448 correctedD0Error = d0err;
449 ATH_MSG_DEBUG("Correcting d0 by delta = " << delta << "\t, corrected d0 = "<< correctedD0 << "\t, original d0 = "<< d0 ) ;
450
452 correctedD0Error = d0err + pow( constraintErr, 2 );
453 }
454 ATH_MSG_DEBUG("Scaling by 1/m_reduceConstraintUncertainty " << m_reduceConstraintUncertainty << '\t'<< pow( m_reduceConstraintUncertainty,-2)) ;
455 correctedD0Error = correctedD0Error * pow( m_reduceConstraintUncertainty,-2);
456
457 ATH_MSG_DEBUG(" == input d0: " << d0 << " deltad0: " << delta << " final d0: " << correctedD0 << " +- " << correctedD0Error);
458 ATH_MSG_DEBUG(" == getCorrectedValues_d0 == Completed ==");
459 }
Scalar eta() const
pseudorapidity method
#define ATH_MSG_DEBUG(x)
double charge(const T &p)
Definition AtlasPID.h:997
constexpr int pow(int base, int exp) noexcept
@ theta
Definition ParamDefs.h:66
@ qOverP
perigee
Definition ParamDefs.h:67
@ phi
Definition ParamDefs.h:75
@ d0
Definition ParamDefs.h:63

◆ getCorrectedValues_P()

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

Definition at line 386 of file ConstrainedTrackProvider.cxx.

387 {
388
389 // scale q/p not p
390
391 double charge(0);
392 if( measuredPerigee->parameters()[Trk::qOverP] > 0)
393 charge = 1.;
394 else
395 charge = -1.;
396
397 double pt = std::abs(1./(measuredPerigee->parameters()[Trk::qOverP]))* sin(measuredPerigee->parameters()[Trk::theta]) *1e-3;
398 double eta = -log(tan(measuredPerigee->parameters()[Trk::theta]/2.));
399 double phi = measuredPerigee->parameters()[Trk::phi];
400 double perr = (*measuredPerigee->covariance())( Trk::qOverP, Trk::qOverP );
401
402
403 int binNumber = m_etaphiMap_P->FindBin(eta, phi);
404 double constraintErr = m_etaphiMap_P->GetBinError(binNumber);
405
406 double delta = m_etaphiMap_P->GetBinContent(binNumber) * m_deltaScaling;
407
409 delta = delta * 0.001;
410
411 correctedQoverP = measuredPerigee->parameters()[Trk::qOverP] * (1.+ charge *pt *delta );
412 correctedQoverPError = perr;
413
415 double qoverpFracError = perr/pow(measuredPerigee->parameters()[Trk::qOverP], 2);
416 qoverpFracError += pow(constraintErr,2);
417 correctedQoverPError = qoverpFracError*correctedQoverP*correctedQoverP;
418 }
419 ATH_MSG_DEBUG("Scaling by 1/m_reduceConstraintUncertainty " << m_reduceConstraintUncertainty << '\t'<< pow( m_reduceConstraintUncertainty,-2)) ;
420 correctedQoverPError = correctedQoverPError * pow( m_reduceConstraintUncertainty,-2);
421 ATH_MSG_DEBUG(" == input pt: " << pt << " deltaSagitta: " << delta << " final pt: " << sin(measuredPerigee->parameters()[Trk::theta]) * 1e-3/correctedQoverP);
422 }
perr(error, exc=None, exit=False)
Definition calibdata.py:116

◆ getCorrectedValues_z0()

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

Definition at line 461 of file ConstrainedTrackProvider.cxx.

462 {
463
464 // scale z0
465
466 double charge(0);
467 if( measuredPerigee->parameters()[Trk::qOverP] > 0)
468 charge = 1.;
469 else
470 charge = -1.;
471
472 double z0 = measuredPerigee->parameters()[Trk::z0];
473 double eta = -log(tan(measuredPerigee->parameters()[Trk::theta]/2.));
474 double phi = measuredPerigee->parameters()[Trk::phi];
475 double z0err = (*measuredPerigee->covariance())( Trk::z0, Trk::z0 );
476
477 int binNumber = m_etaphiMap_z0->FindBin(eta, phi);
478 double constraintErr = m_etaphiMap_z0->GetBinError(binNumber);
479 double delta = m_etaphiMap_z0->GetBinContent(binNumber) * m_deltaScaling;
480
481 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.
482 correctedZ0Error = z0err;
483
485 correctedZ0Error = z0err + pow( constraintErr, 2 );
486 }
487 ATH_MSG_DEBUG("Scaling by 1/m_reduceConstraintUncertainty " << m_reduceConstraintUncertainty << '\t'<< pow( m_reduceConstraintUncertainty,-2)) ;
488 correctedZ0Error = correctedZ0Error * pow( m_reduceConstraintUncertainty,-2);
489 ATH_MSG_DEBUG("Scaling by 1/m_reduceConstraintUncert_z0 " << m_reduceConstraintUncert_z0 << '\t'<< pow( m_reduceConstraintUncert_z0,-2)) ;
490 correctedZ0Error = correctedZ0Error * pow( m_reduceConstraintUncert_z0,-2);
491 ATH_MSG_DEBUG(" == input z0: " << z0 << " deltaz0: " << delta << " final z0: " << correctedZ0 << " +- " << correctedZ0Error);
492 }
@ z0
Definition ParamDefs.h:64

◆ initialize()

StatusCode Trk::ConstrainedTrackProvider::initialize ( )
virtual

Definition at line 30 of file ConstrainedTrackProvider.cxx.

31 {
32 // configure main track fitter
33 if(m_trackFitter.retrieve().isFailure()) {
34 msg(MSG::FATAL) << "Could not get " << m_trackFitter << endmsg;
35 return StatusCode::FAILURE;
36 }
37 ATH_MSG_INFO("Retrieved " << m_trackFitter);
38
39
40 ATH_MSG_INFO( "init m_useConstraintError " <<m_useConstraintError );
41
42 ATH_MSG_INFO( "Init m_reduceConstraintUncertainty " << m_reduceConstraintUncertainty );
43
44 ATH_MSG_INFO( "Init m_reduceConstraintUncert_z0 " << m_reduceConstraintUncert_z0 );
45
47
48 m_constraintInputFile_P = new TFile(m_constraintFileName_P.value().c_str(), "read");
49 if ( m_constraintInputFile_P->IsZombie() || !(m_constraintInputFile_P->IsOpen()) ) {
50 ATH_MSG_FATAL( " Problem reading TFile " << m_constraintFileName_P );
51 return StatusCode::FAILURE;
52 }
53 ATH_MSG_INFO("Opened file containing the deltaSagitta constraints" << m_constraintFileName_P);
54 m_etaphiMap_P = static_cast<TH2F*>(m_constraintInputFile_P->Get(m_constraintHistName_P.value().c_str()));
55 if(!m_etaphiMap_P){
56 ATH_MSG_FATAL( " Problem getting constraints Hist. Name " << m_constraintHistName_P );
59 return StatusCode::FAILURE;
60 }
61 ATH_MSG_INFO("Opened constraints histogram " << m_constraintHistName_P);
62
63 }
64
65 if(m_CorrectD0){
66
67 m_constraintInputFile_d0 = new TFile(m_constraintFileName_d0.value().c_str(), "read");
68 if ( m_constraintInputFile_d0->IsZombie() || !(m_constraintInputFile_d0->IsOpen()) ) {
69 ATH_MSG_FATAL( " Problem reading TFile " << m_constraintFileName_d0 );
70 return StatusCode::FAILURE;
71 }
72 ATH_MSG_INFO("Opened file containing the d0 constraints" << m_constraintFileName_d0);
73 m_etaphiMap_d0 = static_cast<TH2F*>(m_constraintInputFile_d0->Get(m_constraintHistName_d0.value().c_str()));
74 if(!m_etaphiMap_d0){
75 ATH_MSG_FATAL( " Problem getting constraints Hist. Name " << m_constraintHistName_d0 );
78 return StatusCode::FAILURE;
79 }
80 ATH_MSG_INFO("Opened constraints histogram " << m_constraintHistName_d0);
81
82 }
83
84 if(m_CorrectZ0){
85
86 m_constraintInputFile_z0 = new TFile(m_constraintFileName_z0.value().c_str(),"read");
87 if ( m_constraintInputFile_z0->IsZombie() || !(m_constraintInputFile_z0->IsOpen()) ) {
88 ATH_MSG_FATAL( " Problem reading TFile " << m_constraintFileName_z0 );
89 return StatusCode::FAILURE;
90 }
91 ATH_MSG_INFO("Opened file containing the z0 constraints" << m_constraintFileName_z0);
92 m_etaphiMap_z0 = static_cast<TH2F*>(m_constraintInputFile_z0->Get(m_constraintHistName_z0.value().c_str()));
93 if(!m_etaphiMap_z0){
94 ATH_MSG_FATAL( " Problem getting constraints Hist. Name " << m_constraintHistName_z0 );
97 return StatusCode::FAILURE;
98 }
99 ATH_MSG_INFO("Opened constraints histogram " << m_constraintHistName_z0);
100
101 }
102
103 ATH_CHECK( m_inputKey.initialize() );
104 ATH_CHECK( m_outputKey.initialize() );
105
106 return StatusCode::SUCCESS;
107 }
#define endmsg
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_FATAL(x)
#define ATH_MSG_INFO(x)
MsgStream & msg() const
SG::ReadHandleKey< TrackCollection > m_inputKey
SG::WriteHandleKey< TrackCollection > m_outputKey
ToolHandle< IGlobalTrackFitter > m_trackFitter
TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)

◆ 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 {
59 }
static const InterfaceID IID_TRK_ITrackCollectionProvider("ITrackCollectionProvider", 1, 0)

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ 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 312 of file ConstrainedTrackProvider.cxx.

313 {
314 ATH_MSG_DEBUG("== TrackSelection == STARTED ==");
315
316 const Trk::Perigee* perigee = track->perigeeParameters();
317 if(!perigee){
318 ATH_MSG_DEBUG("== TrackSelection == NO perigee on this track");
319 return false;
320 }
321
322 const Trk::TrackSummary* summary = track->trackSummary();
323
324 if(!summary){
325 ATH_MSG_DEBUG("== TrackSelection == No summary on this track");
326 return false;
327 }
328
329 const int nPixHits = summary->get(Trk::numberOfPixelHits);
330 const int nSCTHits = summary->get(Trk::numberOfSCTHits);
331 const int nTRTHits = summary->get(Trk::numberOfTRTHits);
332
333 const double qoverP = perigee->parameters()[Trk::qOverP] * 1000.;
334 const double z0 = perigee->parameters()[Trk::z0];
335 const double d0 = perigee->parameters()[Trk::d0];
336 double pt = 0.;
337 if ( qoverP != 0 ) pt = std::abs(1.0/qoverP)*sin(perigee->parameters()[Trk::theta]);
338
339 ATH_MSG_DEBUG( "== TrackSelection == track pt : "<< pt );
340 double charge(0);
341 if( qoverP > 0)
342 charge = 1.;
343 else
344 charge = -1.;
345 ATH_MSG_DEBUG( " pt : "<< pt << " ; Charge : "<< charge);
346
347 if(pt < m_minPt || pt > m_maxPt ){
348 ATH_MSG_DEBUG("== TrackSelection == Track fails pt cut [ "<<m_minPt<<", "<< m_maxPt << "] " << pt );
349 return false;
350 }
351
352 if (m_SelectByCharge) {
353 if (m_SelectPositive){
354 if (charge<0){
355 ATH_MSG_DEBUG("Track fails charge cut: negative charge " << charge );
356 return false;
357 }
358 }
359 if (not m_SelectPositive){
360 if (charge>0) {
361 ATH_MSG_DEBUG("Track fails charge cut: positive charge " << charge);
362 return false;
363 }
364 }
365 }
366
367 ATH_MSG_VERBOSE("== TrackSelection == Track N PIX hits: " << nPixHits << " requested: "<< m_minPIXHits );
368 ATH_MSG_VERBOSE("== TrackSelection == Track N SCT hits: " << nSCTHits << " requested: "<< m_minSCTHits );
369 ATH_MSG_VERBOSE("== TrackSelection == Track N TRT hits: " << nTRTHits << " requested: "<< m_minTRTHits );
370 ATH_MSG_VERBOSE("== TrackSelection == Track d0: " << d0 << " requested: "<< m_maxd0 );
371 ATH_MSG_VERBOSE("== TrackSelection == Track z0: " << z0 << " requested: "<< m_maxz0 );
372
373 if( nPixHits < m_minPIXHits ||
374 nSCTHits < m_minSCTHits ||
375 nTRTHits < m_minTRTHits ||
376 std::abs(d0) > m_maxd0 ||
377 std::abs(z0) > m_maxz0 ) {
378 ATH_MSG_DEBUG("This track did not pass cuts --- nPixHits: " << nPixHits << " nSCTHits: " << nSCTHits <<
379 " nTRTHits: " << nTRTHits << " idd0atIP: " << d0 << " idz0atIP: " << z0 );
380 return false;
381 }
382
383 return true;
384 }
#define ATH_MSG_VERBOSE(x)
float nSCTHits(const U &p)
float nTRTHits(const U &p)
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
@ numberOfPixelHits
number of pixel layers on track with absence of hits

◆ printSummary()

void Trk::ConstrainedTrackProvider::printSummary ( )
virtual

Print statistical summary to logfile.

Reimplemented from Trk::ITrackCollectionProvider.

Definition at line 498 of file ConstrainedTrackProvider.cxx.

498 {
499
500 if(m_logStream) {
501
502 *m_logStream<<"*************************************************************"<<std::endl;
503 *m_logStream<<"****** ConstrainedTrackProvider Summary ******"<<std::endl;
504 *m_logStream<<"*"<<std::endl;
505 *m_logStream<<"* number of combined muons failed in refit: " << m_constrainedTracks << std::endl;
506 *m_logStream<<"* number of combined muons succeeded in refit: " << m_unconstrainedTracks << std::endl;
507
508 *m_logStream<<"*"<<std::endl;
509 }
510 }
std::ostream * m_logStream
logfile output stream

◆ 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();
384 }
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)

◆ 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 {
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.

◆ 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 asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ 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 135 of file ConstrainedTrackProvider.cxx.

136 {
137 SG::ReadHandle<TrackCollection> originalTracks(m_inputKey);
138 if (!originalTracks.isValid()) {
139 ATH_MSG_WARNING(" Can't retrieve " << m_inputKey);
140 finalTracks = nullptr; // return empty collection
141 return StatusCode::FAILURE;
142 }
143
144 SG::WriteHandle<TrackCollection> trackCollection(m_outputKey);
145 ATH_CHECK(trackCollection.record(std::make_unique<TrackCollection>()));
146 if (!trackCollection.isValid()) {
147 ATH_MSG_ERROR("Could not record output TrackCollection " << trackCollection.name() << " to store " << trackCollection.store());
148 return StatusCode::FAILURE;
149 }
150
151 ATH_MSG_DEBUG("Input track collection size: " << originalTracks->size());
152
153 int trackCount = 0;
154 for (const Trk::Track* track : *originalTracks) {
155 trackCount++;
156 ATH_MSG_DEBUG("Dealing with track: " << trackCount << " / " << originalTracks->size());
157
158 bool acceptedTrack = true;
160
161 if( acceptedTrack ){
162 ATH_MSG_DEBUG("Track selection OK for track: " << trackCount);
163 const Trk::Perigee* measuredPerigee = track->perigeeParameters();
164 if(!measuredPerigee){
165 ATH_MSG_DEBUG(" no measuredPerigee");
166 continue;
167 }
168
169 if(!(measuredPerigee->covariance()) ){
170 ATH_MSG_DEBUG(" no measuredPerigee");
171 continue;
172 }
173
174 const Trk::Surface* surf = dynamic_cast<const Trk::Surface*>( &(measuredPerigee->associatedSurface()) ) ;
175 if( !surf ) {
176 ATH_MSG_DEBUG("NO surface of the measuredPerigee");
177 continue;
178 }
179
180 // Get corrections from histograms if they are requested
181
182 double correctedQoverP(0), correctedQoverPError(0);
184 getCorrectedValues_P( measuredPerigee, correctedQoverP, correctedQoverPError);
185 } else {
186 correctedQoverP = measuredPerigee->parameters()[Trk::qOverP];
187 correctedQoverPError = 1e6;
188 }
189
190 double correctedD0(0), correctedD0Error(0);
191 if(m_CorrectD0){
192 getCorrectedValues_d0( measuredPerigee, correctedD0, correctedD0Error);
193 } else {
194 correctedD0 = measuredPerigee->parameters()[Trk::d0];
195 correctedD0Error = 1e6;
196 }
197
198 double correctedZ0(0), correctedZ0Error(0);
199 if(m_CorrectZ0){
200 getCorrectedValues_z0( measuredPerigee, correctedZ0, correctedZ0Error);
201 } else {
202 correctedZ0 = measuredPerigee->parameters()[Trk::z0];
203 correctedZ0Error = 1e6;
204 }
205
206 // Construct pseudomeasurement
207 Trk::DefinedParameter constrainedD0( correctedD0 , Trk::d0) ;
208 Trk::DefinedParameter constrainedZ0( correctedZ0 , Trk::z0) ;
209 Trk::DefinedParameter constrainedqOverP( correctedQoverP , Trk::qOverP) ;
210
211 std::vector<Trk::DefinedParameter> constrainedPars;
212 constrainedPars.push_back( constrainedD0 ) ;
213 constrainedPars.push_back( constrainedZ0 ) ;
214 constrainedPars.push_back( constrainedqOverP ) ;
215
216 Amg::MatrixX constrainedCov( 3,3 ) ;
217 constrainedCov.setZero();
218 constrainedCov( 0, 0 ) = correctedD0Error;
219 constrainedCov( 1, 1 ) = correctedZ0Error;
220 constrainedCov( 2, 2 ) = correctedQoverPError;
221 // constrainedCov( 1, 0 ) = 0; //initially we will assume the constraints are independant
222 // constrainedCov( 2, 0 ) = 0;
223 // constrainedCov( 2, 1 ) = 0;
224
225 Trk::PseudoMeasurementOnTrack *pmot = new Trk::PseudoMeasurementOnTrack( Trk::LocalParameters( constrainedPars ),
226 std::move(constrainedCov), *surf) ;
227
228
229 // Add pseusdo measurement to a list of hits to be fit;
230 std::vector<const Trk::MeasurementBase*> vecOfMB;
231 if (pmot) vecOfMB.push_back(pmot);
232
233 // Add the remaining hits;
234 DataVector<const Trk::MeasurementBase>::const_iterator it = track->measurementsOnTrack()->begin();
235 DataVector<const Trk::MeasurementBase>::const_iterator itend = track->measurementsOnTrack()->end();
236 for (;it!=itend;++it)
237 vecOfMB.push_back(*it);
238
240 it = track->outliersOnTrack()->begin();
241 itend = track->outliersOnTrack()->end();
242 // Add the remaining hits;
243 for (;it!=itend;++it)
244 vecOfMB.push_back(*it);
245 }
246
247 Trk::Track* constrainedFittedTrack = m_trackFitter->fit( Gaudi::Hive::currentContext(),
248 vecOfMB, *measuredPerigee,
249 m_runOutlierRemoval, Trk::pion).release();
250 delete pmot;
251
252 if (constrainedFittedTrack){
253 ATH_MSG_DEBUG("Fit was successful");
254 const Trk::Perigee* constrainedPerigee = constrainedFittedTrack->perigeeParameters();
255 if(!constrainedPerigee){
256 ATH_MSG_DEBUG(" no constrainedmeasuredPerigee");
257 } else {
258 ATH_MSG_DEBUG("Initial track parameters --> momentum: " << 1/measuredPerigee->parameters()[Trk::qOverP] * 1e-3
259 << " pt: " << 1/measuredPerigee->parameters()[Trk::qOverP] * 1e-3 * sin(measuredPerigee->parameters()[Trk::theta])
260 << " d0: " << measuredPerigee->parameters()[Trk::d0]
261 << " z0: " << measuredPerigee->parameters()[Trk::z0] );
262 ATH_MSG_DEBUG("constraint values --> momentum: " << 1/correctedQoverP * 1e-3
263 << " pt: " << 1/correctedQoverP * 1e-3 * sin(measuredPerigee->parameters()[Trk::theta])
264 << " d0: " << correctedD0
265 << " z0: " << correctedZ0 );
266 ATH_MSG_DEBUG("Constrained fit result --> momentum: " << 1/constrainedPerigee->parameters()[Trk::qOverP] * 1e-3
267 << " pt: " << 1/constrainedPerigee->parameters()[Trk::qOverP] * 1e-3 * sin(constrainedPerigee->parameters()[Trk::theta])
268 << " d0: " << constrainedPerigee->parameters()[Trk::d0]
269 << " z0: " << constrainedPerigee->parameters()[Trk::z0] );
270 }
271
272 constrainedFittedTrack->setTrackSummary( std::make_unique<Trk::TrackSummary> (*track->trackSummary()) );
273
274 trackCollection->push_back(constrainedFittedTrack);
276 } else{
277 ATH_MSG_DEBUG("Constrained fit was unsuccessful");
278 }
279 } //--> if ( acceptedTrack)
280 else {
281
282 if(m_useConstrainedTrkOnly) continue;
283
284 //Prob could just copy the track?
285 Trk::Track* unconstrainedFittedTrack =
287 ->fit(Gaudi::Hive::currentContext(),
288 *track,
290 Trk::pion)
291 .release();
292
293 if(unconstrainedFittedTrack) {
294 ATH_MSG_DEBUG("Unconstrained fit was successful");
295 trackCollection->push_back(unconstrainedFittedTrack);
297 } else {
298 ATH_MSG_DEBUG("Unconstrained fit was unsuccessful");
299 }
300 }
301 }
302
303 ATH_MSG_INFO ("Size of the trackCollection in this event : " << trackCollection->size() );
304 finalTracks = trackCollection.cptr();
305 return StatusCode::SUCCESS;
306
307 }
#define ATH_MSG_ERROR(x)
#define ATH_MSG_WARNING(x)
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
Definition DataVector.h:838
void getCorrectedValues_d0(const Trk::Perigee *mp, double &corrected_d0, double &corrected_d0Error)
void getCorrectedValues_P(const Trk::Perigee *mp, double &correctedQoverP, double &correctedQoverPError)
void getCorrectedValues_z0(const Trk::Perigee *mp, double &corrected_z0, double &corrected_z0Error)
bool passTrackSelection(const Trk::Track *track)
Gaudi::Property< Trk::RunOutlierRemoval > m_runOutlierRemoval
virtual StatusCode trackCollection(const TrackCollection *&tracks)
virtual const S & associatedSurface() const override final
Access to the Surface method.
void setTrackSummary(std::unique_ptr< Trk::TrackSummary > input)
Set the track summary.
const Perigee * perigeeParameters() const
return Perigee.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
std::pair< double, ParamDefs > DefinedParameter
Typedef to of a std::pair<double, ParamDefs> to identify a passed-through double as a specific type o...

◆ 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) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_constrainedTracks

int Trk::ConstrainedTrackProvider::m_constrainedTracks = 0
private

Definition at line 61 of file ConstrainedTrackProvider.h.

◆ m_constraintFileName_d0

StringProperty Trk::ConstrainedTrackProvider::m_constraintFileName_d0
private
Initial value:
{
this, "d0ConstraintFileName", "Constraint.root"}

Definition at line 93 of file ConstrainedTrackProvider.h.

93 {
94 this, "d0ConstraintFileName", "Constraint.root"};

◆ m_constraintFileName_P

StringProperty Trk::ConstrainedTrackProvider::m_constraintFileName_P
private
Initial value:
{
this, "MomentumConstraintFileName", "Constraint.root"}

Definition at line 85 of file ConstrainedTrackProvider.h.

85 {
86 this, "MomentumConstraintFileName", "Constraint.root"};

◆ m_constraintFileName_z0

StringProperty Trk::ConstrainedTrackProvider::m_constraintFileName_z0
private
Initial value:
{
this, "z0ConstraintFileName", "Constraint.root"}

Definition at line 101 of file ConstrainedTrackProvider.h.

101 {
102 this, "z0ConstraintFileName", "Constraint.root"};

◆ m_constraintHistName_d0

StringProperty Trk::ConstrainedTrackProvider::m_constraintHistName_d0 {this, "d0ConstraintHistName", "EtaPhiMap"}
private

Definition at line 96 of file ConstrainedTrackProvider.h.

96{this, "d0ConstraintHistName", "EtaPhiMap"};

◆ m_constraintHistName_P

StringProperty Trk::ConstrainedTrackProvider::m_constraintHistName_P
private
Initial value:
{
this, "MomentumConstraintHistName", "EtaPhiMap"}

Definition at line 88 of file ConstrainedTrackProvider.h.

88 {
89 this, "MomentumConstraintHistName", "EtaPhiMap"};

◆ m_constraintHistName_z0

StringProperty Trk::ConstrainedTrackProvider::m_constraintHistName_z0 {this, "z0ConstraintHistName", "EtaPhiMap"}
private

Definition at line 104 of file ConstrainedTrackProvider.h.

104{this, "z0ConstraintHistName", "EtaPhiMap"};

◆ m_constraintInputFile_d0

TFile* Trk::ConstrainedTrackProvider::m_constraintInputFile_d0 = nullptr
private

Definition at line 95 of file ConstrainedTrackProvider.h.

◆ m_constraintInputFile_P

TFile* Trk::ConstrainedTrackProvider::m_constraintInputFile_P = nullptr
private

Definition at line 87 of file ConstrainedTrackProvider.h.

◆ m_constraintInputFile_z0

TFile* Trk::ConstrainedTrackProvider::m_constraintInputFile_z0 = nullptr
private

Definition at line 103 of file ConstrainedTrackProvider.h.

◆ m_CorrectD0

BooleanProperty Trk::ConstrainedTrackProvider::m_CorrectD0 {this, "CorrectD0", false}
private

Definition at line 108 of file ConstrainedTrackProvider.h.

108{this, "CorrectD0", false};

◆ m_CorrectMeanD0

BooleanProperty Trk::ConstrainedTrackProvider::m_CorrectMeanD0 {this, "CorrectMeanD0", false}
private

Definition at line 109 of file ConstrainedTrackProvider.h.

109{this, "CorrectMeanD0", false};

◆ m_CorrectMomentum

BooleanProperty Trk::ConstrainedTrackProvider::m_CorrectMomentum {this, "CorrectMomentum", true}
private

Definition at line 84 of file ConstrainedTrackProvider.h.

84{this, "CorrectMomentum", true};

◆ m_CorrectZ0

BooleanProperty Trk::ConstrainedTrackProvider::m_CorrectZ0 {this, "CorrectZ0", false}
private

Definition at line 100 of file ConstrainedTrackProvider.h.

100{this, "CorrectZ0", false};

◆ m_deltaScaling

DoubleProperty Trk::ConstrainedTrackProvider::m_deltaScaling {this, "DeltaScaling", 1.}
private

Definition at line 69 of file ConstrainedTrackProvider.h.

69{this, "DeltaScaling", 1.};

◆ 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

BooleanProperty Trk::ConstrainedTrackProvider::m_doTrackSelection {this, "doTrackSelection", true}
private

Definition at line 57 of file ConstrainedTrackProvider.h.

57{this, "doTrackSelection", true};

◆ m_etaphiMap_d0

TH2F* Trk::ConstrainedTrackProvider::m_etaphiMap_d0 = nullptr
private

Definition at line 97 of file ConstrainedTrackProvider.h.

◆ m_etaphiMap_P

TH2F* Trk::ConstrainedTrackProvider::m_etaphiMap_P = nullptr
private

Definition at line 90 of file ConstrainedTrackProvider.h.

◆ m_etaphiMap_z0

TH2F* Trk::ConstrainedTrackProvider::m_etaphiMap_z0 = nullptr
private

Definition at line 105 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_inputKey

SG::ReadHandleKey<TrackCollection> Trk::ConstrainedTrackProvider::m_inputKey
private
Initial value:
{
this, "InputTracksCollection", "Tracks"}

Definition at line 79 of file ConstrainedTrackProvider.h.

79 {
80 this, "InputTracksCollection", "Tracks"};

◆ m_logStream

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

logfile output stream

Definition at line 53 of file ITrackCollectionProvider.h.

◆ m_maxd0

DoubleProperty Trk::ConstrainedTrackProvider::m_maxd0 {this, "Maxd0", 500.}
private

Definition at line 74 of file ConstrainedTrackProvider.h.

74{this, "Maxd0", 500.};

◆ m_maxPt

DoubleProperty Trk::ConstrainedTrackProvider::m_maxPt {this, "MaxPt", 100.}
private

Definition at line 77 of file ConstrainedTrackProvider.h.

77{this, "MaxPt", 100.};

◆ m_maxz0

DoubleProperty Trk::ConstrainedTrackProvider::m_maxz0 {this, "Maxz0", 500.}
private

Definition at line 75 of file ConstrainedTrackProvider.h.

75{this, "Maxz0", 500.};

◆ m_minPIXHits

IntegerProperty Trk::ConstrainedTrackProvider::m_minPIXHits {this, "MinPIXHits", 0}
private

Definition at line 71 of file ConstrainedTrackProvider.h.

71{this, "MinPIXHits", 0};

◆ m_minPt

DoubleProperty Trk::ConstrainedTrackProvider::m_minPt {this, "MinPt", 15.}
private

Definition at line 76 of file ConstrainedTrackProvider.h.

76{this, "MinPt", 15.};

◆ m_minSCTHits

IntegerProperty Trk::ConstrainedTrackProvider::m_minSCTHits {this, "MinSCTHits", 0}
private

Definition at line 72 of file ConstrainedTrackProvider.h.

72{this, "MinSCTHits", 0};

◆ m_minTRTHits

IntegerProperty Trk::ConstrainedTrackProvider::m_minTRTHits {this, "MinTRTHits", 0}
private

Definition at line 73 of file ConstrainedTrackProvider.h.

73{this, "MinTRTHits", 0};

◆ m_outputKey

SG::WriteHandleKey<TrackCollection> Trk::ConstrainedTrackProvider::m_outputKey
private
Initial value:
{
this, "OutputTracksCollection", "AlignmentConstrainedTracks"}

Definition at line 81 of file ConstrainedTrackProvider.h.

81 {
82 this, "OutputTracksCollection", "AlignmentConstrainedTracks"};

◆ m_reduceConstraintUncert_z0

DoubleProperty Trk::ConstrainedTrackProvider::m_reduceConstraintUncert_z0
private
Initial value:
{this, "ReduceConstraintUncert_z0", 1.,
"Reduce the uncertainty on z0 track parameter constraint by this amount"}

Definition at line 67 of file ConstrainedTrackProvider.h.

67 {this, "ReduceConstraintUncert_z0", 1.,
68 "Reduce the uncertainty on z0 track parameter constraint by this amount"};

◆ m_reduceConstraintUncertainty

DoubleProperty Trk::ConstrainedTrackProvider::m_reduceConstraintUncertainty
private
Initial value:
{
this, "ReduceConstraintUncertainty", 1.,
"Reduce the uncertainty on the track parmater constraint by this amount"}

Definition at line 64 of file ConstrainedTrackProvider.h.

64 {
65 this, "ReduceConstraintUncertainty", 1.,
66 "Reduce the uncertainty on the track parmater constraint by this amount"};

◆ m_runOutlierRemoval

Gaudi::Property<Trk::RunOutlierRemoval> Trk::ConstrainedTrackProvider::m_runOutlierRemoval
private
Initial value:
{
this, "RunOutlierRemoval", true, "run outlier removal in the GX2 fitter"}

Definition at line 54 of file ConstrainedTrackProvider.h.

54 {
55 this, "RunOutlierRemoval", true, "run outlier removal in the GX2 fitter"};

◆ m_scalepmaptogev

BooleanProperty Trk::ConstrainedTrackProvider::m_scalepmaptogev {this, "ScalePMapToGeV", false}
private

Definition at line 56 of file ConstrainedTrackProvider.h.

56{this, "ScalePMapToGeV", false};

◆ m_SelectByCharge

BooleanProperty Trk::ConstrainedTrackProvider::m_SelectByCharge {this, "SelectByCharge", false}
private

Definition at line 111 of file ConstrainedTrackProvider.h.

111{this, "SelectByCharge", false};

◆ m_SelectPositive

BooleanProperty Trk::ConstrainedTrackProvider::m_SelectPositive {this, "SelectPositive", true}
private

Definition at line 112 of file ConstrainedTrackProvider.h.

112{this, "SelectPositive", true};

◆ m_trackFitter

ToolHandle<IGlobalTrackFitter> Trk::ConstrainedTrackProvider::m_trackFitter
private
Initial value:
{this, "TrackFitter",
"Trk::GlobalChi2Fitter/InDetTrackFitter", "normal track fitter"}

Definition at line 51 of file ConstrainedTrackProvider.h.

51 {this, "TrackFitter",
52 "Trk::GlobalChi2Fitter/InDetTrackFitter", "normal track fitter"};

◆ m_unconstrainedTracks

int Trk::ConstrainedTrackProvider::m_unconstrainedTracks = 0
private

Definition at line 62 of file ConstrainedTrackProvider.h.

◆ m_useConstrainedTrkOnly

BooleanProperty Trk::ConstrainedTrackProvider::m_useConstrainedTrkOnly {this, "UseConstrainedTrkOnly", false}
private

Definition at line 58 of file ConstrainedTrackProvider.h.

58{this, "UseConstrainedTrkOnly", false};

◆ m_useConstraintError

BooleanProperty Trk::ConstrainedTrackProvider::m_useConstraintError {this, "UseConstraintError", true}
private

Definition at line 59 of file ConstrainedTrackProvider.h.

59{this, "UseConstraintError", true};

◆ 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: