ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::Z0PVTrackCompatibilityEstimator Class Reference

Z0PVTrackCompatibilityEstimator.h. More...

#include <Z0PVTrackCompatibilityEstimator.h>

Inheritance diagram for Trk::Z0PVTrackCompatibilityEstimator:
Collaboration diagram for Trk::Z0PVTrackCompatibilityEstimator:

Public Member Functions

 Z0PVTrackCompatibilityEstimator (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~Z0PVTrackCompatibilityEstimator ()
virtual StatusCode initialize ()
virtual StatusCode finalize ()
bool isCompatible (const xAOD::TrackParticle *track, const xAOD::VertexContainer *pvContainer, unsigned int pvIndex=0) const
bool isCompatible (const TrackParameters *track, const xAOD::VertexContainer *pvContainer, unsigned int pvIndex=0) const

Private Attributes

ToolHandle< Trk::ITrackToVertexIPEstimatorm_ipEstimator
double m_z0SignificanceMax

Detailed Description

Z0PVTrackCompatibilityEstimator.h.

Assigns tracks to the primary vertex based on their z0 significance. Tracks that are close to a pileup vertex are not assigned to the primary vertex.

ruwie.nosp@m.del@.nosp@m.physi.nosp@m.k.un.nosp@m.i-bon.nosp@m.n.de


Changes:

David Shope david.nosp@m..ric.nosp@m.hard..nosp@m.shop.nosp@m.e@cer.nosp@m.n.ch (2016-04-19)

EDM Migration to xAOD - Replace Trk::VxContainer with xAOD::VertexContainer

Definition at line 44 of file Z0PVTrackCompatibilityEstimator.h.

Constructor & Destructor Documentation

◆ Z0PVTrackCompatibilityEstimator()

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

Definition at line 20 of file Z0PVTrackComaptibilityEstimator.cxx.

22 :
23 base_class(type, name, parent),
24 m_ipEstimator("Trk::TrackToVertexIPEstimator"),
26 {
27 declareProperty("IPEstimator", m_ipEstimator, "Impact parameter estimator tool");
28 declareProperty("Z0SignificanceMax", m_z0SignificanceMax);
29 }
ToolHandle< Trk::ITrackToVertexIPEstimator > m_ipEstimator

◆ ~Z0PVTrackCompatibilityEstimator()

Trk::Z0PVTrackCompatibilityEstimator::~Z0PVTrackCompatibilityEstimator ( )
virtualdefault

Member Function Documentation

◆ finalize()

StatusCode Trk::Z0PVTrackCompatibilityEstimator::finalize ( )
virtual

Definition at line 48 of file Z0PVTrackComaptibilityEstimator.cxx.

48 {
49
50 ATH_MSG_INFO( "Finalizing Z0PVTrackCompatibilityEstimator" );
51
52 return StatusCode::SUCCESS;
53 }
#define ATH_MSG_INFO(x)

◆ initialize()

StatusCode Trk::Z0PVTrackCompatibilityEstimator::initialize ( )
virtual

Definition at line 34 of file Z0PVTrackComaptibilityEstimator.cxx.

34 {
35
36 ATH_MSG_INFO( "Initializing Z0PVTrackCompatibilityEstimator" );
37
38 StatusCode sc = m_ipEstimator.retrieve();
39 if( !sc.isSuccess() ){
40 msg(MSG::FATAL) << "Unable to retrieve impact parameter estimator tool" << endmsg;
41 return sc;
42 }
43
44 return StatusCode::SUCCESS;
45 }
#define endmsg
static Double_t sc
::StatusCode StatusCode
StatusCode definition for legacy code.
MsgStream & msg
Definition testRead.cxx:32

◆ isCompatible() [1/2]

bool Trk::Z0PVTrackCompatibilityEstimator::isCompatible ( const TrackParameters * track,
const xAOD::VertexContainer * pvContainer,
unsigned int pvIndex = 0 ) const

Definition at line 63 of file Z0PVTrackComaptibilityEstimator.cxx.

64 {
65
66 // TODO: do we want to doRemoval here? (I have it as false for now)
67 std::unique_ptr<ImpactParametersAndSigma> ip = m_ipEstimator->estimate(track, track, (*primaryVertexContainer)[index], false);
68
69 bool pileup = false;
70
71 double sumptPV = 0;
72
73 /*
74 for(std::vector<Trk::VxTrackAtVertex*>::const_iterator track =
75 (*primaryVertexContainer)[index]->vxTrackAtVertex()->begin();
76 track != (*primaryVertexContainer)[index]->vxTrackAtVertex()->end(); ++track){
77
78 sumptPV += (*track)->initialPerigee()->momentum().perp();
79 }
80 */
81
82 // TODO: perhaps calculate sumptPV using VxTracksAtVertex in xAOD::Vertex? -David S.
83 for(unsigned int i = 0; i < (*primaryVertexContainer)[index]->nTrackParticles(); ++i){
84
85 sumptPV += (*primaryVertexContainer)[index]->trackParticle(i)->perigeeParameters().momentum().perp();
86 }
87
88 for(unsigned int i = 0; i < primaryVertexContainer->size(); i++){
89
90 double sumpt = 0.;
91
92 if( i != index &&
93 (*primaryVertexContainer)[i]->vertexType() != xAOD::VxType::NoVtx ){
94 /*
95 for(std::vector<Trk::VxTrackAtVertex*>::const_iterator track =
96 (*primaryVertexContainer)[i]->vxTrackAtVertex()->begin();
97 track != (*primaryVertexContainer)[i]->vxTrackAtVertex()->end(); ++track){
98
99 sumpt += (*track)->initialPerigee()->momentum().perp();
100 }
101 */
102
103 // TODO: perhaps calculate sumptPV using VxTracksAtVertex in xAOD::Vertex? -David S.
104 for(unsigned int itrk = 0; itrk < (*primaryVertexContainer)[i]->nTrackParticles(); ++itrk){
105
106 sumpt += (*primaryVertexContainer)[i]->trackParticle(itrk)->perigeeParameters().momentum().perp();
107 }
108 double vxReach =
109 std::abs((*primaryVertexContainer)[i]->position().z()
110 - (*primaryVertexContainer)[index]->position().z()) * sumpt / (sumpt + sumptPV);
111
112 if(std::abs(ip->IPz0 + (*primaryVertexContainer)[index]->position().z() -
113 (*primaryVertexContainer)[i]->position().z()) < vxReach){
114
115 pileup = true;
116 }
117 }
118 }
119
120 return std::abs(ip->IPz0) / ip->sigmaz0 < m_z0SignificanceMax && !pileup;
121 }
str index
Definition DeMoScan.py:362
@ z
global position (cartesian)
Definition ParamDefs.h:57
@ NoVtx
Dummy vertex. TrackParticle was not used in vertex fit.

◆ isCompatible() [2/2]

bool Trk::Z0PVTrackCompatibilityEstimator::isCompatible ( const xAOD::TrackParticle * track,
const xAOD::VertexContainer * pvContainer,
unsigned int pvIndex = 0 ) const

Definition at line 57 of file Z0PVTrackComaptibilityEstimator.cxx.

58 {
59
60 return isCompatible( &(track->perigeeParameters()), primaryVertexContainer, index );
61 }
bool isCompatible(const xAOD::TrackParticle *track, const xAOD::VertexContainer *pvContainer, unsigned int pvIndex=0) const

Member Data Documentation

◆ m_ipEstimator

ToolHandle< Trk::ITrackToVertexIPEstimator > Trk::Z0PVTrackCompatibilityEstimator::m_ipEstimator
private

Definition at line 60 of file Z0PVTrackCompatibilityEstimator.h.

◆ m_z0SignificanceMax

double Trk::Z0PVTrackCompatibilityEstimator::m_z0SignificanceMax
private

Definition at line 62 of file Z0PVTrackCompatibilityEstimator.h.


The documentation for this class was generated from the following files: