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

The InDetAlignTrackSelTool serves to select high quality tracks for the inner detector (Pixel+SCT) alignment algorithms. This AlgTool provides a track selection based on the following cut variables: Momentum, pt, number of shared hits, number of holes and chi2 probability. Returns 0 in case a track is not accepted, otherwise 1. More...

#include <InDetAlignTrackSelTool.h>

Inheritance diagram for InDetAlignTrackSelTool:
Collaboration diagram for InDetAlignTrackSelTool:

Public Member Functions

 InDetAlignTrackSelTool (const std::string &type, const std::string &name, const IInterface *parent)
 
virtual ~InDetAlignTrackSelTool ()
 
virtual StatusCode initialize ()
 
virtual StatusCode finalize ()
 
virtual int getStatus (const Trk::Track &) const
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

Protected Member Functions

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

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

double Momentum (const Trk::Track &) const
 
double Pt (const Trk::Track &) const
 
int nShared (const Trk::Track &) const
 
int nHoles (const Trk::Track &) const
 
double chi2Prob (const Trk::Track &) const
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

ToolHandle< Trk::ITrackParticleCreatorToolm_particleCreator
 Pointer to track particle creator tool. More...
 
double m_minMomentum
 Minimum value of the momentum of the track. More...
 
double m_minPt
 Minimum value of the transverse momentum of the track. More...
 
int m_maxShared
 Maximum number of shared hits of the track. More...
 
int m_maxHoles
 Maximum number of holes of the track. More...
 
double m_minChi2Prob
 Minimum value of the chi2 Probality of the track. More...
 
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

The InDetAlignTrackSelTool serves to select high quality tracks for the inner detector (Pixel+SCT) alignment algorithms. This AlgTool provides a track selection based on the following cut variables: Momentum, pt, number of shared hits, number of holes and chi2 probability. Returns 0 in case a track is not accepted, otherwise 1.

Author
Sergio Gonzalez Sevilla, Miguel Olivo Gomez http://consult.cern.ch/xwho

Definition at line 37 of file InDetAlignTrackSelTool.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

◆ InDetAlignTrackSelTool()

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

Definition at line 25 of file InDetAlignTrackSelTool.cxx.

30  m_particleCreator("Trk::TrackParticleCreatorTool/TrackParticleCreatorTool", this),
31  m_minMomentum(0),
32  m_minPt(2),
33  m_maxShared(0),
34  m_maxHoles(1),
35  m_minChi2Prob(0.2)
36 {
37  declareInterface<IInDetAlignTrackSelTool>(this);
38  declareProperty("MinMomentum" , m_minMomentum);
39  declareProperty("MinPt" , m_minPt);
40  declareProperty("MaxShared" , m_maxShared);
41  declareProperty("MaxHoles" , m_maxHoles);
42  declareProperty("MinChi2Prob" , m_minChi2Prob);
43 
44  // Tools
45  declareProperty("TrackParticleCreatorTool", m_particleCreator,
46  "tool to build TrackParticle");
47 }

◆ ~InDetAlignTrackSelTool()

InDetAlignTrackSelTool::~InDetAlignTrackSelTool ( )
virtual

Definition at line 49 of file InDetAlignTrackSelTool.cxx.

50 {}

Member Function Documentation

◆ chi2Prob()

double InDetAlignTrackSelTool::chi2Prob ( const Trk::Track track) const
private

Definition at line 177 of file InDetAlignTrackSelTool.cxx.

177  {
179  ATH_MSG_DEBUG( "in chi2Prob()" ) ;
180  double chi2Prob=0.;
181 
182  // get fit quality and chi2 probability of track
183  // chi2Prob = TMath::Prob(chi2,DoF) ROOT function
184  const Trk::FitQuality* fitQual = track.fitQuality();
185 
186  if (fitQual==nullptr) {
187  ATH_MSG_ERROR( "No fit quality assigned to the track" ) ;
188  chi2Prob = -1e12; // return big value
189  }
190  else {
191  if (fitQual->chiSquared() > 0. && fitQual->numberDoF() > 0) {
192  Genfun::CumulativeChiSquare probabilityFunction( fitQual->numberDoF() );
193  chi2Prob = 1 - probabilityFunction( fitQual->chiSquared() );
194  }
195  }
196 
197  return chi2Prob;
198 }

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

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

◆ declareGaudiProperty() [4/4]

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

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

Definition at line 199 of file AthCommonDataStore.h.

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

◆ declareProperty() [1/6]

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

Declare a new Gaudi property.

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

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

Definition at line 245 of file AthCommonDataStore.h.

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

◆ declareProperty() [2/6]

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

Declare a new Gaudi property.

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

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

Definition at line 221 of file AthCommonDataStore.h.

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

◆ declareProperty() [3/6]

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

Definition at line 259 of file AthCommonDataStore.h.

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

◆ declareProperty() [4/6]

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

Declare a new Gaudi property.

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

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

Definition at line 333 of file AthCommonDataStore.h.

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

◆ declareProperty() [5/6]

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

Declare a new Gaudi property.

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

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

Definition at line 352 of file AthCommonDataStore.h.

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

◆ declareProperty() [6/6]

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

Definition at line 145 of file AthCommonDataStore.h.

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

◆ detStore()

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

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

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

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

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

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

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

Add StoreName to extra input/output deps as needed.

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

◆ finalize()

StatusCode InDetAlignTrackSelTool::finalize ( )
virtual

Definition at line 70 of file InDetAlignTrackSelTool.cxx.

70  {
72  ATH_MSG_DEBUG( "InDetAlignTrackSelTool finalize method called" ) ;
73  return StatusCode::SUCCESS;
74 }

◆ getStatus()

int InDetAlignTrackSelTool::getStatus ( const Trk::Track track) const
virtual

Implements IInDetAlignTrackSelTool.

Definition at line 201 of file InDetAlignTrackSelTool.cxx.

201  {
203  ATH_MSG_DEBUG( "in getStatus()" ) ;
204  int stat=1, nholes, nshared;
205  double mom, pt, chi2prob;
206 
207  // momentum
208  mom = Momentum(track);
209  if (mom < m_minMomentum) {
210  stat=0;
211  }
212 
213  // transverse momentum
214  pt = Pt(track);
215  if (pt < m_minPt) {
216  stat=0;
217  }
218 
219  // number of holes
220  nholes = nHoles(track);
221  if (nholes > m_maxHoles) {
222  stat=0;
223  }
224 
225  // number of shared hits
226  nshared = nShared(track);
227  if (nshared > m_maxShared) {
228  stat=0;
229  }
230 
231  // chi2 Probability
232  chi2prob = chi2Prob(track);
233  if (chi2prob < m_minChi2Prob) {
234  stat=0;
235  }
236 
237  ATH_MSG_DEBUG( " momentum(CLHEP::GeV)=" << mom
238  << " pt (CLHEP::GeV)=" << pt
239  << " nshared=" << nshared
240  << " nholes=" << nholes
241  << " chi2Prob=" << chi2prob
242  ) ;
243 
244  if(!stat)
245  ATH_MSG_DEBUG( "Track not accepted" ) ;
246  else
247  ATH_MSG_DEBUG( "Track accepted" ) ;
248 
249  return stat;
250 }

◆ initialize()

StatusCode InDetAlignTrackSelTool::initialize ( )
virtual

Definition at line 53 of file InDetAlignTrackSelTool.cxx.

53  {
55 
56  // get TrackParticleCreatorTool
57  ATH_CHECK(m_particleCreator.retrieve());
58 
59  ATH_MSG_DEBUG( "Cuts selected : min_Momentum(CLHEP::GeV)=" << m_minMomentum
60  << " min_pt(CLHEP::GeV)=" << m_minPt
61  << " max_shared=" << m_maxShared
62  << " max_holes=" << m_maxHoles
63  << " min_chi2Prob=" << m_minChi2Prob ) ;
64 
65  ATH_MSG_DEBUG( "InDetAlignTrackSelTool initialize() successful" ) ;
66  return StatusCode::SUCCESS;
67 }

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

Definition at line 32 of file IInDetAlignTrackSelTool.h.

33 { return IID_INDETALIGN_IInDetAlignTrackSelTool; }

◆ Momentum()

double InDetAlignTrackSelTool::Momentum ( const Trk::Track track) const
private

Definition at line 77 of file InDetAlignTrackSelTool.cxx.

77  {
79  ATH_MSG_DEBUG( "in Momentum() " ) ;
80  double mom=0.;
81 
82  // get measured perigee and momentum of track
83  const Trk::Perigee* perigee = track.perigeeParameters();
84 
85  if ( !perigee->covariance()) {
86  ATH_MSG_ERROR( "No measured perigee parameters assigned to the track" ) ;
87  mom = -1e12; // return big value
88  }
89  else{
90  Amg::VectorX perigeeParams = perigee->parameters();
91  mom = std::abs(1./perigeeParams[Trk::qOverP]);
92  mom /= 1000.; //mom in GeV
93  }
94 
95  return mom;
96 }

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

◆ nHoles()

int InDetAlignTrackSelTool::nHoles ( const Trk::Track track) const
private

Definition at line 149 of file InDetAlignTrackSelTool.cxx.

149  {
151  ATH_MSG_DEBUG( "in nHoles() " ) ;
152  int nholes=0, nhpix, nhsct;
153 
154  xAOD::TrackParticle* trackPart = m_particleCreator->createParticle(track);
155  uint8_t iSummaryValue(0); // Dummy counter to retrieve summary values
156 
157  if (not trackPart){
158  ATH_MSG_ERROR("Could not get xAOD::TrackParticle");
159  nholes = 1000;
160  }
161  else{
162  nhpix = trackPart->summaryValue(iSummaryValue, xAOD::numberOfPixelHoles) ? iSummaryValue : 0;
163  nhsct = trackPart->summaryValue(iSummaryValue, xAOD::numberOfSCTHoles) ? iSummaryValue : 0;
164 
165  if(nhpix==-1)
166  nhpix = 0;
167 
168  if(nhsct==-1)
169  nhsct = 0;
170 
171  nholes = nhpix + nhsct;
172  }
173  return nholes;
174 }

◆ nShared()

int InDetAlignTrackSelTool::nShared ( const Trk::Track track) const
private

Definition at line 121 of file InDetAlignTrackSelTool.cxx.

121  {
123  ATH_MSG_DEBUG( "in nShared()" ) ;
124  int nshared=0, nshpix, nshsct;
125 
126  xAOD::TrackParticle* trackPart = m_particleCreator->createParticle(track);
127  uint8_t iSummaryValue(0); // Dummy counter to retrieve summary values
128 
129  if (not trackPart){
130  ATH_MSG_ERROR("Could not get xAOD::TrackParticle");
131  nshared = 1000;
132  }
133  else{
134  nshpix = trackPart->summaryValue(iSummaryValue, xAOD::numberOfPixelSharedHits) ? iSummaryValue : 0;
135  nshsct = trackPart->summaryValue(iSummaryValue, xAOD::numberOfSCTSharedHits) ? iSummaryValue : 0;
136 
137  if(nshpix==-1)
138  nshpix=0;
139 
140  if(nshsct==-1)
141  nshsct=0;
142 
143  nshared = nshpix + nshsct;
144  }
145  return nshared;
146 }

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

◆ Pt()

double InDetAlignTrackSelTool::Pt ( const Trk::Track track) const
private

Definition at line 99 of file InDetAlignTrackSelTool.cxx.

99  {
101  ATH_MSG_DEBUG( "in Pt() " ) ;
102  double pt=0.;
103 
104  // get measured perigee and pt of track
105  const Trk::Perigee* perigee = track.perigeeParameters();
106 
107  if (!perigee->covariance()) {
108  ATH_MSG_ERROR( "No measured perigee parameters assigned to the track" ) ;
109  pt = -1e12; // return big value
110  }
111  else{
112  Amg::VectorX perigeeParams = perigee->parameters();
113  pt = std::abs(sin(perigeeParams[Trk::theta])/perigeeParams[Trk::qOverP]);
114  pt /= 1000.; // pt in GeV
115  }
116 
117  return pt;
118 }

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

◆ 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_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_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_maxHoles

int InDetAlignTrackSelTool::m_maxHoles
private

Maximum number of holes of the track.

Definition at line 59 of file InDetAlignTrackSelTool.h.

◆ m_maxShared

int InDetAlignTrackSelTool::m_maxShared
private

Maximum number of shared hits of the track.

Definition at line 58 of file InDetAlignTrackSelTool.h.

◆ m_minChi2Prob

double InDetAlignTrackSelTool::m_minChi2Prob
private

Minimum value of the chi2 Probality of the track.

Definition at line 60 of file InDetAlignTrackSelTool.h.

◆ m_minMomentum

double InDetAlignTrackSelTool::m_minMomentum
private

Minimum value of the momentum of the track.

Definition at line 56 of file InDetAlignTrackSelTool.h.

◆ m_minPt

double InDetAlignTrackSelTool::m_minPt
private

Minimum value of the transverse momentum of the track.

Definition at line 57 of file InDetAlignTrackSelTool.h.

◆ m_particleCreator

ToolHandle<Trk::ITrackParticleCreatorTool> InDetAlignTrackSelTool::m_particleCreator
private

Pointer to track particle creator tool.

Definition at line 54 of file InDetAlignTrackSelTool.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:
xAOD::numberOfPixelHoles
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
Definition: TrackingPrimitives.h:261
InDetAlignTrackSelTool::m_particleCreator
ToolHandle< Trk::ITrackParticleCreatorTool > m_particleCreator
Pointer to track particle creator tool.
Definition: InDetAlignTrackSelTool.h:54
Amg::VectorX
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Definition: EventPrimitives.h:32
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
xAOD::numberOfSCTSharedHits
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:272
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
InDetAlignTrackSelTool::m_maxShared
int m_maxShared
Maximum number of shared hits of the track.
Definition: InDetAlignTrackSelTool.h:58
InDetAlignTrackSelTool::Momentum
double Momentum(const Trk::Track &) const
Definition: InDetAlignTrackSelTool.cxx:77
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
test_pyathena.pt
pt
Definition: test_pyathena.py:11
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
InDetAlignTrackSelTool::chi2Prob
double chi2Prob(const Trk::Track &) const
Definition: InDetAlignTrackSelTool.cxx:177
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
InDetAlignTrackSelTool::m_minChi2Prob
double m_minChi2Prob
Minimum value of the chi2 Probality of the track.
Definition: InDetAlignTrackSelTool.h:60
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
xAOD::numberOfPixelSharedHits
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
Definition: TrackingPrimitives.h:262
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::theta
@ theta
Definition: ParamDefs.h:72
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDetAlignTrackSelTool::nShared
int nShared(const Trk::Track &) const
Definition: InDetAlignTrackSelTool.cxx:121
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Trk::FitQuality
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
Definition: FitQuality.h:97
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
xAOD::numberOfSCTHoles
@ numberOfSCTHoles
number of SCT holes [unit8_t].
Definition: TrackingPrimitives.h:270
InDetAlignTrackSelTool::m_minPt
double m_minPt
Minimum value of the transverse momentum of the track.
Definition: InDetAlignTrackSelTool.h:57
InDetAlignTrackSelTool::Pt
double Pt(const Trk::Track &) const
Definition: InDetAlignTrackSelTool.cxx:99
beamspotman.stat
stat
Definition: beamspotman.py:266
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
InDetAlignTrackSelTool::nHoles
int nHoles(const Trk::Track &) const
Definition: InDetAlignTrackSelTool.cxx:149
a
TList * a
Definition: liststreamerinfos.cxx:10
h
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:73
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
InDetAlignTrackSelTool::m_maxHoles
int m_maxHoles
Maximum number of holes of the track.
Definition: InDetAlignTrackSelTool.h:59
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
Trk::FitQuality::chiSquared
double chiSquared() const
returns the of the overall track fit
Definition: FitQuality.h:56
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
Trk::FitQuality::numberDoF
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
Definition: FitQuality.h:60
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
InDetAlignTrackSelTool::m_minMomentum
double m_minMomentum
Minimum value of the momentum of the track.
Definition: InDetAlignTrackSelTool.h:56
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
fitman.k
k
Definition: fitman.py:528