ATLAS Offline Software
TrigBmuxComboHypo.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRIG_TrigBmuxComboHypo_H
6 #define TRIG_TrigBmuxComboHypo_H
7 
8 #include <string>
9 #include <vector>
10 #include <utility>
11 
12 #include "Gaudi/Property.h"
16 #include "xAODMuon/MuonContainer.h"
20 
23 
26 
30 
33 
34 #include "ITrigBphysState.h"
36 
37 #include "Constants.h"
38 typedef struct PDG20 PDG;
39 
40 
46  public:
47  TrigBmuxState() = delete;
48  TrigBmuxState(const EventContext& context,
52  const InDet::BeamSpotData* beamSpotData = nullptr)
54  virtual ~TrigBmuxState() = default;
55 
56  struct Muon {
60  };
61  std::vector<Muon> muons;
62  std::vector<size_t> trigBphysMuonIndices;
63 
64  xAOD::TrigBphys* addTriggerObject(size_t muonIndex) {
66  trigBphysMuonIndices.push_back(muonIndex);
67  return trigBphysCollection().back();
68  }
69 
70  std::vector<xAOD::TrigBphys*> addTriggerObjects(size_t n, size_t muonIndex) {
71  std::vector<xAOD::TrigBphys*> triggerObjects(n, nullptr);
72  for (size_t i = 0; i < n; i++) {
73  triggerObjects[i] = addTriggerObject(muonIndex);
74  }
75  return triggerObjects;
76  }
77 };
78 
79 
90  public:
91  TrigBmuxComboHypo(const std::string& name, ISvcLocator* pSvcLocator);
92  TrigBmuxComboHypo() = delete;
93 
94  virtual StatusCode initialize() override;
95  virtual StatusCode execute(const EventContext& context) const override;
96 
97  enum Decay : size_t {
98  kD0, // D0 -> K- pi+
99  kDstar, // D*-(-> anti-D0(-> K+ pi-) pi-)
100  kDs, // D_s+ -> K+ K- pi+
101  kDplus, // D+ -> K- pi+ pi+
102  kLambdaC // Lambda_c+ -> p K- pi+
103  };
104 
105  private:
108 
116  std::unique_ptr<xAOD::Vertex> fit(
117  const EventContext& context,
119  Decay decay) const;
120 
128  std::unique_ptr<Trk::VxCascadeInfo> fitCascade(
129  const EventContext& context,
131  Decay decay) const;
132 
133 
142  xAOD::TrigBphys& triggerObject,
144  const xAOD::Vertex& vertex,
145  const std::vector<double>& trkMass) const;
146 
156  std::vector<xAOD::TrigBphys*>& triggerObjects,
158  const Trk::VxCascadeInfo& vxCascadeInfo,
159  const Amg::Vector3D& beamSpotPosition) const;
160 
166  bool isIdenticalTracks(const xAOD::TrackParticle* lhs, const xAOD::TrackParticle* rhs) const;
167 
172  bool isInSameRoI(const xAOD::Muon*, const xAOD::TrackParticle*) const;
173 
177  bool isInMassRange(double mass, const std::pair<double, double>& range) const { return (mass > range.first && mass < range.second); }
178 
183  double getTrkImpactParameterZ0(const EventContext& ctx, const xAOD::TrackParticle& track, const Amg::Vector3D& vertex) const;
184 
189  double Lxy(const Amg::Vector3D& productionVertex, const Amg::Vector3D& decayVertex, const std::vector<TLorentzVector>& momenta) const;
190 
192  "TrackCollectionKey", "InDetTrackParticles", "input TrackParticle container name"};
194  "MuonCollectionKey", "Muons", "input EF Muon container name"};
196  "TrigBphysCollectionKey", "TrigBphysContainer", "output TrigBphysContainer name"};
198  m_beamSpotKey {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"};
199 
200  // general properties
201  Gaudi::Property<bool> m_makeCascadeFit {this,
202  "MakeCascadeFit", true, "perform cascade fit of the partially reconstructed decays"};
203  Gaudi::Property<float> m_cascadeChi2 {this,
204  "CascadeChi2", 50., "maximum chi2 of the cascade fit"};
205  Gaudi::Property<double> m_deltaR {this,
206  "DeltaR", 0.01, "minimum deltaR between same-sign tracks (overlap removal)"};
207  Gaudi::Property<double> m_trkZ0 {this,
208  "TrkZ0", 10., "maximum of |z0_trk - z0_muon|, where z0_trk(z0_muon) is impact parameter of the track(muon) wrt BeamSpot; no preselection if negative"};
209  Gaudi::Property<double> m_roiEtaWidth {this,
210  "RoiEtaWidth", 0.75, "extent of the RoI in eta from initial muon, to be check for SuperRoI"};
211  Gaudi::Property<double> m_roiPhiWidth {this,
212  "RoiPhiWidth", 0.75, "extent of the RoI in phi from initial muon, to be check for SuperRoI"};
213  Gaudi::Property<size_t> m_fitAttemptsWarningThreshold {this,
214  "FitAttemptsWarningThreshold", 200, "Events processing this many calls of the vertex fitter will generate a WARNING message (time-out protect)"};
215  Gaudi::Property<size_t> m_fitAttemptsBreakThreshold {this,
216  "FitAttemptsBreakThreshold", 1000, "Events processing this many calls of the vertex fitter will generate a second WARNING message and the loop over combinations will be terminated at this point (time-out protect)"};
217 
218  // B+ -> mu+ nu_mu anti-D0(-> K+ pi-) and B0 -> mu+ nu_mu D*-(-> anti-D0(-> K+ pi-) pi-)
219  Gaudi::Property<bool> m_BToD0 {this,
220  "BToD0", true, "switch on/off B+ -> mu+ nu_mu anti-D0(-> K+ pi-) decay"};
221  Gaudi::Property<bool> m_BToD0_makeDstar {this,
222  "BToD0_makeDstar", true, "switch on/off B0 -> mu+ nu_mu D*-(-> anti-D0(-> K+ pi-) pi-) decay"};
223  Gaudi::Property<double> m_BToD0_minD0KaonPt {this,
224  "BToD0_minD0KaonPt", 1000., "minimum pT of kaon track from D0"};
225  Gaudi::Property<double> m_BToD0_minD0PionPt {this,
226  "BToD0_minD0PionPt", 1000., "minimum pT of pion track from D0"};
227  Gaudi::Property<double> m_BToD0_minD0Pt {this,
228  "BToD0_minD0Pt", -1., "minimum pT of D0"};
229  Gaudi::Property<double> m_BToD0_minDstarPt {this,
230  "BToD0_minDstarPt", 5500., "minimum pT of D*-"};
231  Gaudi::Property<double> m_BToD0_minDstarPionPt {this,
232  "BToD0_minDstarPionPt", 1000., "minimum pT of pion track from D*-"};
233  Gaudi::Property<double> m_BToD0_maxDstarPionZ0 {this,
234  "BToD0_maxDstarPionZ0", 5., "maximum z0 impact parameter of the pion track from D*+ wrt the fitted D0 vertex; no preselection if negative"};
235  Gaudi::Property<std::pair<double, double>> m_BToD0_massRange {this,
236  "BToD0_massRange", {-1., 10000.}, "B+/B0 mass range"};
237  Gaudi::Property<std::pair<double, double>> m_BToD0_D0MassRange {this,
238  "BToD0_D0MassRange", {1750., 2000.}, "D0 mass range"};
239  Gaudi::Property<std::pair<double, double>> m_BToD0_DstarMassRange {this,
240  "BToD0_DstarMassRange", {-1., 2110.}, "D*+ mass range"};
241  Gaudi::Property<float> m_BToD0_chi2 {this,
242  "BToD0_chi2", 20., "maximum chi2 of the fitted D0 vertex"};
243  Gaudi::Property<float> m_BToD0_LxyB {this,
244  "BToD0_LxyB", 0.1, "Lxy(B+,BeamSpot) for B+ -> mu+ nu_mu anti-D0"};
245  Gaudi::Property<float> m_BToD0_LxyBd {this,
246  "BToD0_LxyBd", 0.05, "Lxy(B0,BeamSpot) for B0 -> mu+ nu_mu D*-"};
247  Gaudi::Property<float> m_BToD0_LxyD0 {this,
248  "BToD0_LxyD0", 0., "Lxy(D0,B+/B0) for both B+ and B0 decays"};
249 
250  // B0 -> mu+ nu_mu D-(-> K+ pi- pi-)
251  Gaudi::Property<bool> m_BdToD {this,
252  "BdToD", true, "switch on/off B0 -> mu+ nu_mu D-(-> K+ pi- pi-) decay"};
253  Gaudi::Property<double> m_BdToD_minKaonPt {this,
254  "BdToD_minKaonPt", 1250., "minimum pT of kaon track from D-"};
255  Gaudi::Property<double> m_BdToD_minPionPt {this,
256  "BdToD_minPionPt", 1000., "minimum pT of pion track from D-"};
257  Gaudi::Property<double> m_BdToD_minDPt {this,
258  "BdToD_minDPt", 4500., "minimum pT of D-"};
259  Gaudi::Property<std::pair<double, double>> m_BdToD_massRange {this,
260  "BdToD_massRange", {-1., 10000.}, "B0 mass range"};
261  Gaudi::Property<std::pair<double, double>> m_BdToD_DMassRange {this,
262  "BdToD_DMassRange", {1750., 2000.}, "D+ mass range"};
263  Gaudi::Property<float> m_BdToD_chi2 {this,
264  "BdToD_chi2", 27., "maximum chi2 of the fitted D- vertex"};
265  Gaudi::Property<float> m_BdToD_LxyBd {this,
266  "BdToD_LxyBd", 0.1, "Lxy(B0,BeamSpot) for B0 -> mu+ nu_mu D-"};
267  Gaudi::Property<float> m_BdToD_LxyD {this,
268  "BdToD_LxyD", 0.05, "Lxy(D-,B0) for D- -> K+ pi- pi-"};
269 
270  // B_s0 -> mu+ nu_mu D_s-(->phi(-> K+ K-) pi-)
271  Gaudi::Property<bool> m_BsToDs {this,
272  "BsToDs", true, "switch on/off B_s0 -> mu+ nu_mu D_s-(->phi(-> K+ K-) pi-) decay"};
273  Gaudi::Property<double> m_BsToDs_minKaonPt {this,
274  "BsToDs_minKaonPt", 1000., "minimum pT of kaon track from phi(1020)"};
275  Gaudi::Property<double> m_BsToDs_minPionPt {this,
276  "BsToDs_minPionPt", 1000., "minimum pT of pion track from D_s-"};
277  Gaudi::Property<double> m_BsToDs_minDsPt {this,
278  "BsToDs_minDsPt", 5500., "minimum pT of D_s-"};
279  Gaudi::Property<std::pair<double, double>> m_BsToDs_massRange {this,
280  "BsToDs_massRange", {-1., 10000.}, "B_s0 mass range"};
281  Gaudi::Property<std::pair<double, double>> m_BsToDs_phiMassRange {this,
282  "BsToDs_phiMassRange", {940., 1100.}, "phi(1020) mass range"};
283  Gaudi::Property<std::pair<double, double>> m_BsToDs_DsMassRange {this,
284  "BsToDs_DsMassRange", {1750., 2100.}, "D_s- mass range"};
285  Gaudi::Property<float> m_BsToDs_chi2 {this,
286  "BsToDs_chi2", 27., "maximum chi2 of the fitted D_s- vertex"};
287  Gaudi::Property<float> m_BsToDs_LxyBs {this,
288  "BsToDs_LxyBs", 0.1, "Lxy(B_s0,BeamSpot) for B_s0 -> mu+ nu_mu D_s-"};
289  Gaudi::Property<float> m_BsToDs_LxyDs {this,
290  "BsToDs_LxyDs", 0.02, "Lxy(D_s-,B_s0) for D_s- -> phi pi-"};
291 
292  // anti-Lambda_b0 -> mu+ nu_mu anti-Lambda_c-(-> anti-p K+ pi-)
293  Gaudi::Property<bool> m_LambdaBToLambdaC {this,
294  "LambdaBToLambdaC", true, "switch on/off Lambda_b0 -> mu+ nu_mu anti-Lambda_c-(-> anti-p K+ pi-) decay"};
295  Gaudi::Property<double> m_LambdaBToLambdaC_minProtonPt {this,
296  "LambdaBToLambdaC_minProtonPt", 2750., "minimum pT of proton track"};
297  Gaudi::Property<double> m_LambdaBToLambdaC_minKaonPt {this,
298  "LambdaBToLambdaC_minKaonPt", 1250., "minimum pT of kaon track"};
299  Gaudi::Property<double> m_LambdaBToLambdaC_minPionPt {this,
300  "LambdaBToLambdaC_minPionPt", 1000., "minimum pT of pion track"};
301  Gaudi::Property<double> m_LambdaBToLambdaC_minLambdaCPt {this,
302  "LambdaBToLambdaC_minLambdaCPt", 5500., "minimum pT of Lambda_c-"};
303  Gaudi::Property<std::pair<double, double>> m_LambdaBToLambdaC_massRange {this,
304  "LambdaBToLambdaC_massRange", {-1., 10000.}, "Lambda_b0 mass range"};
305  Gaudi::Property<std::pair<double, double>> m_LambdaBToLambdaC_LambdaCMassRange {this,
306  "LambdaBToLambdaC_LambdaCMassRange", {2190., 2390.}, "Lambda_c- mass range"};
307  Gaudi::Property<float> m_LambdaBToLambdaC_chi2 {this,
308  "LambdaBToLambdaC_chi2", 27., "maximum chi2 of the fitted Lambda_c- vertex"};
309  Gaudi::Property<float> m_LambdaBToLambdaC_LxyLb {this,
310  "LambdaBToLambdaC_LxyLb", 0.1, "Lxy(Lambda_b0,BeamSpot) for Lambda_b0 -> mu- anti-nu_mu Lambda_c+"};
311  Gaudi::Property<float> m_LambdaBToLambdaC_LxyLc {this,
312  "LambdaBToLambdaC_LxyLc", 0.02, "Lxy(Lambda_c+,Lambda_b0) for Lambda_c+-> p K- pi+"};
313 
314  // external tools
315  ToolHandle<InDet::VertexPointEstimator> m_vertexPointEstimator {this,
316  "VertexPointEstimator", "", "tool to find starting point for the vertex fitter"};
317  ToolHandle<Trk::TrkVKalVrtFitter> m_vertexFitter {this,
318  "VertexFitter", "", "VKalVrtFitter tool to fit tracks into the common vertex"};
319  ToolHandle<Reco::ITrackToVertex> m_trackToVertexTool {this,
320  "TrackToVertexTool", "", "tool to extrapolate track to vertex or beamspot"};
321  ToolHandle<GenericMonitoringTool> m_monTool {this,
322  "MonTool", "", "monitoring tool"};
323 
325 
326  const static std::vector<std::vector<std::vector<double>>> s_trkMass;
327 };
328 
329 #endif // TRIG_TrigBmuxComboHypo_H
TrigBmuxComboHypo::m_BdToD_massRange
Gaudi::Property< std::pair< double, double > > m_BdToD_massRange
Definition: TrigBmuxComboHypo.h:259
TrigBmuxComboHypo::s_trkMass
static const std::vector< std::vector< std::vector< double > > > s_trkMass
Definition: TrigBmuxComboHypo.h:326
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
TrigBmuxComboHypo::m_vertexFitter
ToolHandle< Trk::TrkVKalVrtFitter > m_vertexFitter
Definition: TrigBmuxComboHypo.h:317
TrigBmuxComboHypo::m_muonContainerKey
SG::ReadHandleKey< xAOD::MuonContainer > m_muonContainerKey
Definition: TrigBmuxComboHypo.h:193
TrigBmuxComboHypo::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition: TrigBmuxComboHypo.h:198
TrigBmuxComboHypo::findBmuxCandidates
StatusCode findBmuxCandidates(TrigBmuxState &) const
Definition: TrigBmuxComboHypo.cxx:126
TrigBmuxComboHypo::m_BdToD_minKaonPt
Gaudi::Property< double > m_BdToD_minKaonPt
Definition: TrigBmuxComboHypo.h:253
TrigBmuxComboHypo::m_LambdaBToLambdaC_minKaonPt
Gaudi::Property< double > m_LambdaBToLambdaC_minKaonPt
Definition: TrigBmuxComboHypo.h:297
Trk::VxCascadeInfo
Definition: VxCascadeInfo.h:75
TrigBmuxComboHypo::m_LambdaBToLambdaC_chi2
Gaudi::Property< float > m_LambdaBToLambdaC_chi2
Definition: TrigBmuxComboHypo.h:307
TrigBmuxComboHypo::m_BdToD_minPionPt
Gaudi::Property< double > m_BdToD_minPionPt
Definition: TrigBmuxComboHypo.h:255
TrigBmuxComboHypo::m_deltaR
Gaudi::Property< double > m_deltaR
Definition: TrigBmuxComboHypo.h:205
VertexPointEstimator.h
TrigCompositeUtils.h
Constants.h
Constants for algorithm.
TrigBmuxComboHypo::m_BsToDs_LxyBs
Gaudi::Property< float > m_BsToDs_LxyBs
Definition: TrigBmuxComboHypo.h:287
TrigBmuxComboHypo::m_BdToD_chi2
Gaudi::Property< float > m_BdToD_chi2
Definition: TrigBmuxComboHypo.h:263
TrigBmuxComboHypo::m_BsToDs_minKaonPt
Gaudi::Property< double > m_BsToDs_minKaonPt
Definition: TrigBmuxComboHypo.h:273
TrigBmuxComboHypo::isInMassRange
bool isInMassRange(double mass, const std::pair< double, double > &range) const
Checks that the given mass value falls into the specified range.
Definition: TrigBmuxComboHypo.h:177
TrigBmuxComboHypo::m_BdToD_minDPt
Gaudi::Property< double > m_BdToD_minDPt
Definition: TrigBmuxComboHypo.h:257
TrigBmuxComboHypo::execute
virtual StatusCode execute(const EventContext &context) const override
Definition: TrigBmuxComboHypo.cxx:98
TrigBmuxComboHypo::m_BToD0_LxyD0
Gaudi::Property< float > m_BToD0_LxyD0
Definition: TrigBmuxComboHypo.h:247
TrigBmuxComboHypo::kDs
@ kDs
Definition: TrigBmuxComboHypo.h:100
TrigBmuxComboHypo::kLambdaC
@ kLambdaC
Definition: TrigBmuxComboHypo.h:102
TrigBmuxState::TrigBmuxState
TrigBmuxState(const EventContext &context, const TrigCompositeUtils::DecisionContainer &previousDecisions, TrigCompositeUtils::DecisionContainer &decisions, xAOD::TrigBphysContainer *trigBphysCollection=nullptr, const InDet::BeamSpotData *beamSpotData=nullptr)
Definition: TrigBmuxComboHypo.h:48
SG::ReadHandleKey< xAOD::TrackParticleContainer >
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
TrigBmuxComboHypo::m_LambdaBToLambdaC_LxyLc
Gaudi::Property< float > m_LambdaBToLambdaC_LxyLc
Definition: TrigBmuxComboHypo.h:311
TrigBmuxComboHypo::fillTriggerObject
StatusCode fillTriggerObject(xAOD::TrigBphys &triggerObject, xAOD::TrigBphys::pType type, const xAOD::Vertex &vertex, const std::vector< double > &trkMass) const
Fill the trigger object that may be stored for debugging or matching.
Definition: TrigBmuxComboHypo.cxx:594
TrigBmuxComboHypo::m_BToD0_minDstarPt
Gaudi::Property< double > m_BToD0_minDstarPt
Definition: TrigBmuxComboHypo.h:229
TrigBmuxComboHypo::m_roiEtaWidth
Gaudi::Property< double > m_roiEtaWidth
Definition: TrigBmuxComboHypo.h:209
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
dqt_zlumi_pandas.mass
mass
Definition: dqt_zlumi_pandas.py:170
ComboHypo
Definition: ComboHypo.h:30
TrigBmuxComboHypo::m_BsToDs_chi2
Gaudi::Property< float > m_BsToDs_chi2
Definition: TrigBmuxComboHypo.h:285
TrigBmuxComboHypo::m_LambdaBToLambdaC
Gaudi::Property< bool > m_LambdaBToLambdaC
Definition: TrigBmuxComboHypo.h:293
TrigBmuxComboHypo::m_trigBphysContainerKey
SG::WriteHandleKey< xAOD::TrigBphysContainer > m_trigBphysContainerKey
Definition: TrigBmuxComboHypo.h:195
TrkVKalVrtFitter.h
TrigBmuxComboHypo::kDstar
@ kDstar
Definition: TrigBmuxComboHypo.h:99
TrigBmuxState::Muon::decisionLink
ElementLink< TrigCompositeUtils::DecisionContainer > decisionLink
Definition: TrigBmuxComboHypo.h:58
ITrigBphysState.h
TrigBmuxComboHypo::m_BToD0_minD0Pt
Gaudi::Property< double > m_BToD0_minD0Pt
Definition: TrigBmuxComboHypo.h:227
TrigBmuxComboHypo::m_vertexPointEstimator
ToolHandle< InDet::VertexPointEstimator > m_vertexPointEstimator
Definition: TrigBmuxComboHypo.h:315
PDG20
Definition: Trigger/TrigHypothesis/TrigBphysHypo/src/Constants.h:9
TrigBmuxComboHypo::TrigBmuxComboHypo
TrigBmuxComboHypo()=delete
TrigBmuxComboHypo::m_BToD0_D0MassRange
Gaudi::Property< std::pair< double, double > > m_BToD0_D0MassRange
Definition: TrigBmuxComboHypo.h:237
TrigBmuxComboHypo::m_fitAttemptsBreakThreshold
Gaudi::Property< size_t > m_fitAttemptsBreakThreshold
Definition: TrigBmuxComboHypo.h:215
TrigBmuxComboHypo::m_trackToVertexTool
ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool
Definition: TrigBmuxComboHypo.h:319
GenericMonitoringTool.h
TrigBmuxComboHypo::m_BToD0
Gaudi::Property< bool > m_BToD0
Definition: TrigBmuxComboHypo.h:219
TrigBmuxComboHypo::m_BsToDs_phiMassRange
Gaudi::Property< std::pair< double, double > > m_BsToDs_phiMassRange
Definition: TrigBmuxComboHypo.h:281
TrigBmuxState::addTriggerObject
xAOD::TrigBphys * addTriggerObject(size_t muonIndex)
Definition: TrigBmuxComboHypo.h:64
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
TrigBmuxComboHypo::m_fitAttemptsWarningThreshold
Gaudi::Property< size_t > m_fitAttemptsWarningThreshold
Definition: TrigBmuxComboHypo.h:213
TrigBmuxState::~TrigBmuxState
virtual ~TrigBmuxState()=default
TrigBmuxComboHypo::Decay
Decay
Definition: TrigBmuxComboHypo.h:97
lumiFormat.i
int i
Definition: lumiFormat.py:92
TrigBmuxComboHypo
EF hypothesis algorithm for B -> mu+ nu_mu X decays: B+ -> mu+ nu_mu anti-D0(-> K+ pi-) B0 -> mu+ nu_...
Definition: TrigBmuxComboHypo.h:89
ITrigBphysState::context
const EventContext & context() const
Definition: ITrigBphysState.h:42
TrigBmuxComboHypo::m_cascadeChi2
Gaudi::Property< float > m_cascadeChi2
Definition: TrigBmuxComboHypo.h:203
beamspotman.n
n
Definition: beamspotman.py:731
TrigBmuxComboHypo::kDplus
@ kDplus
Definition: TrigBmuxComboHypo.h:101
TrigBmuxComboHypo::m_BsToDs
Gaudi::Property< bool > m_BsToDs
Definition: TrigBmuxComboHypo.h:271
TrigBmuxState::addTriggerObjects
std::vector< xAOD::TrigBphys * > addTriggerObjects(size_t n, size_t muonIndex)
Definition: TrigBmuxComboHypo.h:70
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrigBphys.h
TrigBmuxComboHypo::getTrkImpactParameterZ0
double getTrkImpactParameterZ0(const EventContext &ctx, const xAOD::TrackParticle &track, const Amg::Vector3D &vertex) const
Returns the longitudinal impact parameter z0 of the track w.r.t.
Definition: TrigBmuxComboHypo.cxx:708
TrigBmuxComboHypo::m_trkZ0
Gaudi::Property< double > m_trkZ0
Definition: TrigBmuxComboHypo.h:207
TrigBmuxState
State class for TrigBmuxComboHypo algorithm.
Definition: TrigBmuxComboHypo.h:45
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
xAOD::TauHelpers::trackParticleLinks
std::vector< ElementLink< xAOD::TrackParticleContainer > > trackParticleLinks(const xAOD::TauJet *tau, xAOD::TauJetParameters::TauTrackFlag flag=xAOD::TauJetParameters::TauTrackFlag::classifiedCharged)
Definition: TauxAODHelpers.cxx:22
TrigBmuxComboHypo::m_LambdaBToLambdaC_minProtonPt
Gaudi::Property< double > m_LambdaBToLambdaC_minProtonPt
Definition: TrigBmuxComboHypo.h:295
TrigBmuxComboHypo::m_BsToDs_DsMassRange
Gaudi::Property< std::pair< double, double > > m_BsToDs_DsMassRange
Definition: TrigBmuxComboHypo.h:283
ComboHypo.h
DataVector::back
const T * back() const
Access the last element in the collection as an rvalue.
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
ITrackToVertex.h
TrigBmuxComboHypo::m_BdToD_DMassRange
Gaudi::Property< std::pair< double, double > > m_BdToD_DMassRange
Definition: TrigBmuxComboHypo.h:261
TrigBmuxComboHypo::fit
std::unique_ptr< xAOD::Vertex > fit(const EventContext &context, const std::vector< ElementLink< xAOD::TrackParticleContainer >> &trackParticleLinks, Decay decay) const
Perform a vertex fit on selected tracks.
Definition: TrigBmuxComboHypo.cxx:481
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
TrigBmuxComboHypo::m_BToD0_LxyBd
Gaudi::Property< float > m_BToD0_LxyBd
Definition: TrigBmuxComboHypo.h:245
TrigBmuxComboHypo::createDecisionObjects
StatusCode createDecisionObjects(TrigBmuxState &) const
Definition: TrigBmuxComboHypo.cxx:447
TrigBmuxComboHypo::initialize
virtual StatusCode initialize() override
Definition: TrigBmuxComboHypo.cxx:53
TrigBmuxComboHypo::m_makeCascadeFit
Gaudi::Property< bool > m_makeCascadeFit
Definition: TrigBmuxComboHypo.h:201
TrigBmuxState::trigBphysMuonIndices
std::vector< size_t > trigBphysMuonIndices
Definition: TrigBmuxComboHypo.h:62
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TrigBmuxComboHypo::m_LambdaBToLambdaC_LxyLb
Gaudi::Property< float > m_LambdaBToLambdaC_LxyLb
Definition: TrigBmuxComboHypo.h:309
Trk::trkMass
@ trkMass
Extended perigee: mass.
Definition: ParamDefs.h:87
TrigBmuxState::muons
std::vector< Muon > muons
Definition: TrigBmuxComboHypo.h:61
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
TrigBmuxComboHypo::m_BToD0_massRange
Gaudi::Property< std::pair< double, double > > m_BToD0_massRange
Definition: TrigBmuxComboHypo.h:235
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
TrigBmuxComboHypo::fitCascade
std::unique_ptr< Trk::VxCascadeInfo > fitCascade(const EventContext &context, const std::vector< ElementLink< xAOD::TrackParticleContainer >> &trackParticleLinks, Decay decay) const
Perform a cascade vertex fit on selected tracks.
Definition: TrigBmuxComboHypo.cxx:529
ITrigBphysState::previousDecisions
const TrigCompositeUtils::DecisionContainer & previousDecisions() const
Definition: ITrigBphysState.h:43
TrigBmuxState::TrigBmuxState
TrigBmuxState()=delete
MuonContainer.h
SG::ReadCondHandleKey< InDet::BeamSpotData >
TrigBmuxComboHypo::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: TrigBmuxComboHypo.h:321
TrigBmuxState::Muon::decisionIDs
TrigCompositeUtils::DecisionIDContainer decisionIDs
Definition: TrigBmuxComboHypo.h:59
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
TrigBmumuxComboHypoTool.h
TrigBmuxComboHypo::m_BToD0_chi2
Gaudi::Property< float > m_BToD0_chi2
Definition: TrigBmuxComboHypo.h:241
InDet::BeamSpotData
Definition: BeamSpotData.h:21
VertexContainer.h
TrigBmuxComboHypo::fillTriggerObjects
StatusCode fillTriggerObjects(std::vector< xAOD::TrigBphys * > &triggerObjects, xAOD::TrigBphys::pType type, const Trk::VxCascadeInfo &vxCascadeInfo, const Amg::Vector3D &beamSpotPosition) const
Fill the trigger object that may be stored for debugging or matching for a cascade vertex.
Definition: TrigBmuxComboHypo.cxx:641
TrigCompositeUtils::DecisionIDContainer
std::set< DecisionID > DecisionIDContainer
Definition: TrigComposite_v1.h:28
TrigBmuxComboHypo::Lxy
double Lxy(const Amg::Vector3D &productionVertex, const Amg::Vector3D &decayVertex, const std::vector< TLorentzVector > &momenta) const
Returns the transverse decay length of a particle Lxy in [mm].
Definition: TrigBmuxComboHypo.cxx:715
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
TrigBmuxComboHypo::m_BToD0_minDstarPionPt
Gaudi::Property< double > m_BToD0_minDstarPionPt
Definition: TrigBmuxComboHypo.h:231
TrigBmuxComboHypo::m_BsToDs_LxyDs
Gaudi::Property< float > m_BsToDs_LxyDs
Definition: TrigBmuxComboHypo.h:289
TrigBmuxComboHypo::m_BToD0_makeDstar
Gaudi::Property< bool > m_BToD0_makeDstar
Definition: TrigBmuxComboHypo.h:221
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
TrigBmuxComboHypo::m_BToD0_LxyB
Gaudi::Property< float > m_BToD0_LxyB
Definition: TrigBmuxComboHypo.h:243
TrigBmuxComboHypo::m_BToD0_minD0PionPt
Gaudi::Property< double > m_BToD0_minD0PionPt
Definition: TrigBmuxComboHypo.h:225
TrigBmuxComboHypo::m_BdToD_LxyD
Gaudi::Property< float > m_BdToD_LxyD
Definition: TrigBmuxComboHypo.h:267
TrigBmuxComboHypo::isInSameRoI
bool isInSameRoI(const xAOD::Muon *, const xAOD::TrackParticle *) const
Checks that the given track is close enough to the muon, i.e.
Definition: TrigBmuxComboHypo.cxx:700
TrigBmuxComboHypo::m_roiPhiWidth
Gaudi::Property< double > m_roiPhiWidth
Definition: TrigBmuxComboHypo.h:211
TrigBmuxComboHypo::m_trackParticleContainerKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackParticleContainerKey
Definition: TrigBmuxComboHypo.h:191
TrigBmuxComboHypo::m_BToD0_maxDstarPionZ0
Gaudi::Property< double > m_BToD0_maxDstarPionZ0
Definition: TrigBmuxComboHypo.h:233
ITrigBphysState::decisions
TrigCompositeUtils::DecisionContainer & decisions()
Definition: ITrigBphysState.h:44
TrigBmuxComboHypo::isIdenticalTracks
bool isIdenticalTracks(const xAOD::TrackParticle *lhs, const xAOD::TrackParticle *rhs) const
Returns false for the tracks with opposite charges.
Definition: TrigBmuxComboHypo.cxx:693
TrigBmuxComboHypo::m_BToD0_DstarMassRange
Gaudi::Property< std::pair< double, double > > m_BToD0_DstarMassRange
Definition: TrigBmuxComboHypo.h:239
TrigBmuxComboHypo::m_BsToDs_minDsPt
Gaudi::Property< double > m_BsToDs_minDsPt
Definition: TrigBmuxComboHypo.h:277
TrigBmuxComboHypo::m_LambdaBToLambdaC_minPionPt
Gaudi::Property< double > m_LambdaBToLambdaC_minPionPt
Definition: TrigBmuxComboHypo.h:299
TrigBmuxComboHypo::m_LambdaBToLambdaC_massRange
Gaudi::Property< std::pair< double, double > > m_LambdaBToLambdaC_massRange
Definition: TrigBmuxComboHypo.h:303
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
TrigBmuxComboHypo::m_BdToD_LxyBd
Gaudi::Property< float > m_BdToD_LxyBd
Definition: TrigBmuxComboHypo.h:265
ITrigBphysState
Base class for TrigBphys state objects.
Definition: ITrigBphysState.h:21
TrigBphysContainer.h
TrigBmuxComboHypo::kD0
@ kD0
Definition: TrigBmuxComboHypo.h:98
TrigBmuxComboHypo::m_allowedIDs
TrigCompositeUtils::DecisionIDContainer m_allowedIDs
Definition: TrigBmuxComboHypo.h:324
TrigBmuxComboHypo::m_BToD0_minD0KaonPt
Gaudi::Property< double > m_BToD0_minD0KaonPt
Definition: TrigBmuxComboHypo.h:223
TrigBmuxComboHypo::m_BsToDs_minPionPt
Gaudi::Property< double > m_BsToDs_minPionPt
Definition: TrigBmuxComboHypo.h:275
TrigComposite.h
TrigBmuxState::Muon::link
ElementLink< xAOD::MuonContainer > link
Definition: TrigBmuxComboHypo.h:57
TrigBmuxComboHypo::m_LambdaBToLambdaC_LambdaCMassRange
Gaudi::Property< std::pair< double, double > > m_LambdaBToLambdaC_LambdaCMassRange
Definition: TrigBmuxComboHypo.h:305
xAOD::TrigBphys_v1
Class describing a Bphysics online composite object.
Definition: TrigBphys_v1.h:44
TrackParticleContainer.h
xAOD::TrigBphys_v1::pType
pType
enum for different particle types
Definition: TrigBphys_v1.h:48
VertexAuxContainer.h
ITrigBphysState::trigBphysCollection
xAOD::TrigBphysContainer & trigBphysCollection()
Definition: ITrigBphysState.h:45
TrigBmuxComboHypo::m_LambdaBToLambdaC_minLambdaCPt
Gaudi::Property< double > m_LambdaBToLambdaC_minLambdaCPt
Definition: TrigBmuxComboHypo.h:301
TrigBmuxComboHypo::m_BsToDs_massRange
Gaudi::Property< std::pair< double, double > > m_BsToDs_massRange
Definition: TrigBmuxComboHypo.h:279
TrigBmuxComboHypo::m_BdToD
Gaudi::Property< bool > m_BdToD
Definition: TrigBmuxComboHypo.h:251