ATLAS Offline Software
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
InDet::TRT_SeededTrackFinder_ATL Class Reference

#include <TRT_SeededTrackFinder_ATL.h>

Inheritance diagram for InDet::TRT_SeededTrackFinder_ATL:
Collaboration diagram for InDet::TRT_SeededTrackFinder_ATL:

Classes

class  EventData
 

Public Member Functions

 TRT_SeededTrackFinder_ATL (const std::string &, const std::string &, const IInterface *)
 Standard tool methods
More...
 
virtual ~TRT_SeededTrackFinder_ATL ()
 
virtual StatusCode initialize () override
 
virtual StatusCode finalize () override
 
virtual std::list< Trk::Track * > getTrack (const EventContext &ctx, InDet::ITRT_SeededTrackFinder::IEventData &event_data, const Trk::TrackSegment &) const override
 Main methods for local track finding
More...
 
virtual std::unique_ptr< InDet::ITRT_SeededTrackFinder::IEventDatanewEvent (const EventContext &ctx, SiCombinatorialTrackFinderData_xk &combinatorialData) const override
 New event initialization. More...
 
virtual std::unique_ptr< InDet::ITRT_SeededTrackFinder::IEventDatanewRegion (const EventContext &ctx, SiCombinatorialTrackFinderData_xk &combinatorialData, const std::vector< IdentifierHash > &, const std::vector< IdentifierHash > &) const override
 New region intialization. More...
 
virtual void endEvent (InDet::ITRT_SeededTrackFinder::IEventData &event_data) const override
 End of event tasks
More...
 
MsgStream & dump (MsgStream &out) const override
 Print internal tool parameters and status
More...
 
std::ostream & dump (std::ostream &out) const override
 
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 magneticFieldInit ()
 Private Methods
More...
 
std::unique_ptr< const Trk::TrackParametersgetTP (MagField::AtlasFieldCache &fieldCache, const Trk::SpacePoint *, const Trk::TrackParameters &, bool &, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data) const
 Update track parameters through space point propagation
More...
 
std::list< Trk::Track * > findTrack (const EventContext &ctx, MagField::AtlasFieldCache &fieldCache, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data, const Trk::TrackParameters &, const Trk::TrackSegment &) const
 Find the corresponding list of Si tracks
More...
 
std::unique_ptr< const Trk::TrackParametersaddNoise (const SiNoise_bt &, const Trk::TrackParameters &, int) const
 Add material effects
More...
 
bool checkSeed (std::vector< const Trk::SpacePoint * > &, const Trk::TrackSegment &, const Trk::TrackParameters &) const
 Check consistency of seed and TRT track segment. More...
 
void setTrackQualityCuts ()
 Set the track quality cuts for combinatorial track finding
More...
 
std::list< Trk::Track * > cleanTrack (std::list< Trk::Track * >) const
 Eliminate spurious Pixel clusters in track
More...
 
bool isCaloCompatible (const Trk::TrackParameters &, const InDet::TRT_SeededTrackFinder_ATL::EventData &event_data) const
 Only propagate to the Si if the TRT segment is compatible with a calo measurement. More...
 
MsgStream & dumpconditions (MsgStream &out) const
 
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...
 

Static Protected Member Functions

static std::unique_ptr< const Trk::TrackParametersmodifyTrackParameters (const Trk::TrackParameters &, int)
 Modify track parameters if brem correction
More...
 
static void clusterTrackMap (Trk::Track *, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
 Map PRDs-tracks. More...
 
static bool newClusters (const std::vector< const Trk::SpacePoint * > &, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
 Seed used by another track?
More...
 
static bool newSeed (const std::vector< const Trk::SpacePoint * > &, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
 Seed SPs used by other high quality tracks? More...
 
static bool isNewTrack (Trk::Track *, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
 Clean-up duplicate tracks
More...
 

Protected Attributes

StringProperty m_fieldmode
 Protected Data
More...
 
Trk::MagneticFieldProperties m_fieldprop
 
ToolHandle< InDet::ISiDetElementsRoadMakerm_roadmaker {this, "RoadTool", "InDet::SiDetElementsRoadMaker_xk"}
 Magnetic field properties. More...
 
ToolHandle< InDet::ITRT_SeededSpacePointFinderm_seedmaker {this, "SeedTool", ""}
 
ToolHandle< Trk::IPropagatorm_proptool {this, "PropagatorTool", "Trk::RungeKuttaPropagator/InDetPropagator"}
 
ToolHandle< Trk::IUpdatorm_updatorTool {this, "UpdatorTool", "Trk::KalmanUpdator_xk/InDetPatternUpdator"}
 
ToolHandle< InDet::ISiCombinatorialTrackFinderm_tracksfinder {this, "CombinatorialTrackFinder", "InDet::SiCombinatorialTrackFinder_xk"}
 
SG::ReadCondHandleKey< AtlasFieldCacheCondObjm_fieldCondObjInputKey
 
const TRT_IDm_trtId = nullptr
 ID TRT helper. More...
 
DoubleProperty m_xi2max {this, "Xi2max", 15., "max Xi2 for updators"}
 Track quality cuts to be passed to the combinatorial track finder. More...
 
DoubleProperty m_xi2maxNoAdd
 
DoubleProperty m_xi2maxlink
 
DoubleProperty m_pTmin {this, "pTmin", 500., "min pT"}
 
IntegerProperty m_nholesmax {this, "nHolesMax", 1, "Max number holes"}
 
IntegerProperty m_dholesmax
 
IntegerProperty m_nclusmin {this, "nClustersMin", 4, "Min number clusters"}
 
IntegerProperty m_nwclusmin
 
BooleanProperty m_bremCorrect
 
BooleanProperty m_propR
 
BooleanProperty m_useassoTool
 
InDet::TrackQualityCuts m_trackquality
 
DoubleArrayProperty m_errorScale
 
DoubleProperty m_outlierCut
 
BooleanProperty m_searchInCaloROI
 
SG::ReadHandleKey< ROIPhiRZContainerm_caloClusterROIKey {this, "EMROIPhiRZContainer", ""}
 
DoubleProperty m_phiWidth {this, "phiWidth", 0.3}
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

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

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

InDet::TRT_SeededTrackFinderATL is an algorithm which produces tracks along the road of InDetDD::SiDetectorElement* sorted in propagation order.

Author
Thoma.nosp@m.s.Ko.nosp@m.ffas@.nosp@m.cern.nosp@m..ch

Definition at line 81 of file TRT_SeededTrackFinder_ATL.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

◆ TRT_SeededTrackFinder_ATL()

InDet::TRT_SeededTrackFinder_ATL::TRT_SeededTrackFinder_ATL ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Standard tool methods

Definition at line 76 of file TRT_SeededTrackFinder_ATL.cxx.

78  : AthAlgTool(t,n,p)
79 {
80  declareInterface<ITRT_SeededTrackFinder>(this);
81 }

◆ ~TRT_SeededTrackFinder_ATL()

InDet::TRT_SeededTrackFinder_ATL::~TRT_SeededTrackFinder_ATL ( )
virtualdefault

Member Function Documentation

◆ addNoise()

std::unique_ptr< const Trk::TrackParameters > InDet::TRT_SeededTrackFinder_ATL::addNoise ( const SiNoise_bt noise,
const Trk::TrackParameters P1,
int  isSmooth 
) const
protected

Add material effects

Definition at line 661 of file TRT_SeededTrackFinder_ATL.cxx.

661  {
662  ATH_MSG_DEBUG( "Adding noise to track parameters... " );
663  const double covAzim=noise.covarianceAzim();
664  const double covPola=noise.covariancePola();
665  const double covIMom=noise.covarianceIMom();
666  const double corIMom=noise.correctionIMom();
667  //Get the noise augmented parameters and the 15 lower half covariance matrix elements from the first input track parameters
668  const AmgVector(5)& Vp1 = P1.parameters();
669  double M[5]={Vp1[0],Vp1[1],Vp1[2],Vp1[3],Vp1[4]};
670  if(!isSmooth){
671  M[4] *= corIMom;
672  }else{
673  M[4] /= corIMom;
674  }
675  const AmgSymMatrix(5)* C = P1.covariance();
676  if(C){
677  AmgSymMatrix(5) nC;
678  nC = (*C);
679  nC(2,2)+=covAzim;
680  nC(3,3)+=covPola;
681  nC(4,4)+=covIMom;
682  return P1.associatedSurface().createUniqueTrackParameters(M[0],M[1],M[2],M[3],M[4],nC);
683  }
684  return nullptr;
685 }

◆ checkSeed()

bool InDet::TRT_SeededTrackFinder_ATL::checkSeed ( std::vector< const Trk::SpacePoint * > &  vsp,
const Trk::TrackSegment tS,
const Trk::TrackParameters tP 
) const
protected

Check consistency of seed and TRT track segment.

Get TRT segment track parameters

Process only if endcap-transition region

Find the global z position of first endcap hit on TRT segment

Propagate at the z position of 1st endcap hit on TRT segment

Definition at line 694 of file TRT_SeededTrackFinder_ATL.cxx.

695  {
696  bool isGood = true;
697  int nEC = 0; double gz = 0.;
699  const AmgVector(5)& pTS=tP.parameters();
701  if(std::abs(std::log(std::tan(pTS[3]/2.)))>0.8){
703  for(int it=0; it<int(tS.numberOfMeasurementBases()); it++){
704  //Check if it is a pseudo measurement and move on
705  if ( dynamic_cast<const Trk::PseudoMeasurementOnTrack*>(tS.measurement(it)) ) continue;
706  const InDet::TRT_DriftCircleOnTrack* trtcircle = dynamic_cast<const InDet::TRT_DriftCircleOnTrack*>(tS.measurement(it));
707  if(trtcircle){
708  Identifier id=trtcircle->detectorElement()->identify();
709  int isB = m_trtId->barrel_ec(id);
710  if(isB==2 || isB==-2) nEC++;
711  if(nEC==1){
712  gz = trtcircle->globalPosition().z();
713  break;
714  }
715  }
716  }
717  double tanTheta = std::tan(thetaFromSpacePoints(vsp[0], vsp[1]));
719  double propR = getRadius(vsp[1]) + (gz-getZ(vsp[1]))*tanTheta;
720  if(propR<620. || propR>1010.) isGood=false;
721  double zIn = gz-propR/tanTheta;
722  if(zIn>300.) isGood = false;
723  }
724  return isGood;
725 }

◆ cleanTrack()

std::list< Trk::Track * > InDet::TRT_SeededTrackFinder_ATL::cleanTrack ( std::list< Trk::Track * >  lTrk) const
protected

Eliminate spurious Pixel clusters in track

Concentrate on the Si component of the track

Throw out any spurious pixel hits.Need to rebuild the vector of track states on surface from scratch, since it's const in EDM

Construct the new track

Definition at line 984 of file TRT_SeededTrackFinder_ATL.cxx.

984  {
985  std::list<Trk::Track*> cleanSiTrack; // List of clean Si tracks per TRT segment
986  std::list<Trk::Track*>::const_iterator it = lTrk.begin();
987  std::list<Trk::Track*>::const_iterator itEnd = lTrk.end();
988  for (; it != itEnd ; ++it){
989  int nPixHits = 0; //Number of Pixel PRDs
990  int nSctHits = 0; //Number of SCT PRDs
991  double pixR = 0.; //Radial position of last pixel PRD
992  double sctR = 0.; //Radial position of first SCT PRD
993 
994  const Trk::TrackStates* newtsos = (*it)->trackStateOnSurfaces();
995  if(!newtsos) continue;
996  Trk::TrackStates::const_iterator itp, itpe=newtsos->end();
997  for(itp=newtsos->begin(); itp!=itpe; ++itp){
999  const InDet::SiClusterOnTrack* clus = dynamic_cast<const InDet::SiClusterOnTrack*>((*itp)->measurementOnTrack());
1000  if(clus && ((*itp)->type(Trk::TrackStateOnSurface::Measurement))){ //Count the number of hits used in the track
1001  const InDet::SiCluster* RawDataClus=dynamic_cast<const InDet::SiCluster*>(clus->prepRawData());
1002  if(RawDataClus==nullptr){
1003  ATH_MSG_DEBUG( "Si Cluster without PrepRawData!!!" );
1004  continue;
1005  }
1006  if(RawDataClus->detectorElement()->isPixel()){
1007  nPixHits++;
1008  pixR = RawDataClus->globalPosition().perp();
1009  }
1010  if((RawDataClus->detectorElement()->isSCT()) && (nSctHits==0)) {
1011  sctR = RawDataClus->globalPosition().perp();
1012  nSctHits++;
1013  break;
1014  }
1015  }
1016  }
1017 
1019  if(nPixHits==1 && (sctR-pixR)>200.){
1020  auto cltsos = std::make_unique<Trk::TrackStates>();
1021  auto fq = (*it)->fitQuality()->uniqueClone();
1022  // copy track Si states into track
1024  for(p_tsos=newtsos->begin()+nPixHits;p_tsos!=newtsos->end();++p_tsos){
1025  cltsos->push_back( (*p_tsos)->clone() );
1026  }
1029  // info.setPatternRecognitionInfo(Trk::TrackInfo::TRTSeededTrackFinder);
1030  Trk::Track* nTrack = new Trk::Track(info, std::move(cltsos), std::move(fq));
1031  cleanSiTrack.push_back(nTrack);
1032  delete (*it);
1033  }else{
1034  cleanSiTrack.push_back((*it));
1035  }
1036  }
1037 
1038  return cleanSiTrack;
1039 }

◆ clusterTrackMap()

void InDet::TRT_SeededTrackFinder_ATL::clusterTrackMap ( Trk::Track Tr,
InDet::TRT_SeededTrackFinder_ATL::EventData event_data 
)
staticprotected

Map PRDs-tracks.

Definition at line 783 of file TRT_SeededTrackFinder_ATL.cxx.

785 {
787  m = Tr->measurementsOnTrack()->begin(),
788  me = Tr->measurementsOnTrack()->end ();
789 
790  for(; m!=me; ++m) {
791  const Trk::PrepRawData* prd = ((const Trk::RIO_OnTrack*)(*m))->prepRawData();
792  if(prd) event_data.clusterTrack().insert(std::make_pair(prd,Tr));
793  }
794 }

◆ 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; }

◆ dump() [1/2]

MsgStream & InDet::TRT_SeededTrackFinder_ATL::dump ( MsgStream &  out) const
overridevirtual

Print internal tool parameters and status

Implements InDet::ITRT_SeededTrackFinder.

Definition at line 141 of file TRT_SeededTrackFinder_ATL.cxx.

141  {
142  out<<"\n";
143  return dumpconditions(out);
144 }

◆ dump() [2/2]

std::ostream & InDet::TRT_SeededTrackFinder_ATL::dump ( std::ostream &  out) const
overridevirtual

Implements InDet::ITRT_SeededTrackFinder.

Definition at line 201 of file TRT_SeededTrackFinder_ATL.cxx.

201  {
202  return out;
203 }

◆ dumpconditions()

MsgStream & InDet::TRT_SeededTrackFinder_ATL::dumpconditions ( MsgStream &  out) const
protected

Definition at line 151 of file TRT_SeededTrackFinder_ATL.cxx.

151  {
152  auto paddedName=[](const auto & str)->std::string{
153  const auto n = 62-std::size(str);
154  std::string result(n,' '); //padding
155  result+='|';
156  result+='\n';
157  return std::string(str)+result;
158  };
159 
160  auto format = [](MsgStream& m)->MsgStream&{
161  m<<std::setw(12)<<std::setprecision(5);
162  return m;
163  };
164 
165  constexpr std::string_view fieldmode[9] ={"NoField" ,"ConstantField","SolenoidalField",
166  "ToroidalField" ,"Grid3DField" ,"RealisticField" ,
167  "UndefinedField","AthenaField" , "?????" };
168 
170  if(mode<0 || mode>8 ) mode = 8;
171 
172  constexpr auto horizontalRule{
173  "|-----------------------------------------------------------------------------------------|\n"
174  };
175 
176  constexpr auto padding{" |\n"};
177  out<<horizontalRule;
178  out<<"| Tool for propagation | "<<paddedName(m_proptool.type());
179  out<<"| Tool for updator | "<<paddedName(m_updatorTool.type());
180  out<<"| Tool for road maker | "<<paddedName(m_roadmaker.type());
181  out<<"| Tool for seed maker | "<<paddedName(m_seedmaker.type());
182  out<<"| Tool for track finding | "<<paddedName(m_tracksfinder.type());
183  out<<"| Magnetic field mode | "<<paddedName(fieldmode[mode]);
184  out<<"| Min pT of track (MeV) | "<<format<<m_pTmin<<padding;
185  out<<"| Max Xi2 for cluster | "<<format<<m_xi2max<<padding;
186  out<<"| Max Xi2 for outlayer | "<<format<<m_xi2maxNoAdd<<padding;
187  out<<"| Max Xi2 for link | "<<format<<m_xi2maxlink<<padding;
188  out<<"| Min number of clusters | "<<std::setw(12)<<m_nclusmin<<padding;
189  out<<"| Max number holes | "<<std::setw(12)<<m_nholesmax<<padding;
190  out<<"| Max holes gap | "<<std::setw(12)<<m_dholesmax<<padding;
191  out<<horizontalRule;
192  return out;
193 }

◆ endEvent()

void InDet::TRT_SeededTrackFinder_ATL::endEvent ( InDet::ITRT_SeededTrackFinder::IEventData event_data) const
overridevirtual

End of event tasks

Implements InDet::ITRT_SeededTrackFinder.

Definition at line 262 of file TRT_SeededTrackFinder_ATL.cxx.

262  {
263  //event_data cannot be const if passed to m_tracksfinder->endEvent
265  // End event for track finder tool
266  m_tracksfinder->endEvent(event_data.combinatorialData());
267 
268 }

◆ 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

◆ finalize()

StatusCode InDet::TRT_SeededTrackFinder_ATL::finalize ( )
overridevirtual

Implements InDet::ITRT_SeededTrackFinder.

Definition at line 132 of file TRT_SeededTrackFinder_ATL.cxx.

132  {
133  return StatusCode::SUCCESS;
134 }

◆ findTrack()

std::list< Trk::Track * > InDet::TRT_SeededTrackFinder_ATL::findTrack ( const EventContext &  ctx,
MagField::AtlasFieldCache fieldCache,
InDet::TRT_SeededTrackFinder_ATL::EventData event_data,
const Trk::TrackParameters initTP,
const Trk::TrackSegment tS 
) const
protected

Find the corresponding list of Si tracks

List of space points in the current seed, starting from the one at the smaller radius

end of loop over seeds for this TRT segment

Definition at line 355 of file TRT_SeededTrackFinder_ATL.cxx.

357  {
358  SiCombinatorialTrackFinderData_xk& combinatorialData=event_data.combinatorialData();
359  //Return list copied by value (fix!!)
360  std::list<Trk::Track*> associatedSiTrack; // List of found tracks per TRT segment
361  constexpr double pi2 = 2.*M_PI;
362  constexpr double pi=M_PI;
363 
364  //Get the seeds
365  std::list<std::pair<const Trk::SpacePoint*,const Trk::SpacePoint*> >
366  SpE = m_seedmaker->find2Sp(ctx, initTP,event_data.spacePointFinderEventData()); //Get a list of SP pairs
367 
368  ATH_MSG_DEBUG("---------------> SP SEED LIST SIZE " << SpE.size() );
369  if(SpE.empty()){return associatedSiTrack;}
370 
371  //
372  // --------------- loop over the found seeds
373  //
374 
375  //Get the track states on surface that correspond to each SP pair that came from the seeding
376  std::vector<const Trk::SpacePoint*> SpVec{nullptr, nullptr};
377 
378  std::list<std::pair<const Trk::SpacePoint*,const Trk::SpacePoint*> >::iterator r,re=SpE.end();
379  for(r=SpE.begin();r!=re; ++r){
380  std::list<Trk::Track*> aTracks ; // List of tracks found per seed
381  std::list<Trk::Track*> cTracks ; // List of cleaned tracks found per seed
382  event_data.noise().reset(); //Initiate the noise production tool at the beginning of each seed
383 
384  //
385  // --------------- filter SP to improve prediction, scale errors
386  //
387 
388  //Get the track parameters to use to get the detector elements for each SP pair
389  std::pair<const Trk::SpacePoint*, const Trk::SpacePoint*>& pSP = *r;
390  if (pSP.first != pSP.second){
391  ATH_MSG_DEBUG( "----> Seed Pair: SP 1 " << (pSP.first)->r() << " SP 2 " << (pSP.second)->r() );
392  } else {
393  if(msgLvl(MSG::DEBUG)) {
394  msg(MSG::DEBUG) << "----> Seed Single: SP 1 " << (pSP.first)->r() << "\n";
395  msg(MSG::DEBUG) << " Will not process for the time being ! A special module is needed\n" ;
396  msg(MSG::DEBUG) << " to deal with late conversion (no search and stablized input fit ).\n";
397  msg(MSG::DEBUG) << " Current version is unstable in the SP updates and gets unpredictable results." << endmsg;
398  }
399  continue;
400  }
401 
403  SpVec[0]=(pSP.second);
404  SpVec[1]=(pSP.first);
405  if(!newClusters(SpVec,event_data)) {
406  ATH_MSG_DEBUG( "Seed SPs already used by a single track. Ignore..." );
407  continue;
408  }
409  if(!newSeed(SpVec,event_data)) {
410  ATH_MSG_DEBUG( "Seed SPs already used by other tracks. Ignore..." );
411  continue;
412  }
413 
414  //
415  // ----------------Check the SP seed if field is ON
416  //
417  if(fieldCache.solenoidOn()){
418  bool seedGood = checkSeed(SpVec,tS,initTP);
419  if(!seedGood && m_propR) {
420  ATH_MSG_DEBUG( "Seed not consistent with TRT segment. Ignore..." );
421  continue;
422  }
423  }
424 
425  //
426  // ----------------Get new better track parameters using the SP seed
427  //
428  ATH_MSG_DEBUG( "Get better track parameters using the seed" );
429  double newTheta = thetaFromSpacePoints(SpVec[0], SpVec[1]);
430  const AmgVector(5)& iv = initTP.parameters();
431  double newPhi = iv[2];
432  //Protect for theta and phi being out of range
433  if (newTheta > pi) newTheta = fmod(newTheta+pi,pi2)-pi;
434  else if(newTheta <-pi) newTheta = fmod(newTheta-pi,pi2)+pi;
435  if(newTheta<0.){ newTheta = -newTheta; newPhi+=pi; }
436  if (newPhi > pi) newPhi = fmod(newPhi+pi,pi2)-pi;
437  else if(newPhi <-pi) newPhi = fmod(newPhi-pi,pi2)+pi;
438  if(newTheta<0.27) {
439  ATH_MSG_DEBUG("Pseudorapidity greater than 2.Ignore" );
440  continue;
441  }
442 
443  const AmgSymMatrix(5) * vCM = initTP.covariance();
444  AmgSymMatrix(5) nvCM;
445  nvCM<<
446  m_errorScale[0]*m_errorScale[0]*(*vCM)(0,0),0.,0.,0.,0.,
447  0.,m_errorScale[1]*m_errorScale[1]*(*vCM)(1,1),0.,0.,0.,
448  0.,0.,m_errorScale[2]*m_errorScale[2]*(*vCM)(2,2),0.,0.,
449  0.,0.,0.,m_errorScale[3]*m_errorScale[3]*(*vCM)(3,3),0.,
450  //cppcheck-suppress constStatement
451  0.,0.,0.,0.,m_errorScale[4]*m_errorScale[4]*(*vCM)(4,4);
452 
453 
454  //New intial track parameters saved as MeasuredAtaStraightLine
455  std::unique_ptr<const Trk::TrackParameters> niTP =
456  initTP.associatedSurface().createUniqueTrackParameters(
457  iv[0], iv[1], newPhi, newTheta, iv[4], nvCM);
458 
459  if (niTP) {
460  ATH_MSG_DEBUG("Initial Track Parameters created and scaled from TRT segment, ");
461  ATH_MSG_VERBOSE(*niTP);
462  } else {
463  ATH_MSG_DEBUG("Could not get initial TRT track parameters! " );
464  continue;
465  }
466 
467  //
468  // ----------------Propagate through the SP seed
469  //
470  ATH_MSG_DEBUG( "Propagating through the seed" );
471  bool outl = false;
472 
473  //update with first SP
474  ATH_MSG_DEBUG( "Update with 1st SP from seed" );
475  std::unique_ptr<const Trk::TrackParameters> upTP = getTP(fieldCache, pSP.first,*niTP,outl,event_data);
476  //If no track parameters are found, go to the next seed
477  if(!upTP){
478  ATH_MSG_DEBUG( "Extrapolation through seed failed!Seed bogus.Move to next seed" );
479  continue;
480  }
481  //Not good if SP pair has outliers. Clean up the memory and move to next seed
482  if(outl){
483  ATH_MSG_DEBUG("Seed with outliers. Will not process!");
484  continue;
485  }
486 
487  //update with second SP ?
488  if (pSP.first != pSP.second) {
489  //update with second SP
490  ATH_MSG_DEBUG( "Update with 2nd SP from seed" );
491  std::unique_ptr<const Trk::TrackParameters> newTP = getTP(fieldCache, pSP.second,*upTP,outl,event_data);
492  //If no track parameters are found, go to the next seed
493  if(!newTP){
494  ATH_MSG_DEBUG( "Extrapolation through seed failed!Seed bogus.Move to next seed" );
495  continue;
496  }
497  //Not good if SP pair has outliers. Clean up the memory and move to next seed
498  if(outl){
499  ATH_MSG_DEBUG("Seed with outliers.Will not process!");
500  continue;
501  }
502  // copy the newTP to upTP
503  upTP = std::move(newTP);
504  }
505 
506  //Protect the road maker tool when the momentum is too low since the particle will spiral inside the tracker
507  if(upTP->momentum().perp()<m_pTmin){
508  ATH_MSG_DEBUG("Low pT.Stop! ");
509  continue;
510  }
511 
512  //
513  // --------------- get Si detector element road
514  //
515  const Trk::PerigeeSurface persurf (Amg::Vector3D(0,0,0));
516 
517  //Get track parameters at the end of SCT to start backwards propagation
518  auto per = m_proptool->propagate(ctx,*upTP,persurf,Trk::oppositeMomentum,false,
519  m_fieldprop,Trk::nonInteracting); //Propagate
520  if(!per){
521  ATH_MSG_DEBUG("No extrapolated track parameters!");
522  continue;
523  }
524 
525  if(msgLvl(MSG::VERBOSE)) {
526  msg(MSG::VERBOSE) << "Perigee after SP updates at same surface" << endmsg;
527  msg(MSG::VERBOSE) << *per << endmsg;
528  }
529 
530  //Get list of InDet Elements
531  std::vector<const InDetDD::SiDetectorElement*> DE;
532  m_roadmaker->detElementsRoad(ctx, fieldCache, *per,Trk::alongMomentum,DE,event_data.roadMakerData());
533  if( int(DE.size()) < m_nclusmin){ //Not enough detector elements to satisfy the minimum number of clusters requirement. Stop
534  ATH_MSG_DEBUG( "Too few detector elements, not expected" );
535  continue;
536  }
537 
538  //
539  // --------------- Cast it to measured parameters at 2nd SP with diagonal error matrix
540  //
541  const AmgVector(5)& piv = upTP->parameters();
542 
543  //Get the intial Error matrix, diagonalize it and scale the errors
544  std::unique_ptr<const Trk::TrackParameters> mesTP{};
545  const AmgSymMatrix(5)* pvCM = upTP->covariance();
546  if(pvCM){
547  AmgSymMatrix(5) pnvCM;
548  pnvCM<<
549  m_errorScale[0]*m_errorScale[0]*(*pvCM)(0,0),0.,0.,0.,0.,
550  0.,m_errorScale[1]*m_errorScale[1]*(*pvCM)(1,1),0.,0.,0.,
551  0.,0.,m_errorScale[2]*m_errorScale[2]*(*pvCM)(2,2),0.,0.,
552  0.,0.,0.,m_errorScale[3]*m_errorScale[3]*(*pvCM)(3,3),0.,
553  //cppcheck-suppress constStatement
554  0.,0.,0.,0.,m_errorScale[4]*m_errorScale[4]*(*pvCM)(4,4);
555 
556  mesTP = upTP->associatedSurface().createUniqueTrackParameters(piv[0],piv[1],piv[2],piv[3],piv[4],pnvCM);
557  if(mesTP){
558  ATH_MSG_DEBUG( "Initial Track Parameters at 1st SP created and scaled from TRT segment, " );
559  ATH_MSG_VERBOSE( *mesTP );
560  }else{
561  continue;
562  }
563  }else{
564  continue;
565  }
566 
567  //
568  // --------------- Get the Si extensions using the combinatorial track finding tool
569  //
570  std::vector<Amg::Vector3D> Gp;
571  aTracks = m_tracksfinder->getTracks(combinatorialData, *mesTP, SpVec, Gp, DE, m_trackquality, ctx);
572  if(aTracks.empty()) {
573  ATH_MSG_DEBUG("No tracks found by the combinatorial track finder!");
574  }
575 
576  //
577  // --------------- Drop spurious pixel hits
578  //
579  cTracks=cleanTrack(aTracks);
580 
581  //
582  // --------------- Add tracks in the track multimap and in the overall list of TRT segment associated tracks
583  //
584  std::list<Trk::Track*>::iterator t = cTracks.begin();
585  while(t!=cTracks.end()) {
586  if(!isNewTrack((*t),event_data)) {
587  delete (*t);
588  cTracks.erase(t++);
589  } else {
590  clusterTrackMap((*t),event_data);
591  associatedSiTrack.push_back((*t++));
592  }
593  }
594  }
595 
596  return associatedSiTrack;
597 }

◆ getTP()

std::unique_ptr< const Trk::TrackParameters > InDet::TRT_SeededTrackFinder_ATL::getTP ( MagField::AtlasFieldCache fieldCache,
const Trk::SpacePoint SP,
const Trk::TrackParameters startTP,
bool &  outl,
InDet::TRT_SeededTrackFinder_ATL::EventData event_data 
) const
protected

Update track parameters through space point propagation

Definition at line 604 of file TRT_SeededTrackFinder_ATL.cxx.

607  {
608  std::unique_ptr<const Trk::TrackParameters> iTP{};
609  outl = false;
610  const Trk::Surface& surf = SP->associatedSurface();//Get the associated surface
611  Trk::PropDirection dir = Trk::oppositeMomentum; //Propagate backwards i.e. opposite momentum when filtering
612  Trk::ParticleHypothesis part = Trk::nonInteracting;//Choose a non interacting particle
613  auto eTP = m_proptool->propagate(Gaudi::Hive::currentContext(),
614  startTP,surf,dir,false,m_fieldprop,part); //Propagate
615 
616  if(!eTP){
617  ATH_MSG_DEBUG( "Extrapolation to Si element failed");
618  ATH_MSG_VERBOSE( surf );
619  return nullptr;
620  }else{
621  //Based on the hit information update the track parameters and the error matrix
622  Trk::FitQualityOnSurface* sct_fitChi2 = nullptr;
623  std::unique_ptr<const Trk::TrackParameters> uTP = m_updatorTool->addToState(*eTP,SP->localParameters(),SP->localCovariance(),sct_fitChi2);
624  if(!uTP) { //The updator failed
625  if (sct_fitChi2) {
626  ATH_MSG_DEBUG( "Updator returned no update, but a DitQuality object, a leak !");
627  delete sct_fitChi2;
628  }
629  event_data.noise().production(-1,1,*eTP);
630 
631  iTP = addNoise(event_data.noise(),*eTP,0);
632  ATH_MSG_DEBUG("The updator failed! Count an outlier ");
633  outl = true;
634  }else{
635  //Keep as a measurement only if fit chi2 less than 25.Otherwise outlier
636  float outlierCut = m_outlierCut;
637  if(!fieldCache.solenoidOn()) outlierCut = 1000000.; // Increase the outlier chi2 cut if solenoid field is OFF
638  if( sct_fitChi2->chiSquared() < outlierCut && std::abs(uTP->parameters()[Trk::theta]) > 0.17 ){
639  ATH_MSG_DEBUG("Update worked, will update return track parameters, chi2: "<<(sct_fitChi2->chiSquared()));
640  event_data.noise().production(-1,1,*uTP);
641  iTP = addNoise(event_data.noise(),*uTP,0);
642  }else{
643  ATH_MSG_DEBUG("Outlier, did not satisfy cuts, chi2: "<<(sct_fitChi2->chiSquared())<<" "<<std::abs(uTP->parameters()[Trk::theta]));
644  event_data.noise().production(-1,1,*eTP);
645  iTP = addNoise(event_data.noise(),*eTP,0);
646  outl = true;
647  }
648  // Clean up
649  delete sct_fitChi2;
650  }
651  }
652  return iTP;
653 }

◆ getTrack()

std::list< Trk::Track * > InDet::TRT_SeededTrackFinder_ATL::getTrack ( const EventContext &  ctx,
InDet::ITRT_SeededTrackFinder::IEventData event_data,
const Trk::TrackSegment tS 
) const
overridevirtual

Main methods for local track finding

Main method. Calls private methods and returns a list of Si tracks

Implements InDet::ITRT_SeededTrackFinder.

Definition at line 276 of file TRT_SeededTrackFinder_ATL.cxx.

277  {
278  //non-const because findTrack alters event_data
280  // return list, will be copied by value (fix!)
281  std::list<Trk::Track*> aSiTrack;
282 
283  // protection for having the expected type of segment parameters
284  if ( tS.localParameters().parameterKey() != 31 ){
285  ATH_MSG_WARNING("Wrong type of TRT segment, rejected !" );
286  return aSiTrack;
287  }
288 
289  //Get the track segment information and build the initial track parameters
290  const Trk::LocalParameters& Vp = tS.localParameters();
292  throw std::logic_error("Unhandled surface.");
293  }
294 
295  const AmgSymMatrix(5)& locCov = tS.localCovariance();
296  AmgSymMatrix(5) ie = locCov;
297 
298  std::unique_ptr<Trk::TrackParameters> newPerPar =
299  tS.associatedSurface().createUniqueTrackParameters(Vp.get(Trk::loc1),
300  Vp.get(Trk::loc2),
301  Vp.get(Trk::phi),
302  Vp.get(Trk::theta),
303  Vp.get(Trk::qOverP),
304  ie);
305 
306  if(newPerPar){
307  ATH_MSG_DEBUG("Initial Track Parameters created from TRT segment, ");
308  ATH_MSG_VERBOSE(*newPerPar) ;
309  }else{
310  ATH_MSG_WARNING( "Could not get initial TRT track parameters, rejected! " );
311  return aSiTrack;
312  }
313  constexpr auto horizontalRule{"==============================================================\n"};
314  //Do the actual tracking and smoothing and get the Si track states on surface
315  ATH_MSG_DEBUG(horizontalRule << "Start initial search with 3-4 SCT layer combinations ");
316 
317  if (m_searchInCaloROI && !isCaloCompatible( *newPerPar, event_data )) {
318  return aSiTrack;
319  }
320 
321  // Get AtlasFieldCache
323  const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
324  if (fieldCondObj == nullptr) {
325  ATH_MSG_ERROR("TRT_SeededTrackFinder_ATL::getTracks: Failed to retrieve AtlasFieldCacheCondObj with key " << m_fieldCondObjInputKey.key());
326  return aSiTrack;
327  }
328  MagField::AtlasFieldCache fieldCache;
329  fieldCondObj->getInitializedCache (fieldCache);
330 
331  aSiTrack = findTrack(ctx, fieldCache, event_data, *newPerPar, tS);
332  if((aSiTrack.empty())&&(m_bremCorrect)){
333  ATH_MSG_DEBUG(horizontalRule << "Could not create track states on surface for this track!Try to add brem correction.");
334 
335  std::unique_ptr<const Trk::TrackParameters> modTP = modifyTrackParameters(*newPerPar,0);
336  ATH_MSG_VERBOSE("Modified TRT Track Parameters for brem. \n"<<(*modTP));
337  aSiTrack = findTrack(ctx, fieldCache, event_data, *modTP, tS);
338  if(aSiTrack.empty()){
339  ATH_MSG_DEBUG("Could not create track states on surface for this track after all!");
340  return aSiTrack;
341  }
342  ATH_MSG_DEBUG(horizontalRule);
343  }
344 
345  //Return list of tracks (by value !?)
346  return aSiTrack;
347 }

◆ initialize()

StatusCode InDet::TRT_SeededTrackFinder_ATL::initialize ( )
overridevirtual

Implements InDet::ITRT_SeededTrackFinder.

Definition at line 91 of file TRT_SeededTrackFinder_ATL.cxx.

91  {
92 
93  ATH_MSG_DEBUG("Initializing TRT_SeededTrackFinder_ATL");
96 
97  // Get propagator tool
98  ATH_CHECK(m_proptool.retrieve());
99 
100  // Get updator tool
101  ATH_CHECK(m_updatorTool.retrieve());
102 
103  // Get detector elements road maker tool
104  ATH_CHECK(m_roadmaker.retrieve());
105 
106  // Get seeds maker tool
107  ATH_CHECK(m_seedmaker.retrieve());
108 
109  // Get combinatorial track finder tool
110  ATH_CHECK( m_tracksfinder.retrieve());
111 
112  // Set track quality cuts for track finding tool
114 
115  ATH_CHECK( detStore()->retrieve(m_trtId, "TRT_ID"));
116 
117  // Get output print level
119 
120  //initlialize readhandlekey
122 
123  return StatusCode::SUCCESS;
124 
125 }

◆ 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 & InDet::ITRT_SeededTrackFinder::interfaceID ( )
inlinestaticinherited

Definition at line 91 of file ITRT_SeededTrackFinder.h.

92  {
93  return IID_ITRT_SeededTrackFinder;
94  }

◆ isCaloCompatible()

bool InDet::TRT_SeededTrackFinder_ATL::isCaloCompatible ( const Trk::TrackParameters Tp,
const InDet::TRT_SeededTrackFinder_ATL::EventData event_data 
) const
protected

Only propagate to the Si if the TRT segment is compatible with a calo measurement.

Definition at line 1046 of file TRT_SeededTrackFinder_ATL.cxx.

1047  {
1048  if(!event_data.caloClusterROIEM()) return false;
1049  const AmgVector(5)& Vp = Tp.parameters();
1050  const double F = Vp[2];
1051  ROIPhiRZContainer::const_iterator roi_iter = event_data.caloClusterROIEM()->lowerPhiBound( F, m_phiWidth);
1052  return roi_iter != event_data.caloClusterROIEM()->end();
1053 }

◆ isNewTrack()

bool InDet::TRT_SeededTrackFinder_ATL::isNewTrack ( Trk::Track Tr,
InDet::TRT_SeededTrackFinder_ATL::EventData event_data 
)
staticprotected

Clean-up duplicate tracks

Definition at line 944 of file TRT_SeededTrackFinder_ATL.cxx.

945  {
946 
947  const Trk::PrepRawData* prd [100];
948  std::multimap<const Trk::PrepRawData*,const Trk::Track*>::const_iterator
949  ti,t[100],te = event_data.clusterTrack().end();
950  int n = 0 ;
952  m = Tr->measurementsOnTrack()->begin(),
953  me = Tr->measurementsOnTrack()->end ();
954 
955  for(; m!=me; ++m) {
956  const Trk::PrepRawData* pr = ((const Trk::RIO_OnTrack*)(*m))->prepRawData();
957  if(pr) {
958  prd[n] =pr;
959  t[n] = event_data.clusterTrack().find(prd[n]);
960  if(t[n]==te) return true;
961  ++n;
962  }
963  }
964 
965  int nclt = n;
966 
967  for(int i=0; i!=n; ++i) {
968  int nclmax = 0;
969  for(ti=t[i]; ti!=te; ++ti) {
970  if( (*ti).first != prd[i] ) break;
971  int ncl = (*ti).second->trackStateOnSurfaces()->size();
972  if(ncl > nclmax) nclmax = ncl;
973  }
974  if(nclt > nclmax) return true;
975  }
976  return false;
977 }

◆ magneticFieldInit()

void InDet::TRT_SeededTrackFinder_ATL::magneticFieldInit ( )
protected

Private Methods

Get Magnetic field properties

Definition at line 1060 of file TRT_SeededTrackFinder_ATL.cxx.

◆ modifyTrackParameters()

std::unique_ptr< const Trk::TrackParameters > InDet::TRT_SeededTrackFinder_ATL::modifyTrackParameters ( const Trk::TrackParameters TP,
int  mode 
)
staticprotected

Modify track parameters if brem correction

The mode corresponds to whether the track parameters are modified before the seed (0) or before the pixel propagation (1)
Get the track parameters

Correct inverse momentum and covariance. Inverse momentum halved, i.e. momentum doubled

Definition at line 733 of file TRT_SeededTrackFinder_ATL.cxx.

733  {
736  const AmgVector(5)& pV = TP.parameters();
737  double ip[5] = {pV[0], pV[1], pV[2], pV[3], pV[4]};
738 
740  const double & q = ip[4]; //no need to take std::abs, its squared next
741  const double covarianceIMom = 0.25*q*q;
742  ip[4] *= 0.5;
743 
744  const AmgSymMatrix(5) * CM = TP.covariance();
745  AmgSymMatrix(5) nM = (*CM);
746 
747  if(mode==0){ //Modification initiated before seed propagation
748  nM(4,4) = 10.*(0.1*((*CM)(4,4))+covarianceIMom);
749  }
750  if(mode==1){ //Modification initiated before pixel propagation
751  nM(4,4)+=covarianceIMom;
752  }
753  return TP.associatedSurface().createUniqueTrackParameters(ip[0], ip[1], ip[2], ip[3], ip[4], nM);
754 }

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

◆ newClusters()

bool InDet::TRT_SeededTrackFinder_ATL::newClusters ( const std::vector< const Trk::SpacePoint * > &  Sp,
InDet::TRT_SeededTrackFinder_ATL::EventData event_data 
)
staticprotected

Seed used by another track?

Definition at line 802 of file TRT_SeededTrackFinder_ATL.cxx.

803  {
804  const Trk::PrepRawData* prd [ 40];
805  const Trk::Track* trk[2][200];
806  std::multimap<const Trk::PrepRawData*,const Trk::Track*>::const_iterator
807  t[40],te = event_data.clusterTrack().end();
808  std::vector<const Trk::SpacePoint*>::const_iterator s=Sp.begin(),se=Sp.end();
809  int n = 0;
810 
811  //If at least one of the clusters in the seed is not used by a track the seed is good
812  for(; s!=se; ++s) {
813  if((*s)->clusterList().first ) {
814  prd[n] = (*s)->clusterList().first;
815  t [n] = event_data.clusterTrack().find(prd[n]);
816  if(t[n]==te) return true;
817  ++n;
818  }
819  if((*s)->clusterList().second) {
820  prd[n] = (*s)->clusterList().second;
821  t [n] = event_data.clusterTrack().find(prd[n]);
822  if(t[n]==te) return true;
823  ++n;
824  }
825  if(n==40) break;
826  }
827  if(!n) return false;
828 
829  //Array of pointers to the different tracks that the first used cluster belongs to
830  int m = 0;
831  auto & pTracks=t[0];
832  for(; pTracks!=te; ++pTracks) {
833  if (m==30) return false;
834  if( (*pTracks).first != prd[0] ) break;
835  trk[0][m++] = (*pTracks).second;
836  if(m==200) break;
837  }
838 
839  //For a seed to be declared bad, all other clusters should belong to the same track as that of the first used cluster
840  int in=0, ou=1;
841  for(int i=1; i!=n; ++i) {
842  int l = 0; //Number of tracks that share the same clusters
843  auto & pTheseTracks=t[i];
844  for(; pTheseTracks!=te; ++pTheseTracks) {
845  if( (*pTheseTracks).first != prd[i] ) break;
846  for(int j=0; j!=m; ++j) {
847  if((*pTheseTracks).second == trk[in][j]) {trk[ou][l++]= trk[in][j];
848  break;
849  }
850  }
851  }
852  if(l==0) return true; //At least one of the seed clusters belongs to a track different from that of the first used clusters
853  m=l;
854  if(in==0) {
855  in=1; ou=0;
856  } else {
857  in=0; ou=1;
858  }
859  }
860 
861  return false;
862 }

◆ newEvent()

std::unique_ptr< InDet::ITRT_SeededTrackFinder::IEventData > InDet::TRT_SeededTrackFinder_ATL::newEvent ( const EventContext &  ctx,
SiCombinatorialTrackFinderData_xk combinatorialData 
) const
overridevirtual

New event initialization.

Get the seeds

Implements InDet::ITRT_SeededTrackFinder.

Definition at line 210 of file TRT_SeededTrackFinder_ATL.cxx.

211 {
212 
214  auto event_data_p = std::make_unique<InDet::TRT_SeededTrackFinder_ATL::EventData>(combinatorialData,
215  m_seedmaker->newEvent());
216  // New event for track finder tool
217  m_tracksfinder->newEvent(ctx, event_data_p->combinatorialData());
218 
219  // Print event information
220  if(msgLvl(MSG::DEBUG)) {
222  msg(MSG::DEBUG) << endmsg;
223  }
224 
225  // Get the calo ROI:
226  if(m_searchInCaloROI ) {
228  if (!calo_rois.isValid()) {
229  ATH_MSG_FATAL("Failed to get EM Calo cluster collection " << m_caloClusterROIKey );
230  }
231  event_data_p->setCaloClusterROIEM(*calo_rois);
232  }
233  return event_data_p;
234 }

◆ newRegion()

std::unique_ptr< InDet::ITRT_SeededTrackFinder::IEventData > InDet::TRT_SeededTrackFinder_ATL::newRegion ( const EventContext &  ctx,
SiCombinatorialTrackFinderData_xk combinatorialData,
const std::vector< IdentifierHash > &  listOfPixIds,
const std::vector< IdentifierHash > &  listOfSCTIds 
) const
overridevirtual

New region intialization.

Implements InDet::ITRT_SeededTrackFinder.

Definition at line 238 of file TRT_SeededTrackFinder_ATL.cxx.

240  {
241  auto event_data_p = std::make_unique<InDet::TRT_SeededTrackFinder_ATL::EventData>(combinatorialData,
242  m_seedmaker->newRegion(listOfPixIds,listOfSCTIds));
243 
244  // New event for track finder tool
245  m_tracksfinder->newEvent(ctx, event_data_p->combinatorialData());
246 
247 
248  // Print event information
249  if(msgLvl(MSG::DEBUG)) {
251  msg(MSG::DEBUG) << endmsg;
252  }
253 
254  return event_data_p;
255 }

◆ newSeed()

bool InDet::TRT_SeededTrackFinder_ATL::newSeed ( const std::vector< const Trk::SpacePoint * > &  Sp,
InDet::TRT_SeededTrackFinder_ATL::EventData event_data 
)
staticprotected

Seed SPs used by other high quality tracks?

Definition at line 870 of file TRT_SeededTrackFinder_ATL.cxx.

871  {
872  const Trk::PrepRawData* prd [ 40];
873  const Trk::Track* trk[2][200];
874  std::multimap<const Trk::PrepRawData*,const Trk::Track*>::const_iterator
875  tt,t[40],te = event_data.clusterTrack().end();
876 
877  std::vector<const Trk::SpacePoint*>::const_iterator s=Sp.begin(),se=Sp.end();
878  int n = 0;
879  int nc = 0;
880  for(; s!=se; ++s) {
881  if((*s)->clusterList().first ) {
882  prd[n] = (*s)->clusterList().first;
883  t [n] = event_data.clusterTrack().find(prd[n]); if(t[n]!=te) ++nc; ++n;
884  }
885  if((*s)->clusterList().second) {
886  prd[n] = (*s)->clusterList().second;
887  t [n] = event_data.clusterTrack().find(prd[n]); if(t[n]!=te) ++nc; ++n;
888  }
889  if(n>=40) break;
890  }
891  if(!nc) return true;
892  if(n==nc) {
893  int m = 0;
894  for(tt=t[0]; tt!=te; ++tt) {
895  if( (*tt).first != prd[0] ) break;
896  trk[0][m++] = (*tt).second;
897  if(m==200) break;
898  }
899  int in=0, ou=1, i=1;
900  for(; i!=n; ++i) {
901  int l = 0;
902  for(tt=t[i]; t[i]!=te; ++tt) {
903  if( (*tt).first != prd[i] ) break;
904  for(int j=0; j!=m; ++j) {
905  if((*tt).second == trk[in][j]) {
906  trk[ou][l++]= trk[in][j];
907  break;
908  }
909  }
910  }
911  if(l==0) break;
912  m=l;
913  if(in==0) {
914  in=1;
915  ou=0;
916  } else {
917  in=0;
918  ou=1;
919  }
920  }
921  if(i==n) return false;
922  }
923 
924  //if(!(*Sp.rbegin())->clusterList().second) return true;
925 
926  int h = 0;
927  for(int i=0; i!=n; ++i) {
928  for(tt=t[i]; t[i]!=te; ++tt) {
929  if( (*tt).first != prd[i] ) break;
930  if((*tt).second->trackStateOnSurfaces()->size() >= 10) {
931  ++h;
932  break;
933  }
934  }
935  }
936  return h == 0;
937 }

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

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

◆ setTrackQualityCuts()

void InDet::TRT_SeededTrackFinder_ATL::setTrackQualityCuts ( )
protected

Set the track quality cuts for combinatorial track finding

Definition at line 761 of file TRT_SeededTrackFinder_ATL.cxx.

761  {
762  // Integer cuts
763  //
764  m_trackquality.setIntCut ("MinNumberOfClusters", m_nclusmin );
765  m_trackquality.setIntCut ("MinNumberOfWClusters", m_nwclusmin );
766  m_trackquality.setIntCut ("MaxNumberOfHoles" , m_nholesmax );
767  m_trackquality.setIntCut ("MaxHolesGap" , m_dholesmax );
768  if( m_useassoTool ) m_trackquality.setIntCut ("UseAssociationTool",1);
769  else m_trackquality.setIntCut ("UseAssociationTool",0);
770 
771  // Double cuts
772  //
774  m_trackquality.setDoubleCut("MaxXi2forCluster" ,m_xi2max );
775  m_trackquality.setDoubleCut("MaxXi2forOutlier" ,m_xi2maxNoAdd);
776  m_trackquality.setDoubleCut("MaxXi2forSearch" ,m_xi2maxlink );
777 }

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

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

BooleanProperty InDet::TRT_SeededTrackFinder_ATL::m_bremCorrect
protected
Initial value:
{this, "BremCorrection", false,
"Optional Brem correction"}

Definition at line 199 of file TRT_SeededTrackFinder_ATL.h.

◆ m_caloClusterROIKey

SG::ReadHandleKey<ROIPhiRZContainer> InDet::TRT_SeededTrackFinder_ATL::m_caloClusterROIKey {this, "EMROIPhiRZContainer", ""}
protected

Definition at line 213 of file TRT_SeededTrackFinder_ATL.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_dholesmax

IntegerProperty InDet::TRT_SeededTrackFinder_ATL::m_dholesmax
protected
Initial value:
{this, "nHolesGapMax", 1,
"Max gap between holes"}

Definition at line 194 of file TRT_SeededTrackFinder_ATL.h.

◆ m_errorScale

DoubleArrayProperty InDet::TRT_SeededTrackFinder_ATL::m_errorScale
protected
Initial value:
{this, "ErrorScaling", {1., 1., 1., 1., 1.},
"Optional error scaling of track parameters"}

Definition at line 206 of file TRT_SeededTrackFinder_ATL.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_fieldCondObjInputKey

SG::ReadCondHandleKey<AtlasFieldCacheCondObj> InDet::TRT_SeededTrackFinder_ATL::m_fieldCondObjInputKey
protected
Initial value:
{this, "AtlasFieldCacheCondObj",
"fieldCondObj", "Name of the Magnetic Field conditions object key"}

Definition at line 180 of file TRT_SeededTrackFinder_ATL.h.

◆ m_fieldmode

StringProperty InDet::TRT_SeededTrackFinder_ATL::m_fieldmode
protected
Initial value:
{this, "MagneticFieldMode", "MapSolenoid",
"Magnetic field mode"}

Protected Data

Definition at line 162 of file TRT_SeededTrackFinder_ATL.h.

◆ m_fieldprop

Trk::MagneticFieldProperties InDet::TRT_SeededTrackFinder_ATL::m_fieldprop
protected

Definition at line 165 of file TRT_SeededTrackFinder_ATL.h.

◆ m_nclusmin

IntegerProperty InDet::TRT_SeededTrackFinder_ATL::m_nclusmin {this, "nClustersMin", 4, "Min number clusters"}
protected

Definition at line 196 of file TRT_SeededTrackFinder_ATL.h.

◆ m_nholesmax

IntegerProperty InDet::TRT_SeededTrackFinder_ATL::m_nholesmax {this, "nHolesMax", 1, "Max number holes"}
protected

Definition at line 193 of file TRT_SeededTrackFinder_ATL.h.

◆ m_nwclusmin

IntegerProperty InDet::TRT_SeededTrackFinder_ATL::m_nwclusmin
protected
Initial value:
{this, "nWClustersMin", 4,
"Min number weighted clusters"}

Definition at line 197 of file TRT_SeededTrackFinder_ATL.h.

◆ m_outlierCut

DoubleProperty InDet::TRT_SeededTrackFinder_ATL::m_outlierCut
protected
Initial value:
{this, "OutlierCut", 25.,
"Outlier chi2 cut when propagating through the seed"}

Definition at line 209 of file TRT_SeededTrackFinder_ATL.h.

◆ m_phiWidth

DoubleProperty InDet::TRT_SeededTrackFinder_ATL::m_phiWidth {this, "phiWidth", 0.3}
protected

Definition at line 277 of file TRT_SeededTrackFinder_ATL.h.

◆ m_propR

BooleanProperty InDet::TRT_SeededTrackFinder_ATL::m_propR
protected
Initial value:
{this, "ConsistentSeeds", false,
"Check seed-TRT segment consistency at large eta"}

Definition at line 201 of file TRT_SeededTrackFinder_ATL.h.

◆ m_proptool

ToolHandle<Trk::IPropagator> InDet::TRT_SeededTrackFinder_ATL::m_proptool {this, "PropagatorTool", "Trk::RungeKuttaPropagator/InDetPropagator"}
protected

Definition at line 173 of file TRT_SeededTrackFinder_ATL.h.

◆ m_pTmin

DoubleProperty InDet::TRT_SeededTrackFinder_ATL::m_pTmin {this, "pTmin", 500., "min pT"}
protected

Definition at line 192 of file TRT_SeededTrackFinder_ATL.h.

◆ m_roadmaker

ToolHandle<InDet::ISiDetElementsRoadMaker> InDet::TRT_SeededTrackFinder_ATL::m_roadmaker {this, "RoadTool", "InDet::SiDetElementsRoadMaker_xk"}
protected

Magnetic field properties.

Tools used

Definition at line 169 of file TRT_SeededTrackFinder_ATL.h.

◆ m_searchInCaloROI

BooleanProperty InDet::TRT_SeededTrackFinder_ATL::m_searchInCaloROI
protected
Initial value:
{this, "SearchInCaloROI", false,
"Outlier chi2 cut when propagating through the seed"}

Definition at line 211 of file TRT_SeededTrackFinder_ATL.h.

◆ m_seedmaker

ToolHandle<InDet::ITRT_SeededSpacePointFinder> InDet::TRT_SeededTrackFinder_ATL::m_seedmaker {this, "SeedTool", ""}
protected

Definition at line 171 of file TRT_SeededTrackFinder_ATL.h.

◆ m_trackquality

InDet::TrackQualityCuts InDet::TRT_SeededTrackFinder_ATL::m_trackquality
protected

Definition at line 205 of file TRT_SeededTrackFinder_ATL.h.

◆ m_tracksfinder

ToolHandle<InDet::ISiCombinatorialTrackFinder> InDet::TRT_SeededTrackFinder_ATL::m_tracksfinder {this, "CombinatorialTrackFinder", "InDet::SiCombinatorialTrackFinder_xk"}
protected

Definition at line 177 of file TRT_SeededTrackFinder_ATL.h.

◆ m_trtId

const TRT_ID* InDet::TRT_SeededTrackFinder_ATL::m_trtId = nullptr
protected

ID TRT helper.

Definition at line 184 of file TRT_SeededTrackFinder_ATL.h.

◆ m_updatorTool

ToolHandle<Trk::IUpdator> InDet::TRT_SeededTrackFinder_ATL::m_updatorTool {this, "UpdatorTool", "Trk::KalmanUpdator_xk/InDetPatternUpdator"}
protected

Definition at line 175 of file TRT_SeededTrackFinder_ATL.h.

◆ m_useassoTool

BooleanProperty InDet::TRT_SeededTrackFinder_ATL::m_useassoTool
protected
Initial value:
{this, "UseAssociationTool", false,
"Use prd-track association tool"}

Definition at line 203 of file TRT_SeededTrackFinder_ATL.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.

◆ m_xi2max

DoubleProperty InDet::TRT_SeededTrackFinder_ATL::m_xi2max {this, "Xi2max", 15., "max Xi2 for updators"}
protected

Track quality cuts to be passed to the combinatorial track finder.

Definition at line 187 of file TRT_SeededTrackFinder_ATL.h.

◆ m_xi2maxlink

DoubleProperty InDet::TRT_SeededTrackFinder_ATL::m_xi2maxlink
protected
Initial value:
{this, "Xi2maxlink", 100.,
"max Xi2 for clusters"}

Definition at line 190 of file TRT_SeededTrackFinder_ATL.h.

◆ m_xi2maxNoAdd

DoubleProperty InDet::TRT_SeededTrackFinder_ATL::m_xi2maxNoAdd
protected
Initial value:
{this, "Xi2maxNoAdd", 50.,
"max Xi2 for outliers"}

Definition at line 188 of file TRT_SeededTrackFinder_ATL.h.


The documentation for this class was generated from the following files:
grepfile.info
info
Definition: grepfile.py:38
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
InDet::TRT_SeededTrackFinder_ATL::EventData::caloClusterROIEM
const ROIPhiRZContainer * caloClusterROIEM() const
Definition: TRT_SeededTrackFinder_ATL.h:137
beamspotman.r
def r
Definition: beamspotman.py:676
Trk::LocalParameters
Definition: LocalParameters.h:98
InDet::TRT_SeededTrackFinder_ATL::m_propR
BooleanProperty m_propR
Definition: TRT_SeededTrackFinder_ATL.h:201
InDet::TRT_SeededTrackFinder_ATL::m_useassoTool
BooleanProperty m_useassoTool
Definition: TRT_SeededTrackFinder_ATL.h:203
InDet::TRT_SeededTrackFinder_ATL::m_xi2maxNoAdd
DoubleProperty m_xi2maxNoAdd
Definition: TRT_SeededTrackFinder_ATL.h:188
TruthTest.itp
itp
Definition: TruthTest.py:46
Trk::TrackInfo
Contains information about the 'fitter' of this track.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:32
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
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
InDet::TRT_SeededTrackFinder_ATL::m_fieldprop
Trk::MagneticFieldProperties m_fieldprop
Definition: TRT_SeededTrackFinder_ATL.h:165
InDet::TRT_SeededTrackFinder_ATL::m_searchInCaloROI
BooleanProperty m_searchInCaloROI
Definition: TRT_SeededTrackFinder_ATL.h:211
get_generator_info.result
result
Definition: get_generator_info.py:21
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
InDet::TRT_SeededTrackFinder_ATL::findTrack
std::list< Trk::Track * > findTrack(const EventContext &ctx, MagField::AtlasFieldCache &fieldCache, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data, const Trk::TrackParameters &, const Trk::TrackSegment &) const
Find the corresponding list of Si tracks
Definition: TRT_SeededTrackFinder_ATL.cxx:355
InDet::TrackQualityCuts::setIntCut
void setIntCut(const std::string &, int)
Definition: ISiCombinatorialTrackFinder.h:179
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
vtune_athena.format
format
Definition: vtune_athena.py:14
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
AtlasFieldCacheCondObj
Definition: AtlasFieldCacheCondObj.h:19
InDet::TRT_SeededTrackFinder_ATL::checkSeed
bool checkSeed(std::vector< const Trk::SpacePoint * > &, const Trk::TrackSegment &, const Trk::TrackParameters &) const
Check consistency of seed and TRT track segment.
Definition: TRT_SeededTrackFinder_ATL.cxx:695
InDet::TRT_SeededTrackFinder_ATL::isCaloCompatible
bool isCaloCompatible(const Trk::TrackParameters &, const InDet::TRT_SeededTrackFinder_ATL::EventData &event_data) const
Only propagate to the Si if the TRT segment is compatible with a calo measurement.
Definition: TRT_SeededTrackFinder_ATL.cxx:1046
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
InDet::TRT_SeededTrackFinder_ATL::isNewTrack
static bool isNewTrack(Trk::Track *, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
Clean-up duplicate tracks
Definition: TRT_SeededTrackFinder_ATL.cxx:944
Trk::LocalParameters::parameterKey
int parameterKey() const
Identifier key for matrix expansion/reduction.
Trk::PerigeeSurface
Definition: PerigeeSurface.h:43
Trk::oppositeMomentum
@ oppositeMomentum
Definition: PropDirection.h:21
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
Trk::ParametersBase::associatedSurface
virtual const Surface & associatedSurface() const override=0
Access to the Surface associated to the Parameters.
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
plotBeamSpotVxVal.outlierCut
int outlierCut
Definition: plotBeamSpotVxVal.py:61
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:75
DMTest::C
C_v1 C
Definition: C.h:26
xAOD::JetInput::Track
@ Track
Definition: JetContainerInfo.h:61
InDet::TRT_SeededTrackFinder_ATL::m_roadmaker
ToolHandle< InDet::ISiDetElementsRoadMaker > m_roadmaker
Magnetic field properties.
Definition: TRT_SeededTrackFinder_ATL.h:170
skel.it
it
Definition: skel.GENtoEVGEN.py:396
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
python.PhysicalConstants.pi2
float pi2
Definition: PhysicalConstants.py:52
M_PI
#define M_PI
Definition: ActiveFraction.h: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
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
InDet::TRT_SeededTrackFinder_ATL::m_errorScale
DoubleArrayProperty m_errorScale
Definition: TRT_SeededTrackFinder_ATL.h:207
Trk::loc2
@ loc2
generic first and second local coordinate
Definition: ParamDefs.h:35
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
InDet::TRT_SeededTrackFinder_ATL::m_pTmin
DoubleProperty m_pTmin
Definition: TRT_SeededTrackFinder_ATL.h:192
Trk::alongMomentum
@ alongMomentum
Definition: PropDirection.h:20
InDet::TRT_SeededTrackFinder_ATL::m_nholesmax
IntegerProperty m_nholesmax
Definition: TRT_SeededTrackFinder_ATL.h:193
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
InDetAccessor::qOverP
@ qOverP
perigee
Definition: InDetAccessor.h:35
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
InDet::TRT_SeededTrackFinder_ATL::addNoise
std::unique_ptr< const Trk::TrackParameters > addNoise(const SiNoise_bt &, const Trk::TrackParameters &, int) const
Add material effects
Definition: TRT_SeededTrackFinder_ATL.cxx:661
keylayer_zslicemap.se
se
Definition: keylayer_zslicemap.py:194
InDet::TRT_DriftCircleOnTrack
Definition: TRT_DriftCircleOnTrack.h:53
InDet::TRT_DriftCircleOnTrack::detectorElement
virtual const InDetDD::TRT_BaseElement * detectorElement() const override final
returns the detector element, assoicated with the PRD of this class
Definition: TRT_DriftCircleOnTrack.h:224
InDet::TRT_SeededTrackFinder_ATL::m_phiWidth
DoubleProperty m_phiWidth
Definition: TRT_SeededTrackFinder_ATL.h:277
AmgSymMatrix
#define AmgSymMatrix(dim)
Definition: EventPrimitives.h:50
dqutils::padding
std::atomic< int > padding
Definition: MonitoringFile_MoveVertexMonitoring.cxx:20
pi
#define pi
Definition: TileMuonFitter.cxx:65
Trk::Segment::numberOfMeasurementBases
unsigned int numberOfMeasurementBases() const
Return the number of contained Trk::MeasurementBase (s)
Definition: Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:193
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
xAOD::TrackParameters
TrackParameters_v1 TrackParameters
Definition: Event/xAOD/xAODTracking/xAODTracking/TrackParameters.h:11
InDet::TRT_SeededTrackFinder_ATL::m_xi2maxlink
DoubleProperty m_xi2maxlink
Definition: TRT_SeededTrackFinder_ATL.h:190
InDet::TRT_SeededTrackFinder_ATL::m_updatorTool
ToolHandle< Trk::IUpdator > m_updatorTool
Definition: TRT_SeededTrackFinder_ATL.h:176
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
PlotCalibFromCool.ie
ie
Definition: PlotCalibFromCool.py:420
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::FastField
@ FastField
call the fast field access method of the FieldSvc
Definition: MagneticFieldMode.h:20
InDet::TRT_SeededTrackFinder_ATL::m_xi2max
DoubleProperty m_xi2max
Track quality cuts to be passed to the combinatorial track finder.
Definition: TRT_SeededTrackFinder_ATL.h:187
Trk::FitQualityOnSurface
Definition: FitQualityOnSurface.h:19
Trk::ParticleHypothesis
ParticleHypothesis
Definition: ParticleHypothesis.h:25
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
ROIPhiRZContainer::lowerPhiBound
const_iterator lowerPhiBound(float phi, float roi_phi_width) const
Definition: ROIPhiRZContainer.h:59
Trk::PropDirection
PropDirection
Definition: PropDirection.h:19
InDet::TRT_SeededTrackFinder_ATL::m_fieldCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
Definition: TRT_SeededTrackFinder_ATL.h:180
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
InDet::SiNoise_bt::reset
void reset()
Definition: SiNoise_bt.cxx:15
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::SpacePoint::associatedSurface
virtual const Surface & associatedSurface() const override final
Interface method to get the associated Surface.
Definition: Tracking/TrkEvent/TrkSpacePoint/src/SpacePoint.cxx:71
InDet::TRT_SeededTrackFinder_ATL::EventData::combinatorialData
virtual InDet::SiCombinatorialTrackFinderData_xk & combinatorialData() override
Definition: TRT_SeededTrackFinder_ATL.h:131
lumiFormat.i
int i
Definition: lumiFormat.py:85
Trk::Surface::createUniqueTrackParameters
virtual ChargedTrackParametersUniquePtr createUniqueTrackParameters(double l1, double l2, double phi, double theat, double qop, std::optional< AmgSymMatrix(5)> cov=std::nullopt) const =0
Use the Surface as a ParametersBase constructor, from local parameters - charged.
InDet::TRT_SeededTrackFinder_ATL::EventData::roadMakerData
InDet::SiDetElementRoadMakerData_xk & roadMakerData()
Definition: TRT_SeededTrackFinder_ATL.h:144
beamspotman.n
n
Definition: beamspotman.py:731
InDet::TRT_SeededTrackFinder_ATL::m_nclusmin
IntegerProperty m_nclusmin
Definition: TRT_SeededTrackFinder_ATL.h:196
Trk::theta
@ theta
Definition: ParamDefs.h:66
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
extractSporadic.h
list h
Definition: extractSporadic.py:97
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AmgVector
AmgVector(4) T2BSTrackFilterTool
Definition: T2BSTrackFilterTool.cxx:114
InDet::TRT_SeededTrackFinder_ATL::newClusters
static bool newClusters(const std::vector< const Trk::SpacePoint * > &, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
Seed used by another track?
Definition: TRT_SeededTrackFinder_ATL.cxx:802
TileDCSDataPlotter.pr
pr
Definition: TileDCSDataPlotter.py:922
InDet::TRT_SeededTrackFinder_ATL::m_fieldmode
StringProperty m_fieldmode
Protected Data
Definition: TRT_SeededTrackFinder_ATL.h:162
InDet::TRT_SeededTrackFinder_ATL::m_trackquality
InDet::TrackQualityCuts m_trackquality
Definition: TRT_SeededTrackFinder_ATL.h:205
InDet::TRT_SeededTrackFinder_ATL::m_seedmaker
ToolHandle< InDet::ITRT_SeededSpacePointFinder > m_seedmaker
Definition: TRT_SeededTrackFinder_ATL.h:172
find_tgc_unfilled_channelids.ip
ip
Definition: find_tgc_unfilled_channelids.py:3
InDet::TRT_SeededTrackFinder_ATL::modifyTrackParameters
static std::unique_ptr< const Trk::TrackParameters > modifyTrackParameters(const Trk::TrackParameters &, int)
Modify track parameters if brem correction
Definition: TRT_SeededTrackFinder_ATL.cxx:733
Trk::Segment::measurement
const MeasurementBase * measurement(unsigned int) const
returns the Trk::MeasurementBase objects depending on the integer
Definition: Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:184
InDet::TRT_SeededTrackFinder_ATL::getTP
std::unique_ptr< const Trk::TrackParameters > getTP(MagField::AtlasFieldCache &fieldCache, const Trk::SpacePoint *, const Trk::TrackParameters &, bool &, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data) const
Update track parameters through space point propagation
Definition: TRT_SeededTrackFinder_ATL.cxx:604
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
InDet::TRT_SeededTrackFinder_ATL::m_caloClusterROIKey
SG::ReadHandleKey< ROIPhiRZContainer > m_caloClusterROIKey
Definition: TRT_SeededTrackFinder_ATL.h:213
Preparation.mode
mode
Definition: Preparation.py:94
InDet::TRT_SeededTrackFinder_ATL::cleanTrack
std::list< Trk::Track * > cleanTrack(std::list< Trk::Track * >) const
Eliminate spurious Pixel clusters in track
Definition: TRT_SeededTrackFinder_ATL.cxx:984
InDetDD::TRT_BaseElement::identify
virtual Identifier identify() const override final
identifier of this detector element:
InDet::TRT_SeededTrackFinder_ATL::EventData::spacePointFinderEventData
InDet::ITRT_SeededSpacePointFinder::IEventData & spacePointFinderEventData()
Definition: TRT_SeededTrackFinder_ATL.h:134
Trk::TrackSegment::associatedSurface
const Surface & associatedSurface() const override final
returns the surface for the local to global transformation
Definition: TrackSegment.h:112
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
InDet::TrackQualityCuts::setDoubleCut
void setDoubleCut(const std::string &, double)
Definition: ISiCombinatorialTrackFinder.h:186
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
TRT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: TRT_ID.h:866
InDet::TRT_SeededTrackFinder_ATL::EventData::clusterTrack
std::multimap< const Trk::PrepRawData *, const Trk::Track * > & clusterTrack()
Definition: TRT_SeededTrackFinder_ATL.h:135
InDet::TRT_SeededTrackFinder_ATL::m_nwclusmin
IntegerProperty m_nwclusmin
Definition: TRT_SeededTrackFinder_ATL.h:197
DataVector< const Trk::TrackStateOnSurface >
InDet::SiCluster::detectorElement
virtual const InDetDD::SiDetectorElement * detectorElement() const override final
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...
MagField::AtlasFieldCache::solenoidOn
bool solenoidOn() const
status of the magnets
Trk::FullField
@ FullField
Field is set to be realistic, but within a given Volume.
Definition: MagneticFieldMode.h:21
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
Trk::MeasurementBase::localCovariance
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
Definition: MeasurementBase.h:138
beamspotman.dir
string dir
Definition: beamspotman.py:623
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
InDetDD::SiDetectorElement::isPixel
bool isPixel() const
Trk::PrepRawData
Definition: PrepRawData.h:62
Trk::NoField
@ NoField
Field is set to 0., 0., 0.,.
Definition: MagneticFieldMode.h:18
InDet::TRT_SeededTrackFinder_ATL::m_dholesmax
IntegerProperty m_dholesmax
Definition: TRT_SeededTrackFinder_ATL.h:194
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
InDet::TRT_SeededTrackFinder_ATL::setTrackQualityCuts
void setTrackQualityCuts()
Set the track quality cuts for combinatorial track finding
Definition: TRT_SeededTrackFinder_ATL.cxx:761
InDet::TRT_SeededTrackFinder_ATL::clusterTrackMap
static void clusterTrackMap(Trk::Track *, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
Map PRDs-tracks.
Definition: TRT_SeededTrackFinder_ATL.cxx:783
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
Trk::nonInteracting
@ nonInteracting
Definition: ParticleHypothesis.h:25
InDet::TRT_SeededTrackFinder_ATL::EventData
Definition: TRT_SeededTrackFinder_ATL.h:123
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
InDet::TRT_SeededTrackFinder_ATL::magneticFieldInit
void magneticFieldInit()
Private Methods
Definition: TRT_SeededTrackFinder_ATL.cxx:1060
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::MagneticFieldProperties::magneticFieldMode
MagneticFieldMode magneticFieldMode() const
Returns the MagneticFieldMode as specified.
Trk::RIO_OnTrack::prepRawData
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
Trk::MeasurementBase::localParameters
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Definition: MeasurementBase.h:132
InDet::TRT_SeededTrackFinder_ATL::m_trtId
const TRT_ID * m_trtId
ID TRT helper.
Definition: TRT_SeededTrackFinder_ATL.h:184
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
Trk::Track::measurementsOnTrack
const DataVector< const MeasurementBase > * measurementsOnTrack() const
return a pointer to a vector of MeasurementBase (NOT including any that come from outliers).
Definition: Tracking/TrkEvent/TrkTrack/src/Track.cxx:178
Trk::ParametersBase::momentum
const Amg::Vector3D & momentum() const
Access method for the momentum.
InDet::SiCluster::globalPosition
const Amg::Vector3D & globalPosition() const
return global position reference
a
TList * a
Definition: liststreamerinfos.cxx:10
h
python.CaloScaleNoiseConfig.str
str
Definition: CaloScaleNoiseConfig.py:78
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
InDet::TRT_SeededTrackFinder_ATL::EventData::noise
InDet::SiNoise_bt & noise()
Definition: TRT_SeededTrackFinder_ATL.h:142
re
const boost::regex re(r_e)
DEBUG
#define DEBUG
Definition: page_access.h:11
F
#define F(x, y, z)
Definition: MD5.cxx:112
InDet::TRT_SeededTrackFinder_ATL::m_tracksfinder
ToolHandle< InDet::ISiCombinatorialTrackFinder > m_tracksfinder
Definition: TRT_SeededTrackFinder_ATL.h:178
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
MagField::AtlasFieldCache
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Definition: AtlasFieldCache.h:43
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:567
get
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
Definition: hcg.cxx:127
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
extractSporadic.q
list q
Definition: extractSporadic.py:98
str
Definition: BTagTrackIpAccessor.cxx:11
InDetDD::SiDetectorElement::isSCT
bool isSCT() const
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
Trk::EventDataBase< EventData, InDet::ITRT_SeededTrackFinder::IEventData >::getPrivateEventData
static EventData & getPrivateEventData(InDet::ITRT_SeededTrackFinder::IEventData &virt_event_data)
Definition: EventDataBase.h:19
python.Constants.VERBOSE
int VERBOSE
Definition: Control/AthenaCommon/python/Constants.py:14
InDet::TRT_SeededTrackFinder_ATL::newSeed
static bool newSeed(const std::vector< const Trk::SpacePoint * > &, InDet::TRT_SeededTrackFinder_ATL::EventData &event_data)
Seed SPs used by other high quality tracks?
Definition: TRT_SeededTrackFinder_ATL.cxx:870
InDet::TRT_SeededTrackFinder_ATL::dumpconditions
MsgStream & dumpconditions(MsgStream &out) const
Definition: TRT_SeededTrackFinder_ATL.cxx:151
InDet::TRT_DriftCircleOnTrack::globalPosition
virtual const Amg::Vector3D & globalPosition() const override final
return the global position of this RIO_OnTrack
Definition: TRT_DriftCircleOnTrack.cxx:160
Trk::SurfaceType::Line
@ Line
InDet::TRT_SeededTrackFinder_ATL::m_outlierCut
DoubleProperty m_outlierCut
Definition: TRT_SeededTrackFinder_ATL.h:209
Trk::loc1
@ loc1
Definition: ParamDefs.h:34
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
InDet::SiNoise_bt::production
void production(int direction, int model, const Trk::TrackParameters &tp)
Definition: SiNoise_bt.cxx:25
TileDCSDataPlotter.tt
tt
Definition: TileDCSDataPlotter.py:874
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::Surface::type
constexpr virtual SurfaceType type() const =0
Returns the Surface type to avoid dynamic casts.
InDet::TRT_SeededTrackFinder_ATL::m_proptool
ToolHandle< Trk::IPropagator > m_proptool
Definition: TRT_SeededTrackFinder_ATL.h:174
InDet::SiCluster
Definition: InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h:40
Trk::FitQualityOnSurface::chiSquared
double chiSquared() const
returns the of the overall track fit
Definition: FitQuality.h:56
plotBeamSpotMon.nc
int nc
Definition: plotBeamSpotMon.py:83
Trk::TrackStateOnSurface::Measurement
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Definition: TrackStateOnSurface.h:101
WriteCellNoiseToCool.noise
noise
Definition: WriteCellNoiseToCool.py:380
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
InDet::SiClusterOnTrack
Definition: SiClusterOnTrack.h:39
InDet::TRT_SeededTrackFinder_ATL::m_bremCorrect
BooleanProperty m_bremCorrect
Definition: TRT_SeededTrackFinder_ATL.h:199
Identifier
Definition: IdentifierFieldParser.cxx:14