ATLAS Offline Software
JpsiPlusV0Cascade.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 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 
17 #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 
30 namespace DerivationFramework {
31  class CascadeTools;
32 }
33 
34 
35 namespace DerivationFramework {
36 
37  static const InterfaceID IID_JpsiPlusV0Cascade("JpsiPlusV0Cascade", 1, 0);
38 
39  class JpsiPlusV0Cascade : virtual public AthAlgTool, public IAugmentationTool
40  {
41 
42  std::string m_vertexContainerKey;
44  std::vector<std::string> m_cascadeOutputsKeys;
45 
47 
50  double m_V0MassLower;
51  double m_V0MassUpper;
52  double m_MassLower;
53  double m_MassUpper;
54 
56  double m_mass_muon;
57  double m_mass_pion;
58  double m_mass_proton;
59  double m_mass_lambda;
60  double m_mass_ks;
61  double m_mass_jpsi;
62  double m_mass_b0;
64  int m_v0_pid;
65  bool m_constrV0;
67 
68  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo_key{this, "EventInfo", "EventInfo", "Input event information"};
69  ToolHandle < Trk::TrkVKalVrtFitter > m_iVertexFitter;
70  ToolHandle < Analysis::PrimaryVertexRefitter > m_pvRefitter;
71  ToolHandle < Trk::V0Tools > m_V0Tools;
72  ToolHandle < DerivationFramework::CascadeTools > m_CascadeTools;
73 
74  int m_jpsi_trk_pdg; // PDG ID for J/psi tracks, can be either 11 or 13
75  bool m_refitPV;
76  Gaudi::Property<std::string> m_refPVContainerName;
77  Gaudi::Property<std::string> m_jpsiTrackContainerName;
78  Gaudi::Property<std::string> m_v0TrackContainerName;
79  std::string m_hypoName;
80  //This parameter will allow us to optimize the number of PVs under consideration as the probability
81  //of a useful primary vertex drops significantly the higher you go
82  int m_PV_max;
85 
86  public:
87  static const InterfaceID& interfaceID() { return IID_JpsiPlusV0Cascade;}
88  JpsiPlusV0Cascade(const std::string& t, const std::string& n, const IInterface* p);
90  StatusCode initialize() override;
91  StatusCode performSearch(std::vector<Trk::VxCascadeInfo*> *cascadeinfoContainer ) const;
92  virtual StatusCode addBranches() const override;
93  SG::ReadHandleKeyArray<xAOD::TrackParticleContainer> m_RelinkContainers{this, "RelinkTracks", {}, "Track Containers if they need to be relinked through indirect use" };
94 
95  };
96 }
97 
98 
99 #endif
100 
DerivationFramework::JpsiPlusV0Cascade::interfaceID
static const InterfaceID & interfaceID()
Definition: JpsiPlusV0Cascade.h:87
DerivationFramework::JpsiPlusV0Cascade::~JpsiPlusV0Cascade
~JpsiPlusV0Cascade()
Definition: JpsiPlusV0Cascade.cxx:430
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
DerivationFramework::JpsiPlusV0Cascade::m_jpsiMassLower
double m_jpsiMassLower
Definition: JpsiPlusV0Cascade.h:48
DerivationFramework::JpsiPlusV0Cascade::m_iVertexFitter
ToolHandle< Trk::TrkVKalVrtFitter > m_iVertexFitter
Definition: JpsiPlusV0Cascade.h:69
DerivationFramework::JpsiPlusV0Cascade::m_PV_minNTracks
size_t m_PV_minNTracks
Definition: JpsiPlusV0Cascade.h:84
DerivationFramework::JpsiPlusV0Cascade::m_MassLower
double m_MassLower
Definition: JpsiPlusV0Cascade.h:52
DerivationFramework::JpsiPlusV0Cascade::m_mass_lambda
double m_mass_lambda
Definition: JpsiPlusV0Cascade.h:59
IAugmentationTool.h
DerivationFramework::JpsiPlusV0Cascade::m_PV_max
int m_PV_max
Definition: JpsiPlusV0Cascade.h:82
DerivationFramework::JpsiPlusV0Cascade::m_v0_pid
int m_v0_pid
Definition: JpsiPlusV0Cascade.h:64
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
DerivationFramework::JpsiPlusV0Cascade::m_mass_lambdaB
double m_mass_lambdaB
Definition: JpsiPlusV0Cascade.h:63
DerivationFramework::JpsiPlusV0Cascade::m_mass_ks
double m_mass_ks
Definition: JpsiPlusV0Cascade.h:60
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
PrimaryVertexRefitter.h
SG::ReadHandleKey< xAOD::EventInfo >
DerivationFramework::JpsiPlusV0Cascade::m_constrV0
bool m_constrV0
Definition: JpsiPlusV0Cascade.h:65
DerivationFramework::JpsiPlusV0Cascade::m_DoVertexType
int m_DoVertexType
Definition: JpsiPlusV0Cascade.h:83
DerivationFramework::JpsiPlusV0Cascade::m_cascadeOutputsKeys
std::vector< std::string > m_cascadeOutputsKeys
Definition: JpsiPlusV0Cascade.h:44
DerivationFramework::IAugmentationTool
Definition: IAugmentationTool.h:24
DerivationFramework::JpsiPlusV0Cascade::m_CascadeTools
ToolHandle< DerivationFramework::CascadeTools > m_CascadeTools
Definition: JpsiPlusV0Cascade.h:72
DerivationFramework::JpsiPlusV0Cascade::m_mass_pion
double m_mass_pion
Definition: JpsiPlusV0Cascade.h:57
DerivationFramework::JpsiPlusV0Cascade::m_jpsi_trk_pdg
int m_jpsi_trk_pdg
Definition: JpsiPlusV0Cascade.h:74
DerivationFramework::JpsiPlusV0Cascade::m_mass_muon
double m_mass_muon
Definition: JpsiPlusV0Cascade.h:56
DerivationFramework::JpsiPlusV0Cascade::initialize
StatusCode initialize() override
Definition: JpsiPlusV0Cascade.cxx:29
DerivationFramework::JpsiPlusV0Cascade::m_constrJpsi
bool m_constrJpsi
Definition: JpsiPlusV0Cascade.h:66
DerivationFramework::JpsiPlusV0Cascade::m_mass_jpsi
double m_mass_jpsi
Definition: JpsiPlusV0Cascade.h:61
DerivationFramework::JpsiPlusV0Cascade::m_VxPrimaryCandidateName
std::string m_VxPrimaryCandidateName
Name of primary vertex container.
Definition: JpsiPlusV0Cascade.h:46
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
DerivationFramework::JpsiPlusV0Cascade::m_v0TrackContainerName
Gaudi::Property< std::string > m_v0TrackContainerName
Definition: JpsiPlusV0Cascade.h:78
DerivationFramework::JpsiPlusV0Cascade::addBranches
virtual StatusCode addBranches() const override
Pass the thinning service
Definition: JpsiPlusV0Cascade.cxx:80
DerivationFramework::JpsiPlusV0Cascade::m_refitPV
bool m_refitPV
Definition: JpsiPlusV0Cascade.h:75
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
DerivationFramework::JpsiPlusV0Cascade::m_jpsiTrackContainerName
Gaudi::Property< std::string > m_jpsiTrackContainerName
Definition: JpsiPlusV0Cascade.h:77
DerivationFramework::JpsiPlusV0Cascade::m_vertexContainerKey
std::string m_vertexContainerKey
Definition: JpsiPlusV0Cascade.h:42
DerivationFramework::JpsiPlusV0Cascade::m_V0Tools
ToolHandle< Trk::V0Tools > m_V0Tools
Definition: JpsiPlusV0Cascade.h:71
DerivationFramework::JpsiPlusV0Cascade::m_pvRefitter
ToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
Definition: JpsiPlusV0Cascade.h:70
DerivationFramework::JpsiPlusV0Cascade::m_V0MassUpper
double m_V0MassUpper
Definition: JpsiPlusV0Cascade.h:51
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:68
DerivationFramework::JpsiPlusV0Cascade::m_mass_proton
double m_mass_proton
Definition: JpsiPlusV0Cascade.h:58
DerivationFramework::JpsiPlusV0Cascade::m_MassUpper
double m_MassUpper
Definition: JpsiPlusV0Cascade.h:53
DerivationFramework::JpsiPlusV0Cascade::m_mass_b0
double m_mass_b0
Definition: JpsiPlusV0Cascade.h:62
DerivationFramework::JpsiPlusV0Cascade::m_mass_electron
double m_mass_electron
Definition: JpsiPlusV0Cascade.h:55
DerivationFramework::JpsiPlusV0Cascade
Definition: JpsiPlusV0Cascade.h:40
V0Tools
EventInfo.h
DerivationFramework::JpsiPlusV0Cascade::m_RelinkContainers
SG::ReadHandleKeyArray< xAOD::TrackParticleContainer > m_RelinkContainers
Definition: JpsiPlusV0Cascade.h:93
DerivationFramework::JpsiPlusV0Cascade::m_hypoName
std::string m_hypoName
name of the mass hypothesis.
Definition: JpsiPlusV0Cascade.h:79
DerivationFramework::JpsiPlusV0Cascade::performSearch
StatusCode performSearch(std::vector< Trk::VxCascadeInfo * > *cascadeinfoContainer) const
Definition: JpsiPlusV0Cascade.cxx:432
DerivationFramework::JpsiPlusV0Cascade::m_V0MassLower
double m_V0MassLower
Definition: JpsiPlusV0Cascade.h:50
DerivationFramework::JpsiPlusV0Cascade::m_vertexV0ContainerKey
std::string m_vertexV0ContainerKey
Definition: JpsiPlusV0Cascade.h:43
DerivationFramework::JpsiPlusV0Cascade::JpsiPlusV0Cascade
JpsiPlusV0Cascade(const std::string &t, const std::string &n, const IInterface *p)
Definition: JpsiPlusV0Cascade.cxx:374
AthAlgTool
Definition: AthAlgTool.h:26
DerivationFramework::JpsiPlusV0Cascade::m_refPVContainerName
Gaudi::Property< std::string > m_refPVContainerName
Definition: JpsiPlusV0Cascade.h:76
TrackParticleContainer.h
DerivationFramework::JpsiPlusV0Cascade::m_jpsiMassUpper
double m_jpsiMassUpper
Definition: JpsiPlusV0Cascade.h:49