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

#include <VxClusteringTable.h>

Collaboration diagram for Trk::VxClusteringTable:

Public Member Functions

 VxClusteringTable ()
 Default constructor, if called initializes a VxClusteringTable with all data members set to 0.
 ~VxClusteringTable ()
 VxClusteringTable (const VxClusteringTable &)=default
VxClusteringTableoperator= (const VxClusteringTable &)=default
void setCompatibilityOfTo (const PairOfVxVertexOnJetAxis &, float)
 Set compatibility of a new pair of tracks.
PairOfVxVertexOnJetAxis getMostCompatibleVertices (float &probability) const
 Get pair of tracks with highest compatibility.
const std::map< float, PairOfVxVertexOnJetAxis > & getCompatibilityPairOfVertices (void) const
 Get back full compatibility info (only for reading)
PairOfVxVertexOnJetAxis getMostCompatibleVerticesExcludingPrimary (float &probability) const
 Get pair of vertices with highest compatibility, removing cases with primary.
MsgStream & dump (MsgStream &sl) const
 Output Method for MsgStream, to be overloaded by child classes.
std::ostream & dump (std::ostream &sl) const
 Output Method for std::ostream, to be overloaded by child classes.

Private Attributes

std::map< float, PairOfVxVertexOnJetAxism_compatibilityPairOfVertices

Detailed Description

Definition at line 45 of file VxClusteringTable.h.

Constructor & Destructor Documentation

◆ VxClusteringTable() [1/2]

Trk::VxClusteringTable::VxClusteringTable ( )
default

Default constructor, if called initializes a VxClusteringTable with all data members set to 0.

◆ ~VxClusteringTable()

Trk::VxClusteringTable::~VxClusteringTable ( )
default

◆ VxClusteringTable() [2/2]

Trk::VxClusteringTable::VxClusteringTable ( const VxClusteringTable & )
default

Member Function Documentation

◆ dump() [1/2]

MsgStream & Trk::VxClusteringTable::dump ( MsgStream & sl) const

Output Method for MsgStream, to be overloaded by child classes.

Definition at line 31 of file VxClusteringTable.cxx.

31 {
32 sl << "Trk::VxClusteringTable:" << endmsg;
34 sl << "No couple of vertices contained in the table " << endmsg;
35 } else {
36 sl << "Numbers of compatibilities store: " << m_compatibilityPairOfVertices.size() << endmsg;
37 sl << "Highest probability: " << m_compatibilityPairOfVertices.rbegin()->first << endmsg;
38
39 std::map<float,PairOfVxVertexOnJetAxis>::const_iterator CompBegin=m_compatibilityPairOfVertices.begin();
40 std::map<float,PairOfVxVertexOnJetAxis>::const_iterator CompEnd=m_compatibilityPairOfVertices.end();
41
42 for (std::map<float,PairOfVxVertexOnJetAxis>::const_iterator CompIter=CompBegin;
43 CompIter!=CompEnd;++CompIter) {
44
45 sl << " Compatibility between track n " << (*CompIter).second.first->getNumVertex() <<
46 " and " << (*CompIter).second.second->getNumVertex() << " is " << (*CompIter).first <<
47 endmsg;
48
49 }
50
51 }
52 return sl;
53 }
#define endmsg
std::map< float, PairOfVxVertexOnJetAxis > m_compatibilityPairOfVertices

◆ dump() [2/2]

std::ostream & Trk::VxClusteringTable::dump ( std::ostream & sl) const

Output Method for std::ostream, to be overloaded by child classes.

Definition at line 61 of file VxClusteringTable.cxx.

61 {
62 sl << "Trk::VxClusteringTable:" << std::endl;
64 sl << "No couple of vertices contained in the table " << std::endl;
65 } else {
66 sl << "Numbers of compatibilities store: " << m_compatibilityPairOfVertices.size() << std::endl;
67 sl << "Highest probability: " << m_compatibilityPairOfVertices.rbegin()->first << std::endl;
68
69 std::map<float,PairOfVxVertexOnJetAxis>::const_iterator CompBegin=m_compatibilityPairOfVertices.begin();
70 std::map<float,PairOfVxVertexOnJetAxis>::const_iterator CompEnd=m_compatibilityPairOfVertices.end();
71
72 for (std::map<float,PairOfVxVertexOnJetAxis>::const_iterator CompIter=CompBegin;
73 CompIter!=CompEnd;++CompIter) {
74
75 sl << " Compatibility between track n " << (*CompIter).second.first->getNumVertex() <<
76 " and " << (*CompIter).second.second->getNumVertex() << " is " << (*CompIter).first <<
77 std::endl;
78
79
80 }
81
82 }
83 return sl;
84 }

◆ getCompatibilityPairOfVertices()

const std::map< float, PairOfVxVertexOnJetAxis > & Trk::VxClusteringTable::getCompatibilityPairOfVertices ( void ) const

Get back full compatibility info (only for reading)

Definition at line 86 of file VxClusteringTable.cxx.

86 {
88 }

◆ getMostCompatibleVertices()

PairOfVxVertexOnJetAxis Trk::VxClusteringTable::getMostCompatibleVertices ( float & probability) const

Get pair of tracks with highest compatibility.

Definition at line 102 of file VxClusteringTable.cxx.

102 {
103
104 if (m_compatibilityPairOfVertices.empty()) {
105 // std::cout << "Warning in VxClusteringTable: requested highest compatibility to an empty probability table" << std::endl;
106 //GP 02-04-2007 Too verbose... happens too often...
107 probability=0;
108 return {};
109 }
110
111 std::map<float,PairOfVxVertexOnJetAxis>::const_reverse_iterator pairHighest=
113
114 probability=(*pairHighest).first;
115 return (*pairHighest).second;
116
117 }

◆ getMostCompatibleVerticesExcludingPrimary()

PairOfVxVertexOnJetAxis Trk::VxClusteringTable::getMostCompatibleVerticesExcludingPrimary ( float & probability) const

Get pair of vertices with highest compatibility, removing cases with primary.

Definition at line 119 of file VxClusteringTable.cxx.

120 {
121
122 std::map<float,PairOfVxVertexOnJetAxis>::const_reverse_iterator revIteratorEnd=m_compatibilityPairOfVertices.rbegin();
123 std::map<float,PairOfVxVertexOnJetAxis>::const_reverse_iterator revIterator=revIteratorEnd;
124 std::map<float,PairOfVxVertexOnJetAxis>::const_reverse_iterator pairHighest=revIteratorEnd;
125
126 bool found(false);
127 for ( ; revIterator!=m_compatibilityPairOfVertices.rend() ; ++revIterator)
128 {
129
130 const PairOfVxVertexOnJetAxis & myVxVertex=(*revIterator).second;
131 VxVertexOnJetAxis* firstVertex=myVxVertex.first;
132 VxVertexOnJetAxis* secondVertex=myVxVertex.second;
133
134 if (firstVertex->getNumVertex()==-10 || secondVertex->getNumVertex()==-10)
135 {
136 continue;
137 }
138
139 found=true;
140 pairHighest=revIterator;
141 break;
142 }
143
144
145 if (!found)
146 {
147 probability=0;
148 return {};
149 }
150
151 probability=(*pairHighest).first;
152 return (*pairHighest).second;
153 }

◆ operator=()

VxClusteringTable & Trk::VxClusteringTable::operator= ( const VxClusteringTable & )
default

◆ setCompatibilityOfTo()

void Trk::VxClusteringTable::setCompatibilityOfTo ( const PairOfVxVertexOnJetAxis & pairOfVertices,
float compatibility )

Set compatibility of a new pair of tracks.

Definition at line 91 of file VxClusteringTable.cxx.

91 {
92 if (compatibility!=0) {
93 m_compatibilityPairOfVertices[compatibility]=pairOfVertices;
94 }
95 // else {
96 // std::cout << "Warning in VxClusteringTable: assigning to a couple of track 0 probability. Should not happen (waste of time!) " << std::endl;
97 //}
98 //GP 02-04-2007 Too verbose... happens too often...
99 }

Member Data Documentation

◆ m_compatibilityPairOfVertices

std::map<float,PairOfVxVertexOnJetAxis> Trk::VxClusteringTable::m_compatibilityPairOfVertices
private

Definition at line 99 of file VxClusteringTable.h.


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