|
ATLAS Offline Software
|
#include <VertexIterativeFitMergingTool.h>
|
| VertexIterativeFitMergingTool (const std::string &name, const std::string &type, const IInterface *parent) |
|
virtual StatusCode | initialize () override |
|
virtual MergeResultNotOwner | mergeInitVertices (const FittingInput &input, const xAOD::TrackParticle *tracklep, std::vector< std::unique_ptr< xAOD::Vertex >> &initVtxs, const std::vector< const xAOD::TrackParticle * > &selectedTracks) override |
|
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 |
|
| DeclareInterfaceID (Prompt::IVertexMergingTool, 1, 0) |
|
|
bool | mergeIteratively2TrackVtxs (const FittingInput &input, std::vector< std::unique_ptr< xAOD::Vertex >> &initVtxs, MergeResultNotOwner &result, const VtxType vtxType) |
|
void | getNewMergedVertex (xAOD::Vertex *seedVtx, std::unique_ptr< xAOD::Vertex > &newMergedVtx, const FittingInput &input, std::vector< TwoTrackVtx >::iterator &currVit, std::vector< TwoTrackVtx > &vtxs2Track, const VtxType vtxType) |
|
xAOD::Vertex * | fitSeedVertexCluster (const FittingInput &input, xAOD::Vertex *seedVtx, const VtxType vtxType, std::vector< TwoTrackVtx > &others) |
|
xAOD::Vertex * | fitSeedVertexCluster (const FittingInput &input, std::unique_ptr< xAOD::Vertex > &seedVtx, const VtxType vtxType, std::vector< TwoTrackVtx > &others) |
|
std::unique_ptr< xAOD::Vertex > | fitSeedPlusOtherVertex (const FittingInput &input, const xAOD::Vertex *seedVtx, const xAOD::Vertex *otherVtx, const VtxType vtxType) |
|
bool | passVertexSelection (const xAOD::Vertex *vtx) const |
|
unsigned | removeMerged2TrackVertexes (const xAOD::Vertex *mergedVtx, std::vector< TwoTrackVtx > &vtxs) const |
|
void | plotVertexDistances (const std::vector< TwoTrackVtx > &others) |
|
std::vector< const xAOD::TrackParticle * > | getTracksWithoutVertex (const std::vector< xAOD::Vertex * > &passVtxs, const std::vector< const xAOD::TrackParticle * > &selectedTracks) |
|
std::vector< std::unique_ptr< xAOD::Vertex > > | fit2TrackVertexes (const FittingInput &input, std::vector< const xAOD::TrackParticle * > &selectedTracks, const VtxType vtxType) |
|
StatusCode | makeHist (TH1 *&h, const std::string &key, int nbin, double xmin, double xmax) |
|
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...
|
|
◆ StoreGateSvc_t
◆ VertexIterativeFitMergingTool()
Prompt::VertexIterativeFitMergingTool::VertexIterativeFitMergingTool |
( |
const std::string & |
name, |
|
|
const std::string & |
type, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ DeclareInterfaceID()
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
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
◆ fit2TrackVertexes()
Definition at line 772 of file VertexIterativeFitMergingTool.cxx.
781 std::vector<std::unique_ptr<xAOD::Vertex>> passVtxs;
783 if(selectedTracks.size() < 2) {
784 ATH_MSG_DEBUG(
"fit2TrackVertexeses - 0 or 1 input tracks - nothing to do");
788 ATH_MSG_DEBUG(
name() <<
"::fit2TrackVertexes - start with " << selectedTracks.size() <<
" tracks");
793 std::sort(selectedTracks.begin(), selectedTracks.end(), SortTracksByPt());
797 for(std::vector<const xAOD::TrackParticle *>::const_iterator
it1 = selectedTracks.begin();
it1 != selectedTracks.end(); ++
it1) {
798 for(std::vector<const xAOD::TrackParticle *>::const_iterator it2 =
it1 + 1; it2 != selectedTracks.end(); ++it2) {
802 if(!track1 || !track2) {
803 ATH_MSG_WARNING(
"fit2TrackVertexeses - logic error: TrackParticle null pointer");
807 std::vector<const xAOD::TrackParticle *> fit_tracks = {track1, track2};
813 input, fit_tracks, vtxType
824 passVtxs.push_back(std::move(vtx));
831 ATH_MSG_DEBUG(
name() <<
"::fit2TrackVertexes - finished processing: " << std::endl
832 <<
" number of input tracks: " << selectedTracks.size() << std::endl
833 <<
" number of 2-track combinations: " << icount << std::endl
834 <<
" number of passed 2-track vertexes: " << passVtxs .size() << std::endl
835 <<
name() <<
"::fit2TrackVertexes - all is done" );
◆ fitSeedPlusOtherVertex()
◆ fitSeedVertexCluster() [1/2]
◆ fitSeedVertexCluster() [2/2]
Definition at line 428 of file VertexIterativeFitMergingTool.cxx.
451 ATH_MSG_WARNING(
"VertexIterativeFitMergingTool::fitSeedVertexCluster - current vertex is null pointer");
458 others.erase(others.begin());
464 input, seedVtx, currVtx, vtxType
472 ATH_MSG_DEBUG(
"fitSeedVertexCluster - NEW MERGED VERTEX FIT FAILED" << std::endl
473 <<
"---------------------------------------------------------------------------");
481 double probCandOverSeed = -1.0;
484 probCandOverSeed = probCand/probSeed;
487 const double distToSeed =
getDistance(seedVtx, candVtx.get());
488 const double distToCurr =
getDistance(currVtx, candVtx.get());
501 std::stringstream
str;
504 str <<
" dist to seed=" << distToSeed <<
", probCandOverSeed=" << probCandOverSeed << std::endl
505 <<
" seed: " <<
vtxAsStr(seedVtx,
false) << std::endl
506 <<
" curr: " <<
vtxAsStr(currVtx,
true)
507 <<
" cand: " <<
vtxAsStr(candVtx.get(),
true)
508 <<
"fitSeedVertexCluster - finished" << std::endl
509 <<
"---------------------------------------------------------------------------" << std::endl;
518 ATH_MSG_DEBUG(
"fitSeedVertexCluster - FAIL NEW MERGED VERTEX\n" <<
str.str());
541 ATH_MSG_DEBUG(
"fitSeedVertexCluster - PASS NEW MERGED VERTEX" <<
str.str());
◆ getNewMergedVertex()
Definition at line 386 of file VertexIterativeFitMergingTool.cxx.
395 std::vector<TwoTrackVtx> others;
399 others.push_back(*vit);
408 input, seedVtx, vtxType, others
420 if (mergedVtx == seedVtx){
421 newMergedVtx.reset(
nullptr);
423 newMergedVtx.reset(mergedVtx);
◆ getTracksWithoutVertex()
Definition at line 638 of file VertexIterativeFitMergingTool.cxx.
646 std::vector<const xAOD::TrackParticle *> tracksWithoutVertex;
648 unsigned iCountDoMatch = 0;
654 for(
unsigned k = 0;
k < vtx->nTrackParticles(); ++
k) {
657 if(vtxTrack ==
track) {
668 tracksWithoutVertex.push_back(
track);
676 return tracksWithoutVertex;
◆ initialize()
StatusCode Prompt::VertexIterativeFitMergingTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
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.
◆ makeHist()
StatusCode Prompt::VertexIterativeFitMergingTool::makeHist |
( |
TH1 *& |
h, |
|
|
const std::string & |
key, |
|
|
int |
nbin, |
|
|
double |
xmin, |
|
|
double |
xmax |
|
) |
| |
|
private |
◆ mergeInitVertices()
Implements Prompt::IVertexMergingTool.
Definition at line 68 of file VertexIterativeFitMergingTool.cxx.
79 ATH_MSG_DEBUG(
"===========================================================================" << std::endl
80 <<
name() <<
"::mergeInitVertices - start processing");
87 MergeResultNotOwner
result;
88 std::vector<std::unique_ptr<xAOD::Vertex>> vtxsInitPassed;
90 for(std::unique_ptr<xAOD::Vertex> &vtx: initVtxs) {
93 result.vtxsInitPassed.push_back(vtx.get());
94 vtxsInitPassed.push_back(std::move(vtx));
98 const unsigned nvtxInit = initVtxs.size();
99 const unsigned nvtxPass =
result.vtxsInitPassed.size();
106 ATH_MSG_DEBUG(
name() <<
"::mergeInitVertices - processes vertexes without lepton");
109 result.vtxsInitPassed, selectedTracks
115 ATH_MSG_DEBUG(
" number of tracks without good lepton+track vertex: " << tracksWithoutVertex.size() << std::endl
120 tracksWithoutVertex.erase(tracksWithoutVertex.begin() +
m_maxExtraTracks, tracksWithoutVertex.end());
124 MergeResultNotOwner resultExtra;
128 name() <<
"::mergeInitVertices - will merge vertexes without lepton" << std::endl
129 <<
" number of selected tracks without good lepton+track vertex: "
130 << tracksWithoutVertex .
size() << std::endl
131 <<
" number of 2-track vertexes without lepton: "
132 << resultExtra.vtxsInitPassed.size()
140 if(resultExtra.vtxsInitPassed.size() > 1) {
150 ATH_MSG_DEBUG(
name() <<
"::mergeInitVertices - finished merging vertexes without lepton" << std::endl
151 <<
" number of tracks without good lepton+track vertex: " << tracksWithoutVertex.size() << std::endl
152 <<
" number of 2-track vertexes without lepton: " << resultExtra.vtxsInitPassed.size() << std::endl
153 <<
" number of unmerged 2-track vertexes without lepton: " << resultExtra.vtxsInitPassedNotMerged.size() << std::endl
154 <<
" number of merged vertexes without lepton: " << resultExtra.vtxsNewMerged.size());
159 ATH_MSG_DEBUG(
"===========================================================================" << std::endl
160 <<
name() <<
"::mergeInitVertices - process 2-track vertexes with lepton" << std::endl
161 <<
" lepton track pT=" << tracklep->
pt() << std::endl
162 <<
" number of initial 2-track vertices: " << initVtxs.size() << std::endl
163 <<
" number of selected 2-track vertices: " <<
result.vtxsInitPassed.size() << std::endl
164 <<
" number of selected ID tracks: " << selectedTracks.size() );
171 if(
result.vtxsInitPassed.size() > 1) {
183 resultExtra.vtxsInitPassed.clear();
188 result.vtxsInitPassedNotMerged.insert(
189 result.vtxsInitPassedNotMerged.end(),
190 std::make_move_iterator(resultExtra.vtxsInitPassedNotMerged.begin()),
191 std::make_move_iterator(resultExtra.vtxsInitPassedNotMerged.end())
194 result.vtxsNewMerged.insert(
195 result.vtxsNewMerged.end(),
196 std::make_move_iterator(resultExtra.vtxsNewMerged.begin()),
197 std::make_move_iterator(resultExtra.vtxsNewMerged.end())
200 ATH_MSG_DEBUG(
"==========================================" << std::endl
201 <<
"mergeInitVertices report" << std::endl
202 <<
" \tnumber of initial 2-track vertices: "
203 << initVtxs.size() << std::endl
204 <<
"\tnumber of passed 2-track vertices: "
205 <<
result.vtxsInitPassed.size() << std::endl
206 <<
"\tnumber of unmerged 2-track vertices: "
207 <<
result.vtxsInitPassedNotMerged.size() << std::endl
208 <<
"\tnumber of merged vertices: "
209 <<
result.vtxsNewMerged.size() << std::endl
211 <<
"\tnumber of tracks without good lepton+track vertex: "
212 << tracksWithoutVertex.size() << std::endl
213 <<
"\tnumber of 2-track vertexes without lepton: "
214 << resultExtra.vtxsInitPassed.size() << std::endl
215 <<
"\tnumber of unmerged 2-track vertexes without lepton: "
216 << resultExtra.vtxsInitPassedNotMerged.size() << std::endl
217 <<
"\tnumber of merged vertexes without lepton: "
218 << resultExtra.vtxsNewMerged.size() << std::endl
219 <<
name() <<
"::mergeInitVertices - ALL DONE" << std::endl
220 <<
"=========================================="
◆ mergeIteratively2TrackVtxs()
Definition at line 227 of file VertexIterativeFitMergingTool.cxx.
249 if(
result.vtxsInitPassed.size() < 2) {
250 result.vtxsInitPassedNotMerged = std::move(initVtxs);
252 ATH_MSG_DEBUG(
name() <<
"::mergeIteratively2TrackVtxs - too few vertexes: nothing more to do");
260 std::vector<TwoTrackVtx> vtxs2Track;
262 for(std::unique_ptr<xAOD::Vertex> &vtx: initVtxs) {
263 if(vtx->nTrackParticles() != 2) {
264 ATH_MSG_WARNING(
"mergeIteratively2TrackVtxs - wrong number of tracks: " << vtx->nTrackParticles());
268 if(vtx->nTrackParticles() !=2 ) {
269 ATH_MSG_WARNING(
"mergeIteratively2TrackVtxs - vertex does not contain 2 TrackParticles: ntrack=" << vtx->nTrackParticles());
273 TwoTrackVtx vtx2track;
274 vtx2track.trackId0 = vtx->trackParticle(0);
275 vtx2track.trackId1 = vtx->trackParticle(1);
277 if(!vtx2track.trackId0 || !vtx2track.trackId1) {
278 ATH_MSG_WARNING(
"mergeIteratively2TrackVtxs - failed to find TrackParticles for 2-track vertex");
282 vtx2track.vertex = vtx.get();
284 vtx2track.sumTrackPt = vtx2track.trackId0->pt() + vtx2track.trackId1->pt();
286 vtxs2Track.push_back(vtx2track);
289 ATH_MSG_DEBUG(
name() <<
"::mergeIteratively2TrackVtxs - start processing with " << vtxs2Track.size() <<
" input vertexes ");
291 if(vtxs2Track.size() < 2) {
292 ATH_MSG_WARNING(
"mergeIteratively2TrackVtxs - logic error: found only " << vtxs2Track.size() <<
" 2-track vertex");
301 ATH_MSG_DEBUG(
name() <<
"::mergeIteratively2TrackVtxs - number of 2 track passed vertexes=" << vtxs2Track.size());
303 for(
const TwoTrackVtx &vtx: vtxs2Track) {
304 ATH_MSG_DEBUG(
"Input vertex with 2 tracks sum pT=" << vtx.sumTrackPt <<
"\n " <<
vtxAsStr(vtx.vertex,
true));
321 while(currVit != vtxs2Track.end()) {
329 std::unique_ptr<xAOD::Vertex> newMergedVtx =
nullptr;
331 seedVtx, newMergedVtx,
input, currVit, vtxs2Track, vtxType
341 currVit = vtxs2Track.begin();
346 result.vtxsNewMerged.push_back(std::move(newMergedVtx));
361 for(std::unique_ptr<xAOD::Vertex> &vtxUniquePtr: initVtxs) {
362 for(TwoTrackVtx &vtx: vtxs2Track) {
363 if (vtxUniquePtr.get() == vtx.vertex){
364 result.vtxsInitPassedNotMerged.push_back(std::move(vtxUniquePtr));
371 ATH_MSG_DEBUG(
name() <<
"::mergeIteratively2TrackVtxs - finished processing:" << std::endl
372 <<
" number of unmerged 2-track vertexes=" << vtxs2Track .
size() << std::endl
373 <<
" number of merged vertexes=" <<
result.vtxsNewMerged.size() );
375 for(TwoTrackVtx &vtx: vtxs2Track) {
379 for(
const std::unique_ptr<xAOD::Vertex>& vtx:
result.vtxsNewMerged) {
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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.
◆ passVertexSelection()
bool Prompt::VertexIterativeFitMergingTool::passVertexSelection |
( |
const xAOD::Vertex * |
vtx | ) |
const |
|
private |
◆ plotVertexDistances()
void Prompt::VertexIterativeFitMergingTool::plotVertexDistances |
( |
const std::vector< TwoTrackVtx > & |
others | ) |
|
|
private |
Definition at line 620 of file VertexIterativeFitMergingTool.cxx.
623 for(std::vector<TwoTrackVtx>::const_iterator
fit = others.begin();
fit != others.end(); ++
fit) {
624 for(std::vector<TwoTrackVtx>::const_iterator sit =
fit+1; sit != others.end(); ++sit) {
626 const double sig1 =
Prompt::getNormDist(
fit->vertex->position(), sit->vertex->position(),
fit->vertex->covariance(),
msg(MSG::WARNING));
627 const double sig2 =
Prompt::getNormDist(
fit->vertex->position(), sit->vertex->position(), sit->vertex->covariance(),
msg(MSG::WARNING));
◆ removeMerged2TrackVertexes()
unsigned Prompt::VertexIterativeFitMergingTool::removeMerged2TrackVertexes |
( |
const xAOD::Vertex * |
mergedVtx, |
|
|
std::vector< TwoTrackVtx > & |
vtxs |
|
) |
| const |
|
private |
Definition at line 568 of file VertexIterativeFitMergingTool.cxx.
573 ATH_MSG_WARNING(
"VertexIterativeFitMergingTool::removeMerged2TrackVertexes - merged vertex is null pointer");
580 while(vit != vtxs.end()) {
581 int iCountMatchedTrack = 0;
587 ATH_MSG_WARNING(
"removeMerged2TrackVertexes - merged vertex contains null TrackParticle pointer");
591 if(vit->trackId0 ==
track) { iCountMatchedTrack++; }
592 if(vit->trackId1 ==
track) { iCountMatchedTrack++; }
595 if(iCountMatchedTrack == 2) {
599 vit = vtxs.erase(vit);
602 ATH_MSG_DEBUG(
"removeMerged2TrackVertexes - removed merged 2-track vertex");
607 ATH_MSG_DEBUG(
"removeMerged2TrackVertexes - skip unmerged 2-track vertex");
612 name() <<
"::removeMerged2TrackVertexes - merged vertex ntrack=" << mergedVtx->
nTrackParticles()
613 <<
", removed " << icount <<
" merged 2-track vertexes"
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_detStore
◆ m_evtStore
◆ m_histNewVtxFitChi2
TH1* Prompt::VertexIterativeFitMergingTool::m_histNewVtxFitChi2 |
|
private |
◆ m_histNewVtxFitDistToCurr
TH1* Prompt::VertexIterativeFitMergingTool::m_histNewVtxFitDistToCurr |
|
private |
◆ m_histNewVtxFitDistToSeed
TH1* Prompt::VertexIterativeFitMergingTool::m_histNewVtxFitDistToSeed |
|
private |
◆ m_histNewVtxFitDistToSeedFail
TH1* Prompt::VertexIterativeFitMergingTool::m_histNewVtxFitDistToSeedFail |
|
private |
◆ m_histNewVtxFitDistToSeedPass
TH1* Prompt::VertexIterativeFitMergingTool::m_histNewVtxFitDistToSeedPass |
|
private |
◆ m_histNewVtxFitProb
TH1* Prompt::VertexIterativeFitMergingTool::m_histNewVtxFitProb |
|
private |
◆ m_histNewVtxFitProbCandOverSeed
TH1* Prompt::VertexIterativeFitMergingTool::m_histNewVtxFitProbCandOverSeed |
|
private |
◆ m_histNewVtxFitProbCandOverSeed3Trk
TH1* Prompt::VertexIterativeFitMergingTool::m_histNewVtxFitProbCandOverSeed3Trk |
|
private |
◆ m_histNewVtxFitProbCandOverSeed3TrkPass
TH1* Prompt::VertexIterativeFitMergingTool::m_histNewVtxFitProbCandOverSeed3TrkPass |
|
private |
◆ m_histNewVtxFitProbCandOverSeedFail
TH1* Prompt::VertexIterativeFitMergingTool::m_histNewVtxFitProbCandOverSeedFail |
|
private |
◆ m_histNewVtxFitProbCandOverSeedPass
TH1* Prompt::VertexIterativeFitMergingTool::m_histNewVtxFitProbCandOverSeedPass |
|
private |
◆ m_histNvtx2TrkInit
TH1* Prompt::VertexIterativeFitMergingTool::m_histNvtx2TrkInit |
|
private |
◆ m_histNvtx2TrkPass
TH1* Prompt::VertexIterativeFitMergingTool::m_histNvtx2TrkPass |
|
private |
◆ m_histNvtx2TrkUnmerged
TH1* Prompt::VertexIterativeFitMergingTool::m_histNvtx2TrkUnmerged |
|
private |
◆ m_histNvtxMerged
TH1* Prompt::VertexIterativeFitMergingTool::m_histNvtxMerged |
|
private |
◆ m_histSelectedTrackCountAll
TH1* Prompt::VertexIterativeFitMergingTool::m_histSelectedTrackCountAll |
|
private |
◆ m_histSelectedTrackCountMatch2Vtx
TH1* Prompt::VertexIterativeFitMergingTool::m_histSelectedTrackCountMatch2Vtx |
|
private |
◆ m_histSelectedTrackCountWithout2Vtx
TH1* Prompt::VertexIterativeFitMergingTool::m_histSelectedTrackCountWithout2Vtx |
|
private |
◆ m_histSvc
ServiceHandle<ITHistSvc> Prompt::VertexIterativeFitMergingTool::m_histSvc |
|
private |
◆ m_histVtx2TrkPairDist
TH1* Prompt::VertexIterativeFitMergingTool::m_histVtx2TrkPairDist |
|
private |
◆ m_histVtx2trkPairDistZoom
TH1* Prompt::VertexIterativeFitMergingTool::m_histVtx2trkPairDistZoom |
|
private |
◆ m_histVtx2TrkPairSig1
TH1* Prompt::VertexIterativeFitMergingTool::m_histVtx2TrkPairSig1 |
|
private |
◆ m_histVtx2TrkPairSig2
TH1* Prompt::VertexIterativeFitMergingTool::m_histVtx2TrkPairSig2 |
|
private |
◆ m_histVtxWithoutLepton2TrkNMerged
TH1* Prompt::VertexIterativeFitMergingTool::m_histVtxWithoutLepton2TrkNMerged |
|
private |
◆ m_histVtxWithoutLepton2TrkNPass
TH1* Prompt::VertexIterativeFitMergingTool::m_histVtxWithoutLepton2TrkNPass |
|
private |
◆ m_histVtxWithoutLepton2TrkNPassUnmerged
TH1* Prompt::VertexIterativeFitMergingTool::m_histVtxWithoutLepton2TrkNPassUnmerged |
|
private |
◆ m_histVtxWithoutLepton2TrkNTrack
TH1* Prompt::VertexIterativeFitMergingTool::m_histVtxWithoutLepton2TrkNTrack |
|
private |
◆ m_maxExtraTracks
Gaudi::Property<unsigned> Prompt::VertexIterativeFitMergingTool::m_maxExtraTracks |
|
private |
Initial value:{
this, "maxExtraTracks", 10,
"maximum number of tracks without good lepton+track vertex that we will used for further fitting of vertexes without lepton"
}
Definition at line 233 of file VertexIterativeFitMergingTool.h.
◆ m_minCandOverSeedFitProbRatio
Gaudi::Property<double> Prompt::VertexIterativeFitMergingTool::m_minCandOverSeedFitProbRatio |
|
private |
Initial value:{
this, "minCandOverSeedFitProbRatio", 0.2,
"minimum requirement of the fit probability of new merged vertex / fit probability of seed vertex"
}
Definition at line 229 of file VertexIterativeFitMergingTool.h.
◆ m_minFitProb
Gaudi::Property<double> Prompt::VertexIterativeFitMergingTool::m_minFitProb |
|
private |
◆ m_outputStream
Gaudi::Property<std::string> Prompt::VertexIterativeFitMergingTool::m_outputStream |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vertexFitterTool
◆ m_vhka
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
virtual double pt() const override final
The transverse momentum ( ) of the particle.
size_t nTrackParticles() const
Get the number of tracks associated with this vertex.
double getVertexFitProb(const xAOD::Vertex *vtx)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
const Amg::Vector3D & position() const
Returns the 3-pos.
std::string vtxAsStr(const xAOD::Vertex *vtx, bool print_tracks=false)
@ kTwoTrackVtxWithoutLepton
virtual void setOwner(IDataHandleHolder *o)=0
double getNormDist(const Amg::Vector3D &PrimVtx, const Amg::Vector3D &SecVtx, const std::vector< float > &ErrorMatrix, MsgStream &msg)
double getDistance(const xAOD::Vertex *vtx1, const xAOD::Vertex *vtx2)
std::vector< HWIdentifier >::iterator it1
const TrackParticle * trackParticle(size_t i) const
Get the pointer to a given track that was used in vertex reco.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
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.
Class describing a Vertex.
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
#define ATH_MSG_WARNING(x)
void fillTH1(TH1 *h, double val, double weight=1.0)
@ kIterativeFitVtxWithoutLepton
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Class describing a TrackParticle.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
bool match(std::string s1, std::string s2)
match the individual directories of two strings