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

#include <AmbiguityProcessorBase.h>

Inheritance diagram for Trk::AmbiguityProcessorBase:
Collaboration diagram for Trk::AmbiguityProcessorBase:

Public Types

enum  CounterIndex {
  CounterIndex::kNcandidates, CounterIndex::kNcandScoreZero, CounterIndex::kNcandDouble, CounterIndex::kNscoreOk,
  CounterIndex::kNscoreZeroBremRefit, CounterIndex::kNscoreZeroBremRefitFailed, CounterIndex::kNscoreZeroBremRefitScoreZero, CounterIndex::kNscoreZero,
  CounterIndex::kNaccepted, CounterIndex::kNsubTrack, CounterIndex::kNnoSubTrack, CounterIndex::kNacceptedBrem,
  CounterIndex::kNbremFits, CounterIndex::kNfits, CounterIndex::kNrecoveryBremFits, CounterIndex::kNgoodFits,
  CounterIndex::kNfailedFits, CounterIndex::kNCounter
}
 
using Counter = AmbiCounter< CounterIndex >
 
using TrackScoreMap = std::multimap< TrackScore, TrackPtr >
 

Public Member Functions

 AmbiguityProcessorBase (const std::string &, const std::string &, const IInterface *)
 
virtual ~AmbiguityProcessorBase ()=default
 
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
 
virtual const TrackCollectionprocess (const TrackCollection *, Trk::PRDtoTrackMap *prd_to_track_map=nullptr) const =0
 (in concrete object) Returns a processed TrackCollection from the passed 'tracks' More...
 
virtual const TrackCollectionprocess (const TracksScores *) const =0
 
virtual void statistics ()=0
 Print statistics at the end of the processing. More...
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

Protected Types

using UniqueClusterSplitProbabilityContainerPtr = std::unique_ptr< Trk::ClusterSplitProbabilityContainer, void(*)(Trk::ClusterSplitProbabilityContainer *)>
 

Protected Member Functions

bool shouldTryBremRecovery (const Trk::Track &track) const
 
bool shouldTryBremRecovery (const Trk::Track &track, const TrackParameters *pPar) const
 
virtual std::unique_ptr< Trk::TrackdoBremRefit (const Trk::Track &track) const =0
 
TrackrefitTrack (const Trk::Track *track, Trk::PRDtoTrackMap &prdToTrackMap, Counter &stat, int trackId, int subtrackId) const
 refit track More...
 
virtual Trk::TrackrefitPrds (const Trk::Track *track, Trk::PRDtoTrackMap &prdToTrackMap, Counter &stat) const =0
 
virtual Trk::TrackrefitRots (const Trk::Track *track, Counter &stat) const
 
virtual std::unique_ptr< Trk::Trackfit (const Track &track, bool flag, Trk::ParticleHypothesis hypo) const =0
 
void addTrack (Trk::Track *in_track, const bool fitted, TrackScoreMap &trackScoreTrackMap, std::vector< std::unique_ptr< const Trk::Track > > &trackDustbin, Counter &stat, int parentTrackId) const
 
const TrackParametersgetTrackParameters (const Trk::Track *track) const
 
StatusCode initializeClusterSplitProbContainer ()
 Initialize read and write handles for ClusterSplitProbabilityContainers. More...
 
AmbiguityProcessorBase::UniqueClusterSplitProbabilityContainerPtr createAndRecordClusterSplitProbContainer (const EventContext &ctx) const
 Create a new cluster splitting probability container and (optionally) record it in storegate The new container may be populated from an already existing container, and might be stored in StoreGate. More...
 
void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Protected Attributes

std::vector< float > m_etaBounds
 eta intervals for internal monitoring More...
 
std::mutex m_statMutex
 
Counter m_stat ATLAS_THREAD_SAFE
 
ToolHandle< ITrackScoringToolm_scoringTool
 Scoring tool This tool is used to 'score' the tracks, i.e. More...
 
PublicToolHandle< Trk::ITrkObserverToolm_observerTool
 Observer tool This tool is used to observe the tracks and their 'score'. More...
 
ToolHandle< Trk::IExtendedTrackSummaryToolm_trackSummaryTool
 
bool m_tryBremFit {}
 brem recovery mode with brem fit ? More...
 
bool m_caloSeededBrem {}
 
float m_pTminBrem {1000.}
 
bool m_suppressHoleSearch {}
 
bool m_suppressTrackFit {}
 
bool m_refitPrds {}
 
bool m_forceRefit {true}
 by default tracks at input get refitted More...
 
int m_matEffects {3}
 read in as an integer and convert to particle hypothesis More...
 
Trk::ParticleHypothesis m_particleHypothesis {undefined}
 

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

SG::ReadHandleKey< Trk::ClusterSplitProbabilityContainerm_clusterSplitProbContainerIn
 
SG::WriteHandleKey< Trk::ClusterSplitProbabilityContainerm_clusterSplitProbContainerOut
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 35 of file AmbiguityProcessorBase.h.

Member Typedef Documentation

◆ Counter

Definition at line 58 of file AmbiguityProcessorBase.h.

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

◆ TrackScoreMap

Definition at line 59 of file AmbiguityProcessorBase.h.

◆ UniqueClusterSplitProbabilityContainerPtr

Definition at line 113 of file AmbiguityProcessorBase.h.

Member Enumeration Documentation

◆ CounterIndex

Enumerator
kNcandidates 
kNcandScoreZero 
kNcandDouble 
kNscoreOk 
kNscoreZeroBremRefit 
kNscoreZeroBremRefitFailed 
kNscoreZeroBremRefitScoreZero 
kNscoreZero 
kNaccepted 
kNsubTrack 
kNnoSubTrack 
kNacceptedBrem 
kNbremFits 
kNfits 
kNrecoveryBremFits 
kNgoodFits 
kNfailedFits 
kNCounter 

Definition at line 38 of file AmbiguityProcessorBase.h.

38  {
39  kNcandidates,
40  kNcandScoreZero,
41  kNcandDouble,
42  kNscoreOk,
43  kNscoreZeroBremRefit,
44  kNscoreZeroBremRefitFailed,
45  kNscoreZeroBremRefitScoreZero,
46  kNscoreZero,
47  kNaccepted,
48  kNsubTrack,
49  kNnoSubTrack,
50  kNacceptedBrem,
51  kNbremFits,
52  kNfits,
53  kNrecoveryBremFits,
54  kNgoodFits,
55  kNfailedFits,
56  kNCounter
57  };

Constructor & Destructor Documentation

◆ AmbiguityProcessorBase()

Trk::AmbiguityProcessorBase::AmbiguityProcessorBase ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Definition at line 12 of file AmbiguityProcessorBase.cxx.

15  : AthAlgTool(t, n, p),
16  m_etaBounds{0.8, 1.6, 2.5, 4.0},
17  m_stat(m_etaBounds) {}

◆ ~AmbiguityProcessorBase()

virtual Trk::AmbiguityProcessorBase::~AmbiguityProcessorBase ( )
virtualdefault

Member Function Documentation

◆ addTrack()

void Trk::AmbiguityProcessorBase::addTrack ( Trk::Track in_track,
const bool  fitted,
TrackScoreMap trackScoreTrackMap,
std::vector< std::unique_ptr< const Trk::Track > > &  trackDustbin,
Counter stat,
int  parentTrackId 
) const
protected

Definition at line 152 of file AmbiguityProcessorBase.cxx.

155  {
156  std::unique_ptr<Trk::Track> atrack(in_track);
157  // compute score
159  bool suppressHoleSearch = fitted ? m_suppressHoleSearch : true;
160  if (m_trackSummaryTool.isEnabled()) {
161  m_trackSummaryTool->computeAndReplaceTrackSummary(*atrack,
162  suppressHoleSearch);
163  }
164  score = m_scoringTool->score(*atrack);
165  if (m_observerTool.isEnabled()) {
166  m_observerTool->updateScore(parentTrackId, static_cast<double>(score));
167  }
168  // do we accept the track ?
169  if (score != 0) {
170  ATH_MSG_DEBUG("Track (" << atrack.get() << ") has score " << score);
171  // statistic
172  stat.incrementCounterByRegion(CounterIndex::kNscoreOk, atrack.get());
173  // add track to map, map is sorted small to big !
174  if (m_observerTool.isEnabled()) {
175  trackScoreTrackMap.emplace(
176  -score, TrackPtr(atrack.release(), fitted, parentTrackId));
177  } else {
178  trackScoreTrackMap.emplace(-score, TrackPtr(atrack.release(), fitted));
179  }
180  return;
181  }
182  // do we try to recover the track ?
183  if (fitted and shouldTryBremRecovery(*atrack)) {
184  ATH_MSG_DEBUG("Track score is zero, try to recover it via brem fit");
185  // run track fit using electron hypothesis
186  auto bremTrack(doBremRefit(*atrack));
187  if (!bremTrack) {
188  ATH_MSG_DEBUG("Brem refit failed, drop track");
189  if (m_observerTool.isEnabled()) {
190  m_observerTool->rejectTrack(parentTrackId,
193  }
194  // statistic
195  stat.incrementCounterByRegion(CounterIndex::kNscoreZeroBremRefitFailed,
196  atrack.get());
197  stat.incrementCounterByRegion(CounterIndex::kNfailedFits, atrack.get());
198  // clean up
199  trackDustbin.push_back(std::move(atrack));
200  } else {
201  int newTrackId = AmbiguityProcessor::getUid();
202  if (m_observerTool.isEnabled()) {
203  m_observerTool->rejectTrack(
204  parentTrackId, xAOD::RejectionStep::addTrack,
206  m_observerTool->addSubTrack(newTrackId, parentTrackId, *bremTrack);
207  }
208  // statistic
209  stat.incrementCounterByRegion(CounterIndex::kNgoodFits, bremTrack.get());
210  // rerun score
211  if (m_trackSummaryTool.isEnabled()) {
212  m_trackSummaryTool->computeAndReplaceTrackSummary(*bremTrack,
213  suppressHoleSearch);
214  }
215  score = m_scoringTool->score(*bremTrack);
216  if (m_observerTool.isEnabled()) {
217  m_observerTool->updateScore(newTrackId, static_cast<double>(score));
218  }
219  // put original track in the bin, ready to preserve a new Brem track
220  trackDustbin.push_back(std::move(atrack));
221  // do we accept the track ?
222  if (score != 0) {
223  ATH_MSG_DEBUG("Brem refit successful, recovered track ("
224  << bremTrack.get() << ") has score " << score);
225  // statistics
226  stat.incrementCounterByRegion(CounterIndex::kNscoreZeroBremRefit,
227  bremTrack.get());
228  // add track to map, map is sorted small to big !
229  if (m_observerTool.isEnabled()) {
230  m_observerTool->addSubTrack(newTrackId, parentTrackId, *bremTrack);
231  trackScoreTrackMap.emplace(
232  -score, TrackPtr(bremTrack.release(), fitted, newTrackId));
233  } else {
234  trackScoreTrackMap.emplace(-score,
235  TrackPtr(bremTrack.release(), fitted));
236  }
237  return;
238  } else {
239  ATH_MSG_DEBUG("Brem refit gave still track score zero, reject it");
240  if (m_observerTool.isEnabled()) {
241  m_observerTool->rejectTrack(
242  newTrackId, xAOD::RejectionStep::addTrack,
244  }
245  // statistic
246  stat.incrementCounterByRegion(
248  }
249  }
250  } else {
251  ATH_MSG_DEBUG("Track score is zero, reject it");
252  if (m_observerTool.isEnabled()) {
253  m_observerTool->rejectTrack(parentTrackId, xAOD::RejectionStep::addTrack,
255  }
256  // statistic
257  stat.incrementCounterByRegion(CounterIndex::kNscoreZero, atrack.get());
258  trackDustbin.push_back(std::move(atrack));
259  }
260 }

◆ createAndRecordClusterSplitProbContainer()

AmbiguityProcessorBase::UniqueClusterSplitProbabilityContainerPtr Trk::AmbiguityProcessorBase::createAndRecordClusterSplitProbContainer ( const EventContext &  ctx) const
protected

Create a new cluster splitting probability container and (optionally) record it in storegate The new container may be populated from an already existing container, and might be stored in StoreGate.

The ownersip, which might be either storegate or the calling scope, is taken into account by the UniqueClusterSplitProbabilityContainerPtr and must not be touched i.e. unique_ptr::release must not be called.

Definition at line 71 of file AmbiguityProcessorBase.cxx.

72  {
74  if (!m_clusterSplitProbContainerIn.key().empty()) {
75  splitProbContainerIn = SG::ReadHandle(m_clusterSplitProbContainerIn, ctx);
76  if (!splitProbContainerIn.isValid()) {
77  ATH_MSG_ERROR("Failed to get input cluster split probability container "
79  }
80  }
81  std::unique_ptr<Trk::ClusterSplitProbabilityContainer> newSplitProbContainer(
83  ? std::make_unique<Trk::ClusterSplitProbabilityContainer>(
84  *splitProbContainerIn)
85  : std::make_unique<Trk::ClusterSplitProbabilityContainer>());
87  splitProbContainerHandle;
88  if (!m_clusterSplitProbContainerOut.key().empty()) {
89  splitProbContainerHandle =
92  if (splitProbContainerHandle.record(std::move(newSplitProbContainer))
93  .isFailure()) {
95  "Failed to record output cluster split probability container "
97  }
98  // newSplitProbContainer owned by storegate -> no cleanup
99  return {splitProbContainerHandle.ptr(),
101  } else {
102  // when not recording the split prob container in storegate the container
103  // must be deleted once going out of scope
104  return {newSplitProbContainer.release(),
105  [](Trk::ClusterSplitProbabilityContainer* ptr) { delete ptr; }};
106  }
107 }

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

◆ doBremRefit()

virtual std::unique_ptr<Trk::Track> Trk::AmbiguityProcessorBase::doBremRefit ( const Trk::Track track) const
protectedpure virtual

◆ 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

◆ fit()

virtual std::unique_ptr<Trk::Track> Trk::AmbiguityProcessorBase::fit ( const Track track,
bool  flag,
Trk::ParticleHypothesis  hypo 
) const
protectedpure virtual

◆ getTrackParameters()

const TrackParameters * Trk::AmbiguityProcessorBase::getTrackParameters ( const Trk::Track track) const
protected

Definition at line 262 of file AmbiguityProcessorBase.cxx.

263  {
264  const TrackParameters* par = track->perigeeParameters();
265  if (not par) {
266  ATH_MSG_DEBUG("Track (" << track << ") has no perigee! Try any other ?");
267  par = track->trackParameters()->front();
268  }
269  if (not par)
270  ATH_MSG_DEBUG("Track (" << track
271  << ") has no Track Parameters ! No refit !");
272  return par;
273 }

◆ initializeClusterSplitProbContainer()

StatusCode Trk::AmbiguityProcessorBase::initializeClusterSplitProbContainer ( )
protected

Initialize read and write handles for ClusterSplitProbabilityContainers.

If a write handle key is specified for the new ClusterSplitProbabilityContainer, read handles for this key are "renounced" in all child tools.

usage:

Definition at line 28 of file AmbiguityProcessorBase.cxx.

28  {
29  // init ClusterSplitProb input and output container handles and renounce the
30  // output handle from its tools. the latter works because the ClusterSplitProb
31  // output container is created and recorded before the tools are called.
36  if (!m_clusterSplitProbContainerOut.key().empty()) {
37  auto visitor = [this](const IAlgTool* tool) {
38  const AlgTool* alg_tool = dynamic_cast<const AlgTool*>(tool);
39  for (Gaudi::DataHandle* handle : alg_tool->inputHandles()) {
40  this->msg(MSG::DEBUG) << " input Handle " << tool->name() << " . "
41  << handle->objKey() << endmsg;
42  }
43  for (const auto& elm : alg_tool->inputDataObjs()) {
44  this->msg(MSG::DEBUG)
45  << " input object " << tool->name() << " . " << elm.key() << endmsg;
46  }
47  };
48  if (msgLvl(MSG::DEBUG)) {
49  ToolVisitor::visit(tools(), visitor);
50  }
52  ATH_MSG_DEBUG(" Renounce " << m_clusterSplitProbContainerOut.objKey());
53  auto logger = RenounceToolInputsVisitor::createLogger(
54  [this](const std::string_view& tool_name, const std::string_view& key) {
55  this->msg(MSG::INFO)
56  << " Renounce " << tool_name << " . " << key << endmsg;
57  });
58  RenounceToolInputsVisitor renounce(
59  std::vector<DataObjID>{m_clusterSplitProbContainerOut.fullKey()},
60  logger);
61  ToolVisitor::visit(tools(), renounce);
62  ATH_MSG_DEBUG(" renounced " << m_clusterSplitProbContainerOut.objKey());
63  if (msgLvl(MSG::DEBUG)) {
64  ToolVisitor::visit(tools(), visitor);
65  }
66  }
67  return StatusCode::SUCCESS;
68 }

◆ 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 & Trk::ITrackAmbiguityProcessorTool::interfaceID ( )
inlinestaticinherited

Definition at line 52 of file ITrackAmbiguityProcessorTool.h.

53 {
54  return IID_ITrackAmbiguityProcessorTool;
55 }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

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

◆ msgLvl()

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

Definition at line 30 of file AthCommonMsg.h.

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

◆ outputHandles()

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

Return this algorithm's output handles.

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

◆ process() [1/2]

virtual const TrackCollection* Trk::ITrackAmbiguityProcessorTool::process ( const TrackCollection ,
Trk::PRDtoTrackMap prd_to_track_map = nullptr 
) const
pure virtualinherited

(in concrete object) Returns a processed TrackCollection from the passed 'tracks'

Parameters
trackscollection of tracks which will have ambiguities resolved. Will not be modified.
prd_to_track_mapon optional prd-to-track map being filled by the processor.
Returns
new collections of tracks, with ambiguities resolved. Ownership is passed on. (i.e. client handles deletion).
If no prd-to-track map is given the processor might create one internally (for internal
use only, or exported to storegate).

Implemented in Trk::TrackSelectionProcessorTool, Trk::SimpleAmbiguityProcessorTool, and Trk::DenseEnvironmentsAmbiguityProcessorTool.

◆ process() [2/2]

virtual const TrackCollection* Trk::ITrackAmbiguityProcessorTool::process ( const TracksScores ) const
pure virtualinherited

◆ refitPrds()

virtual Trk::Track* Trk::AmbiguityProcessorBase::refitPrds ( const Trk::Track track,
Trk::PRDtoTrackMap prdToTrackMap,
Counter stat 
) const
protectedpure virtual

◆ refitRots()

Trk::Track * Trk::AmbiguityProcessorBase::refitRots ( const Trk::Track track,
Counter stat 
) const
protectedvirtual

Definition at line 277 of file AmbiguityProcessorBase.cxx.

278  {
279  ATH_MSG_VERBOSE("Refit track " << track);
280  // refit using first parameter, do outliers
281  std::unique_ptr<Trk::Track> newTrack{};
282  if (m_tryBremFit and track->info().trackProperties(Trk::TrackInfo::BremFit)) {
283  stat.incrementCounterByRegion(CounterIndex::kNbremFits, track);
284  ATH_MSG_VERBOSE("Brem track, refit with electron brem fit");
285  newTrack = doBremRefit(*track);
286  } else {
287  stat.incrementCounterByRegion(CounterIndex::kNfits, track);
288  ATH_MSG_VERBOSE("Normal track, refit");
289  newTrack = fit(*track, true, m_particleHypothesis);
290  if ((not newTrack) and shouldTryBremRecovery(*track)) {
291  stat.incrementCounterByRegion(CounterIndex::kNrecoveryBremFits, track);
292  ATH_MSG_VERBOSE("Normal fit failed, try brem recovery");
293  newTrack = doBremRefit(*track);
294  }
295  }
296 
297  if (newTrack) {
298  stat.incrementCounterByRegion(CounterIndex::kNgoodFits, newTrack.get());
299  // keeping the track of previously accumulated TrackInfo
300  const Trk::TrackInfo& originalInfo = track->info();
301  newTrack->info().addPatternReco(originalInfo);
302  } else {
303  stat.incrementCounterByRegion(CounterIndex::kNfailedFits, track);
304  }
305  return newTrack.release();
306 }

◆ refitTrack()

Track * Trk::AmbiguityProcessorBase::refitTrack ( const Trk::Track track,
Trk::PRDtoTrackMap prdToTrackMap,
Counter stat,
int  trackId,
int  subtrackId 
) const
protected

refit track

Definition at line 116 of file AmbiguityProcessorBase.cxx.

119  {
120  std::unique_ptr<Trk::Track> newTrack;
121  if (!m_suppressTrackFit) {
122  if (m_refitPrds) {
123  // simple case, fit PRD directly
124  ATH_MSG_VERBOSE("Refit track " << track << " from PRDs");
125  newTrack.reset(refitPrds(track, prdToTrackMap, stat));
126  } else {
127  // ok, we fit ROTs
128  ATH_MSG_VERBOSE("Refit track " << track << " from ROTs");
129  newTrack.reset(refitRots(track, stat));
130  }
131  } else {
133  }
134  if (newTrack) {
135  if (m_observerTool.isEnabled()) {
136  m_observerTool->rejectTrack(trackId, xAOD::RejectionStep::refitTrack,
138  m_observerTool->addSubTrack(subtrackId, trackId, *newTrack);
139  }
140  ATH_MSG_DEBUG("New track " << newTrack.get() << " successfully fitted from "
141  << track);
142  } else {
143  if (m_observerTool.isEnabled()) {
144  m_observerTool->rejectTrack(trackId, xAOD::RejectionStep::refitTrack,
146  }
147  ATH_MSG_DEBUG("Fit failed !");
148  }
149  return newTrack.release();
150 }

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

◆ shouldTryBremRecovery() [1/2]

bool Trk::AmbiguityProcessorBase::shouldTryBremRecovery ( const Trk::Track track) const
protected

Definition at line 19 of file AmbiguityProcessorBase.cxx.

20  {
21  return m_tryBremFit and
22  not(track.info().trackProperties(Trk::TrackInfo::BremFit)) and
23  (track.trackParameters()->front()->pT() > m_pTminBrem) and
24  ((not m_caloSeededBrem) or
25  track.info().patternRecoInfo(Trk::TrackInfo::TrackInCaloROI));
26 }

◆ shouldTryBremRecovery() [2/2]

bool Trk::AmbiguityProcessorBase::shouldTryBremRecovery ( const Trk::Track track,
const TrackParameters pPar 
) const
protected

Definition at line 109 of file AmbiguityProcessorBase.cxx.

110  {
111  return m_tryBremFit and (pPar->pT() > m_pTminBrem) and
112  ((not m_caloSeededBrem) or
113  track.info().patternRecoInfo(Trk::TrackInfo::TrackInCaloROI));
114 }

◆ statistics()

virtual void Trk::ITrackAmbiguityProcessorTool::statistics ( )
pure virtualinherited

Print statistics at the end of the processing.

Implemented in Trk::TrackSelectionProcessorTool, Trk::SimpleAmbiguityProcessorTool, and Trk::DenseEnvironmentsAmbiguityProcessorTool.

◆ 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

◆ ATLAS_THREAD_SAFE

Counter m_stat Trk::AmbiguityProcessorBase::ATLAS_THREAD_SAFE
mutableprotected

Definition at line 130 of file AmbiguityProcessorBase.h.

◆ m_caloSeededBrem

bool Trk::AmbiguityProcessorBase::m_caloSeededBrem {}
protected

Definition at line 159 of file AmbiguityProcessorBase.h.

◆ m_clusterSplitProbContainerIn

SG::ReadHandleKey<Trk::ClusterSplitProbabilityContainer> Trk::AmbiguityProcessorBase::m_clusterSplitProbContainerIn
private
Initial value:
{this, "InputClusterSplitProbabilityName",
"", ""}

Definition at line 150 of file AmbiguityProcessorBase.h.

◆ m_clusterSplitProbContainerOut

SG::WriteHandleKey<Trk::ClusterSplitProbabilityContainer> Trk::AmbiguityProcessorBase::m_clusterSplitProbContainerOut
private
Initial value:
{this, "OutputClusterSplitProbabilityName",
"", ""}

Definition at line 153 of file AmbiguityProcessorBase.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_etaBounds

std::vector<float> Trk::AmbiguityProcessorBase::m_etaBounds
protected

eta intervals for internal monitoring

Definition at line 128 of file AmbiguityProcessorBase.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_forceRefit

bool Trk::AmbiguityProcessorBase::m_forceRefit {true}
protected

by default tracks at input get refitted

Definition at line 166 of file AmbiguityProcessorBase.h.

◆ m_matEffects

int Trk::AmbiguityProcessorBase::m_matEffects {3}
protected

read in as an integer and convert to particle hypothesis

reference: /TrkEventPrimitives/ParticleHypothesis.h

Definition at line 170 of file AmbiguityProcessorBase.h.

◆ m_observerTool

PublicToolHandle<Trk::ITrkObserverTool> Trk::AmbiguityProcessorBase::m_observerTool
protected
Initial value:
{
this, "ObserverTool", "", "track observer within ambiguity solver"}

Observer tool This tool is used to observe the tracks and their 'score'.

Definition at line 140 of file AmbiguityProcessorBase.h.

◆ m_particleHypothesis

Trk::ParticleHypothesis Trk::AmbiguityProcessorBase::m_particleHypothesis {undefined}
protected

Definition at line 171 of file AmbiguityProcessorBase.h.

◆ m_pTminBrem

float Trk::AmbiguityProcessorBase::m_pTminBrem {1000.}
protected

Definition at line 160 of file AmbiguityProcessorBase.h.

◆ m_refitPrds

bool Trk::AmbiguityProcessorBase::m_refitPrds {}
protected

Definition at line 164 of file AmbiguityProcessorBase.h.

◆ m_scoringTool

ToolHandle<ITrackScoringTool> Trk::AmbiguityProcessorBase::m_scoringTool
protected
Initial value:
{this, "ScoringTool", "",
"track scoring tool"}

Scoring tool This tool is used to 'score' the tracks, i.e.

to quantify what a good track is.

Todo:
The actual tool that is used should be configured through job options

Definition at line 136 of file AmbiguityProcessorBase.h.

◆ m_statMutex

std::mutex Trk::AmbiguityProcessorBase::m_statMutex
mutableprotected

Definition at line 129 of file AmbiguityProcessorBase.h.

◆ m_suppressHoleSearch

bool Trk::AmbiguityProcessorBase::m_suppressHoleSearch {}
protected

Definition at line 161 of file AmbiguityProcessorBase.h.

◆ m_suppressTrackFit

bool Trk::AmbiguityProcessorBase::m_suppressTrackFit {}
protected

Definition at line 163 of file AmbiguityProcessorBase.h.

◆ m_trackSummaryTool

ToolHandle<Trk::IExtendedTrackSummaryTool> Trk::AmbiguityProcessorBase::m_trackSummaryTool
protected
Initial value:
{
this, "TrackSummaryTool", "InDetTrackSummaryToolNoHoleSearch"}

Definition at line 142 of file AmbiguityProcessorBase.h.

◆ m_tryBremFit

bool Trk::AmbiguityProcessorBase::m_tryBremFit {}
protected

brem recovery mode with brem fit ?

Definition at line 158 of file AmbiguityProcessorBase.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
Trk::AmbiguityProcessorBase::CounterIndex::kNfailedFits
@ kNfailedFits
Trk::AmbiguityProcessorBase::m_clusterSplitProbContainerIn
SG::ReadHandleKey< Trk::ClusterSplitProbabilityContainer > m_clusterSplitProbContainerIn
Definition: AmbiguityProcessorBase.h:150
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
Trk::AmbiguityProcessorBase::m_pTminBrem
float m_pTminBrem
Definition: AmbiguityProcessorBase.h:160
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
xAOD::refitTrackScoreZero
@ refitTrackScoreZero
Definition: TrackingPrimitives.h:485
Trk::AmbiguityProcessorBase::m_etaBounds
std::vector< float > m_etaBounds
eta intervals for internal monitoring
Definition: AmbiguityProcessorBase.h:128
xAOD::bremRefitTrackScoreZero
@ bremRefitTrackScoreZero
Definition: TrackingPrimitives.h:484
Trk::AmbiguityProcessorBase::CounterIndex::kNbremFits
@ kNbremFits
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::AmbiguityProcessorBase::CounterIndex::kNscoreZeroBremRefitFailed
@ kNscoreZeroBremRefitFailed
AthCommonDataStore< AthCommonMsg< AlgTool > >::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 > renounce(T &h)
Definition: AthCommonDataStore.h:380
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
Trk::AmbiguityProcessorBase::refitRots
virtual Trk::Track * refitRots(const Trk::Track *track, Counter &stat) const
Definition: AmbiguityProcessorBase.cxx:277
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::AmbiguityProcessorBase::m_refitPrds
bool m_refitPrds
Definition: AmbiguityProcessorBase.h:164
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
Trk::TrackParameters
ParametersBase< 5, Charged > TrackParameters
Definition: Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:24
Trk::AmbiguityProcessorBase::m_observerTool
PublicToolHandle< Trk::ITrkObserverTool > m_observerTool
Observer tool This tool is used to observe the tracks and their 'score'.
Definition: AmbiguityProcessorBase.h:140
Trk::AmbiguityProcessorBase::CounterIndex::kNfits
@ kNfits
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
xAOD::addTrack
@ addTrack
Definition: TrackingPrimitives.h:465
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::AmbiguityProcessorBase::CounterIndex::kNscoreZero
@ kNscoreZero
beamspotman.n
n
Definition: beamspotman.py:731
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
SG::WriteHandle::ptr
pointer_type ptr()
Dereference the pointer.
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Trk::AmbiguityProcessorBase::shouldTryBremRecovery
bool shouldTryBremRecovery(const Trk::Track &track) const
Definition: AmbiguityProcessorBase.cxx:19
Trk::AmbiguityProcessorBase::CounterIndex::kNscoreZeroBremRefitScoreZero
@ kNscoreZeroBremRefitScoreZero
xAOD::bremRefitFailed
@ bremRefitFailed
Definition: TrackingPrimitives.h:482
Trk::AmbiguityProcessorBase::fit
virtual std::unique_ptr< Trk::Track > fit(const Track &track, bool flag, Trk::ParticleHypothesis hypo) const =0
Trk::TrackScore
float TrackScore
Definition: TrackScore.h:10
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AmbiguityProcessor::createNewFitQualityTrack
std::unique_ptr< Trk::Track > createNewFitQualityTrack(const Trk::Track &track)
Definition: AmbiguityProcessorUtility.cxx:33
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::TrackInfo::BremFit
@ BremFit
A brem fit was performed on this track.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:78
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
Trk::TrackInfo::TrackInCaloROI
@ TrackInCaloROI
A track in a CaloROI.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/TrackInfo.h:236
xAOD::refitFailed
@ refitFailed
Definition: TrackingPrimitives.h:480
beamspotman.stat
stat
Definition: beamspotman.py:266
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
Trk::AmbiguityProcessorBase::m_tryBremFit
bool m_tryBremFit
brem recovery mode with brem fit ?
Definition: AmbiguityProcessorBase.h:158
xAOD::bremRefitSubtrackCreated
@ bremRefitSubtrackCreated
Definition: TrackingPrimitives.h:483
Trk::AmbiguityProcessorBase::CounterIndex::kNrecoveryBremFits
@ kNrecoveryBremFits
Trk::AmbiguityProcessorBase::m_scoringTool
ToolHandle< ITrackScoringTool > m_scoringTool
Scoring tool This tool is used to 'score' the tracks, i.e.
Definition: AmbiguityProcessorBase.h:136
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
Trk::AmbiguityProcessorBase::m_clusterSplitProbContainerOut
SG::WriteHandleKey< Trk::ClusterSplitProbabilityContainer > m_clusterSplitProbContainerOut
Definition: AmbiguityProcessorBase.h:153
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
tools
Definition: DataQuality/ZLumiScripts/python/tools/__init__.py:1
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
Trk::AmbiguityProcessorBase::m_trackSummaryTool
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trackSummaryTool
Definition: AmbiguityProcessorBase.h:142
Trk::ClusterSplitProbabilityContainer
Container to associate Cluster with cluster splitting probabilities.
Definition: ClusterSplitProbabilityContainer.h:17
Trk::AmbiguityProcessorBase::m_suppressHoleSearch
bool m_suppressHoleSearch
Definition: AmbiguityProcessorBase.h:161
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
xAOD::score
@ score
Definition: TrackingPrimitives.h:513
Trk::AmbiguityProcessorBase::m_particleHypothesis
Trk::ParticleHypothesis m_particleHypothesis
Definition: AmbiguityProcessorBase.h:171
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
a
TList * a
Definition: liststreamerinfos.cxx:10
h
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
AmbiguityProcessor::getUid
int getUid()
Definition: AmbiguityProcessorUtility.cxx:60
Trk::AmbiguityProcessorBase::m_suppressTrackFit
bool m_suppressTrackFit
Definition: AmbiguityProcessorBase.h:163
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
Trk::AmbiguityProcessorBase::doBremRefit
virtual std::unique_ptr< Trk::Track > doBremRefit(const Trk::Track &track) const =0
Trk::AmbiguityProcessorBase::refitPrds
virtual Trk::Track * refitPrds(const Trk::Track *track, Trk::PRDtoTrackMap &prdToTrackMap, Counter &stat) const =0
Trk::AmbiguityProcessorBase::CounterIndex::kNgoodFits
@ kNgoodFits
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
Trk::AmbiguityProcessorBase::m_caloSeededBrem
bool m_caloSeededBrem
Definition: AmbiguityProcessorBase.h:159
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
xAOD::refitTrack
@ refitTrack
Definition: TrackingPrimitives.h:463
xAOD::subtrackCreated
@ subtrackCreated
Definition: TrackingPrimitives.h:479
python.iconfTool.gui.pad.logger
logger
Definition: pad.py:14
CP::TrackPtr
SortedObjPtr< xAOD::TrackParticle > TrackPtr
Definition: PhysicsAnalysis/AnalysisCommon/IsolationSelection/IsolationSelection/Defs.h:70
Trk::AmbiguityProcessorBase::CounterIndex::kNscoreZeroBremRefit
@ kNscoreZeroBremRefit
fitman.k
k
Definition: fitman.py:528
Trk::AmbiguityProcessorBase::CounterIndex::kNscoreOk
@ kNscoreOk
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37