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"
10#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 PsiPlusPsiCascade : public extends<AthAlgTool, IAugmentationTool>
34 {
35 public:
36 PsiPlusPsiCascade(const std::string& type, const std::string& name, const IInterface* parent);
37 virtual ~PsiPlusPsiCascade() = 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_vertexPsi1HypoNames;
46 std::vector<std::string> m_vertexPsi2HypoNames;
51
67 double m_vtx1Daug1MassHypo; // mass hypothesis of 1st daughter from vertex 1
68 double m_vtx1Daug2MassHypo; // mass hypothesis of 2nd daughter from vertex 1
69 double m_vtx1Daug3MassHypo; // mass hypothesis of 3rd daughter from vertex 1
70 double m_vtx1Daug4MassHypo; // mass hypothesis of 4th daughter from vertex 1
72 double m_vtx2Daug1MassHypo; // mass hypothesis of 1st daughter from vertex 2
73 double m_vtx2Daug2MassHypo; // mass hypothesis of 2nd daughter from vertex 2
74 double m_vtx2Daug3MassHypo; // mass hypothesis of 3rd daughter from vertex 2
75 double m_vtx2Daug4MassHypo; // mass hypothesis of 4th daughter from vertex 2
76
77 double m_massPsi1;
78 double m_massPsi2;
91 double m_chi2cut;
93 unsigned int m_maxCandidates;
94
95 ToolHandle < Trk::TrkVKalVrtFitter > m_iVertexFitter;
96 ToolHandle < Analysis::PrimaryVertexRefitter > m_pvRefitter;
97 ToolHandle < Trk::V0Tools > m_V0Tools;
98 ToolHandle < DerivationFramework::CascadeTools > m_CascadeTools;
99 ServiceHandle<IPartPropSvc> m_partPropSvc{this, "PartPropSvc", "PartPropSvc"};
100
103 std::string m_hypoName;
107 };
108}
109
110#endif
ToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
SG::WriteHandleKeyArray< xAOD::VertexContainer > m_cascadeOutputsKeys
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexPsi1ContainerKey
virtual StatusCode initialize() override
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
ToolHandle< Trk::TrkVKalVrtFitter > m_iVertexFitter
ServiceHandle< IPartPropSvc > m_partPropSvc
ToolHandle< DerivationFramework::CascadeTools > m_CascadeTools
std::vector< std::string > m_vertexPsi1HypoNames
virtual StatusCode addBranches(const EventContext &ctx) const override
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.