ATLAS Offline Software
Loading...
Searching...
No Matches
InDet::JetFitterV0FinderTool Class Reference

#include <JetFitterV0FinderTool.h>

Inheritance diagram for InDet::JetFitterV0FinderTool:
Collaboration diagram for InDet::JetFitterV0FinderTool:

Public Member Functions

StatusCode initialize ()
StatusCode finalize ()
 JetFitterV0FinderTool (const std::string &t, const std::string &n, const IInterface *p)
 ~JetFitterV0FinderTool ()
const Trk::TwoTrackVerticesInJetdoV0Finding (const xAOD::Vertex &, const TLorentzVector &, std::vector< const Trk::ITrackLink * > &, const std::vector< const xAOD::Vertex * > &, std::vector< const Trk::ITrackLink * > &, std::vector< const Trk::ITrackLink * > &, Amg::Vector3D &) const
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Static Public Member Functions

static const InterfaceID & interfaceID ()

Protected Member Functions

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

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

std::vector< const xAOD::Vertex * > findV0candidates (const xAOD::Vertex &, const TLorentzVector &, std::vector< const Trk::ITrackLink * > &, const std::vector< const xAOD::Vertex * > &) const
bool checkCriteriaFirstFit (const xAOD::Vertex &, const TLorentzVector &, const xAOD::Vertex &) const
bool checkCriteriaSecondFit (const xAOD::Vertex &, const Trk::ITrackLink *) const
Amg::Vector3D computeSeedDirection (const xAOD::Vertex &, const TLorentzVector &, const std::vector< Trk::PositionAndWeight > &) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

ToolHandle< InDet::InDetJetFitterUtilsm_jetFitterUtils {this,"InDetJetFitterUtils","InDet::InDetJetFitterUtils/InDetJetFitterUtils",""}
ToolHandle< Trk::IMode3dFinderm_mode3dfinder {this,"Mode3dFinder","Trk::Mode3dTo1dFinder/Mode3dTo1dFinder",""}
SG::AuxElement::Accessor< float > m_compatibilityAccessor
SG::AuxElement::Accessor< std::vector< const Trk::ITrackLink * > > m_tracksAccessor
Gaudi::Property< bool > m_revertFromPositiveToNegativeTags {this,"revertFromPositiveToNegativeTags",false,""}
Gaudi::Property< double > m_cutTwoTrkVtxVertexProbForBFirstSelectionFirstCriterium {this,"cutTwoTrkVtxVtxProbForBFirstSelectCriteriumA",0.05,""}
Gaudi::Property< double > m_cutTwoTrkVtxVertexProbForBFirstSelectionSecondCriterium {this,"cutTwoTrkVtxVtxProbForBFirstSelectCriteriumB",0.034,""}
Gaudi::Property< double > m_cutCompatibilityPrimaryVertexSingleTrackForBFirstSelection {this,"cutCompatibilityPrimaryVertexSingleTrackForBFirstSelection",1e-1,""}
Gaudi::Property< double > m_cutCompatibilityPrimaryVertexBothTracksForBFirstSelection {this,"cutCompatibilityPrimaryVertexBothTracksForBFirstSelection",1e-2,""}
Gaudi::Property< double > m_cutIPD0BothTracksForBFirstSelection {this,"cutIPD0BothTracksForBFirstSelection",3.5,""}
Gaudi::Property< double > m_cutIPZ0BothTracksForBFirstSelection {this,"cutIPZ0BothTracksForBFirstSelection",5.,""}
Gaudi::Property< double > m_cutPtBothTracksForBFirstSelection {this,"cutPtBothTracksForBFirstSelection",500.,""}
Gaudi::Property< double > m_cutTwoTrkVtxLifetimeSignificanceForBFirstSelectionFirstCriterium {this,"cutTwoTrkVtxLifeSignForBFirstSelectCriteriumA",1.,""}
Gaudi::Property< double > m_cutTwoTrkVtxLifetimeSignificanceForBFirstSelectionSecondCriterium {this,"cutTwoTrkVtxLifeSignForBFirstSelectCriteriumB",1.5,""}
Gaudi::Property< double > m_cutCompatibilityToPrimarySingleTrackForMatInteractions {this,"cutCompToPrimarySingleTrackForMatInterac",1e-4,""}
Gaudi::Property< double > m_cutCompatibilityToPrimaryBothTracksForMatInteractions {this,"cutCompToPrimaryBothTracksForMatInterac",1e-6,""}
Gaudi::Property< double > m_firstLayer_min {this,"firstLayer_min",34.0-2.5,""}
Gaudi::Property< double > m_firstLayer_max {this,"firstLayer_max",34.0+2.5,""}
Gaudi::Property< double > m_secondLayer_min {this,"secondLayer_min",51.5-3,""}
Gaudi::Property< double > m_secondLayer_max {this,"secondLayer_max",51.5+3,""}
Gaudi::Property< double > m_cutCompatibilityPrimaryVertexSinglePositiveLifetimeTrackForBSecondSelection {this,"cutCompPVSinglePosLifeTrackForBSecondSelect",5e-2,""}
Gaudi::Property< double > m_cutCompatibilityPrimaryVertexSingleNegativeLifetimeTrackForBSecondSelection {this,"cutCompPVSingleNegLifeTrackForBSecondSelect",1e-2,""}
Gaudi::Property< double > m_cutIPD0SigBoxSingleTrackForBSecondSelection {this,"cutIPD0SigBoxSingleTrackForBSecondSelection",2.,""}
Gaudi::Property< double > m_cutIPZ0SigBoxSingleTrackForBSecondSelection {this,"cutIPZ0SigBoxSingleTrackForBSecondSelection",5.,""}
Gaudi::Property< double > m_cutIPD0SingleTrackForBSecondSelection {this,"cutIPD0SingleTrackForBSecondSelection",1.5,""}
Gaudi::Property< double > m_cutIPZ0SingleTrackForBSecondSelection {this,"cutIPZ0SingleTrackForBSecondSelection",3.,""}
Gaudi::Property< double > m_cutPtSingleTrackForBSecondSelection {this,"cutPtSingleTrackForBSecondSelection",750,""}
Gaudi::Property< bool > m_useITkMaterialRejection {this,"useITkMaterialRejection",false,"Reject vertices from hadronic interactions in detector material using ITk layout"}
const BeamPipeDetectorManagerm_beamPipeMgr = nullptr
const InDetDD::PixelDetectorManagerm_pixelManager = nullptr
std::unique_ptr< TH2D > m_ITkPixMaterialMap
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 29 of file JetFitterV0FinderTool.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

◆ JetFitterV0FinderTool()

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

Definition at line 15 of file JetFitterV0FinderTool.cxx.

16 : AthAlgTool(t, n, p),
17 m_compatibilityAccessor( "TrackCompatibility" ),
18 m_tracksAccessor( "VxTrackAtVertex" )
19{
20
21 declareInterface< JetFitterV0FinderTool >(this);
22
23 std::string toolname = this->name();
24 std::string delimiter = "_";
25 std::string::size_type firstDelimiter = toolname.find(delimiter);
26 std::string sub = toolname.substr(0, firstDelimiter);
27 std::string decoratorName = std::string("JetFitter_TrackCompatibility_") + sub;
28 m_compatibilityAccessor = SG::AuxElement::Accessor< float >( decoratorName );
29
30}
AthAlgTool()
Default constructor:
SG::AuxElement::Accessor< float > m_compatibilityAccessor
SG::AuxElement::Accessor< std::vector< const Trk::ITrackLink * > > m_tracksAccessor

◆ ~JetFitterV0FinderTool()

JetFitterV0FinderTool::~JetFitterV0FinderTool ( )
default

Member Function Documentation

◆ checkCriteriaFirstFit()

bool JetFitterV0FinderTool::checkCriteriaFirstFit ( const xAOD::Vertex & primaryVertex,
const TLorentzVector & jetMomentum,
const xAOD::Vertex & v0candidate ) const
private

Definition at line 177 of file JetFitterV0FinderTool.cxx.

179 {
180
181
182 // Check vertex probability
183 double vertexProb = TMath::Prob( v0candidate.chiSquared(),
184 v0candidate.numberDoF() );
185
188 ATH_MSG_DEBUG( "V0 candidate does not satisfy the vertex prob criteria!" );
189 return false;
190 }
191
192
193
194 // Retrieve and prepare objects
195 const std::vector< const Trk::ITrackLink* > vxTrackAtVertex = m_tracksAccessor( v0candidate );
196 const Trk::ITrackLink* trackLink1 = vxTrackAtVertex.at( 0 );
197 const Trk::ITrackLink* trackLink2 = vxTrackAtVertex.at( 1 );
198
199 if ( trackLink1 == nullptr || trackLink2 == nullptr ) {
200 ATH_MSG_DEBUG( "Zero pointer (ITrackLink): skipping 2-track candidate" );
201 return false;
202 }
203
204 const Trk::LinkToXAODTrackParticle* linkTrackA = dynamic_cast< const Trk::LinkToXAODTrackParticle* >( trackLink1 );
205 const Trk::LinkToXAODTrackParticle* linkTrackB = dynamic_cast< const Trk::LinkToXAODTrackParticle* >( trackLink2 );
206
207 if ( !linkTrackA || !linkTrackB ) {
208 ATH_MSG_DEBUG( "Zero pointer (LinkToXAODTrackParticle): skipping 2-track candidate" );
209 return false;
210 }
211
212
213 // TO-DO
214 // remove track candidates that are supposed to be voted !
215
216
217
218
219 // Take track compatibility and compute flight significance
220 // compatibility is attached to tracks, so we need to retrieve xAOD::TrackParticles objects
221 float compatibiltyTrackA = m_compatibilityAccessor( ***linkTrackA );
222 float compatibiltyTrackB = m_compatibilityAccessor( ***linkTrackB );
223
224 if ( TMath::Prob( fabs(compatibiltyTrackA),2 ) >= m_cutCompatibilityPrimaryVertexSingleTrackForBFirstSelection ) return false;
225 if ( TMath::Prob( fabs(compatibiltyTrackB),2 ) >= m_cutCompatibilityPrimaryVertexSingleTrackForBFirstSelection ) return false;
226 if ( TMath::Prob( fabs(compatibiltyTrackA) + fabs(compatibiltyTrackB),4 ) >= m_cutCompatibilityPrimaryVertexBothTracksForBFirstSelection ) return false;
227
228
229 // Criteria on D0 and Z0 of the tracks w.r.t. primary vertex
230 const Trk::TrackParameters* initialPerigee1 = linkTrackA->parameters();
231 const Trk::TrackParameters* initialPerigee2 = linkTrackB->parameters();
232
233 if ( !initialPerigee1 || !initialPerigee2 ) {
234 ATH_MSG_DEBUG( "No refitted parameters available for 2-track vertex. Candidate not accepted..." );
235 return false;
236 }
237
238 if ( initialPerigee1->momentum().perp() <= m_cutPtBothTracksForBFirstSelection ) return false;
239 if ( initialPerigee2->momentum().perp() <= m_cutPtBothTracksForBFirstSelection ) return false;
240
241
242
243
244 // Need to create Trk::RecVertex object. Is this really necessary?
245 Trk::RecVertex primaryVertexRecVertex( primaryVertex.position(),
246 primaryVertex.covariancePosition(),
247 primaryVertex.numberDoF(),
248 primaryVertex.chiSquared());
249
250 std::pair<double,double> track1_IPd0z0 = m_jetFitterUtils->getD0andZ0IP( *initialPerigee1,
251 primaryVertexRecVertex );
252
253 std::pair<double,double> track2_IPd0z0 = m_jetFitterUtils->getD0andZ0IP(*initialPerigee2,
254 primaryVertexRecVertex);
255
256
257
258 ATH_MSG_DEBUG( "Checking good quality for track A..." );
259 if ( fabs( track1_IPd0z0.first ) >= m_cutIPD0BothTracksForBFirstSelection ) return false;
260 if ( fabs( track1_IPd0z0.second ) >= m_cutIPZ0BothTracksForBFirstSelection ) return false;
261
262 ATH_MSG_DEBUG( "Checking good quality for track B..." );
263 if ( fabs( track2_IPd0z0.first ) >= m_cutIPD0BothTracksForBFirstSelection ) return false;
264 if ( fabs( track2_IPd0z0.second ) >= m_cutIPZ0BothTracksForBFirstSelection ) return false;
265
266
267
268
269
270 ATH_MSG_DEBUG( "Checking distance and error between two vertices..." );
271 std::pair<double,double> distanceAndError = m_jetFitterUtils->getDistanceAndErrorBetweenTwoVertices( v0candidate,primaryVertexRecVertex );
272
273 Amg::Vector3D jetMomSpatial( jetMomentum.X(), jetMomentum.Y(), jetMomentum.Z() );
274 double sign = ( v0candidate.position() - primaryVertexRecVertex.position() ).dot( jetMomSpatial );
275
276 double signedDistance = distanceAndError.first;
277 if ( sign < 0 ) signedDistance = -signedDistance;
278 double significance = signedDistance/distanceAndError.second;
279
280 double FirstSelectionFirstCriterium = m_cutTwoTrkVtxLifetimeSignificanceForBFirstSelectionFirstCriterium;
281 double FirstSelectionSecondCriterium = m_cutTwoTrkVtxLifetimeSignificanceForBFirstSelectionSecondCriterium;
282
284 FirstSelectionFirstCriterium = -FirstSelectionFirstCriterium;
285 FirstSelectionSecondCriterium = -FirstSelectionSecondCriterium;
286 }
287
288 bool firstCriterium = ( vertexProb > m_cutTwoTrkVtxVertexProbForBFirstSelectionFirstCriterium ) &&
289 ( significance > FirstSelectionFirstCriterium );
290 bool secondCriterium = ( vertexProb > m_cutTwoTrkVtxVertexProbForBFirstSelectionSecondCriterium ) &&
291 ( significance > FirstSelectionSecondCriterium );
292
293 if ( not ( firstCriterium || secondCriterium ) )
294 return false;
295
296
297
298
299 ATH_MSG_DEBUG( "Checking material interaction in layer..." );
300 double radius = v0candidate.position().perp();
301 double z = v0candidate.position().z();
302 bool matinteraction = false;
303
305 int bin = m_ITkPixMaterialMap->FindBin(z,radius);
306 if(m_ITkPixMaterialMap->GetBinContent(bin)>0) matinteraction = true;
307 }
308
309 else{
310 if ( (radius>m_firstLayer_min && radius<m_firstLayer_max)
311 || (radius>m_secondLayer_min && radius<m_secondLayer_max) )
312 matinteraction = true;
313 }
314
315 if ( matinteraction ) {
316 bool signifCutTight = ( TMath::Prob( fabs( compatibiltyTrackA ),2 ) < m_cutCompatibilityToPrimarySingleTrackForMatInteractions ) &&
317 ( TMath::Prob( fabs( compatibiltyTrackB ),2 ) < m_cutCompatibilityToPrimarySingleTrackForMatInteractions ) &&
318 ( TMath::Prob( fabs( compatibiltyTrackA ) + fabs( compatibiltyTrackB ),4 ) < m_cutCompatibilityToPrimaryBothTracksForMatInteractions );
319
320 if ( signifCutTight ) return false;
321 }
322
323
324
325 // TO-DO
326 // Remove candidates with track overlaps
327
328
329
330 return true;
331}
#define ATH_MSG_DEBUG(x)
int sign(int a)
#define z
Gaudi::Property< double > m_cutCompatibilityToPrimarySingleTrackForMatInteractions
Gaudi::Property< double > m_cutTwoTrkVtxLifetimeSignificanceForBFirstSelectionSecondCriterium
Gaudi::Property< double > m_firstLayer_min
Gaudi::Property< double > m_cutIPZ0BothTracksForBFirstSelection
Gaudi::Property< double > m_cutPtBothTracksForBFirstSelection
Gaudi::Property< bool > m_revertFromPositiveToNegativeTags
std::unique_ptr< TH2D > m_ITkPixMaterialMap
Gaudi::Property< double > m_cutTwoTrkVtxLifetimeSignificanceForBFirstSelectionFirstCriterium
Gaudi::Property< bool > m_useITkMaterialRejection
Gaudi::Property< double > m_cutCompatibilityPrimaryVertexBothTracksForBFirstSelection
Gaudi::Property< double > m_secondLayer_max
Gaudi::Property< double > m_secondLayer_min
Gaudi::Property< double > m_cutTwoTrkVtxVertexProbForBFirstSelectionSecondCriterium
Gaudi::Property< double > m_cutCompatibilityPrimaryVertexSingleTrackForBFirstSelection
Gaudi::Property< double > m_cutIPD0BothTracksForBFirstSelection
Gaudi::Property< double > m_cutCompatibilityToPrimaryBothTracksForMatInteractions
Gaudi::Property< double > m_cutTwoTrkVtxVertexProbForBFirstSelectionFirstCriterium
Gaudi::Property< double > m_firstLayer_max
ToolHandle< InDet::InDetJetFitterUtils > m_jetFitterUtils
virtual const TrackParameters * parameters() const override final
return the track parameters of the track (to which the EL< TrackCollection
const Amg::Vector3D & momentum() const
Access method for the momentum.
float numberDoF() const
Returns the number of degrees of freedom of the vertex fit as float.
float chiSquared() const
Returns the of the vertex fit as float.
const Amg::Vector3D & position() const
Returns the 3-pos.
double signedDistance(const Amg::Vector3D &posA, const Amg::Vector3D &dirA, const Amg::Vector3D &posB, const Amg::Vector3D &dirB)
Calculates the signed distance between two lines in 3D space.
Eigen::Matrix< double, 3, 1 > Vector3D
ParametersBase< TrackParametersDim, Charged > TrackParameters

◆ checkCriteriaSecondFit()

bool JetFitterV0FinderTool::checkCriteriaSecondFit ( const xAOD::Vertex & primaryVertex,
const Trk::ITrackLink * trackLink ) const
private

Definition at line 334 of file JetFitterV0FinderTool.cxx.

335 {
336
337 const Trk::LinkToXAODTrackParticle* linkTrack = dynamic_cast< const Trk::LinkToXAODTrackParticle* >( trackLink );
338 if ( linkTrack == nullptr ) {
339 ATH_MSG_DEBUG( "Zero pointer (LinkToXAODTrackParticle): skipping 2-track candidate" );
340 return false;
341 }
342
343 float compatibilityTrack = m_compatibilityAccessor( ***linkTrack );
344
345
346 const Trk::TrackParameters* perigee = trackLink->parameters();
347 const AmgSymMatrix(5) *measPerigee = perigee->covariance();
348
349 if ( measPerigee == nullptr ) {
350 ATH_MSG_DEBUG( "Track parameters have no covariance. skipping single track candidate..." );
351 return false;
352 }
353
354 // Need to create Trk::RecVertex object. Is this really necessary?
355 Trk::RecVertex primaryVertexRecVertex( primaryVertex.position(),
356 primaryVertex.covariancePosition(),
357 primaryVertex.numberDoF(),
358 primaryVertex.chiSquared());
359
360 std::pair<double,double> track_IPd0z0 = m_jetFitterUtils->getD0andZ0IP( *perigee,
361 primaryVertexRecVertex );
362 std::pair<double,double> track_IPd0z0Sig = m_jetFitterUtils->getD0andZ0IPSig( *perigee,
363 primaryVertexRecVertex );
364
365 const double IPd0 = track_IPd0z0.first;
366 const double IPz0 = track_IPd0z0.second;
367 const double IPd0Sig = track_IPd0z0Sig.first;
368 const double IPz0Sig = track_IPd0z0Sig.second;
369 const double pT = perigee->momentum().perp();
370
371 double cutCompatibilityPrimaryVertexSinglePositiveLifetimeTrackForBSecondSelection = m_cutCompatibilityPrimaryVertexSinglePositiveLifetimeTrackForBSecondSelection;
372 double cutCompatibilityPrimaryVertexSingleNegativeLifetimeTrackForBSecondSelection = m_cutCompatibilityPrimaryVertexSingleNegativeLifetimeTrackForBSecondSelection;
373
375 cutCompatibilityPrimaryVertexSinglePositiveLifetimeTrackForBSecondSelection = m_cutCompatibilityPrimaryVertexSingleNegativeLifetimeTrackForBSecondSelection;
376 cutCompatibilityPrimaryVertexSingleNegativeLifetimeTrackForBSecondSelection = m_cutCompatibilityPrimaryVertexSinglePositiveLifetimeTrackForBSecondSelection;
377 }
378
379 bool passBoxCut = ( fabs(IPd0Sig) < m_cutIPD0SigBoxSingleTrackForBSecondSelection ) &&
381
382
383 if ( fabs(IPd0) > m_cutIPD0SingleTrackForBSecondSelection ||
385 ( compatibilityTrack >= 0 && TMath::Prob( fabs(compatibilityTrack),2) > cutCompatibilityPrimaryVertexSinglePositiveLifetimeTrackForBSecondSelection ) ||
386 ( compatibilityTrack < 0 && TMath::Prob( fabs(compatibilityTrack),2) > cutCompatibilityPrimaryVertexSingleNegativeLifetimeTrackForBSecondSelection ) ||
387 pT < m_cutPtSingleTrackForBSecondSelection || passBoxCut )
388 {
389 ATH_MSG_DEBUG( "Candidate didn't pass one of the selection cuts" );
390 return false;
391 }
392
393 return true;
394}
#define AmgSymMatrix(dim)
Gaudi::Property< double > m_cutIPZ0SigBoxSingleTrackForBSecondSelection
Gaudi::Property< double > m_cutCompatibilityPrimaryVertexSingleNegativeLifetimeTrackForBSecondSelection
Gaudi::Property< double > m_cutIPD0SingleTrackForBSecondSelection
Gaudi::Property< double > m_cutIPZ0SingleTrackForBSecondSelection
Gaudi::Property< double > m_cutPtSingleTrackForBSecondSelection
Gaudi::Property< double > m_cutIPD0SigBoxSingleTrackForBSecondSelection
Gaudi::Property< double > m_cutCompatibilityPrimaryVertexSinglePositiveLifetimeTrackForBSecondSelection

◆ computeSeedDirection()

Amg::Vector3D JetFitterV0FinderTool::computeSeedDirection ( const xAOD::Vertex & primaryVertex,
const TLorentzVector & jetMomentum,
const std::vector< Trk::PositionAndWeight > & positionsOfSeedingVertices ) const
private

Definition at line 396 of file JetFitterV0FinderTool.cxx.

398 {
399
400 Amg::Vector3D JFseedDirection( jetMomentum.X(),jetMomentum.Y(),jetMomentum.Z() );
401 JFseedDirection.normalize();
402 ATH_MSG_VERBOSE( "Jet Direction would be: " << JFseedDirection );
403
404 if ( positionsOfSeedingVertices.empty() )
405 return JFseedDirection;
406
407 Amg::Vector3D theSeedVertex = m_mode3dfinder->getMode( primaryVertex.x(),primaryVertex.y(),positionsOfSeedingVertices );
408 double sign = ( theSeedVertex - primaryVertex.position() ).dot( JFseedDirection );
409
410 if ( m_revertFromPositiveToNegativeTags == false ) {
411
412 if ( sign > 0 ) {
413 JFseedDirection = ( theSeedVertex - primaryVertex.position() ).unit();
414 ATH_MSG_DEBUG( "Using twotrkvtx direction for start: " << JFseedDirection );
415 } else ATH_MSG_DEBUG( "NORMAL SEEDING: Seed vertex is on negative side... Using Jet Direction!" );
416
417 } else {
418
419 if ( sign < 0 ) {
420 JFseedDirection = -( theSeedVertex - primaryVertex.position() ).unit();
421 ATH_MSG_DEBUG( "Using twotrkvtx direction for start: " << JFseedDirection );
422 } else ATH_MSG_DEBUG( "REVERSE SEEDING: Seed vertex is on positive side... Using Jet Direction!" );
423
424 }
425
426 return JFseedDirection;
427}
#define ATH_MSG_VERBOSE(x)
ToolHandle< Trk::IMode3dFinder > m_mode3dfinder
float y() const
Returns the y position.
float x() const
Returns the x position.

◆ declareGaudiProperty()

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

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

Definition at line 156 of file AthCommonDataStore.h.

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

◆ declareProperty()

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

Definition at line 145 of file AthCommonDataStore.h.

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

◆ detStore()

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

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

Definition at line 95 of file AthCommonDataStore.h.

◆ doV0Finding()

const Trk::TwoTrackVerticesInJet * JetFitterV0FinderTool::doV0Finding ( const xAOD::Vertex & primaryVertex,
const TLorentzVector & jetMomentum,
std::vector< const Trk::ITrackLink * > & inputTracks,
const std::vector< const xAOD::Vertex * > & vertexCandidates,
std::vector< const Trk::ITrackLink * > & tracksToUseInFirstFit,
std::vector< const Trk::ITrackLink * > & tracksToUseInSecondFit,
Amg::Vector3D & JFseedDirection ) const

Definition at line 65 of file JetFitterV0FinderTool.cxx.

71 {
72
73 // Vector of seeding vertices.
74 std::vector< Trk::PositionAndWeight > positionsOfSeedingVertices;
75
76 // Using a function here, may become tool in the future!
77 // Phase 3, 4 and 5: find and select v0 candidates
78 std::vector< const xAOD::Vertex* > v0candidates = findV0candidates( primaryVertex,jetMomentum,inputTracks, vertexCandidates );
79 ATH_MSG_DEBUG( "Found " << v0candidates.size() <<" V0 candidates!" );
80
81 // Phase 6
82 // Select tracks for first fit using only the "best tracks" from the two-track vertices
83 ATH_MSG_DEBUG( "Analyzing two track vertices to select the best tracks" );
84 for ( const xAOD::Vertex* v0candidate : v0candidates ) {
85
86 // Check quality for first fit
87 bool satisfyCriteriaFirstFitQuality = checkCriteriaFirstFit( primaryVertex,jetMomentum,*v0candidate );
88 if ( not satisfyCriteriaFirstFitQuality ) {
89 ATH_MSG_DEBUG( "Quality criteria for first fit not satisfied! skipping ... " );
90 continue;
91 }
92
93 // The v0 candidate satisfy the selection criteria
94 // Filling the vector of tracks to be used in the first fit
95 std::vector< const Trk::ITrackLink* > vxTrackAtVertex = m_tracksAccessor( *v0candidate );
96 const Trk::ITrackLink *firstTrack = vxTrackAtVertex.at(0);
97 const Trk::ITrackLink *secondTrack = vxTrackAtVertex.at(1);
98
99 // Second track added first, legacy from old jetfitter
100 bool secondTrackAlreadyStored = InDet::InDetJetFitterUtils::checkIfTrackIsInVector( secondTrack,tracksToUseInFirstFit );
101 if ( not secondTrackAlreadyStored )
102 tracksToUseInFirstFit.push_back( secondTrack );
103
104 // First track
105 bool firstTrackAlreadyStored = InDet::InDetJetFitterUtils::checkIfTrackIsInVector( firstTrack,tracksToUseInFirstFit );
106 if ( not firstTrackAlreadyStored )
107 tracksToUseInFirstFit.push_back( firstTrack );
108
109 positionsOfSeedingVertices.emplace_back( v0candidate->position(),1 );
110 }
111
112
113 // Phase 7
114 ATH_MSG_DEBUG( "Determine single good tracks to add in the fit in a second step" );
115 for ( const Trk::ITrackLink *trackLink : inputTracks ) {
116
117 bool satisfyCriteriaSecondFitQuality = checkCriteriaSecondFit( primaryVertex,trackLink );
118 if ( not satisfyCriteriaSecondFitQuality ) {
119 ATH_MSG_DEBUG( "Quality criteria for second fit not satisfied! skipping ... " );
120 continue;
121 }
122
123 bool alreadyUsed = InDet::InDetJetFitterUtils::checkIfTrackIsInVector( trackLink,tracksToUseInFirstFit );
124 if ( alreadyUsed ) {
125 ATH_MSG_VERBOSE( "Track was already used" );
126 continue;
127 }
128
129 bool trackAlreadyStored = InDet::InDetJetFitterUtils::checkIfTrackIsInVector( trackLink,tracksToUseInSecondFit );
130 if ( not trackAlreadyStored )
131 tracksToUseInSecondFit.push_back( trackLink );
132 }
133
134
135 // Compute JFseedDirection
136 JFseedDirection = computeSeedDirection( primaryVertex,jetMomentum,positionsOfSeedingVertices );
137
138 // First argument is the list of vertex candidates
139 // Second argument is the list of Selected Neutral Tracks To Store
140 // The Trk::TwoTrackVerticesInJet takes over the ownership
141
142 // We need to use normal pointers instead of smart pointers since the code breaks.
143 // We have to fix this issue in the future
144 const Trk::TwoTrackVerticesInJet *twoTrackVerticesInJet = new Trk::TwoTrackVerticesInJet( std::move(v0candidates),
145 std::vector< const Trk::TrackParticleBase* >() );
146 return twoTrackVerticesInJet;
147}
static bool checkIfTrackIsInVector(const Trk::ITrackLink *trackToCheck, const std::vector< const Trk::ITrackLink * > &vectorOfTracks)
bool checkCriteriaFirstFit(const xAOD::Vertex &, const TLorentzVector &, const xAOD::Vertex &) const
std::vector< const xAOD::Vertex * > findV0candidates(const xAOD::Vertex &, const TLorentzVector &, std::vector< const Trk::ITrackLink * > &, const std::vector< const xAOD::Vertex * > &) const
bool checkCriteriaSecondFit(const xAOD::Vertex &, const Trk::ITrackLink *) const
Amg::Vector3D computeSeedDirection(const xAOD::Vertex &, const TLorentzVector &, const std::vector< Trk::PositionAndWeight > &) const
Vertex_v1 Vertex
Define the latest version of the vertex class.

◆ evtStore()

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

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

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

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

Add StoreName to extra input/output deps as needed.

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

◆ finalize()

StatusCode JetFitterV0FinderTool::finalize ( )

Definition at line 59 of file JetFitterV0FinderTool.cxx.

59 {
60 return StatusCode::SUCCESS;
61}

◆ findV0candidates()

std::vector< const xAOD::Vertex * > JetFitterV0FinderTool::findV0candidates ( const xAOD::Vertex & ,
const TLorentzVector & ,
std::vector< const Trk::ITrackLink * > & ,
const std::vector< const xAOD::Vertex * > & vertexCandidates ) const
private

Definition at line 149 of file JetFitterV0FinderTool.cxx.

152 {
153
154 std::vector< const xAOD::Vertex* > v0candidates;
155 ATH_MSG_DEBUG( "Looping over " << vertexCandidates.size() <<" input candidates" );
156
157 for ( unsigned int indexA(0); indexA<vertexCandidates.size(); indexA++ ) {
158 const xAOD::Vertex* myCandidate = vertexCandidates.at( indexA );
159
160 // Here a shortlist of candidates will be applied
161
162 // Phase 4 and 5 (not called in old code)!
163 // Check for photon convertion, Ks and Lambda
164 // Veto candidates and tracks
165
166 // Make a copy of the input candidate
167 // This way of creating a copy creates a discrepancy w.r.t. the code in rel21, which is propagated to Jet Fitter variables.
168 // However, this assures that the vertex positions retrieved via position().x() and x() are consistent
170 v0candidates.push_back( toAdd );
171 *toAdd = *myCandidate;
172 }
173
174 return v0candidates;
175}

◆ initialize()

StatusCode JetFitterV0FinderTool::initialize ( )

Definition at line 35 of file JetFitterV0FinderTool.cxx.

35 {
36
37 if ( m_jetFitterUtils.retrieve().isFailure() ) {
38 ATH_MSG_ERROR( "Cannot retrieve InDet::InDetJetFitterUtils/InDetJetFitterUtils" );
39 return StatusCode::FAILURE;
40 }
41
42 if ( m_mode3dfinder.retrieve().isFailure() ) {
43 ATH_MSG_ERROR( "Cannot retrieve Trk::Mode3dTo1dFinder/Mode3dTo1dFinder" );
44 return StatusCode::FAILURE;
45 }
46
50
51 InDetMaterialVeto matVeto(m_beamPipeMgr, m_pixelManager);
52
53 m_ITkPixMaterialMap = matVeto.ITkPixMaterialMap();
54 }
55
56 return StatusCode::SUCCESS;
57}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
const ServiceHandle< StoreGateSvc > & detStore() const
const InDetDD::PixelDetectorManager * m_pixelManager
const BeamPipeDetectorManager * m_beamPipeMgr
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ 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::JetFitterV0FinderTool::interfaceID ( )
inlinestatic

Definition at line 32 of file JetFitterV0FinderTool.h.

32 {
34 }
static const InterfaceID IID_JetFitterV0FinderTool("JetFitterV0FinderTool", 1, 0)

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

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

Definition at line 30 of file AthCommonMsg.h.

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

◆ outputHandles()

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

Return this algorithm's output handles.

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

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_beamPipeMgr

const BeamPipeDetectorManager* InDet::JetFitterV0FinderTool::m_beamPipeMgr = nullptr
private

Definition at line 109 of file JetFitterV0FinderTool.h.

◆ m_compatibilityAccessor

SG::AuxElement::Accessor< float > InDet::JetFitterV0FinderTool::m_compatibilityAccessor
private

Definition at line 72 of file JetFitterV0FinderTool.h.

◆ m_cutCompatibilityPrimaryVertexBothTracksForBFirstSelection

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutCompatibilityPrimaryVertexBothTracksForBFirstSelection {this,"cutCompatibilityPrimaryVertexBothTracksForBFirstSelection",1e-2,""}
private

Definition at line 83 of file JetFitterV0FinderTool.h.

83{this,"cutCompatibilityPrimaryVertexBothTracksForBFirstSelection",1e-2,""};

◆ m_cutCompatibilityPrimaryVertexSingleNegativeLifetimeTrackForBSecondSelection

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutCompatibilityPrimaryVertexSingleNegativeLifetimeTrackForBSecondSelection {this,"cutCompPVSingleNegLifeTrackForBSecondSelect",1e-2,""}
private

Definition at line 100 of file JetFitterV0FinderTool.h.

100{this,"cutCompPVSingleNegLifeTrackForBSecondSelect",1e-2,""};

◆ m_cutCompatibilityPrimaryVertexSinglePositiveLifetimeTrackForBSecondSelection

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutCompatibilityPrimaryVertexSinglePositiveLifetimeTrackForBSecondSelection {this,"cutCompPVSinglePosLifeTrackForBSecondSelect",5e-2,""}
private

Definition at line 99 of file JetFitterV0FinderTool.h.

99{this,"cutCompPVSinglePosLifeTrackForBSecondSelect",5e-2,""};

◆ m_cutCompatibilityPrimaryVertexSingleTrackForBFirstSelection

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutCompatibilityPrimaryVertexSingleTrackForBFirstSelection {this,"cutCompatibilityPrimaryVertexSingleTrackForBFirstSelection",1e-1,""}
private

Definition at line 82 of file JetFitterV0FinderTool.h.

82{this,"cutCompatibilityPrimaryVertexSingleTrackForBFirstSelection",1e-1,""};

◆ m_cutCompatibilityToPrimaryBothTracksForMatInteractions

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutCompatibilityToPrimaryBothTracksForMatInteractions {this,"cutCompToPrimaryBothTracksForMatInterac",1e-6,""}
private

Definition at line 91 of file JetFitterV0FinderTool.h.

91{this,"cutCompToPrimaryBothTracksForMatInterac",1e-6,""};

◆ m_cutCompatibilityToPrimarySingleTrackForMatInteractions

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutCompatibilityToPrimarySingleTrackForMatInteractions {this,"cutCompToPrimarySingleTrackForMatInterac",1e-4,""}
private

Definition at line 90 of file JetFitterV0FinderTool.h.

90{this,"cutCompToPrimarySingleTrackForMatInterac",1e-4,""};

◆ m_cutIPD0BothTracksForBFirstSelection

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutIPD0BothTracksForBFirstSelection {this,"cutIPD0BothTracksForBFirstSelection",3.5,""}
private

Definition at line 84 of file JetFitterV0FinderTool.h.

84{this,"cutIPD0BothTracksForBFirstSelection",3.5,""};

◆ m_cutIPD0SigBoxSingleTrackForBSecondSelection

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutIPD0SigBoxSingleTrackForBSecondSelection {this,"cutIPD0SigBoxSingleTrackForBSecondSelection",2.,""}
private

Definition at line 101 of file JetFitterV0FinderTool.h.

101{this,"cutIPD0SigBoxSingleTrackForBSecondSelection",2.,""};

◆ m_cutIPD0SingleTrackForBSecondSelection

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutIPD0SingleTrackForBSecondSelection {this,"cutIPD0SingleTrackForBSecondSelection",1.5,""}
private

Definition at line 104 of file JetFitterV0FinderTool.h.

104{this,"cutIPD0SingleTrackForBSecondSelection",1.5,""};

◆ m_cutIPZ0BothTracksForBFirstSelection

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutIPZ0BothTracksForBFirstSelection {this,"cutIPZ0BothTracksForBFirstSelection",5.,""}
private

Definition at line 85 of file JetFitterV0FinderTool.h.

85{this,"cutIPZ0BothTracksForBFirstSelection",5.,""};

◆ m_cutIPZ0SigBoxSingleTrackForBSecondSelection

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutIPZ0SigBoxSingleTrackForBSecondSelection {this,"cutIPZ0SigBoxSingleTrackForBSecondSelection",5.,""}
private

Definition at line 102 of file JetFitterV0FinderTool.h.

102{this,"cutIPZ0SigBoxSingleTrackForBSecondSelection",5.,""};

◆ m_cutIPZ0SingleTrackForBSecondSelection

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutIPZ0SingleTrackForBSecondSelection {this,"cutIPZ0SingleTrackForBSecondSelection",3.,""}
private

Definition at line 105 of file JetFitterV0FinderTool.h.

105{this,"cutIPZ0SingleTrackForBSecondSelection",3.,""};

◆ m_cutPtBothTracksForBFirstSelection

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutPtBothTracksForBFirstSelection {this,"cutPtBothTracksForBFirstSelection",500.,""}
private

Definition at line 86 of file JetFitterV0FinderTool.h.

86{this,"cutPtBothTracksForBFirstSelection",500.,""};

◆ m_cutPtSingleTrackForBSecondSelection

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutPtSingleTrackForBSecondSelection {this,"cutPtSingleTrackForBSecondSelection",750,""}
private

Definition at line 106 of file JetFitterV0FinderTool.h.

106{this,"cutPtSingleTrackForBSecondSelection",750,""};

◆ m_cutTwoTrkVtxLifetimeSignificanceForBFirstSelectionFirstCriterium

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutTwoTrkVtxLifetimeSignificanceForBFirstSelectionFirstCriterium {this,"cutTwoTrkVtxLifeSignForBFirstSelectCriteriumA",1.,""}
private

Definition at line 88 of file JetFitterV0FinderTool.h.

88{this,"cutTwoTrkVtxLifeSignForBFirstSelectCriteriumA",1.,""};

◆ m_cutTwoTrkVtxLifetimeSignificanceForBFirstSelectionSecondCriterium

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutTwoTrkVtxLifetimeSignificanceForBFirstSelectionSecondCriterium {this,"cutTwoTrkVtxLifeSignForBFirstSelectCriteriumB",1.5,""}
private

Definition at line 89 of file JetFitterV0FinderTool.h.

89{this,"cutTwoTrkVtxLifeSignForBFirstSelectCriteriumB",1.5,""};

◆ m_cutTwoTrkVtxVertexProbForBFirstSelectionFirstCriterium

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutTwoTrkVtxVertexProbForBFirstSelectionFirstCriterium {this,"cutTwoTrkVtxVtxProbForBFirstSelectCriteriumA",0.05,""}
private

Definition at line 79 of file JetFitterV0FinderTool.h.

79{this,"cutTwoTrkVtxVtxProbForBFirstSelectCriteriumA",0.05,""};

◆ m_cutTwoTrkVtxVertexProbForBFirstSelectionSecondCriterium

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_cutTwoTrkVtxVertexProbForBFirstSelectionSecondCriterium {this,"cutTwoTrkVtxVtxProbForBFirstSelectCriteriumB",0.034,""}
private

Definition at line 80 of file JetFitterV0FinderTool.h.

80{this,"cutTwoTrkVtxVtxProbForBFirstSelectCriteriumB",0.034,""};

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

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_firstLayer_max {this,"firstLayer_max",34.0+2.5,""}
private

Definition at line 95 of file JetFitterV0FinderTool.h.

95{this,"firstLayer_max",34.0+2.5,""};

◆ m_firstLayer_min

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_firstLayer_min {this,"firstLayer_min",34.0-2.5,""}
private

Definition at line 94 of file JetFitterV0FinderTool.h.

94{this,"firstLayer_min",34.0-2.5,""};

◆ m_ITkPixMaterialMap

std::unique_ptr<TH2D> InDet::JetFitterV0FinderTool::m_ITkPixMaterialMap
private

Definition at line 111 of file JetFitterV0FinderTool.h.

◆ m_jetFitterUtils

ToolHandle< InDet::InDetJetFitterUtils > InDet::JetFitterV0FinderTool::m_jetFitterUtils {this,"InDetJetFitterUtils","InDet::InDetJetFitterUtils/InDetJetFitterUtils",""}
private

Definition at line 68 of file JetFitterV0FinderTool.h.

68{this,"InDetJetFitterUtils","InDet::InDetJetFitterUtils/InDetJetFitterUtils",""};

◆ m_mode3dfinder

ToolHandle< Trk::IMode3dFinder > InDet::JetFitterV0FinderTool::m_mode3dfinder {this,"Mode3dFinder","Trk::Mode3dTo1dFinder/Mode3dTo1dFinder",""}
private

Definition at line 69 of file JetFitterV0FinderTool.h.

69{this,"Mode3dFinder","Trk::Mode3dTo1dFinder/Mode3dTo1dFinder",""};

◆ m_pixelManager

const InDetDD::PixelDetectorManager* InDet::JetFitterV0FinderTool::m_pixelManager = nullptr
private

Definition at line 110 of file JetFitterV0FinderTool.h.

◆ m_revertFromPositiveToNegativeTags

Gaudi::Property< bool > InDet::JetFitterV0FinderTool::m_revertFromPositiveToNegativeTags {this,"revertFromPositiveToNegativeTags",false,""}
private

Definition at line 77 of file JetFitterV0FinderTool.h.

77{this,"revertFromPositiveToNegativeTags",false,""};

◆ m_secondLayer_max

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_secondLayer_max {this,"secondLayer_max",51.5+3,""}
private

Definition at line 97 of file JetFitterV0FinderTool.h.

97{this,"secondLayer_max",51.5+3,""};

◆ m_secondLayer_min

Gaudi::Property< double > InDet::JetFitterV0FinderTool::m_secondLayer_min {this,"secondLayer_min",51.5-3,""}
private

Definition at line 96 of file JetFitterV0FinderTool.h.

96{this,"secondLayer_min",51.5-3,""};

◆ m_tracksAccessor

SG::AuxElement::Accessor< std::vector< const Trk::ITrackLink* > > InDet::JetFitterV0FinderTool::m_tracksAccessor
private

Definition at line 73 of file JetFitterV0FinderTool.h.

◆ m_useITkMaterialRejection

Gaudi::Property< bool > InDet::JetFitterV0FinderTool::m_useITkMaterialRejection {this,"useITkMaterialRejection",false,"Reject vertices from hadronic interactions in detector material using ITk layout"}
private

Definition at line 108 of file JetFitterV0FinderTool.h.

108{this,"useITkMaterialRejection",false,"Reject vertices from hadronic interactions in detector material using ITk layout"};

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