ATLAS Offline Software
Loading...
Searching...
No Matches
JpsiPlusPsiCascade.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 Contact: Xin Chen <xin.chen@cern.ch>
4*/
5#ifndef JPSIPLUSPSICASCADE_H
6#define JPSIPLUSPSICASCADE_H
7
9#include "GaudiKernel/ToolHandle.h"
14#include "GaudiKernel/IPartPropSvc.h"
15#include <vector>
16// dummy EventContext for AnalysisBase
18
19namespace Trk {
20 class IVertexFitter;
21 class TrkVKalVrtFitter;
23 class VxCascadeInfo;
24 class V0Tools;
25}
26
27namespace DerivationFramework {
28 class CascadeTools;
29}
30
31namespace DerivationFramework {
32
33 class JpsiPlusPsiCascade : public extends<AthAlgTool, IAugmentationTool>
34 {
35 public:
36 JpsiPlusPsiCascade(const std::string& t, const std::string& n, const IInterface* p);
37 virtual ~JpsiPlusPsiCascade() = default;
38 virtual StatusCode initialize() override;
39 StatusCode performSearch(std::vector<Trk::VxCascadeInfo*> *cascadeinfoContainer, std::vector<Trk::VxCascadeInfo*> *cascadeinfoContainer_noConstr, const EventContext& ctx) const;
40 virtual StatusCode addBranches(const EventContext& ctx) const override;
41
42 private:
45 std::vector<std::string> m_vertexJpsiHypoNames;
46 std::vector<std::string> m_vertexPsiHypoNames;
51
63 double m_vtx1Daug1MassHypo; // mass hypothesis of 1st daughter from vertex 1
64 double m_vtx1Daug2MassHypo; // mass hypothesis of 2nd daughter from vertex 1
65 double m_vtx1Daug3MassHypo; // mass hypothesis of 3rd daughter from vertex 1
66 double m_vtx1Daug4MassHypo; // mass hypothesis of 4th daughter from vertex 1
67 double m_vtx2Daug1MassHypo; // mass hypothesis of 1st daughter from vertex 2
68 double m_vtx2Daug2MassHypo; // mass hypothesis of 2nd daughter from vertex 2
69
72 double m_mass_psi;
80 double m_chi2cut;
81 unsigned int m_maxCandidates;
82
83 ToolHandle < Trk::TrkVKalVrtFitter > m_iVertexFitter;
84 ToolHandle < Analysis::PrimaryVertexRefitter > m_pvRefitter;
85 ToolHandle < Trk::V0Tools > m_V0Tools;
86 ToolHandle < DerivationFramework::CascadeTools > m_CascadeTools;
87 ServiceHandle<IPartPropSvc> m_partPropSvc{this, "PartPropSvc", "PartPropSvc"};
88
91 std::string m_hypoName;
95 };
96}
97
98#endif
SG::WriteHandleKeyArray< xAOD::VertexContainer > m_cascadeOutputsKeys
SG::WriteHandleKey< xAOD::VertexContainer > m_refPVContainerName
virtual StatusCode initialize() override
StatusCode performSearch(std::vector< Trk::VxCascadeInfo * > *cascadeinfoContainer, std::vector< Trk::VxCascadeInfo * > *cascadeinfoContainer_noConstr, const EventContext &ctx) const
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexPsiContainerKey
std::vector< std::string > m_vertexJpsiHypoNames
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackContainerName
SG::ReadHandleKey< xAOD::VertexContainer > m_VxPrimaryCandidateName
Name of primary vertex container.
ToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
ServiceHandle< IPartPropSvc > m_partPropSvc
JpsiPlusPsiCascade(const std::string &t, const std::string &n, const IInterface *p)
virtual StatusCode addBranches(const EventContext &ctx) const override
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainerKey
ToolHandle< Trk::TrkVKalVrtFitter > m_iVertexFitter
ToolHandle< DerivationFramework::CascadeTools > m_CascadeTools
std::vector< std::string > m_vertexPsiHypoNames
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Interface class for vertex fitting AlgTools, for more detailed information, take a look at the header...
THE reconstruction tool.
HandleKeyArray< WriteHandle< T >, WriteHandleKey< T >, Gaudi::DataHandle::Writer > WriteHandleKeyArray
Ensure that the ATLAS eigen extensions are properly loaded.