ATLAS Offline Software
JpsiXPlus2V0.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 JPSIXPLUS2V0_H
6 #define JPSIXPLUS2V0_H
7 
9 #include "GaudiKernel/ToolHandle.h"
19 #include <vector>
20 
21 namespace Trk {
22  class IVertexFitter;
23  class TrkVKalVrtFitter;
24  class IVertexCascadeFitter;
25  class VxCascadeInfo;
26  class V0Tools;
27  class ParticleDataTable;
28 }
29 namespace InDet { class VertexPointEstimator; }
30 namespace DerivationFramework {
31  class CascadeTools;
32 }
33 
34 namespace DerivationFramework {
35 
36  static const InterfaceID IID_JpsiXPlus2V0("JpsiXPlus2V0", 1, 0);
37 
38  class JpsiXPlus2V0 : virtual public AthAlgTool, public IAugmentationTool
39  {
40  enum V0Enum{ UNKNOWN=0, LAMBDA=1, LAMBDABAR=2, KS=3 };
41  public:
42  static const InterfaceID& interfaceID() { return IID_JpsiXPlus2V0; }
43  JpsiXPlus2V0(const std::string& type, const std::string& name, const IInterface* parent);
44  virtual ~JpsiXPlus2V0() = default;
45  virtual StatusCode initialize() override;
46  StatusCode performSearch(std::vector<Trk::VxCascadeInfo*> *cascadeinfoContainer, std::vector<xAOD::VertexContainer*> V0OutputContainers) const;
47  virtual StatusCode addBranches() const override;
48 
49  private:
52  std::vector<std::string> m_vertexJXHypoNames;
53  std::vector<std::string> m_vertexV0HypoNames;
55  bool m_refitV0;
56  bool m_constrV0;
62  std::string m_hypoName;
63 
64  double m_jxMassLower;
65  double m_jxMassUpper;
70  std::string m_V01Hypothesis;
73  double m_lxyV01_cut;
74  std::string m_V02Hypothesis;
77  double m_lxyV02_cut;
78  bool m_doV0Enum;
79  bool m_decorV0P;
82  double m_MassLower;
83  double m_MassUpper;
85  double m_jxDaug1MassHypo; // mass hypothesis of 1st daughter from vertex JX
86  double m_jxDaug2MassHypo; // mass hypothesis of 2nd daughter from vertex JX
87  double m_jxDaug3MassHypo; // mass hypothesis of 3rd daughter from vertex JX
88  double m_jxDaug4MassHypo; // mass hypothesis of 4th daughter from vertex JX
89  double m_massJX;
90  double m_massJpsi;
91  double m_massX;
92  double m_massJXV02;
93  double m_massMainV;
94  bool m_constrJX;
96  bool m_constrX;
103  double m_chi2cut_JX;
104  double m_chi2cut_V0;
105  double m_chi2cut;
106  unsigned int m_maxJXCandidates;
107  unsigned int m_maxV0Candidates;
108  unsigned int m_maxMainVCandidates;
109 
110  ToolHandle < Trk::TrkVKalVrtFitter > m_iVertexFitter;
111  ToolHandle < Trk::TrkV0VertexFitter > m_iV0Fitter;
112  ToolHandle < Trk::IVertexFitter > m_iGammaFitter;
113  ToolHandle < Analysis::PrimaryVertexRefitter > m_pvRefitter;
114  ToolHandle < Trk::V0Tools > m_V0Tools;
115  ToolHandle < DerivationFramework::CascadeTools > m_CascadeTools;
116 
117  bool m_refitPV;
118  int m_PV_max;
121 
122  double m_mass_e;
123  double m_mass_mu;
124  double m_mass_pion;
128  double m_mass_Ks;
129  double m_mass_Bpm;
130 
131  Trk::VxCascadeInfo* fitMainVtx(const xAOD::Vertex* JXvtx, std::vector<double>& massesJX, const xAOD::Vertex* V01vtx, const V0Enum V01, const xAOD::Vertex* V02vtx, const V0Enum V02, const xAOD::TrackParticleContainer* trackContainer) const;
132  template<size_t NTracks> const xAOD::Vertex* FindVertex(const xAOD::VertexContainer* cont, const xAOD::Vertex* v) const;
133  template<size_t NTracks> const xAOD::Vertex* FindVertex(std::vector<const xAOD::VertexContainer*> containers, const xAOD::Vertex* v) const;
134  };
135 }
136 
137 #endif
DerivationFramework::JpsiXPlus2V0::V0Enum
V0Enum
Definition: JpsiXPlus2V0.h:40
DerivationFramework::JpsiXPlus2V0::UNKNOWN
@ UNKNOWN
Definition: JpsiXPlus2V0.h:40
DerivationFramework::JpsiXPlus2V0::m_constrMainV
bool m_constrMainV
Definition: JpsiXPlus2V0.h:100
DerivationFramework::JpsiXPlus2V0::m_jpsiMassLower
double m_jpsiMassLower
Definition: JpsiXPlus2V0.h:66
DerivationFramework::JpsiXPlus2V0::m_diTrackMassLower
double m_diTrackMassLower
Definition: JpsiXPlus2V0.h:68
DerivationFramework::JpsiXPlus2V0::m_VxPrimaryCandidateName
SG::ReadHandleKey< xAOD::VertexContainer > m_VxPrimaryCandidateName
Definition: JpsiXPlus2V0.h:59
DerivationFramework::JpsiXPlus2V0::m_V02MassUpper
double m_V02MassUpper
Definition: JpsiXPlus2V0.h:76
DerivationFramework::JpsiXPlus2V0::m_constrJX
bool m_constrJX
Definition: JpsiXPlus2V0.h:94
Trk::VxCascadeInfo
Definition: VxCascadeInfo.h:75
DerivationFramework::JpsiXPlus2V0::m_cascadeOutputKeys
SG::WriteHandleKeyArray< xAOD::VertexContainer > m_cascadeOutputKeys
Definition: JpsiXPlus2V0.h:54
DerivationFramework::JpsiXPlus2V0::LAMBDA
@ LAMBDA
Definition: JpsiXPlus2V0.h:40
DerivationFramework::JpsiXPlus2V0::m_chi2cut_gamma
double m_chi2cut_gamma
Definition: JpsiXPlus2V0.h:81
DerivationFramework::JpsiXPlus2V0::m_refitPV
bool m_refitPV
Definition: JpsiXPlus2V0.h:117
DerivationFramework::JpsiXPlus2V0::m_constrV01
bool m_constrV01
Definition: JpsiXPlus2V0.h:97
VertexPointEstimator.h
DerivationFramework::JpsiXPlus2V0::m_iV0Fitter
ToolHandle< Trk::TrkV0VertexFitter > m_iV0Fitter
Definition: JpsiXPlus2V0.h:111
DerivationFramework::JpsiXPlus2V0::m_mass_Bpm
double m_mass_Bpm
Definition: JpsiXPlus2V0.h:129
DerivationFramework::JpsiXPlus2V0::m_pvRefitter
ToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
Definition: JpsiXPlus2V0.h:113
IAugmentationTool.h
DerivationFramework::JpsiXPlus2V0::m_MassUpper
double m_MassUpper
Definition: JpsiXPlus2V0.h:83
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
DerivationFramework::JpsiXPlus2V0::m_V01Hypothesis
std::string m_V01Hypothesis
Definition: JpsiXPlus2V0.h:70
DerivationFramework::JpsiXPlus2V0::m_TrkParticleCollection
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrkParticleCollection
Definition: JpsiXPlus2V0.h:58
DerivationFramework::JpsiXPlus2V0::m_chi2cut_V0
double m_chi2cut_V0
Definition: JpsiXPlus2V0.h:104
DerivationFramework::JpsiXPlus2V0::interfaceID
static const InterfaceID & interfaceID()
Definition: JpsiXPlus2V0.h:42
DerivationFramework::JpsiXPlus2V0::m_jpsiMassUpper
double m_jpsiMassUpper
Definition: JpsiXPlus2V0.h:67
DerivationFramework::JpsiXPlus2V0::m_doV0Enum
bool m_doV0Enum
Definition: JpsiXPlus2V0.h:78
DerivationFramework::JpsiXPlus2V0::m_PV_minNTracks
size_t m_PV_minNTracks
Definition: JpsiXPlus2V0.h:119
DerivationFramework::JpsiXPlus2V0::KS
@ KS
Definition: JpsiXPlus2V0.h:40
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
DerivationFramework::JpsiXPlus2V0::m_iVertexFitter
ToolHandle< Trk::TrkVKalVrtFitter > m_iVertexFitter
Definition: JpsiXPlus2V0.h:110
DerivationFramework::JpsiXPlus2V0
Definition: JpsiXPlus2V0.h:39
DerivationFramework::JpsiXPlus2V0::m_V02Hypothesis
std::string m_V02Hypothesis
Definition: JpsiXPlus2V0.h:74
DerivationFramework::JpsiXPlus2V0::m_PV_max
int m_PV_max
Definition: JpsiXPlus2V0.h:118
PrimaryVertexRefitter.h
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
DerivationFramework::JpsiXPlus2V0::m_chi2cut
double m_chi2cut
Definition: JpsiXPlus2V0.h:105
DerivationFramework::JpsiXPlus2V0::m_jxDaug2MassHypo
double m_jxDaug2MassHypo
Definition: JpsiXPlus2V0.h:86
DerivationFramework::JpsiXPlus2V0::m_jxDaug_num
int m_jxDaug_num
Definition: JpsiXPlus2V0.h:84
DerivationFramework::JpsiXPlus2V0::m_jxDaug3MassHypo
double m_jxDaug3MassHypo
Definition: JpsiXPlus2V0.h:87
DerivationFramework::JpsiXPlus2V0::m_mass_e
double m_mass_e
Definition: JpsiXPlus2V0.h:122
DerivationFramework::IAugmentationTool
Definition: IAugmentationTool.h:24
DerivationFramework::JpsiXPlus2V0::m_lxyV02_cut
double m_lxyV02_cut
Definition: JpsiXPlus2V0.h:77
DerivationFramework::JpsiXPlus2V0::m_massX
double m_massX
Definition: JpsiXPlus2V0.h:91
DerivationFramework::JpsiXPlus2V0::m_iGammaFitter
ToolHandle< Trk::IVertexFitter > m_iGammaFitter
Definition: JpsiXPlus2V0.h:112
DerivationFramework::JpsiXPlus2V0::m_V01MassLower
double m_V01MassLower
Definition: JpsiXPlus2V0.h:71
DerivationFramework::JpsiXPlus2V0::m_constrV02
bool m_constrV02
Definition: JpsiXPlus2V0.h:98
DerivationFramework::JpsiXPlus2V0::m_refPVContainerName
SG::WriteHandleKey< xAOD::VertexContainer > m_refPVContainerName
Definition: JpsiXPlus2V0.h:60
DerivationFramework::JpsiXPlus2V0::m_v0VtxOutputKeys
SG::WriteHandleKeyArray< xAOD::VertexContainer > m_v0VtxOutputKeys
Definition: JpsiXPlus2V0.h:57
DerivationFramework::JpsiXPlus2V0::m_mass_mu
double m_mass_mu
Definition: JpsiXPlus2V0.h:123
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
DerivationFramework::JpsiXPlus2V0::m_mass_Ks
double m_mass_Ks
Definition: JpsiXPlus2V0.h:128
IsoCloseByCorrectionTest.containers
containers
Associate the close-by pflow objects and the calorimeter clusters.
Definition: IsoCloseByCorrectionTest.py:82
DerivationFramework::JpsiXPlus2V0::m_CascadeTools
ToolHandle< DerivationFramework::CascadeTools > m_CascadeTools
Definition: JpsiXPlus2V0.h:115
DerivationFramework::JpsiXPlus2V0::m_minMass_gamma
double m_minMass_gamma
Definition: JpsiXPlus2V0.h:80
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DerivationFramework::JpsiXPlus2V0::~JpsiXPlus2V0
virtual ~JpsiXPlus2V0()=default
AthAlgTool.h
DerivationFramework::JpsiXPlus2V0::m_JXSubVtx
bool m_JXSubVtx
Definition: JpsiXPlus2V0.h:101
DerivationFramework::JpsiXPlus2V0::m_massMainV
double m_massMainV
Definition: JpsiXPlus2V0.h:93
test_pyathena.parent
parent
Definition: test_pyathena.py:15
DerivationFramework::JpsiXPlus2V0::m_constrX
bool m_constrX
Definition: JpsiXPlus2V0.h:96
DerivationFramework::JpsiXPlus2V0::m_constrJXV02
bool m_constrJXV02
Definition: JpsiXPlus2V0.h:99
DerivationFramework::JpsiXPlus2V0::m_lxyV01_cut
double m_lxyV01_cut
Definition: JpsiXPlus2V0.h:73
DerivationFramework::JpsiXPlus2V0::m_V01MassUpper
double m_V01MassUpper
Definition: JpsiXPlus2V0.h:72
DerivationFramework::JpsiXPlus2V0::m_hypoName
std::string m_hypoName
Definition: JpsiXPlus2V0.h:62
DerivationFramework::JpsiXPlus2V0::JpsiXPlus2V0
JpsiXPlus2V0(const std::string &type, const std::string &name, const IInterface *parent)
Definition: JpsiXPlus2V0.cxx:26
DerivationFramework::JpsiXPlus2V0::LAMBDABAR
@ LAMBDABAR
Definition: JpsiXPlus2V0.h:40
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
DerivationFramework::JpsiXPlus2V0::m_massJXV02
double m_massJXV02
Definition: JpsiXPlus2V0.h:92
DataVector< xAOD::TrackParticle_v1 >
DerivationFramework::JpsiXPlus2V0::m_jxMassLower
double m_jxMassLower
Definition: JpsiXPlus2V0.h:64
DerivationFramework::JpsiXPlus2V0::m_V02MassLower
double m_V02MassLower
Definition: JpsiXPlus2V0.h:75
ITrackToVertex.h
DerivationFramework::JpsiXPlus2V0::m_massJpsi
double m_massJpsi
Definition: JpsiXPlus2V0.h:90
DerivationFramework::JpsiXPlus2V0::m_diTrackMassUpper
double m_diTrackMassUpper
Definition: JpsiXPlus2V0.h:69
DerivationFramework::JpsiXPlus2V0::m_vertexJXHypoNames
std::vector< std::string > m_vertexJXHypoNames
Definition: JpsiXPlus2V0.h:52
DerivationFramework::JpsiXPlus2V0::m_maxV0Candidates
unsigned int m_maxV0Candidates
Definition: JpsiXPlus2V0.h:107
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
DerivationFramework::JpsiXPlus2V0::m_vertexJXContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexJXContainerKey
Definition: JpsiXPlus2V0.h:50
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
DerivationFramework::JpsiXPlus2V0::fitMainVtx
Trk::VxCascadeInfo * fitMainVtx(const xAOD::Vertex *JXvtx, std::vector< double > &massesJX, const xAOD::Vertex *V01vtx, const V0Enum V01, const xAOD::Vertex *V02vtx, const V0Enum V02, const xAOD::TrackParticleContainer *trackContainer) const
Definition: JpsiXPlus2V0.cxx:889
DerivationFramework::JpsiXPlus2V0::initialize
virtual StatusCode initialize() override
Definition: JpsiXPlus2V0.cxx:157
DerivationFramework::JpsiXPlus2V0::m_DoVertexType
int m_DoVertexType
Definition: JpsiXPlus2V0.h:120
V0Tools
EventInfo.h
DerivationFramework::JpsiXPlus2V0::m_JXV02SubVtx
bool m_JXV02SubVtx
Definition: JpsiXPlus2V0.h:102
TrkV0VertexFitter.h
DerivationFramework::JpsiXPlus2V0::m_jxMassUpper
double m_jxMassUpper
Definition: JpsiXPlus2V0.h:65
python.PyAthena.v
v
Definition: PyAthena.py:157
DerivationFramework::JpsiXPlus2V0::FindVertex
const xAOD::Vertex * FindVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *v) const
Definition: JpsiXPlus2V0.cxx:1136
VertexContainer.h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
DerivationFramework::JpsiXPlus2V0::m_maxJXCandidates
unsigned int m_maxJXCandidates
Definition: JpsiXPlus2V0.h:106
DerivationFramework::JpsiXPlus2V0::m_vertexV0ContainerKeys
SG::ReadHandleKeyArray< xAOD::VertexContainer > m_vertexV0ContainerKeys
Definition: JpsiXPlus2V0.h:51
DerivationFramework::JpsiXPlus2V0::m_refitV0
bool m_refitV0
Definition: JpsiXPlus2V0.h:55
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
DerivationFramework::JpsiXPlus2V0::m_mass_proton
double m_mass_proton
Definition: JpsiXPlus2V0.h:125
DerivationFramework::JpsiXPlus2V0::m_massJX
double m_massJX
Definition: JpsiXPlus2V0.h:89
DerivationFramework::JpsiXPlus2V0::m_constrV0
bool m_constrV0
Definition: JpsiXPlus2V0.h:56
AthAlgTool
Definition: AthAlgTool.h:26
DerivationFramework::JpsiXPlus2V0::m_jxDaug1MassHypo
double m_jxDaug1MassHypo
Definition: JpsiXPlus2V0.h:85
DerivationFramework::JpsiXPlus2V0::m_MassLower
double m_MassLower
Definition: JpsiXPlus2V0.h:82
DerivationFramework::JpsiXPlus2V0::performSearch
StatusCode performSearch(std::vector< Trk::VxCascadeInfo * > *cascadeinfoContainer, std::vector< xAOD::VertexContainer * > V0OutputContainers) const
Definition: JpsiXPlus2V0.cxx:233
ITrackSelectorTool.h
DerivationFramework::JpsiXPlus2V0::m_vertexV0HypoNames
std::vector< std::string > m_vertexV0HypoNames
Definition: JpsiXPlus2V0.h:53
DerivationFramework::JpsiXPlus2V0::addBranches
virtual StatusCode addBranches() const override
Pass the thinning service
Definition: JpsiXPlus2V0.cxx:683
ReadDecorHandleKeyArray.h
DerivationFramework::JpsiXPlus2V0::m_mass_Lambda_b
double m_mass_Lambda_b
Definition: JpsiXPlus2V0.h:127
DerivationFramework::JpsiXPlus2V0::m_eventInfo_key
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
Definition: JpsiXPlus2V0.h:61
DerivationFramework::JpsiXPlus2V0::m_V0Tools
ToolHandle< Trk::V0Tools > m_V0Tools
Definition: JpsiXPlus2V0.h:114
DerivationFramework::JpsiXPlus2V0::m_constrJpsi
bool m_constrJpsi
Definition: JpsiXPlus2V0.h:95
DerivationFramework::JpsiXPlus2V0::m_maxMainVCandidates
unsigned int m_maxMainVCandidates
Definition: JpsiXPlus2V0.h:108
DerivationFramework::JpsiXPlus2V0::m_mass_Lambda
double m_mass_Lambda
Definition: JpsiXPlus2V0.h:126
DerivationFramework::JpsiXPlus2V0::m_mass_pion
double m_mass_pion
Definition: JpsiXPlus2V0.h:124
DerivationFramework::JpsiXPlus2V0::m_chi2cut_JX
double m_chi2cut_JX
Definition: JpsiXPlus2V0.h:103
DerivationFramework::JpsiXPlus2V0::m_jxDaug4MassHypo
double m_jxDaug4MassHypo
Definition: JpsiXPlus2V0.h:88
DerivationFramework::JpsiXPlus2V0::m_decorV0P
bool m_decorV0P
Definition: JpsiXPlus2V0.h:79