ATLAS Offline Software
MuPlusDsCascade.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef MuPlusDsCascade_H
5 #define MuPlusDsCascade_H
6 //*********************
7 // MuPlusDsCascade header file
8 //
9 // Eva Bouhova <e.bouhova@cern.ch>
10 // Adam Barton <abarton@cern.ch>
11 
13 #include "GaudiKernel/ToolHandle.h"
16 #include <vector>
17 #include "xAODMuon/MuonContainer.h"
20 
21 namespace Trk {
22  class IVertexFitter;
23  class TrkVKalVrtFitter;
24  class IVertexCascadeFitter;
25  class VxCascadeInfo;
26  class V0Tools;
27  class ParticleDataTable;
28  class ITrackSelectorTool;
29 
30 }
31 
32 namespace DerivationFramework {
33  class CascadeTools;
34 }
35 
36 namespace DerivationFramework {
37 
38  static const InterfaceID IID_MuPlusDsCascade("MuPlusDsCascade", 1, 0);
39 
40  class MuPlusDsCascade : virtual public AthAlgTool, public IAugmentationTool
41  {
42  public:
43  static const InterfaceID& interfaceID() { return IID_MuPlusDsCascade;}
44  MuPlusDsCascade(const std::string& t, const std::string& n, const IInterface* p);
46  virtual StatusCode initialize() override;
47  StatusCode performSearch(std::vector<Trk::VxCascadeInfo*> *cascadeinfoContainer ) const;
48  virtual StatusCode addBranches() const override;
49 
51 
52 
53  private:
54 
55  std::string m_vertexContainerKey;
57  std::vector<std::string> m_cascadeOutputsKeys;
58 
60 
61  double m_DxMassLower;
62  double m_DxMassUpper;
63  double m_MassLower;
64  double m_MassUpper;
65  double m_vtx0MassHypo; // 1st vertex mass hypothesis
66  double m_vtx1MassHypo; // 2nd vertex mass hypothesis
67  double m_vtx0Daug1MassHypo; // mass hypothesis of 1st daughter from vertex 0
68  double m_vtx1Daug1MassHypo; // mass hypothesis of 1st daughter from vertex 1
69  double m_vtx1Daug2MassHypo; // mass hypothesis of 2nd daughter from vertex 1
70  double m_vtx1Daug3MassHypo; // mass hypothesis of 3rd daughter from vertex 1
71 
72  int m_Dx_pid;
73  bool m_constrDx;
74  double m_chi2cut;
75 
76  SG::ReadHandleKey<xAOD::EventInfo> m_eventInfo_key{this, "EventInfo", "EventInfo", "Input event information"};
77  ToolHandle < Trk::TrkVKalVrtFitter > m_iVertexFitter;
78  ToolHandle < Analysis::PrimaryVertexRefitter > m_pvRefitter;
79  ToolHandle < Trk::V0Tools > m_V0Tools;
80  ToolHandle < DerivationFramework::CascadeTools > m_CascadeTools;
81  std::unique_ptr<InDet::InDetTrackSelectionTool> m_trackSelectionTools;
82 
83  bool m_refitPV;
84  std::string m_refPVContainerName;
85  std::string m_hypoName;
86  //This parameter will allow us to optimize the number of PVs under consideration as the probability
87  //of a useful primary vertex drops significantly the higher you go
88  int m_PV_max;
91 
92  std::string m_muonCollectionKey;
93  ToolHandle < Trk::ITrackSelectorTool > m_trkSelector;
94  double m_thresholdPt;
95  bool m_mcpCuts;
96  bool m_combOnly;
98 
99 
100 
101  };
102 }
103 
104 #endif
DerivationFramework::MuPlusDsCascade::m_vertexContainerKey
std::string m_vertexContainerKey
Definition: MuPlusDsCascade.h:55
DerivationFramework::MuPlusDsCascade::m_VxPrimaryCandidateName
std::string m_VxPrimaryCandidateName
Name of primary vertex container.
Definition: MuPlusDsCascade.h:59
DerivationFramework::MuPlusDsCascade::MuPlusDsCascade
MuPlusDsCascade(const std::string &t, const std::string &n, const IInterface *p)
Definition: MuPlusDsCascade.cxx:520
DerivationFramework::MuPlusDsCascade::m_eventInfo_key
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
Definition: MuPlusDsCascade.h:76
DerivationFramework::MuPlusDsCascade::m_vertexDxContainerKey
std::string m_vertexDxContainerKey
Definition: MuPlusDsCascade.h:56
DerivationFramework::MuPlusDsCascade::m_muonCollectionKey
std::string m_muonCollectionKey
Definition: MuPlusDsCascade.h:92
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
DerivationFramework::MuPlusDsCascade::m_combOnly
bool m_combOnly
Definition: MuPlusDsCascade.h:96
DerivationFramework::MuPlusDsCascade::m_vtx0MassHypo
double m_vtx0MassHypo
Definition: MuPlusDsCascade.h:65
IAugmentationTool.h
DerivationFramework::MuPlusDsCascade::m_PV_minNTracks
size_t m_PV_minNTracks
Definition: MuPlusDsCascade.h:90
DerivationFramework::MuPlusDsCascade::m_CascadeTools
ToolHandle< DerivationFramework::CascadeTools > m_CascadeTools
Definition: MuPlusDsCascade.h:80
DerivationFramework::MuPlusDsCascade::m_V0Tools
ToolHandle< Trk::V0Tools > m_V0Tools
Definition: MuPlusDsCascade.h:79
DerivationFramework::MuPlusDsCascade::m_trackSelectionTools
std::unique_ptr< InDet::InDetTrackSelectionTool > m_trackSelectionTools
Definition: MuPlusDsCascade.h:81
DerivationFramework::MuPlusDsCascade::m_chi2cut
double m_chi2cut
Definition: MuPlusDsCascade.h:74
DerivationFramework::MuPlusDsCascade::m_MassLower
double m_MassLower
Definition: MuPlusDsCascade.h:63
DerivationFramework::MuPlusDsCascade::m_vtx1Daug3MassHypo
double m_vtx1Daug3MassHypo
Definition: MuPlusDsCascade.h:70
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
PrimaryVertexRefitter.h
SG::ReadHandleKey< xAOD::EventInfo >
DerivationFramework::IAugmentationTool
Definition: IAugmentationTool.h:24
DerivationFramework::MuPlusDsCascade::m_constrDx
bool m_constrDx
Definition: MuPlusDsCascade.h:73
DerivationFramework::MuPlusDsCascade::initialize
virtual StatusCode initialize() override
Definition: MuPlusDsCascade.cxx:39
DerivationFramework::MuPlusDsCascade::m_PV_max
int m_PV_max
Definition: MuPlusDsCascade.h:88
DerivationFramework::MuPlusDsCascade
Definition: MuPlusDsCascade.h:41
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
DerivationFramework::MuPlusDsCascade::~MuPlusDsCascade
~MuPlusDsCascade()
Definition: MuPlusDsCascade.cxx:582
DerivationFramework::MuPlusDsCascade::m_DoVertexType
int m_DoVertexType
Definition: MuPlusDsCascade.h:89
DerivationFramework::MuPlusDsCascade::m_pvRefitter
ToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
Definition: MuPlusDsCascade.h:78
AthAlgTool.h
DerivationFramework::MuPlusDsCascade::m_mcpCuts
bool m_mcpCuts
Definition: MuPlusDsCascade.h:95
InDetTrackSelectionTool.h
DerivationFramework::MuPlusDsCascade::m_vtx0Daug1MassHypo
double m_vtx0Daug1MassHypo
Definition: MuPlusDsCascade.h:67
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
DerivationFramework::MuPlusDsCascade::m_useCombMeasurement
bool m_useCombMeasurement
Definition: MuPlusDsCascade.h:97
DerivationFramework::MuPlusDsCascade::m_cascadeOutputsKeys
std::vector< std::string > m_cascadeOutputsKeys
Definition: MuPlusDsCascade.h:57
DerivationFramework::MuPlusDsCascade::m_vtx1Daug2MassHypo
double m_vtx1Daug2MassHypo
Definition: MuPlusDsCascade.h:69
DerivationFramework::MuPlusDsCascade::m_vtx1MassHypo
double m_vtx1MassHypo
Definition: MuPlusDsCascade.h:66
DerivationFramework::MuPlusDsCascade::m_thresholdPt
double m_thresholdPt
Definition: MuPlusDsCascade.h:94
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
DerivationFramework::MuPlusDsCascade::m_DxMassUpper
double m_DxMassUpper
Definition: MuPlusDsCascade.h:62
DerivationFramework::MuPlusDsCascade::m_refitPV
bool m_refitPV
Definition: MuPlusDsCascade.h:83
DerivationFramework::MuPlusDsCascade::m_trkSelector
ToolHandle< Trk::ITrackSelectorTool > m_trkSelector
Definition: MuPlusDsCascade.h:93
DerivationFramework::MuPlusDsCascade::performSearch
StatusCode performSearch(std::vector< Trk::VxCascadeInfo * > *cascadeinfoContainer) const
Definition: MuPlusDsCascade.cxx:584
V0Tools
EventInfo.h
MuonContainer.h
python.PyAthena.v
v
Definition: PyAthena.py:157
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
DerivationFramework::MuPlusDsCascade::m_iVertexFitter
ToolHandle< Trk::TrkVKalVrtFitter > m_iVertexFitter
Definition: MuPlusDsCascade.h:77
DerivationFramework::MuPlusDsCascade::m_MassUpper
double m_MassUpper
Definition: MuPlusDsCascade.h:64
DerivationFramework::MuPlusDsCascade::addBranches
virtual StatusCode addBranches() const override
Pass the thinning service
Definition: MuPlusDsCascade.cxx:97
DerivationFramework::MuPlusDsCascade::FindVertexTrack
static xAOD::Vertex * FindVertexTrack(const xAOD::MuonContainer *c, xAOD::Vertex *v)
DerivationFramework::MuPlusDsCascade::m_refPVContainerName
std::string m_refPVContainerName
Definition: MuPlusDsCascade.h:84
AthAlgTool
Definition: AthAlgTool.h:26
DerivationFramework::MuPlusDsCascade::interfaceID
static const InterfaceID & interfaceID()
Definition: MuPlusDsCascade.h:43
DerivationFramework::MuPlusDsCascade::m_vtx1Daug1MassHypo
double m_vtx1Daug1MassHypo
Definition: MuPlusDsCascade.h:68
python.compressB64.c
def c
Definition: compressB64.py:93
DerivationFramework::MuPlusDsCascade::m_hypoName
std::string m_hypoName
name of the mass hypothesis.
Definition: MuPlusDsCascade.h:85
DerivationFramework::MuPlusDsCascade::m_Dx_pid
int m_Dx_pid
Definition: MuPlusDsCascade.h:72
DerivationFramework::MuPlusDsCascade::m_DxMassLower
double m_DxMassLower
Definition: MuPlusDsCascade.h:61