ATLAS Offline Software
Loading...
Searching...
No Matches
PsiPlusPsiCascade.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 PSIPLUSPSICASCADE_H
6#define PSIPLUSPSICASCADE_H
7
9#include "GaudiKernel/ToolHandle.h"
14#include <vector>
15// dummy EventContext for AnalysisBase
17
18namespace Trk {
19 class IVertexFitter;
20 class TrkVKalVrtFitter;
22 class VxCascadeInfo;
23 class V0Tools;
24}
25
26namespace DerivationFramework {
27 class CascadeTools;
28}
29
30namespace DerivationFramework {
31
32 class PsiPlusPsiCascade : public extends<AthAlgTool, IAugmentationTool>
33 {
34 public:
35 PsiPlusPsiCascade(const std::string& type, const std::string& name, const IInterface* parent);
36 virtual ~PsiPlusPsiCascade() = default;
37 virtual StatusCode initialize() override;
38 StatusCode performSearch(std::vector<Trk::VxCascadeInfo*> *cascadeinfoContainer, std::vector<Trk::VxCascadeInfo*> *cascadeinfoContainer_noConstr, const EventContext& ctx) const;
39 virtual StatusCode addBranches(const EventContext& ctx) const override;
40
41 private:
44 std::vector<std::string> m_vertexPsi1HypoNames;
45 std::vector<std::string> m_vertexPsi2HypoNames;
50
66 double m_vtx1Daug1MassHypo; // mass hypothesis of 1st daughter from vertex 1
67 double m_vtx1Daug2MassHypo; // mass hypothesis of 2nd daughter from vertex 1
68 double m_vtx1Daug3MassHypo; // mass hypothesis of 3rd daughter from vertex 1
69 double m_vtx1Daug4MassHypo; // mass hypothesis of 4th daughter from vertex 1
71 double m_vtx2Daug1MassHypo; // mass hypothesis of 1st daughter from vertex 2
72 double m_vtx2Daug2MassHypo; // mass hypothesis of 2nd daughter from vertex 2
73 double m_vtx2Daug3MassHypo; // mass hypothesis of 3rd daughter from vertex 2
74 double m_vtx2Daug4MassHypo; // mass hypothesis of 4th daughter from vertex 2
75
76 double m_massPsi1;
77 double m_massPsi2;
90 double m_chi2cut;
92 unsigned int m_maxCandidates;
93
94 ToolHandle < Trk::TrkVKalVrtFitter > m_iVertexFitter;
95 PublicToolHandle < Analysis::PrimaryVertexRefitter > m_pvRefitter;
96 PublicToolHandle < Trk::V0Tools > m_V0Tools;
97 PublicToolHandle < DerivationFramework::CascadeTools > m_CascadeTools;
98
101 std::string m_hypoName;
105 };
106}
107
108#endif
SG::WriteHandleKeyArray< xAOD::VertexContainer > m_cascadeOutputsKeys
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexPsi1ContainerKey
virtual StatusCode initialize() override
PublicToolHandle< DerivationFramework::CascadeTools > m_CascadeTools
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
PublicToolHandle< Trk::V0Tools > m_V0Tools
ToolHandle< Trk::TrkVKalVrtFitter > m_iVertexFitter
std::vector< std::string > m_vertexPsi1HypoNames
virtual StatusCode addBranches(const EventContext &ctx) const override
PublicToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexPsi2ContainerKey
std::vector< std::string > m_vertexPsi2HypoNames
StatusCode performSearch(std::vector< Trk::VxCascadeInfo * > *cascadeinfoContainer, std::vector< Trk::VxCascadeInfo * > *cascadeinfoContainer_noConstr, const EventContext &ctx) const
SG::ReadHandleKey< xAOD::VertexContainer > m_VxPrimaryCandidateName
Name of primary vertex container.
PsiPlusPsiCascade(const std::string &type, const std::string &name, const IInterface *parent)
SG::WriteHandleKey< xAOD::VertexContainer > m_refPVContainerName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackContainerName
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.