ATLAS Offline Software
JpsiPlusV0Cascade.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 JPSIPLUSV0CASCADE_H
5 #define JPSIPLUSV0CASCADE_H
6 //*********************
7 // JpsiPlusV0Cascade header file
8 //
9 // Eva Bouhova <e.bouhova@cern.ch>
10 // Adam Barton <abarton@cern.ch>
11 
13 #include "GaudiKernel/ToolHandle.h"
14 #include "GaudiKernel/IPartPropSvc.h"
15 
18 #include <vector>
22 // dummy EventContext for AnalysisBase
24 
25 namespace Trk {
26  class IVertexFitter;
27  class TrkVKalVrtFitter;
28  class IVertexCascadeFitter;
29  class VxCascadeInfo;
30  class V0Tools;
31 }
32 
33 namespace DerivationFramework {
34  class CascadeTools;
35 }
36 
37 
38 namespace DerivationFramework {
39 
40  class JpsiPlusV0Cascade : public extends<AthAlgTool, IAugmentationTool>
41  {
42  public:
43  JpsiPlusV0Cascade(const std::string& t, const std::string& n, const IInterface* p);
45  virtual StatusCode initialize() override;
46  virtual StatusCode addBranches(const EventContext & ctx) const override;
47  private:
48  StatusCode performSearch(std::vector<Trk::VxCascadeInfo*>& cascadeinfoContainer, const EventContext& ctx ) const;
49 
50  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo_key{this, "EventInfo", "EventInfo", "Input event information"};
53 
54  SG::ReadHandleKey<xAOD::VertexContainer> m_VxPrimaryCandidateName{this, "VxPrimaryCandidateName", "PrimaryVertices"};
55  SG::ReadHandleKeyArray<xAOD::TrackParticleContainer> m_RelinkContainers{this, "RelinkTracks", {}, "Track Containers if they need to be relinked through indirect use" };
56 
57  SG::WriteHandleKeyArray<xAOD::VertexContainer> m_cascadeOutputsKeys{this, "CascadeVertexCollections", {"JpsiPlusV0CascadeVtx1", "JpsiPlusV0CascadeVtx2"} };
58 
59  Gaudi::Property<double> m_jpsiMassLower{this, "JpsiMassLowerCut", 0.0};
60  Gaudi::Property<double> m_jpsiMassUpper{this, "JpsiMassUpperCut", 10000.0};
61  Gaudi::Property<double> m_V0MassLower{this, "V0MassLowerCut", 0.0};
62  Gaudi::Property<double> m_V0MassUpper{this, "V0MassUpperCut", 10000.0};
63  Gaudi::Property<double> m_MassLower{this, "MassLowerCut", 0.0};
64  Gaudi::Property<double> m_MassUpper{this, "MassUpperCut", 20000.0};
65  Gaudi::Property<int> m_v0_pid{this, "V0Hypothesis", 310};
66  Gaudi::Property<bool> m_constrV0{this, "ApplyV0MassConstraint", true};
67  Gaudi::Property<bool> m_constrJpsi{this, "ApplyJpsiMassConstraint", true};
68 
69  PublicToolHandle < Trk::TrkVKalVrtFitter > m_iVertexFitter{this, "TrkVertexFitterTool", "Trk::TrkVKalVrtFitter"};
70  ToolHandle < Analysis::PrimaryVertexRefitter > m_pvRefitter{this, "PVRefitter", "Analysis::PrimaryVertexRefitter"}; // private tool
71  PublicToolHandle < Trk::V0Tools > m_V0Tools{this, "V0Tools", "Trk::V0Tools"};
72  PublicToolHandle < DerivationFramework::CascadeTools > m_CascadeTools{this, "CascadeTools", "DerivationFramework::CascadeTools"};
73  ServiceHandle<IPartPropSvc> m_partPropSvc{this, "PartPropSvc", "PartPropSvc"};
74 
75  Gaudi::Property<int> m_jpsi_trk_pdg{this, "JpsiTrackPDGID", 13}; // PDG ID for J/psi tracks, can be either 11 or 13
76  Gaudi::Property<bool> m_refitPV{this, "RefitPV", true};
77  SG::WriteHandleKey<xAOD::VertexContainer> m_refPVContainerName{this, "RefPVContainerName", "RefittedPrimaryVertices"};
78  SG::ReadHandleKey<xAOD::TrackParticleContainer> m_jpsiTrackContainerName{this, "JpsiTrackContainerName", "InDetTrackParticles"};
79  SG::ReadHandleKey<xAOD::TrackParticleContainer> m_v0TrackContainerName{this, "V0TrackContainerName", "InDetTrackParticles"};
80  Gaudi::Property<std::string> m_hypoName{this, "HypothesisName", "Bd"};
81  //This parameter will allow us to optimize the number of PVs under consideration as the probability
82  //of a useful primary vertex drops significantly the higher you go
83  Gaudi::Property<int> m_PV_max{this, "MaxnPV", 999};
84  Gaudi::Property<int> m_DoVertexType{this, "DoVertexType", 7};
85  Gaudi::Property<size_t> m_PV_minNTracks{this, "MinNTracksInPV", 0};
86 
87  // Locally cached particle mass constants
88  double m_mass_electron{0.};
89  double m_mass_muon{0.};
90  double m_mass_pion{0.};
91  double m_mass_proton{0.};
92  double m_mass_lambda{0.};
93  double m_mass_ks{0.};
94  double m_mass_jpsi{0.};
95  double m_mass_b0{0.};
96  double m_mass_lambdaB{0.};
97  };
98 }
99 
100 
101 #endif
DerivationFramework::JpsiPlusV0Cascade::m_constrJpsi
Gaudi::Property< bool > m_constrJpsi
Definition: JpsiPlusV0Cascade.h:67
DerivationFramework::JpsiPlusV0Cascade::m_PV_minNTracks
Gaudi::Property< size_t > m_PV_minNTracks
Definition: JpsiPlusV0Cascade.h:85
DerivationFramework::JpsiPlusV0Cascade::~JpsiPlusV0Cascade
~JpsiPlusV0Cascade()
Definition: JpsiPlusV0Cascade.cxx:30
DerivationFramework::JpsiPlusV0Cascade::performSearch
StatusCode performSearch(std::vector< Trk::VxCascadeInfo * > &cascadeinfoContainer, const EventContext &ctx) const
Definition: JpsiPlusV0Cascade.cxx:365
CurrentContext.h
DerivationFramework::JpsiPlusV0Cascade::m_mass_lambda
double m_mass_lambda
Definition: JpsiPlusV0Cascade.h:92
DerivationFramework::JpsiPlusV0Cascade::m_PV_max
Gaudi::Property< int > m_PV_max
Definition: JpsiPlusV0Cascade.h:83
IAugmentationTool.h
DerivationFramework::JpsiPlusV0Cascade::m_jpsiMassLower
Gaudi::Property< double > m_jpsiMassLower
Definition: JpsiPlusV0Cascade.h:59
DerivationFramework::JpsiPlusV0Cascade::m_refPVContainerName
SG::WriteHandleKey< xAOD::VertexContainer > m_refPVContainerName
Definition: JpsiPlusV0Cascade.h:77
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:45
DerivationFramework::JpsiPlusV0Cascade::m_mass_lambdaB
double m_mass_lambdaB
Definition: JpsiPlusV0Cascade.h:96
DerivationFramework::JpsiPlusV0Cascade::m_mass_ks
double m_mass_ks
Definition: JpsiPlusV0Cascade.h:93
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
PrimaryVertexRefitter.h
SG::ReadHandleKey< xAOD::EventInfo >
DerivationFramework::JpsiPlusV0Cascade::m_V0Tools
PublicToolHandle< Trk::V0Tools > m_V0Tools
Definition: JpsiPlusV0Cascade.h:71
DerivationFramework::JpsiPlusV0Cascade::m_mass_pion
double m_mass_pion
Definition: JpsiPlusV0Cascade.h:90
DerivationFramework::JpsiPlusV0Cascade::m_mass_muon
double m_mass_muon
Definition: JpsiPlusV0Cascade.h:89
DerivationFramework::JpsiPlusV0Cascade::m_V0MassUpper
Gaudi::Property< double > m_V0MassUpper
Definition: JpsiPlusV0Cascade.h:62
DerivationFramework::JpsiPlusV0Cascade::m_jpsiMassUpper
Gaudi::Property< double > m_jpsiMassUpper
Definition: JpsiPlusV0Cascade.h:60
DerivationFramework::JpsiPlusV0Cascade::initialize
virtual StatusCode initialize() override
Definition: JpsiPlusV0Cascade.cxx:33
DerivationFramework::JpsiPlusV0Cascade::m_V0MassLower
Gaudi::Property< double > m_V0MassLower
Definition: JpsiPlusV0Cascade.h:61
DerivationFramework::JpsiPlusV0Cascade::m_jpsi_trk_pdg
Gaudi::Property< int > m_jpsi_trk_pdg
Definition: JpsiPlusV0Cascade.h:75
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
DerivationFramework::JpsiPlusV0Cascade::m_mass_jpsi
double m_mass_jpsi
Definition: JpsiPlusV0Cascade.h:94
DerivationFramework::JpsiPlusV0Cascade::m_v0_pid
Gaudi::Property< int > m_v0_pid
Definition: JpsiPlusV0Cascade.h:65
beamspotman.n
n
Definition: beamspotman.py:727
DerivationFramework::JpsiPlusV0Cascade::m_iVertexFitter
PublicToolHandle< Trk::TrkVKalVrtFitter > m_iVertexFitter
Definition: JpsiPlusV0Cascade.h:69
DerivationFramework::JpsiPlusV0Cascade::m_jpsiTrackContainerName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_jpsiTrackContainerName
Definition: JpsiPlusV0Cascade.h:78
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DerivationFramework::JpsiPlusV0Cascade::m_vertexV0ContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexV0ContainerKey
Definition: JpsiPlusV0Cascade.h:52
DerivationFramework::JpsiPlusV0Cascade::m_partPropSvc
ServiceHandle< IPartPropSvc > m_partPropSvc
Definition: JpsiPlusV0Cascade.h:73
AthAlgTool.h
DerivationFramework::JpsiPlusV0Cascade::m_CascadeTools
PublicToolHandle< DerivationFramework::CascadeTools > m_CascadeTools
Definition: JpsiPlusV0Cascade.h:72
DerivationFramework::JpsiPlusV0Cascade::m_vertexContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainerKey
Definition: JpsiPlusV0Cascade.h:51
DerivationFramework::JpsiPlusV0Cascade::m_DoVertexType
Gaudi::Property< int > m_DoVertexType
Definition: JpsiPlusV0Cascade.h:84
DerivationFramework::JpsiPlusV0Cascade::m_MassUpper
Gaudi::Property< double > m_MassUpper
Definition: JpsiPlusV0Cascade.h:64
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
DerivationFramework::JpsiPlusV0Cascade::m_v0TrackContainerName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_v0TrackContainerName
Definition: JpsiPlusV0Cascade.h:79
DerivationFramework::JpsiPlusV0Cascade::addBranches
virtual StatusCode addBranches(const EventContext &ctx) const override
Definition: JpsiPlusV0Cascade.cxx:74
DerivationFramework::JpsiPlusV0Cascade::m_pvRefitter
ToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
Definition: JpsiPlusV0Cascade.h:70
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
DerivationFramework::JpsiPlusV0Cascade::m_eventInfo_key
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
Definition: JpsiPlusV0Cascade.h:50
DerivationFramework::JpsiPlusV0Cascade::m_mass_proton
double m_mass_proton
Definition: JpsiPlusV0Cascade.h:91
DerivationFramework::JpsiPlusV0Cascade::m_mass_b0
double m_mass_b0
Definition: JpsiPlusV0Cascade.h:95
DerivationFramework::JpsiPlusV0Cascade::m_mass_electron
double m_mass_electron
Definition: JpsiPlusV0Cascade.h:88
DerivationFramework::JpsiPlusV0Cascade
Definition: JpsiPlusV0Cascade.h:41
V0Tools
EventInfo.h
VertexContainer.h
DerivationFramework::JpsiPlusV0Cascade::m_RelinkContainers
SG::ReadHandleKeyArray< xAOD::TrackParticleContainer > m_RelinkContainers
Definition: JpsiPlusV0Cascade.h:55
DerivationFramework::JpsiPlusV0Cascade::m_MassLower
Gaudi::Property< double > m_MassLower
Definition: JpsiPlusV0Cascade.h:63
DerivationFramework::JpsiPlusV0Cascade::m_VxPrimaryCandidateName
SG::ReadHandleKey< xAOD::VertexContainer > m_VxPrimaryCandidateName
Name of primary vertex container.
Definition: JpsiPlusV0Cascade.h:54
DerivationFramework::JpsiPlusV0Cascade::m_constrV0
Gaudi::Property< bool > m_constrV0
Definition: JpsiPlusV0Cascade.h:66
DerivationFramework::JpsiPlusV0Cascade::JpsiPlusV0Cascade
JpsiPlusV0Cascade(const std::string &t, const std::string &n, const IInterface *p)
Definition: JpsiPlusV0Cascade.cxx:25
DerivationFramework::JpsiPlusV0Cascade::m_refitPV
Gaudi::Property< bool > m_refitPV
Definition: JpsiPlusV0Cascade.h:76
DerivationFramework::JpsiPlusV0Cascade::m_hypoName
Gaudi::Property< std::string > m_hypoName
name of the mass hypothesis.
Definition: JpsiPlusV0Cascade.h:80
TrackParticleContainer.h
DerivationFramework::JpsiPlusV0Cascade::m_cascadeOutputsKeys
SG::WriteHandleKeyArray< xAOD::VertexContainer > m_cascadeOutputsKeys
Definition: JpsiPlusV0Cascade.h:57
ServiceHandle< IPartPropSvc >