11#ifndef INDETInDetDenseEnvAmbiTrackSelectionTool_H
12#define INDETInDetDenseEnvAmbiTrackSelectionTool_H
32#include "GaudiKernel/ToolHandle.h"
70 virtual StatusCode
finalize()
override;
86 int subtrackId)
const override;
223 std::cout <<
"Unique hits " <<
m_numUnused << std::endl;
227 std::cout <<
"Pseudo " <<
m_numPseudo << std::endl;
231 std::cout <<
"Shared " <<
m_numShared << std::endl;
244 if (
ATH_UNLIKELY(!
x->trackParameters() and !
y->trackParameters()))
return false;
245 if (
ATH_UNLIKELY(!
x->trackParameters() ||
x->trackParameters()->size() <= 0) )
return true;
246 if (
ATH_UNLIKELY(!
y->trackParameters() ||
y->trackParameters()->size() <= 0) )
return false;
247 return std::fabs( (*
x->trackParameters())[0]->parameters()[
Trk::qOverP]) < std::fabs( (*
y->trackParameters())[0]->parameters()[
Trk::qOverP]) ;
259 std::vector<const Trk::RIO_OnTrack*>
m_RIO;
265 std::cout <<
"WARNING DON'T USE THE DEFAULT CONSTRUCTOR OF tsosDetails" << std::endl;
281 int indexPreviousMeasurement = currentIndex-1;
282 while(indexPreviousMeasurement >= 0){
286 --indexPreviousMeasurement;
289 return indexPreviousMeasurement;
295 EventContext::ContextEvt_t
m_evt{EventContext::INVALID_CONTEXT_EVT};
399 bool& maxOtherHasIBL,
403 std::pair< const Trk::TrackParameters* , const Trk::TrackParameters* >
407 int splitSharedPix )
const;
415 bool isTwoPartClus(
float splitProb1,
float splitProb2)
const;
428 PublicToolHandle<ITrtDriftCircleCutTool>
m_selectortool{
this,
"DriftCircleCutTool",
"InDet::InDetTrtDriftCircleCutTool"};
437 {
this,
"AssociationTool",
"InDet::InDetPRDtoTrackMapToolGangedPixels" };
440 PublicToolHandle<Trk::ITrkObserverTool>
m_observerTool{
this,
"ObserverTool",
"",
"track observer within ambiguity solver"};
443 IntegerProperty
m_minHits{
this,
"minHits", 5,
"Min Number of hits on track"};
444 IntegerProperty
m_minTRT_Hits{
this,
"minTRTHits", 0,
"Min Number of TRT hits on track"};
446 IntegerProperty
m_maxTracksPerPRD{
this,
"maxTracksPerSharedPRD", 2,
"Max number of tracks per hit. When NN is used, other flags set the limits."};
449 BooleanProperty
m_cosmics{
this,
"Cosmics",
false,
"Trying to reco cosmics?"};
450 BooleanProperty
m_parameterization{
this,
"UseParameterization",
true,
"Use table of min number DCs"};
452 FloatProperty
m_sharedProbCut{
this,
"sharedProbCut", 0.3,
"Min split prob to break a cluster into two parts"};
453 FloatProperty
m_sharedProbCut2{
this,
"sharedProbCut2", 0.3,
"Min split prob to break a clsuter into three parts"};
456 IntegerProperty
m_minUniqueSCTHits{
this,
"minUniqueSCTHits", 2,
"Min number of hits in the SCT that we need before we allow hit sharing in the SCT"};
458 IntegerProperty
m_maxPixOnePartCluster{
this,
"maxPixOnePartCluster", 2,
"Max number of tracks that can be associated to a 1 particle cluster"};
459 IntegerProperty
m_maxPixTwoPartCluster{
this,
"maxPixTwoPartCluster", 2,
"Max number of tracks that can be associated to a 2 particle cluster"};
460 IntegerProperty
m_maxPixMultiCluster{
this,
"maxPixMultiCluster", 4,
"Max number of tracks that can be associated to a >= 3 particle cluster"};
461 BooleanProperty
m_shareSplitHits{
this,
"shareSplitHits",
false,
"Allow shared hits to be shared on 1 more track"};
462 IntegerProperty
m_minPixHitAccepted{
this,
"minPixHitAccepted", 2,
"Min number of pixel hits needed to be allowed to push accepted tracks over shared module limits"};
483 BooleanProperty
m_monitorTracks{
this,
"MonitorAmbiguitySolving",
false,
"to track observeration/monitoring (default is false)"};
Maintain a set of objects, one per slot.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
Maintain a set of objects, one per slot.
This is an Identifier helper class for both the Pixel and SCT subdetectors.
Container to associate Cluster with cluster splitting probabilities.
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
represents the track state (measurement, material, fit parameters and quality) at a surface.
Ensure that the ATLAS eigen extensions are properly loaded.
ParametersBase< TrackParametersDim, Charged > TrackParameters
std::vector< double > m_hadE
std::vector< double > m_emR
EventContext::ContextEvt_t m_evt
std::vector< double > m_hadZ
std::vector< double > m_emZ
std::vector< double > m_emF
std::vector< double > m_emE
std::vector< double > m_hadR
std::vector< double > m_hadF