Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
#include <NonPromptLeptonVertexingAlg.h>
|
| NonPromptLeptonVertexingAlg (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | execute () override |
|
virtual StatusCode | finalize () override |
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
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 | 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 |
|
|
std::vector< const xAOD::TrackParticle * > | findNearbyTracks (const xAOD::TrackParticle &tracklep, const xAOD::TrackParticleContainer &inDetTracks, const xAOD::Vertex &priVtx) const |
|
bool | passElecCand (const xAOD::Electron &elec) const |
|
bool | passMuonCand (const xAOD::Muon &muon) const |
|
std::vector< std::unique_ptr< xAOD::Vertex > > | prepLepWithTwoTrkSVVec (const FittingInput &input, const xAOD::TrackParticle *tracklep, const std::vector< const xAOD::TrackParticle * > &tracks) |
|
void | makeVertexCluster (std::vector< std::unique_ptr< xAOD::Vertex >> &clusterVtxs, std::vector< std::unique_ptr< xAOD::Vertex >> &inputVtxs) |
|
void | saveSecondaryVertices (std::vector< std::unique_ptr< xAOD::Vertex >> &vtxs, std::vector< int > &indexVector, std::vector< ElementLink< xAOD::VertexContainer > > &svLinks, xAOD::VertexContainer &SVContainer, std::set< xAOD::Vertex * > &svSet) |
|
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...
|
|
|
ToolHandle< Prompt::IVertexMergingTool > | m_vertexMerger |
|
ToolHandle< Prompt::VertexFittingTool > | m_vertexFitterTool |
|
Gaudi::Property< bool > | m_printTime {this, "PrintTime", false} |
|
Gaudi::Property< bool > | m_selectTracks {this, "SelectTracks", true} |
|
Gaudi::Property< double > | m_mergeMinVtxDist {this, "MergeMinVtxDist", 1.0} |
|
Gaudi::Property< double > | m_mergeChi2OverDoF {this, "MergeChi2OverDoF", 5.0} |
|
Gaudi::Property< std::string > | m_linkNameRefittedPriVtxWithoutLepton {this, "NoLeptonPriVtxLinkName"} |
|
Gaudi::Property< std::string > | m_refittedVertexTypeName |
|
Gaudi::Property< float > | m_minTrackpT {this, "minTrackpT", 500.0} |
|
Gaudi::Property< float > | m_maxTrackEta {this, "maxTrackEta", 2.5} |
|
Gaudi::Property< float > | m_maxTrackZ0Sin {this, "maxTrackZ0Sin", 1.0} |
|
Gaudi::Property< float > | m_minTrackLeptonDR {this, "minTrackLeptonDR", 1.0e-6} |
|
Gaudi::Property< float > | m_maxTrackLeptonDR {this, "maxTrackLeptonDR", 0.4} |
|
Gaudi::Property< unsigned > | m_minTrackSiHits {this, "minTrackSiHits", 7} |
|
Gaudi::Property< float > | m_maxTrackSharedSiHits {this, "maxTrackSharedSiHits", 1.0} |
|
Gaudi::Property< unsigned > | m_maxTrackSiHoles {this, "maxTrackSiHoles", 2} |
|
Gaudi::Property< unsigned > | m_maxTrackPixHoles {this, "maxTrackPixHoles", 1} |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_inDetTracksKey |
|
SG::ReadHandleKey< xAOD::IParticleContainer > | m_leptonContainerKey |
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_primaryVertexContainerName |
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_refittedPriVtxContainerName |
|
SG::WriteHandleKey< xAOD::VertexContainer > | m_svContainerName |
|
TStopwatch | m_timerAll |
|
TStopwatch | m_timerExec |
|
unsigned | m_countEvents |
|
SG::WriteDecorHandleKey< xAOD::IParticleContainer > | m_decoratorNameSecVtxLinks { this, "SecVtxLinksName", m_leptonContainerKey, "default", } |
|
SG::WriteDecorHandleKey< xAOD::IParticleContainer > | m_decoratorNameDeepMergedSecVtxLinks { this, "DeepMergedSecVtxLinksName", m_leptonContainerKey, "default", } |
|
SG::WriteDecorHandleKey< xAOD::IParticleContainer > | m_decoratorNameIndexVector { this, "IndexVectorName", m_leptonContainerKey, "", } |
|
SG::WriteDecorHandleKey< xAOD::IParticleContainer > | m_decoratorNameIndexVectorDeepMerge { this, "IndexVectorNameDeepMerge", m_leptonContainerKey, "", } |
|
DataObjIDColl | m_extendedExtraObjects |
|
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 |
|
◆ decoratorVecElemVtx_t
◆ decoratorVecInt_t
◆ StoreGateSvc_t
◆ NonPromptLeptonVertexingAlg()
Prompt::NonPromptLeptonVertexingAlg::NonPromptLeptonVertexingAlg |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ 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]
◆ 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]
◆ execute()
StatusCode Prompt::NonPromptLeptonVertexingAlg::execute |
( |
| ) |
|
|
overridevirtual |
Definition at line 107 of file NonPromptLeptonVertexingAlg.cxx.
114 const EventContext& ctx = Gaudi::Hive::currentContext();
122 if (!h_inDetTracks.isValid()){
123 ATH_MSG_FATAL(
"execute - failed to find the InDetTrackParticles");
124 return StatusCode::FAILURE;
132 std::set< xAOD::Vertex* > svSet;
136 std::make_unique< xAOD::VertexContainer>(), std::make_unique< xAOD::VertexAuxContainer>()
147 ATH_MSG_DEBUG (
"NonPromptLeptonVertexingAlg::execute - Read " << vertices->size() <<
" primary vertices");
148 ATH_MSG_DEBUG (
"NonPromptLeptonVertexingAlg::execute - Read " << refittedVertices->size() <<
" refitted primary vertices");
157 fittingInput.priVtx =
vertex;
162 if(!fittingInput.priVtx) {
163 ATH_MSG_INFO(
"Failed to find primary vertex - skip this event");
165 return StatusCode::SUCCESS;
172 short refittedVertexType = 0;
175 fittingInput.refittedPriVtx =
vertex;
178 if(fittingInput.refittedPriVtx) {
186 ATH_MSG_DEBUG(
"\n\t\t\t Size of lepton container: " << leptonContainer ->
size());
190 using VecElemVtx_t = std::vector<ElementLink<xAOD::VertexContainer> >;
220 tracklep = *(
muon->inDetTrackParticleLink());
224 ATH_MSG_WARNING(
"NonPromptLeptonVertexingAlg::execute - failed to find electron or muon: should never happen!");
228 lepSVElementLinksDec (*lepton).clear();
229 lepDeepMergedSVElementLinksDec(*lepton).clear();
230 indexVectorDec (*lepton).clear();
231 indexVectorDecDeepMerge (*lepton).clear();
233 ATH_MSG_DEBUG(
"NonPromptLeptonVertexingAlg::execute - cannot find muon->inDetTrackParticleLink() nor electron->trackParticle()");
237 ATH_MSG_DEBUG(
"NonPromptLeptonVertexingAlg::execute - process new lepton track " << tracklep);
242 fittingInput.refittedPriVtxWithoutLep = 0;
244 if(priVtxWithoutLepAcc.isAvailable(*lepton)) {
248 fittingInput.refittedPriVtxWithoutLep = *vtxLink;
250 ATH_MSG_DEBUG(
"DecorateSecondaryVertex - found refitted primary vertex without lepton: "
258 std::vector<const xAOD::TrackParticle* > ifitTracks =
findNearbyTracks(*tracklep, inDetTracks, *fittingInput.priVtx);
264 fittingInput, tracklep, ifitTracks
269 std::vector<std::unique_ptr<xAOD::Vertex>> twoTrkVerticesCopy;
270 for (std::unique_ptr<xAOD::Vertex> &vtx : twoTrkVertices) {
271 std::unique_ptr<xAOD::Vertex> newVtx = std::make_unique<xAOD::Vertex>(*vtx);
272 twoTrkVerticesCopy.push_back(std::move(newVtx));
277 ATH_MSG_DEBUG(
"Starting with " << twoTrkVertices.size() <<
" 2-track vertices");
279 fittingInput, tracklep, twoTrkVertices, ifitTracks);
284 std::vector<ElementLink<xAOD::VertexContainer> > svLinks;
285 std::vector<ElementLink<xAOD::VertexContainer> > deepmergeSVLinks;
287 std::vector<int> indexVectorTwoTrk;
288 std::vector<int> indexVectorDeepMerged;
293 ATH_MSG_DEBUG(
"NonPromptLeptonVertexingAlg::execute --- recording " << twoTrkVerticesCopy.size() <<
" 2-track and simple merged vertices");
299 ATH_MSG_DEBUG(
"NonPromptLeptonVertexingAlg::execute --- recording " << deep_merged_result.
vtxsNewMerged.size() <<
" merged multi-track vertices");
305 ATH_MSG_DEBUG (
"NonPromptLeptonVertexingAlg::execute -- number of two-track SV = " << twoTrkVertices.size());
306 ATH_MSG_DEBUG (
"NonPromptLeptonVertexingAlg::execute -- number of deep merged SV = " << deep_merged_result.
vtxsNewMerged.size());
308 lepSVElementLinksDec (*lepton) = std::move(svLinks);
309 lepDeepMergedSVElementLinksDec(*lepton) = std::move(deepmergeSVLinks);
310 indexVectorDec (*lepton) = std::move(indexVectorTwoTrk);
311 indexVectorDecDeepMerge (*lepton) = std::move(indexVectorDeepMerged);
313 ATH_MSG_DEBUG(
"NonPromptLeptonVertexingAlg - done with lepton pT=" << tracklep->
pt() <<
", " <<
truthAsStr(*lepton) << endl
314 <<
"___________________________________________________________________________");
319 ATH_MSG_DEBUG(
" NonPromptLeptonVertexingAlg::execute - done with this event" << endl
320 <<
"___________________________________________________________________________");
322 return StatusCode::SUCCESS;
◆ 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
◆ extraOutputDeps()
const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ finalize()
StatusCode Prompt::NonPromptLeptonVertexingAlg::finalize |
( |
| ) |
|
|
overridevirtual |
◆ findNearbyTracks()
◆ initialize()
StatusCode Prompt::NonPromptLeptonVertexingAlg::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.
◆ makeVertexCluster()
void Prompt::NonPromptLeptonVertexingAlg::makeVertexCluster |
( |
std::vector< std::unique_ptr< xAOD::Vertex >> & |
clusterVtxs, |
|
|
std::vector< std::unique_ptr< xAOD::Vertex >> & |
inputVtxs |
|
) |
| |
|
private |
Definition at line 481 of file NonPromptLeptonVertexingAlg.cxx.
486 ATH_MSG_DEBUG(
"makeVertexCluster - before: clusterVtxs.size()=" << clusterVtxs.size() <<
", inputVtxs.size()=" << inputVtxs.size());
488 std::vector<std::unique_ptr<xAOD::Vertex>>
::iterator vit = inputVtxs.begin();
490 while(vit != inputVtxs.end()) {
493 for(std::vector<std::unique_ptr<xAOD::Vertex>>::const_iterator cit = clusterVtxs.begin(); cit != clusterVtxs.end(); ++cit) {
494 if(vit->get() == cit->get()) {
495 ATH_MSG_DEBUG(
"makeVertexCluster - logic error - found the same vertex twice: " << ((*vit).get()));
499 const double vdist =
getDistance((*vit)->position(), (*cit)->position());
510 clusterVtxs.push_back(std::move(*vit));
511 inputVtxs.erase(vit);
513 vit = inputVtxs.begin();
520 ATH_MSG_DEBUG(
"makeVertexCluster - after: clusterVtxs.size()=" << clusterVtxs.size() <<
", inputVtxs.size()=" << inputVtxs.size());
◆ 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.
◆ passElecCand()
Definition at line 326 of file NonPromptLeptonVertexingAlg.cxx.
336 <<
"pT=" << elec.
pt() <<
", eta=" << elec.
eta() <<
", phi=" << elec.
phi() << std::endl
337 <<
" DFCommonElectronsLHLoose = " <<
int(lh_loose) << std::endl
◆ passMuonCand()
bool Prompt::NonPromptLeptonVertexingAlg::passMuonCand |
( |
const xAOD::Muon & |
muon | ) |
const |
|
private |
Definition at line 348 of file NonPromptLeptonVertexingAlg.cxx.
356 <<
"pT=" <<
muon.pt() <<
", eta=" <<
muon.eta() <<
", phi=" <<
muon.phi() << std::endl
357 <<
" Type = " <<
muon.muonType() << std::endl
358 <<
" Combined = " << combined << std::endl
◆ prepLepWithTwoTrkSVVec()
Definition at line 442 of file NonPromptLeptonVertexingAlg.cxx.
452 std::vector<std::unique_ptr<xAOD::Vertex>> twoTrkVertices;
453 std::vector<const xAOD::TrackParticle*> tracksForFit;
456 ATH_MSG_WARNING(
"prepLepWithTwoTrkSVVec -- invalid primary vertex: nothing to do");
457 return twoTrkVertices;
461 tracksForFit.clear();
462 tracksForFit.push_back(tracklep);
463 tracksForFit.push_back(selectedtrack);
465 std::unique_ptr<xAOD::Vertex> newSecondaryVertex =
m_vertexFitterTool->fitVertexWithPrimarySeed(
469 if(!newSecondaryVertex) {
470 ATH_MSG_DEBUG(
"prepLepWithTwoTrkSVVec -- failed to fit 2-track vertex");
474 twoTrkVertices.push_back(std::move(newSecondaryVertex));
477 return twoTrkVertices;
◆ renounce()
◆ renounceArray()
◆ saveSecondaryVertices()
Definition at line 524 of file NonPromptLeptonVertexingAlg.cxx.
535 ATH_MSG_DEBUG(
"saveSecondaryVertices - will save " << vtxs.size() <<
" vertexes");
537 for(std::unique_ptr<xAOD::Vertex> &vtx: vtxs) {
540 indexVector.push_back(
index);
543 ATH_MSG_WARNING(
"saveSecondaryVertices - missing \"SecondaryVertexIndex\" variable");
546 if(svSet.insert(vtx.get()).second) {
552 svLinks.push_back(svLink);
554 ATH_MSG_ERROR(
"saveSecondaryVertices --- the same vertex has been encountered more than once! Is this a logic error?");
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ 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_countEvents
unsigned Prompt::NonPromptLeptonVertexingAlg::m_countEvents |
|
private |
◆ m_decoratorNameDeepMergedSecVtxLinks
◆ m_decoratorNameIndexVector
◆ m_decoratorNameIndexVectorDeepMerge
◆ m_decoratorNameSecVtxLinks
◆ m_detStore
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_inDetTracksKey
◆ m_leptonContainerKey
◆ m_linkNameRefittedPriVtxWithoutLepton
Gaudi::Property<std::string> Prompt::NonPromptLeptonVertexingAlg::m_linkNameRefittedPriVtxWithoutLepton {this, "NoLeptonPriVtxLinkName"} |
|
private |
◆ m_maxTrackEta
Gaudi::Property<float> Prompt::NonPromptLeptonVertexingAlg::m_maxTrackEta {this, "maxTrackEta", 2.5} |
|
private |
◆ m_maxTrackLeptonDR
Gaudi::Property<float> Prompt::NonPromptLeptonVertexingAlg::m_maxTrackLeptonDR {this, "maxTrackLeptonDR", 0.4} |
|
private |
◆ m_maxTrackPixHoles
Gaudi::Property<unsigned> Prompt::NonPromptLeptonVertexingAlg::m_maxTrackPixHoles {this, "maxTrackPixHoles", 1} |
|
private |
◆ m_maxTrackSharedSiHits
Gaudi::Property<float> Prompt::NonPromptLeptonVertexingAlg::m_maxTrackSharedSiHits {this, "maxTrackSharedSiHits", 1.0} |
|
private |
◆ m_maxTrackSiHoles
Gaudi::Property<unsigned> Prompt::NonPromptLeptonVertexingAlg::m_maxTrackSiHoles {this, "maxTrackSiHoles", 2} |
|
private |
◆ m_maxTrackZ0Sin
Gaudi::Property<float> Prompt::NonPromptLeptonVertexingAlg::m_maxTrackZ0Sin {this, "maxTrackZ0Sin", 1.0} |
|
private |
◆ m_mergeChi2OverDoF
Gaudi::Property<double> Prompt::NonPromptLeptonVertexingAlg::m_mergeChi2OverDoF {this, "MergeChi2OverDoF", 5.0} |
|
private |
◆ m_mergeMinVtxDist
Gaudi::Property<double> Prompt::NonPromptLeptonVertexingAlg::m_mergeMinVtxDist {this, "MergeMinVtxDist", 1.0} |
|
private |
◆ m_minTrackLeptonDR
Gaudi::Property<float> Prompt::NonPromptLeptonVertexingAlg::m_minTrackLeptonDR {this, "minTrackLeptonDR", 1.0e-6} |
|
private |
◆ m_minTrackpT
Gaudi::Property<float> Prompt::NonPromptLeptonVertexingAlg::m_minTrackpT {this, "minTrackpT", 500.0} |
|
private |
◆ m_minTrackSiHits
Gaudi::Property<unsigned> Prompt::NonPromptLeptonVertexingAlg::m_minTrackSiHits {this, "minTrackSiHits", 7} |
|
private |
◆ m_primaryVertexContainerName
◆ m_printTime
Gaudi::Property<bool> Prompt::NonPromptLeptonVertexingAlg::m_printTime {this, "PrintTime", false} |
|
private |
◆ m_refittedPriVtxContainerName
◆ m_refittedVertexTypeName
Gaudi::Property<std::string> Prompt::NonPromptLeptonVertexingAlg::m_refittedVertexTypeName |
|
private |
◆ m_selectTracks
Gaudi::Property<bool> Prompt::NonPromptLeptonVertexingAlg::m_selectTracks {this, "SelectTracks", true} |
|
private |
◆ m_svContainerName
◆ m_timerAll
TStopwatch Prompt::NonPromptLeptonVertexingAlg::m_timerAll |
|
private |
◆ m_timerExec
TStopwatch Prompt::NonPromptLeptonVertexingAlg::m_timerExec |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vertexFitterTool
◆ m_vertexMerger
◆ m_vhka
The documentation for this class was generated from the following files:
Gaudi::Property< float > m_minTrackpT
JetConstituentVector::iterator iterator
virtual double pt() const override final
The transverse momentum ( ) of the particle.
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
Gaudi::Property< unsigned > m_minTrackSiHits
Gaudi::Property< float > m_maxTrackZ0Sin
SG::WriteDecorHandleKey< xAOD::IParticleContainer > m_decoratorNameSecVtxLinks
Gaudi::Property< bool > m_selectTracks
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
bool GetAuxVar(const T1 &obj, T2 &value, const std::string &var_name)
Gaudi::Property< double > m_mergeMinVtxDist
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Gaudi::Property< float > m_maxTrackSharedSiHits
bool getVar(T1 &obj, T2 &value, const std::string &var_name)
ToolHandle< Prompt::VertexFittingTool > m_vertexFitterTool
Gaudi::Property< std::string > m_linkNameRefittedPriVtxWithoutLepton
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
const xAOD::TrackParticle * trackParticle(size_t index=0) const
Pointer to the xAOD::TrackParticle/s that match the electron candidate.
SG::ReadHandleKey< xAOD::IParticleContainer > m_leptonContainerKey
Helper class to provide constant type-safe access to aux data.
Gaudi::Property< unsigned > m_maxTrackSiHoles
Class providing the definition of the 4-vector interface.
std::vector< std::unique_ptr< xAOD::Vertex > > prepLepWithTwoTrkSVVec(const FittingInput &input, const xAOD::TrackParticle *tracklep, const std::vector< const xAOD::TrackParticle * > &tracks)
std::string PrintResetStopWatch(TStopwatch &watch)
Gaudi::Property< float > m_maxTrackEta
bool isValid() const
Test to see if the link can be dereferenced.
def timer(name, disabled=False)
SG::ReadHandleKey< xAOD::VertexContainer > m_refittedPriVtxContainerName
virtual void setOwner(IDataHandleHolder *o)=0
SG::ReadHandleKey< xAOD::VertexContainer > m_primaryVertexContainerName
Gaudi::Property< bool > m_printTime
std::vector< std::unique_ptr< xAOD::Vertex > > vtxsInitPassedNotMerged
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
Gaudi::Property< double > m_mergeChi2OverDoF
virtual StatusCode sysInitialize() override
Override sysInitialize.
ToolHandle< Prompt::IVertexMergingTool > m_vertexMerger
double getDistance(const xAOD::Vertex *vtx1, const xAOD::Vertex *vtx2)
bool passElecCand(const xAOD::Electron &elec) const
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
void saveSecondaryVertices(std::vector< std::unique_ptr< xAOD::Vertex >> &vtxs, std::vector< int > &indexVector, std::vector< ElementLink< xAOD::VertexContainer > > &svLinks, xAOD::VertexContainer &SVContainer, std::set< xAOD::Vertex * > &svSet)
::StatusCode StatusCode
StatusCode definition for legacy code.
Handle class for adding a decoration to an object.
Gaudi::Property< unsigned > m_maxTrackPixHoles
SG::WriteHandleKey< xAOD::VertexContainer > m_svContainerName
Gaudi::Property< float > m_maxTrackLeptonDR
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
Gaudi::Property< std::string > m_refittedVertexTypeName
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
float z() const
Returns the z position.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
@ numberOfSCTHoles
number of SCT holes [unit8_t].
std::vector< const xAOD::TrackParticle * > findNearbyTracks(const xAOD::TrackParticle &tracklep, const xAOD::TrackParticleContainer &inDetTracks, const xAOD::Vertex &priVtx) const
std::string decorKeyFromKey(const std::string &key, const std::string &deflt)
Extract the decoration part of key.
SG::WriteDecorHandleKey< xAOD::IParticleContainer > m_decoratorNameDeepMergedSecVtxLinks
Gaudi::Property< float > m_minTrackLeptonDR
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
ElementLink implementation for ROOT usage.
std::string truthAsStr(const xAOD::IParticle &particle)
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_inDetTracksKey
bool passMuonCand(const xAOD::Muon &muon) const
value_type push_back(value_type pElem)
Add an element to the end of the collection.
const xAOD::TrackParticle * getOriginalTrackParticleFromGSF(const xAOD::TrackParticle *trkPar)
Helper function for getting the "Original" Track Particle (i.e before GSF) via the GSF Track Particle...
SG::WriteDecorHandleKey< xAOD::IParticleContainer > m_decoratorNameIndexVectorDeepMerge
DataObjIDColl m_extendedExtraObjects
std::vector< std::unique_ptr< xAOD::Vertex > > vtxsNewMerged
Class describing a Vertex.
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual double pt() const override final
The transverse momentum ( ) of the particle.
@ numberOfSCTHits
number of hits in SCT [unit8_t].
AthAlgorithm()
Default constructor:
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Class describing a TrackParticle.
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
SG::WriteDecorHandleKey< xAOD::IParticleContainer > m_decoratorNameIndexVector