ATLAS Offline Software
PsiPlusPsiSingleVertex.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef PSIPLUSPSISINGLEVERTEX_H
5 #define PSIPLUSPSISINGLEVERTEX_H
6 // Xin Chen <xin.chen@cern.ch>
7 
9 #include "GaudiKernel/ToolHandle.h"
10 #include "GaudiKernel/IPartPropSvc.h"
15 #include <vector>
16 
17 namespace Trk {
18  class TrkVKalVrtFitter;
19  class V0Tools;
20 }
21 
22 namespace DerivationFramework {
23 
24  static const InterfaceID IID_PsiPlusPsiSingleVertex("PsiPlusPsiSingleVertex", 1, 0);
25 
26  class PsiPlusPsiSingleVertex : virtual public AthAlgTool, public IAugmentationTool
27  {
28  public:
29  static const InterfaceID& interfaceID() { return IID_PsiPlusPsiSingleVertex;}
30  PsiPlusPsiSingleVertex(const std::string& t, const std::string& n, const IInterface* p);
31  virtual ~PsiPlusPsiSingleVertex() = default;
32  virtual StatusCode initialize() override;
33  virtual StatusCode addBranches() const override;
34 
35  private:
38  std::vector<std::string> m_vertexPsi1HypoNames;
39  std::vector<std::string> m_vertexPsi2HypoNames;
44 
57  double m_MassLower;
58  double m_MassUpper;
60  double m_vtx1Daug1MassHypo; // mass hypothesis of 1st daughter from vertex 1
61  double m_vtx1Daug2MassHypo; // mass hypothesis of 2nd daughter from vertex 1
62  double m_vtx1Daug3MassHypo; // mass hypothesis of 3rd daughter from vertex 1
63  double m_vtx1Daug4MassHypo; // mass hypothesis of 4th daughter from vertex 1
65  double m_vtx2Daug1MassHypo; // mass hypothesis of 1st daughter from vertex 2
66  double m_vtx2Daug2MassHypo; // mass hypothesis of 2nd daughter from vertex 2
67  double m_vtx2Daug3MassHypo; // mass hypothesis of 3rd daughter from vertex 2
68  double m_vtx2Daug4MassHypo; // mass hypothesis of 4th daughter from vertex 2
69  unsigned int m_maxCandidates;
70 
71  double m_mass_jpsi1;
72  double m_mass_diTrk1;
73  double m_mass_psi1;
74  double m_mass_jpsi2;
75  double m_mass_diTrk2;
76  double m_mass_psi2;
83  double m_chi2cut;
84 
85  ToolHandle < Trk::TrkVKalVrtFitter > m_iVertexFitter;
86  ToolHandle < Analysis::PrimaryVertexRefitter > m_pvRefitter;
87  ToolHandle < Trk::V0Tools > m_V0Tools;
88  ServiceHandle<IPartPropSvc> m_partPropSvc{this, "PartPropSvc", "PartPropSvc"};
89 
90  bool m_refitPV;
92  std::string m_hypoName;
93  int m_PV_max;
96  };
97 }
98 
99 #endif
DerivationFramework::PsiPlusPsiSingleVertex::m_DoVertexType
int m_DoVertexType
Definition: PsiPlusPsiSingleVertex.h:94
DerivationFramework::PsiPlusPsiSingleVertex::m_PV_max
int m_PV_max
Definition: PsiPlusPsiSingleVertex.h:93
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug2MassHypo
double m_vtx1Daug2MassHypo
Definition: PsiPlusPsiSingleVertex.h:61
DerivationFramework::PsiPlusPsiSingleVertex::m_maxCandidates
unsigned int m_maxCandidates
Definition: PsiPlusPsiSingleVertex.h:69
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug3MassHypo
double m_vtx2Daug3MassHypo
Definition: PsiPlusPsiSingleVertex.h:67
DerivationFramework::PsiPlusPsiSingleVertex::m_partPropSvc
ServiceHandle< IPartPropSvc > m_partPropSvc
Definition: PsiPlusPsiSingleVertex.h:88
DerivationFramework::PsiPlusPsiSingleVertex::m_vertexPsi2HypoNames
std::vector< std::string > m_vertexPsi2HypoNames
Definition: PsiPlusPsiSingleVertex.h:39
DerivationFramework::PsiPlusPsiSingleVertex::m_constrDiTrk2
bool m_constrDiTrk2
Definition: PsiPlusPsiSingleVertex.h:81
IAugmentationTool.h
DerivationFramework::PsiPlusPsiSingleVertex::m_constrDiTrk1
bool m_constrDiTrk1
Definition: PsiPlusPsiSingleVertex.h:78
DerivationFramework::PsiPlusPsiSingleVertex::m_mass_psi2
double m_mass_psi2
Definition: PsiPlusPsiSingleVertex.h:76
DerivationFramework::PsiPlusPsiSingleVertex::m_psi1MassUpper
double m_psi1MassUpper
Definition: PsiPlusPsiSingleVertex.h:50
DerivationFramework::PsiPlusPsiSingleVertex::m_refitPV
bool m_refitPV
Definition: PsiPlusPsiSingleVertex.h:90
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
DerivationFramework::PsiPlusPsiSingleVertex::m_psi2MassLower
double m_psi2MassLower
Definition: PsiPlusPsiSingleVertex.h:55
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
PrimaryVertexRefitter.h
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
DerivationFramework::PsiPlusPsiSingleVertex
Definition: PsiPlusPsiSingleVertex.h:27
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug_num
int m_vtx1Daug_num
Definition: PsiPlusPsiSingleVertex.h:59
DerivationFramework::PsiPlusPsiSingleVertex::m_mass_psi1
double m_mass_psi1
Definition: PsiPlusPsiSingleVertex.h:73
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug4MassHypo
double m_vtx1Daug4MassHypo
Definition: PsiPlusPsiSingleVertex.h:63
DerivationFramework::PsiPlusPsiSingleVertex::m_psi2MassUpper
double m_psi2MassUpper
Definition: PsiPlusPsiSingleVertex.h:56
DerivationFramework::IAugmentationTool
Definition: IAugmentationTool.h:24
DerivationFramework::PsiPlusPsiSingleVertex::m_psi1MassLower
double m_psi1MassLower
Definition: PsiPlusPsiSingleVertex.h:49
DerivationFramework::PsiPlusPsiSingleVertex::m_chi2cut
double m_chi2cut
Definition: PsiPlusPsiSingleVertex.h:83
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
DerivationFramework::PsiPlusPsiSingleVertex::m_mass_diTrk2
double m_mass_diTrk2
Definition: PsiPlusPsiSingleVertex.h:75
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
DerivationFramework::PsiPlusPsiSingleVertex::m_constrJpsi1
bool m_constrJpsi1
Definition: PsiPlusPsiSingleVertex.h:77
DerivationFramework::PsiPlusPsiSingleVertex::m_vertexPsi1ContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexPsi1ContainerKey
Definition: PsiPlusPsiSingleVertex.h:36
beamspotman.n
n
Definition: beamspotman.py:731
DerivationFramework::PsiPlusPsiSingleVertex::m_eventInfo_key
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
Definition: PsiPlusPsiSingleVertex.h:43
DerivationFramework::PsiPlusPsiSingleVertex::m_mass_diTrk1
double m_mass_diTrk1
Definition: PsiPlusPsiSingleVertex.h:72
DerivationFramework::PsiPlusPsiSingleVertex::m_mass_jpsi1
double m_mass_jpsi1
Definition: PsiPlusPsiSingleVertex.h:71
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DerivationFramework::PsiPlusPsiSingleVertex::m_MassLower
double m_MassLower
Definition: PsiPlusPsiSingleVertex.h:57
DerivationFramework::PsiPlusPsiSingleVertex::~PsiPlusPsiSingleVertex
virtual ~PsiPlusPsiSingleVertex()=default
DerivationFramework::PsiPlusPsiSingleVertex::m_trackContainerName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackContainerName
Definition: PsiPlusPsiSingleVertex.h:42
DerivationFramework::PsiPlusPsiSingleVertex::m_mass_jpsi2
double m_mass_jpsi2
Definition: PsiPlusPsiSingleVertex.h:74
AthAlgTool.h
DerivationFramework::PsiPlusPsiSingleVertex::interfaceID
static const InterfaceID & interfaceID()
Definition: PsiPlusPsiSingleVertex.h:29
DerivationFramework::PsiPlusPsiSingleVertex::m_diTrack2MassLower
double m_diTrack2MassLower
Definition: PsiPlusPsiSingleVertex.h:53
DerivationFramework::PsiPlusPsiSingleVertex::m_diTrack2MassUpper
double m_diTrack2MassUpper
Definition: PsiPlusPsiSingleVertex.h:54
DerivationFramework::PsiPlusPsiSingleVertex::m_pvRefitter
ToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
Definition: PsiPlusPsiSingleVertex.h:86
DerivationFramework::PsiPlusPsiSingleVertex::m_jpsi1MassLower
double m_jpsi1MassLower
Definition: PsiPlusPsiSingleVertex.h:45
DerivationFramework::PsiPlusPsiSingleVertex::addBranches
virtual StatusCode addBranches() const override
Pass the thinning service
Definition: PsiPlusPsiSingleVertex.cxx:170
DerivationFramework::PsiPlusPsiSingleVertex::m_jpsi2MassLower
double m_jpsi2MassLower
Definition: PsiPlusPsiSingleVertex.h:51
DerivationFramework::PsiPlusPsiSingleVertex::m_PV_minNTracks
size_t m_PV_minNTracks
Definition: PsiPlusPsiSingleVertex.h:95
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
DerivationFramework::PsiPlusPsiSingleVertex::m_hypoName
std::string m_hypoName
Definition: PsiPlusPsiSingleVertex.h:92
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
DerivationFramework::PsiPlusPsiSingleVertex::m_MassUpper
double m_MassUpper
Definition: PsiPlusPsiSingleVertex.h:58
DerivationFramework::PsiPlusPsiSingleVertex::m_outputsKeys
SG::WriteHandleKeyArray< xAOD::VertexContainer > m_outputsKeys
Definition: PsiPlusPsiSingleVertex.h:40
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug3MassHypo
double m_vtx1Daug3MassHypo
Definition: PsiPlusPsiSingleVertex.h:62
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug_num
int m_vtx2Daug_num
Definition: PsiPlusPsiSingleVertex.h:64
DerivationFramework::PsiPlusPsiSingleVertex::PsiPlusPsiSingleVertex
PsiPlusPsiSingleVertex(const std::string &t, const std::string &n, const IInterface *p)
Definition: PsiPlusPsiSingleVertex.cxx:25
DerivationFramework::PsiPlusPsiSingleVertex::m_jpsi1MassUpper
double m_jpsi1MassUpper
Definition: PsiPlusPsiSingleVertex.h:46
DerivationFramework::PsiPlusPsiSingleVertex::m_V0Tools
ToolHandle< Trk::V0Tools > m_V0Tools
Definition: PsiPlusPsiSingleVertex.h:87
V0Tools
DerivationFramework::PsiPlusPsiSingleVertex::m_constrPsi2
bool m_constrPsi2
Definition: PsiPlusPsiSingleVertex.h:82
EventInfo.h
DerivationFramework::PsiPlusPsiSingleVertex::m_VxPrimaryCandidateName
SG::ReadHandleKey< xAOD::VertexContainer > m_VxPrimaryCandidateName
Name of primary vertex container.
Definition: PsiPlusPsiSingleVertex.h:41
DerivationFramework::PsiPlusPsiSingleVertex::m_diTrack1MassLower
double m_diTrack1MassLower
Definition: PsiPlusPsiSingleVertex.h:47
DerivationFramework::PsiPlusPsiSingleVertex::initialize
virtual StatusCode initialize() override
Definition: PsiPlusPsiSingleVertex.cxx:130
DerivationFramework::PsiPlusPsiSingleVertex::m_vertexPsi2ContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexPsi2ContainerKey
Definition: PsiPlusPsiSingleVertex.h:37
VertexContainer.h
DerivationFramework::PsiPlusPsiSingleVertex::m_refPVContainerName
SG::WriteHandleKey< xAOD::VertexContainer > m_refPVContainerName
Definition: PsiPlusPsiSingleVertex.h:91
DerivationFramework::PsiPlusPsiSingleVertex::m_vertexPsi1HypoNames
std::vector< std::string > m_vertexPsi1HypoNames
Definition: PsiPlusPsiSingleVertex.h:38
DerivationFramework::PsiPlusPsiSingleVertex::m_diTrack1MassUpper
double m_diTrack1MassUpper
Definition: PsiPlusPsiSingleVertex.h:48
DerivationFramework::PsiPlusPsiSingleVertex::m_constrJpsi2
bool m_constrJpsi2
Definition: PsiPlusPsiSingleVertex.h:80
DerivationFramework::PsiPlusPsiSingleVertex::m_jpsi2MassUpper
double m_jpsi2MassUpper
Definition: PsiPlusPsiSingleVertex.h:52
DerivationFramework::PsiPlusPsiSingleVertex::m_iVertexFitter
ToolHandle< Trk::TrkVKalVrtFitter > m_iVertexFitter
Definition: PsiPlusPsiSingleVertex.h:85
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx1Daug1MassHypo
double m_vtx1Daug1MassHypo
Definition: PsiPlusPsiSingleVertex.h:60
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug4MassHypo
double m_vtx2Daug4MassHypo
Definition: PsiPlusPsiSingleVertex.h:68
AthAlgTool
Definition: AthAlgTool.h:26
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug1MassHypo
double m_vtx2Daug1MassHypo
Definition: PsiPlusPsiSingleVertex.h:65
DerivationFramework::PsiPlusPsiSingleVertex::m_vtx2Daug2MassHypo
double m_vtx2Daug2MassHypo
Definition: PsiPlusPsiSingleVertex.h:66
ServiceHandle< IPartPropSvc >
DerivationFramework::PsiPlusPsiSingleVertex::m_constrPsi1
bool m_constrPsi1
Definition: PsiPlusPsiSingleVertex.h:79