ATLAS Offline Software
PrimaryVertexReFitter.h
Go to the documentation of this file.
1 // This is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef PROMPT_PRIMARYVERTEXREFITTER_H
8 #define PROMPT_PRIMARYVERTEXREFITTER_H
9 
10 /**********************************************************************************
11  * @Package: LeptonTaggers
12  * @Class : PrimaryVertexReFitter
13  * @Author : Fudong He
14  * @Author : Rustem Ospanov
15  * @Author : Kees Benkendorfer
16  *
17  * @Brief :
18  *
19  * Decorate leptons with secondary vertex algorithem output
20  *
21  **********************************************************************************/
22 
23 // Local
24 #include "VertexFittingTool.h"
25 
26 // Athena
28 #include "GaudiKernel/ToolHandle.h"
29 #include "AthContainers/Accessor.h"
33 
34 // xAOD
36 
37 // ROOT
38 #include "TStopwatch.h"
39 
40 #include <optional>
41 
42 namespace Prompt
43 {
44  class PrimaryVertexReFitter: public AthAlgorithm
45  {
46  public:
47 
48  PrimaryVertexReFitter(const std::string& name, ISvcLocator* pSvcLocator);
49 
50  virtual StatusCode initialize() override;
51  virtual StatusCode execute() override;
52  virtual StatusCode finalize() override;
53 
54  private:
55 
57 
58 
60  const xAOD::TrackParticle* tracklep,
61  const std::vector<const xAOD::TrackParticle*> &tracks,
62  xAOD::VertexContainer &refitVtxContainer);
63 
64 
65  private:
66 
67  //
68  // Tools and services:
69  //
70  ToolHandle<Prompt::VertexFittingTool> m_vertexFitterTool {
71  this, "VertexFittingTool", "Prompt::VertexFittingTool/VertexFittingTool"
72  };
73 
74  //
75  // Properties:
76  //
77  Gaudi::Property<bool> m_printTime {this, "PrintTime", false};
78 
79  Gaudi::Property<std::string> m_distToRefittedPriVtxName {
80  this, "DistToRefittedPriVtxName", "default"
81  };
82  Gaudi::Property<std::string> m_normDistToRefittedPriVtxName {
83  this, "NormDistToRefittedPriVtxName", "default"
84  };
85 
86  TStopwatch m_timerAll;
87  TStopwatch m_timerExec;
88 
89  // Read/write handles
91  this, "InDetTrackParticlesKey", "InDetTrackParticles"
92  };
93 
95  this,
96  "LeptonContainerName",
97  "lepContainerNameDefault", "Name of lepton container"
98  };
100  this, "PriVertexContainerName", "PrimaryVertices",
101  "Name of primary vertex container"
102  };
104  this, "ReFitPriVtxName", "default"
105  };
106 
107  //
108  // Accessors/Decorators
109  //
110  std::optional<accessorFloat_t> m_distToRefittedPriVtx;
111  std::optional<accessorFloat_t> m_normdistToRefittedPriVtx;
112 
114  { this, "RefittedVtxWithoutLeptonLinkName", m_leptonContainerKey, "default", "" };
115  };
116 }
117 
118 #endif // PROMPT_PRIMARYVERTEXREFITTER_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
SG::WriteDecorHandleKey
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Definition: StoreGate/StoreGate/WriteDecorHandleKey.h:89
Prompt::PrimaryVertexReFitter::decorateLepWithReFitPrimaryVertex
bool decorateLepWithReFitPrimaryVertex(const FittingInput &input, const xAOD::TrackParticle *tracklep, const std::vector< const xAOD::TrackParticle * > &tracks, xAOD::VertexContainer &refitVtxContainer)
Definition: PrimaryVertexReFitter.cxx:251
Prompt
Definition: DecoratePLIT.h:29
Prompt::PrimaryVertexReFitter::m_timerExec
TStopwatch m_timerExec
Definition: PrimaryVertexReFitter.h:109
SG::Accessor< float >
Prompt::PrimaryVertexReFitter::m_vertexFitterTool
ToolHandle< Prompt::VertexFittingTool > m_vertexFitterTool
Definition: PrimaryVertexReFitter.h:92
Prompt::PrimaryVertexReFitter::m_timerAll
TStopwatch m_timerAll
Definition: PrimaryVertexReFitter.h:108
VertexFittingTool.h
Prompt::PrimaryVertexReFitter::m_leptonContainerKey
SG::ReadHandleKey< xAOD::IParticleContainer > m_leptonContainerKey
Definition: PrimaryVertexReFitter.h:116
Prompt::PrimaryVertexReFitter::finalize
virtual StatusCode finalize() override
Definition: PrimaryVertexReFitter.cxx:75
Prompt::PrimaryVertexReFitter::m_reFitPrimaryVertexKey
SG::WriteHandleKey< xAOD::VertexContainer > m_reFitPrimaryVertexKey
Definition: PrimaryVertexReFitter.h:125
Prompt::PrimaryVertexReFitter::PrimaryVertexReFitter
PrimaryVertexReFitter(const std::string &name, ISvcLocator *pSvcLocator)
Definition: PrimaryVertexReFitter.cxx:20
SG::ReadHandleKey< xAOD::TrackParticleContainer >
Prompt::FittingInput
Definition: IVertexFittingTool.h:60
Prompt::PrimaryVertexReFitter::m_normDistToRefittedPriVtxName
Gaudi::Property< std::string > m_normDistToRefittedPriVtxName
Definition: PrimaryVertexReFitter.h:104
Prompt::PrimaryVertexReFitter::m_lepRefittedVtxWithoutLeptonLinkName
SG::WriteDecorHandleKey< xAOD::IParticleContainer > m_lepRefittedVtxWithoutLeptonLinkName
Definition: PrimaryVertexReFitter.h:136
AthAlgorithm.h
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
WriteDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Prompt::PrimaryVertexReFitter::initialize
virtual StatusCode initialize() override
Definition: PrimaryVertexReFitter.cxx:25
Prompt::PrimaryVertexReFitter::m_printTime
Gaudi::Property< bool > m_printTime
Definition: PrimaryVertexReFitter.h:99
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
AthAlgorithm
Definition: AthAlgorithm.h:47
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
Prompt::PrimaryVertexReFitter::m_normdistToRefittedPriVtx
std::optional< accessorFloat_t > m_normdistToRefittedPriVtx
Definition: PrimaryVertexReFitter.h:133
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
Accessor.h
Helper class to provide type-safe access to aux data.
Prompt::PrimaryVertexReFitter::m_inDetTracksKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_inDetTracksKey
Definition: PrimaryVertexReFitter.h:112
VertexContainer.h
Prompt::PrimaryVertexReFitter::m_primaryVertexContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_primaryVertexContainerKey
Definition: PrimaryVertexReFitter.h:121
Prompt::PrimaryVertexReFitter::m_distToRefittedPriVtxName
Gaudi::Property< std::string > m_distToRefittedPriVtxName
Definition: PrimaryVertexReFitter.h:101
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
Prompt::PrimaryVertexReFitter::execute
virtual StatusCode execute() override
Definition: PrimaryVertexReFitter.cxx:91
Prompt::PrimaryVertexReFitter::m_distToRefittedPriVtx
std::optional< accessorFloat_t > m_distToRefittedPriVtx
Definition: PrimaryVertexReFitter.h:132